Skip to content

Commit 650267e

Browse files
authored
fix: Change logger params to @autoclosures (#865)
1 parent b7ea81c commit 650267e

File tree

4 files changed

+37
-41
lines changed

4 files changed

+37
-41
lines changed

Diff for: Sources/Smithy/Logging/LogAgent.swift

+3-3
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ public protocol LogAgent {
2323
/// - function: The function the log line was emitted from.
2424
/// - line: The line the log message was emitted from.
2525
func log(level: LogAgentLevel,
26-
message: String,
27-
metadata: [String: String]?,
28-
source: String,
26+
message: @autoclosure () -> String,
27+
metadata: @autoclosure () -> [String: String]?,
28+
source: @autoclosure () -> String,
2929
file: String,
3030
function: String,
3131
line: UInt)

Diff for: Sources/Smithy/Logging/SwiftLog+LogAgent.swift

+30-34
Original file line numberDiff line numberDiff line change
@@ -1,68 +1,64 @@
1-
/*
2-
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3-
* SPDX-License-Identifier: Apache-2.0.
4-
*/
1+
//
2+
// Copyright Amazon.com Inc. or its affiliates.
3+
// All Rights Reserved.
4+
//
5+
// SPDX-License-Identifier: Apache-2.0
6+
//
57

68
import Logging
79

810
public struct SwiftLogger: LogAgent {
11+
public var level: LogAgentLevel
12+
913
private let logger: Logger
1014
private let label: String
11-
private var logLevel: LogAgentLevel
1215

1316
public init(label: String) {
1417
self.label = label
1518
self.logger = Logger(label: label)
16-
self.logLevel = LogAgentLevel.info
19+
self.level = LogAgentLevel.info
1720
}
1821

1922
public init(label: String, logLevel: LogAgentLevel) {
2023
self.label = label
2124
self.logger = Logger(label: label)
22-
self.logLevel = logLevel
25+
self.level = logLevel
2326
}
2427

2528
// This initializer is currently only used in tests, to inject a mock LogHandler.
2629
init(label: String, logLevel: LogAgentLevel, factory: (String) -> any LogHandler) {
2730
self.label = label
28-
self.logLevel = logLevel
31+
self.level = logLevel
2932
self.logger = Logger(label: label, factory: factory)
3033
}
3134

32-
public var level: LogAgentLevel {
33-
get {
34-
return logLevel
35-
}
36-
set(value) {
37-
logLevel = value
38-
}
39-
}
40-
4135
public var name: String {
4236
return label
4337
}
4438

45-
public func log(level: LogAgentLevel,
46-
message: String,
47-
metadata: [String: String]?,
48-
source: String,
49-
file: String,
50-
function: String,
51-
line: UInt) {
52-
let mappedDict = metadata?.mapValues { (value) -> Logger.MetadataValue in
53-
return Logger.MetadataValue.string(value)
54-
}
55-
self.logger.log(level: level.toLoggerLevel(),
56-
Logger.Message(stringLiteral: message),
57-
metadata: mappedDict,
58-
source: source,
59-
file: file,
60-
function: function,
61-
line: line)
39+
public func log(
40+
level: LogAgentLevel,
41+
message: @autoclosure () -> String,
42+
metadata: @autoclosure () -> [String: String]?,
43+
source: @autoclosure () -> String,
44+
file: String,
45+
function: String,
46+
line: UInt
47+
) {
48+
self.logger.log(
49+
level: level.toLoggerLevel(),
50+
Logger.Message(stringLiteral: message()),
51+
metadata: metadata()?.mapValues { Logger.MetadataValue.string($0) },
52+
source: source(),
53+
file: file as String,
54+
function: function as String,
55+
line: line
56+
)
6257
}
6358
}
6459

6560
extension LogAgentLevel {
61+
6662
func toLoggerLevel() -> Logger.Level {
6763
switch self {
6864
case .trace:

Diff for: Tests/ClientRuntimeTests/NetworkingTests/URLSession/FoundationStreamBridgeTests.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,8 @@ private class TestLogger: LogAgent {
117117
self.level = level
118118
}
119119

120-
func log(level: LogAgentLevel = .info, message: String, metadata: [String : String]? = nil, source: String = "ChecksumUnitTests", file: String = #file, function: String = #function, line: UInt = #line) {
121-
messages.append((level: level, message: message))
120+
func log(level: LogAgentLevel = .info, message: @autoclosure () -> String, metadata: @autoclosure () -> [String : String]? = nil, source: @autoclosure () -> String = "ChecksumUnitTests", file: String = #file, function: String = #function, line: UInt = #line) {
121+
messages.append((level: level, message: message()))
122122
}
123123
}
124124

Diff for: Tests/ClientRuntimeTests/OrchestratorTests/OrchestratorTests.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ class OrchestratorTests: XCTestCase {
6363
var name: String = "TestTraceLogger"
6464
var level: LogAgentLevel = .debug
6565

66-
func log(level: LogAgentLevel, message: String, metadata: [String : String]?, source: String, file: String, function: String, line: UInt) {
67-
trace.append(message)
66+
func log(level: LogAgentLevel, message: @autoclosure () -> String, metadata: @autoclosure () -> [String : String]?, source: @autoclosure () -> String, file: String, function: String, line: UInt) {
67+
trace.append(message())
6868
}
6969
}
7070

0 commit comments

Comments
 (0)