Last active
December 3, 2022 02:34
-
-
Save samsonjs/675f558f424fbbc026f97322359ef193 to your computer and use it in GitHub Desktop.
Simple logging helper for OSLog in Swift
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import OSLog | |
extension Logger { | |
static let subsystem = Bundle.main.bundleIdentifier! | |
static func `for`(category: String) -> Logger { | |
Logger(subsystem: subsystem, category: category) | |
} | |
} | |
protocol Logging { | |
static var logCategory: String { get } | |
static func defaultLogger() -> Logger | |
var log: Logger { get } | |
} | |
private struct PrefixDetector {} | |
// Used to strip out the module name | |
private let typePrefix = String(reflecting: PrefixDetector.self) | |
.split(separator: ".") | |
.first! + "." | |
extension Logging { | |
static var logCategory: String { | |
String(reflecting: Self.self).replacing(typePrefix, with: "") | |
} | |
static func defaultLogger() -> Logger { | |
Logger.for(category: logCategory) | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment