diff --git a/SignalServiceKit/src/Util/OWSLogger.h b/SignalServiceKit/src/Util/OWSLogger.h index be970a108..b7b353a46 100644 --- a/SignalServiceKit/src/Util/OWSLogger.h +++ b/SignalServiceKit/src/Util/OWSLogger.h @@ -7,7 +7,6 @@ NS_ASSUME_NONNULL_BEGIN /** * A minimal DDLog wrapper for swift. */ -NS_SWIFT_NAME(Logger) @interface OWSLogger : NSObject + (void)verbose:(NSString *)logString; diff --git a/SignalServiceKit/src/Util/OWSLogger.swift b/SignalServiceKit/src/Util/OWSLogger.swift new file mode 100644 index 000000000..221646d78 --- /dev/null +++ b/SignalServiceKit/src/Util/OWSLogger.swift @@ -0,0 +1,67 @@ +// +// Copyright (c) 2018 Open Whisper Systems. All rights reserved. +// + +import Foundation + +// Once we're on Swift4.2 we can mark this as inlineable +// @inlinable +public func owsFormatLogMessage(_ logString: String, + file: String = #file, + function: String = #function, + line: Int = #line) -> String { + let filename = (file as NSString).lastPathComponent + // We format the filename & line number in a format compatible + // with XCode's "Open Quickly..." feature. + return "[\(filename):\(line) \(function)]: \(logString)" +} + +/** + * A minimal DDLog wrapper for swift. + */ +open class Logger: NSObject { + + open class func verbose(_ logString: String, + file: String = #file, + function: String = #function, + line: Int = #line) { + let message = owsFormatLogMessage(logString, file: file, function: function, line: line) + OWSLogger.verbose(message) + } + + open class func debug(_ logString: String, + file: String = #file, + function: String = #function, + line: Int = #line) { + let message = owsFormatLogMessage(logString, file: file, function: function, line: line) + OWSLogger.debug(message) + } + + open class func info(_ logString: String, + file: String = #file, + function: String = #function, + line: Int = #line) { + let message = owsFormatLogMessage(logString, file: file, function: function, line: line) + OWSLogger.info(message) + } + + open class func warn(_ logString: String, + file: String = #file, + function: String = #function, + line: Int = #line) { + let message = owsFormatLogMessage(logString, file: file, function: function, line: line) + OWSLogger.warn(message) + } + + open class func error(_ logString: String, + file: String = #file, + function: String = #function, + line: Int = #line) { + let message = owsFormatLogMessage(logString, file: file, function: function, line: line) + OWSLogger.error(message) + } + + open class func flush() { + OWSLogger.flush() + } +}