From 3697974ca8c2b8e5056db9963db83ff44d57b79d Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Thu, 23 Aug 2018 10:34:04 -0400 Subject: [PATCH] Rework Swift logging. --- SignalServiceKit/src/Util/OWSLogger.h | 1 - SignalServiceKit/src/Util/OWSLogger.swift | 67 +++++++++++++++++++++++ 2 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 SignalServiceKit/src/Util/OWSLogger.swift 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() + } +}