|
13 | 13 | // limitations under the License. |
14 | 14 |
|
15 | 15 | import Dependencies |
16 | | -import DependenciesMacros |
| 16 | +import IssueReporting |
17 | 17 | import Logging |
18 | | -import Synchronization |
19 | 18 |
|
20 | 19 |
|
21 | | -@DependencyClient |
22 | | -struct LoggerClient { |
23 | | - var log: @Sendable (_ level: Logging.Logger.Level, Logging.Logger.Message) -> Void |
24 | | - var set: @Sendable (_ to: Logging.Logger) -> Void |
25 | | -} |
26 | | - |
27 | | - |
28 | | -extension LoggerClient { |
29 | | - func critical(_ message: Logging.Logger.Message) { log(.critical, message) } |
30 | | - func debug(_ message: Logging.Logger.Message) { log(.debug, message) } |
31 | | - func error(_ message: Logging.Logger.Message) { log(.error, message) } |
32 | | - func info(_ message: Logging.Logger.Message) { log(.info, message) } |
33 | | - func warning(_ message: Logging.Logger.Message) { log(.warning, message) } |
34 | | - func trace(_ message: Logging.Logger.Message) { log(.trace, message) } |
35 | | - func report(error: Error, file: String = #fileID, function: String = #function, line: UInt = #line) { |
36 | | - logger.report(error: error, file: file, function: function, line: line) |
| 20 | +private enum LoggerClient: DependencyKey { |
| 21 | + static var liveValue: Logger { |
| 22 | + reportIssue("The default logger is being used. Override this dependency in the entry point of your app.") |
| 23 | + return Logging.Logger(label: "default") |
37 | 24 | } |
38 | | - var logger: Logging.Logger { Self._logger.withLock { $0 } } |
39 | | -} |
40 | | - |
41 | | - |
42 | | -extension LoggerClient: DependencyKey { |
43 | | - static var liveValue: Self { |
44 | | - .init( |
45 | | - log: { level, message in |
46 | | - _logger.withLock { $0.log(level: level, message) } |
47 | | - }, |
48 | | - set: { logger in |
49 | | - _logger.withLock { $0 = logger } |
50 | | - } |
51 | | - ) |
52 | | - } |
53 | | - |
54 | | - private static let _logger = Mutex(Logging.Logger(component: "default")) |
55 | | -} |
56 | | - |
57 | | - |
58 | | -extension LoggerClient: TestDependencyKey { |
59 | | - static var testValue: Self { liveValue } |
60 | 25 | } |
61 | 26 |
|
62 | 27 |
|
63 | 28 | extension DependencyValues { |
64 | | - var logger: LoggerClient { |
| 29 | + public var logger: Logger { |
65 | 30 | get { self[LoggerClient.self] } |
66 | 31 | set { self[LoggerClient.self] = newValue } |
67 | 32 | } |
|
0 commit comments