Skip to content

Commit c552e41

Browse files
committed
Simplify LoggerClient
1 parent f10a80a commit c552e41

File tree

5 files changed

+11
-85
lines changed

5 files changed

+11
-85
lines changed

Sources/App/Commands/Analyze.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ extension Analyze {
251251
attributes: nil)
252252
} catch {
253253
let error = AppError.genericError(nil, "Failed to create checkouts directory: \(error.localizedDescription)")
254-
logger.logger?.report(error: error)
254+
logger.logger.report(error: error)
255255
}
256256
}
257257

Sources/App/Commands/Common.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ extension Analyze {
8888
try await recordError(database: database, error: error)
8989

9090
case let .failure(error):
91-
logger.logger?.report(error: error)
91+
logger.report(error: error)
9292
try await recordError(database: database, error: error)
9393
}
9494
}

Sources/App/Commands/Ingestion.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ enum Ingestion {
222222
do {
223223
try await updatePackage(client: client, database: database, result: result, stage: .ingestion)
224224
} catch {
225-
logger.logger?.report(error: error)
225+
logger.report(error: error)
226226
}
227227
}
228228

Sources/App/Commands/ReAnalyzeVersions.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ enum ReAnalyzeVersions {
177177
@Dependency(\.logger) var logger
178178

179179
for pkg in packages {
180-
logger.logger?.info("Re-analyzing package \(pkg.model.url) ...")
180+
logger.info("Re-analyzing package \(pkg.model.url) ...")
181181

182182
// 2024-10-05 sas: We need to explicitly weave dependencies into the `transaction` closure, because escaping closures strip them.
183183
// https://github.com/pointfreeco/swift-dependencies/discussions/283#discussioncomment-10846172
@@ -196,7 +196,7 @@ enum ReAnalyzeVersions {
196196
transaction: tx,
197197
package: pkg,
198198
before: cutoffDate)
199-
logger.logger?.info("Updating \(versions.count) versions (id: \(pkg.model.id)) ...")
199+
logger.info("Updating \(versions.count) versions (id: \(pkg.model.id)) ...")
200200

201201
try await setUpdatedAt(on: tx, versions: versions)
202202

@@ -207,7 +207,7 @@ enum ReAnalyzeVersions {
207207
do {
208208
pkgInfo = try await Analyze.getPackageInfo(package: pkg, version: version)
209209
} catch {
210-
logger.logger?.report(error: error)
210+
logger.report(error: error)
211211
continue
212212
}
213213

Sources/App/Core/Dependencies/LoggerClient.swift

Lines changed: 5 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,10 @@ extension LoggerClient {
3232
func info(_ message: Logging.Logger.Message) { log(.info, message) }
3333
func warning(_ message: Logging.Logger.Message) { log(.warning, message) }
3434
func trace(_ message: Logging.Logger.Message) { log(.trace, message) }
35-
var logger: Logging.Logger? {
36-
Self._logger.withLock {
37-
switch $0 {
38-
case .uninitialized:
39-
return nil
40-
case let .initialized(value):
41-
return value.logger
42-
}
43-
}
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)
4437
}
38+
var logger: Logging.Logger { Self._logger.withLock { $0 } }
4539
}
4640

4741

@@ -52,12 +46,12 @@ extension LoggerClient: DependencyKey {
5246
_logger.withLock { $0.log(level: level, message) }
5347
},
5448
set: { logger in
55-
_logger.withLock { $0.setLogger(logger) }
49+
_logger.withLock { $0 = logger }
5650
}
5751
)
5852
}
5953

60-
private static let _logger = Mutex(Logger.uninitialized(.init()))
54+
private static let _logger = Mutex(Logging.Logger(component: "default"))
6155
}
6256

6357

@@ -72,71 +66,3 @@ extension DependencyValues {
7266
set { self[LoggerClient.self] = newValue }
7367
}
7468
}
75-
76-
77-
#warning("Simplify this - we don't really need the typestate mechanism")
78-
// Modeled after https://swiftology.io/articles/typestate/
79-
80-
extension LoggerClient {
81-
82-
private enum Logger: ~Copyable {
83-
case uninitialized(_UninitializedLogger)
84-
case initialized(_InitializedLogger)
85-
86-
mutating func setLogger(_ logger: Logging.Logger) {
87-
self = .initialized(.init(logger: logger))
88-
}
89-
90-
func log(
91-
level: Logging.Logger.Level,
92-
_ message: @autoclosure () -> Logging.Logger.Message,
93-
metadata: @autoclosure () -> Logging.Logger.Metadata? = nil,
94-
source: @autoclosure () -> String? = nil,
95-
file: String = #fileID,
96-
function: String = #function,
97-
line: UInt = #line
98-
) {
99-
switch self {
100-
case .uninitialized:
101-
break
102-
case let .initialized(logger):
103-
logger.log(level: level,
104-
message(),
105-
metadata: metadata(),
106-
source: source(),
107-
file: file,
108-
function: function,
109-
line: line)
110-
}
111-
}
112-
}
113-
114-
}
115-
116-
117-
private struct _UninitializedLogger: ~Copyable {
118-
consuming func setLogger(_ logger: Logging.Logger) -> _InitializedLogger {
119-
.init(logger: logger)
120-
}
121-
}
122-
123-
private struct _InitializedLogger: ~Copyable {
124-
var logger: Logging.Logger
125-
126-
init(logger: Logging.Logger) {
127-
self.logger = logger
128-
}
129-
130-
func log(
131-
level: Logging.Logger.Level,
132-
_ message: @autoclosure () -> Logging.Logger.Message,
133-
metadata: @autoclosure () -> Logging.Logger.Metadata? = nil,
134-
source: @autoclosure () -> String? = nil,
135-
file: String = #fileID,
136-
function: String = #function,
137-
line: UInt = #line
138-
) {
139-
logger.log(level: level, message(), metadata: metadata(), source: source(), file: file, function: function, line: line)
140-
}
141-
}
142-

0 commit comments

Comments
 (0)