Skip to content

Commit 08c70ad

Browse files
committed
add category to LoggerBackend
1 parent e409510 commit 08c70ad

File tree

6 files changed

+16
-2
lines changed

6 files changed

+16
-2
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ Conform to `LoggerBackend` to create a custom backend:
6464
```swift
6565
public protocol LoggerBackend: Sendable {
6666
var subsystem: String { get }
67+
var category: String { get }
6768
func log(level: LogLevel, message: String, metadata: [String: String]?)
6869
}
6970
```

Sources/SimpleLogger/Backend/ConsoleBackend.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,16 @@ public final class ConsoleLogBackend: LoggerBackend {
1616
/// The subsystem name.
1717
public let subsystem: String
1818

19+
/// The category name
20+
public let category: String
21+
1922
/// Initializes a `ConsoleLogBackend` instance with the specified subsystem.
2023
///
2124
/// - Parameters:
2225
/// - subsystem: The subsystem name.
23-
public init(subsystem: String = "console logger") {
26+
public init(subsystem: String = "console logger", category: String = "") {
2427
self.subsystem = subsystem
28+
self.category = category
2529
}
2630

2731
/// A date formatter for formatting the timestamp.
@@ -40,6 +44,7 @@ public final class ConsoleLogBackend: LoggerBackend {
4044
public func log(level: LogLevel, message: String, metadata: [String: String]?) {
4145
let timestamp = dateFormatter.string(from: Date())
4246
let fullMessage = "\(timestamp) [\(level.rawValue.uppercased())] " +
47+
"\(subsystem)[\(category)] " +
4348
"\(message) in \(metadata?["function"] ?? "") at \(metadata?["file"] ?? ""):\(metadata?["line"] ?? "")"
4449
print(fullMessage)
4550
}

Sources/SimpleLogger/Backend/LoggerBackendProtocol.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ import Foundation
1515
public protocol LoggerBackend: Sendable {
1616
/// The subsystem name.
1717
var subsystem: String { get }
18+
/// The category name
19+
var category: String { get }
1820

1921
/// Logs a message with the specified level, message, and metadata.
2022
///

Sources/SimpleLogger/Backend/OSLogBackend.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,11 @@ import OSLog
1414

1515
/// An implementation of the `LoggerBackend` protocol that logs messages to OSLog.
1616
public final class OSLogBackend: LoggerBackend {
17+
/// The subsystem name
1718
public let subsystem: String
19+
/// The category name
20+
public let category: String
21+
/// A logger Instance
1822
let logger: Logger
1923

2024
/// A boolean value that indicates whether the logger is enabled.
@@ -28,6 +32,7 @@ public final class OSLogBackend: LoggerBackend {
2832
/// - environmentKey: The environment key to check for disabling the logger.
2933
public init(subsystem: String, category: String, environmentKey: String = "DisableLogger") {
3034
self.subsystem = subsystem
35+
self.category = category
3136
logger = Logger(subsystem: subsystem, category: category)
3237
if let value = ProcessInfo.processInfo.environment[environmentKey]?.lowercased() {
3338
loggerEnabled = !(value == "true" || value == "1" || value == "yes")

Sources/SimpleLogger/SimpleLogger.docc/SimpleLogger.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ Conform to `LoggerBackend` to create a custom backend:
4242
```swift
4343
public protocol LoggerBackend: Sendable {
4444
var subsystem: String { get }
45+
var category: String { get }
4546
func log(level: LogLevel, message: String, metadata: [String: String]?)
4647
}
4748
```

Tests/SimpleLoggerTests/LoggerManagerTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@testable import LoggerManager
1+
@testable import SimpleLogger
22
import Testing
33

44
/// add `DisableLogger = true` in environment variables can disable log output

0 commit comments

Comments
 (0)