diff --git a/Senna/Frontend/DefaultLogger.swift b/Senna/Frontend/DefaultLogger.swift index c09dd7c..0a5278e 100644 --- a/Senna/Frontend/DefaultLogger.swift +++ b/Senna/Frontend/DefaultLogger.swift @@ -6,7 +6,7 @@ import Foundation public func log(flag: LogFlag, message: CustomStringConvertible?, filename: String = #file, function: String = #function, line: Int = #line) { - let allMessage = AllMessage(message, filename, function, line).cString(using: .utf8) + let allMessage = __messageConvert(message, filename, function, line).cString(using: .utf8) senna_default_logger_log(flag.rawValue, allMessage) } diff --git a/Senna/Frontend/Logger.swift b/Senna/Frontend/Logger.swift index fc89f31..c284066 100644 --- a/Senna/Frontend/Logger.swift +++ b/Senna/Frontend/Logger.swift @@ -68,7 +68,7 @@ extension Logger { // MARK: - Log extension Logger { public func log(flag: LogFlag, message: CustomStringConvertible?, filename: String = #file, function: String = #function, line: Int = #line) { - let allMessage = AllMessage(message, filename, function, line).cString(using: .utf8) + let allMessage = __messageConvert(message, filename, function, line).cString(using: .utf8) let loggerName = self.name.cString(using: .utf8) let flag = UInt32(flag.rawValue) senna_log_action(loggerName, flag, allMessage) diff --git a/Senna/Frontend/Senna.swift b/Senna/Frontend/Senna.swift index 81056fa..42669a1 100644 --- a/Senna/Frontend/Senna.swift +++ b/Senna/Frontend/Senna.swift @@ -33,7 +33,13 @@ public func drop(logger: Logger) { senna_drop_logger(loggerName) } -let AllMessage: (CustomStringConvertible?, String, String, Int) -> String = { message, filename, function, line in +public typealias MessageConvert = (_ message: CustomStringConvertible?, _ filename: String, _ function: String, _ line: Int) -> String + +public func register(messageConvert: @escaping MessageConvert) { + __messageConvert = messageConvert +} + +var __messageConvert: MessageConvert = { message, filename, function, line in let allMessage = "[\(URL(fileURLWithPath: filename).lastPathComponent):\(line)] \(function) - \(message?.description ?? "")" return allMessage }