Skip to content

Commit b82605a

Browse files
Merge pull request #176 from nextcloud/improved-log
added minimumLogLevel
2 parents 0f9f54e + b2065c7 commit b82605a

3 files changed

Lines changed: 46 additions & 40 deletions

File tree

Sources/NextcloudKit/Log/NKLog.swift

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,43 +8,43 @@ import Foundation
88
// These functions internally use `NKLogFileManager.shared`.
99

1010
@inlinable
11-
public func nkLog(debug message: String) {
12-
NKLogFileManager.shared.writeLog(debug: message)
11+
public func nkLog(debug message: String, minimumLogLevel: NKLogLevel = .compact) {
12+
NKLogFileManager.shared.writeLog(debug: message, minimumLogLevel: minimumLogLevel)
1313
}
1414

1515
@inlinable
16-
public func nkLog(info message: String) {
17-
NKLogFileManager.shared.writeLog(info: message)
16+
public func nkLog(info message: String, minimumLogLevel: NKLogLevel = .compact) {
17+
NKLogFileManager.shared.writeLog(info: message, minimumLogLevel: minimumLogLevel)
1818
}
1919

2020
@inlinable
21-
public func nkLog(warning message: String) {
22-
NKLogFileManager.shared.writeLog(warning: message)
21+
public func nkLog(warning message: String, minimumLogLevel: NKLogLevel = .compact) {
22+
NKLogFileManager.shared.writeLog(warning: message, minimumLogLevel: minimumLogLevel)
2323
}
2424

2525
@inlinable
26-
public func nkLog(error message: String) {
27-
NKLogFileManager.shared.writeLog(error: message)
26+
public func nkLog(error message: String, minimumLogLevel: NKLogLevel = .compact) {
27+
NKLogFileManager.shared.writeLog(error: message, minimumLogLevel: minimumLogLevel)
2828
}
2929

3030
@inlinable
31-
public func nkLog(success message: String) {
32-
NKLogFileManager.shared.writeLog(success: message)
31+
public func nkLog(success message: String, minimumLogLevel: NKLogLevel = .compact) {
32+
NKLogFileManager.shared.writeLog(success: message, minimumLogLevel: minimumLogLevel)
3333
}
3434

3535
@inlinable
36-
public func nkLog(network message: String) {
37-
NKLogFileManager.shared.writeLog(network: message)
36+
public func nkLog(network message: String, minimumLogLevel: NKLogLevel = .compact) {
37+
NKLogFileManager.shared.writeLog(network: message, minimumLogLevel: minimumLogLevel)
3838
}
3939

4040
@inlinable
41-
public func nkLog(start message: String) {
42-
NKLogFileManager.shared.writeLog(start: message)
41+
public func nkLog(start message: String, minimumLogLevel: NKLogLevel = .compact) {
42+
NKLogFileManager.shared.writeLog(start: message, minimumLogLevel: minimumLogLevel)
4343
}
4444

4545
@inlinable
46-
public func nkLog(stop message: String) {
47-
NKLogFileManager.shared.writeLog(stop: message)
46+
public func nkLog(stop message: String, minimumLogLevel: NKLogLevel = .compact) {
47+
NKLogFileManager.shared.writeLog(stop: message, minimumLogLevel: minimumLogLevel)
4848
}
4949

5050
/// Logs a custom tagged message.
@@ -53,6 +53,6 @@ public func nkLog(stop message: String) {
5353
/// - emoji: the type tag .info, .debug, .warning, .error, .success ..
5454
/// - message: The message to log.
5555
@inlinable
56-
public func nkLog(tag: String, emoji: NKLogTagEmoji = .debug, message: String) {
57-
NKLogFileManager.shared.writeLog(tag: tag, emoji: emoji, message: message)
56+
public func nkLog(tag: String, emoji: NKLogTagEmoji = .debug, message: String, minimumLogLevel: NKLogLevel = .compact) {
57+
NKLogFileManager.shared.writeLog(tag: tag, emoji: emoji, message: message, minimumLogLevel: minimumLogLevel)
5858
}

Sources/NextcloudKit/Log/NKLogFileManager.swift

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -150,48 +150,48 @@ public final class NKLogFileManager: @unchecked Sendable {
150150

151151
// MARK: - Public API
152152

153-
public func writeLog(debug message: String) {
154-
writeLog("[DEBUG] \(message)")
153+
public func writeLog(debug message: String, minimumLogLevel: NKLogLevel = .compact) {
154+
writeLog("[DEBUG] \(message)", minimumLogLevel: minimumLogLevel)
155155
}
156156

157-
public func writeLog(info message: String) {
158-
writeLog("[INFO] \(message)")
157+
public func writeLog(info message: String, minimumLogLevel: NKLogLevel = .compact) {
158+
writeLog("[INFO] \(message)", minimumLogLevel: minimumLogLevel)
159159
}
160160

161-
public func writeLog(warning message: String) {
162-
writeLog("[WARNING] \(message)")
161+
public func writeLog(warning message: String, minimumLogLevel: NKLogLevel = .compact) {
162+
writeLog("[WARNING] \(message)", minimumLogLevel: minimumLogLevel)
163163
}
164164

165-
public func writeLog(error message: String) {
166-
writeLog("[ERROR] \(message)")
165+
public func writeLog(error message: String, minimumLogLevel: NKLogLevel = .compact) {
166+
writeLog("[ERROR] \(message)", minimumLogLevel: minimumLogLevel)
167167
}
168168

169-
public func writeLog(success message: String) {
170-
writeLog("[SUCCESS] \(message)")
169+
public func writeLog(success message: String, minimumLogLevel: NKLogLevel = .compact) {
170+
writeLog("[SUCCESS] \(message)", minimumLogLevel: minimumLogLevel)
171171
}
172172

173-
public func writeLog(network message: String) {
174-
writeLog("[NETWORK] \(message)")
173+
public func writeLog(network message: String, minimumLogLevel: NKLogLevel = .compact) {
174+
writeLog("[NETWORK] \(message)", minimumLogLevel: minimumLogLevel)
175175
}
176176

177-
public func writeLog(start message: String) {
178-
writeLog("[START] \(message)")
177+
public func writeLog(start message: String, minimumLogLevel: NKLogLevel = .compact) {
178+
writeLog("[START] \(message)", minimumLogLevel: minimumLogLevel)
179179
}
180180

181-
public func writeLog(stop message: String) {
182-
writeLog("[STOP] \(message)")
181+
public func writeLog(stop message: String, minimumLogLevel: NKLogLevel = .compact) {
182+
writeLog("[STOP] \(message)", minimumLogLevel: minimumLogLevel)
183183
}
184184

185185
/// Writes a tagged log message with a specific log level.
186186
/// - Parameters:
187187
/// - tag: A custom tag to classify the log message (e.g. "SYNC", "AUTH").
188188
/// - emoji: .info, .debug, .warning, .error, .success ..
189189
/// - message: The log message content.
190-
public func writeLog(tag: String, emoji: NKLogTagEmoji, message: String) {
190+
public func writeLog(tag: String, emoji: NKLogTagEmoji, message: String, minimumLogLevel: NKLogLevel = .compact) {
191191
guard !tag.isEmpty else { return }
192192

193193
let taggedMessage = "[\(tag.uppercased())] \(message)"
194-
writeLog(taggedMessage, emoji: emoji)
194+
writeLog(taggedMessage, emoji: emoji, minimumLogLevel: minimumLogLevel)
195195
}
196196

197197
/// Writes a log message with an optional typeTag to determine console emoji.
@@ -201,8 +201,14 @@ public final class NKLogFileManager: @unchecked Sendable {
201201
/// - Parameters:
202202
/// - message: The log message to record.
203203
/// - emoji: Optional type to determine console emoji (e.g. [INFO], [ERROR]).
204-
public func writeLog(_ message: String?, emoji: NKLogTagEmoji? = nil) {
205-
guard logLevel != .disabled, let message = message else { return }
204+
public func writeLog(_ message: String?, emoji: NKLogTagEmoji? = nil, minimumLogLevel: NKLogLevel = .compact) {
205+
guard logLevel != .disabled,
206+
let message = message else {
207+
return
208+
}
209+
if minimumLogLevel > logLevel {
210+
return
211+
}
206212

207213
let fileTimestamp = Self.stableTimestampString()
208214
let consoleTimestamp = Self.localizedTimestampString()

Sources/NextcloudKit/NextcloudKit.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ open class NextcloudKit {
2222
#endif
2323
public var nkCommonInstance = NKCommon()
2424

25-
internal func log(debug message: String) {
26-
NKLogFileManager.shared.writeLog(debug: message)
25+
internal func log(debug message: String, minimumLogLevel: NKLogLevel = .compact) {
26+
NKLogFileManager.shared.writeLog(debug: message, minimumLogLevel: minimumLogLevel)
2727
}
2828

2929
internal lazy var unauthorizedSession: Alamofire.Session = {

0 commit comments

Comments
 (0)