Skip to content

Instantly share code, notes, and snippets.

@samsonjs
Last active December 3, 2022 02:34
Show Gist options
  • Save samsonjs/675f558f424fbbc026f97322359ef193 to your computer and use it in GitHub Desktop.
Save samsonjs/675f558f424fbbc026f97322359ef193 to your computer and use it in GitHub Desktop.
Simple logging helper for OSLog in Swift
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