Skip to content

Commit 7e4eb78

Browse files
blacklist
1 parent 8dd1387 commit 7e4eb78

2 files changed

Lines changed: 43 additions & 17 deletions

File tree

Sources/NextcloudKit/Log/NKLogFileManager.swift

Lines changed: 35 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,16 @@ public final class NKLogFileManager: @unchecked Sendable {
7171

7272
/// Configures filter.
7373
/// - Parameters:
74-
/// - filter: Set thing must not be logged.
75-
public static func setFilter(filter: [String]) {
76-
shared.setFilter(filter: filter)
74+
/// - blacklist: Set thing must not be logged.
75+
public static func setBlacklist(blacklist: [String]) {
76+
shared.setBlacklist(blacklist: blacklist)
77+
}
78+
79+
/// Configures whitelist.
80+
/// - Parameters:
81+
/// - whitelist: Set thing must be logged.
82+
public static func setCandidate(whitelist: [String]) {
83+
shared.setWhitelist(whitelist: whitelist)
7784
}
7885

7986
/// Creates the "Logs" folder inside the user's Documents directory if it does not already exist.
@@ -105,7 +112,8 @@ public final class NKLogFileManager: @unchecked Sendable {
105112
private let logFileName = "log.txt"
106113
private let logDirectory: URL
107114
public var logLevel: NKLogLevel
108-
public var filter: [String] = []
115+
private var blacklist: [String] = []
116+
private var whitelist: [String] = []
109117
private var currentLogDate: String
110118
private let logQueue = DispatchQueue(label: "com.nextcloud.LogWriterQueue", attributes: .concurrent)
111119
private let rotationQueue = DispatchQueue(label: "com.nextcloud.LogRotationQueue")
@@ -117,10 +125,13 @@ public final class NKLogFileManager: @unchecked Sendable {
117125

118126
// MARK: - Initialization
119127

120-
private init(logLevel: NKLogLevel = .normal, filter: [String]? = nil) {
128+
private init(logLevel: NKLogLevel = .normal, blacklist: [String]? = nil, whitelist: [String]? = nil) {
121129
self.logLevel = logLevel
122-
if let filter {
123-
self.filter = filter
130+
if let blacklist {
131+
self.blacklist = blacklist
132+
}
133+
if let whitelist {
134+
self.whitelist = whitelist
124135
}
125136

126137
let documents = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
@@ -161,11 +172,18 @@ public final class NKLogFileManager: @unchecked Sendable {
161172
self.logLevel = logLevel
162173
}
163174

164-
/// Sets filter for the logger.
175+
/// Sets blacklist for the logger.
165176
/// - Parameters:
166-
/// - filter:
167-
private func setFilter(filter: [String]) {
168-
self.filter = filter
177+
/// - blacklist:
178+
private func setBlacklist(blacklist: [String]) {
179+
self.blacklist = blacklist
180+
}
181+
182+
/// Sets candidate for the logger.
183+
/// - Parameters:
184+
/// - whitelist:
185+
private func setWhitelist(whitelist: [String]) {
186+
self.whitelist = whitelist
169187
}
170188

171189
// MARK: - Public API
@@ -242,9 +260,12 @@ public final class NKLogFileManager: @unchecked Sendable {
242260
if minimumLogLevel > logLevel {
243261
return
244262
}
245-
// Filter
246-
let shouldSkip = self.filter.contains { message.contains($0) }
247-
if shouldSkip {
263+
// Blacklist
264+
if blacklist.contains(where: { message.contains($0) }) {
265+
return
266+
}
267+
// Whitelist
268+
if !whitelist.isEmpty, !whitelist.contains(where: { message.contains($0) }) {
248269
return
249270
}
250271

Sources/NextcloudKit/NextcloudKit+Logging.swift

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,13 @@ public extension NextcloudKit {
1313
NKLogFileManager.configure(logLevel: logLevel)
1414
}
1515

16-
/// Configure the shared logger filter from NextcloudKit
17-
static func configureLoggerFilter(filter: [String]) {
18-
NKLogFileManager.setFilter(filter: filter)
16+
/// Configure the shared logger blacklist from NextcloudKit
17+
static func configureLoggerBlacklist(blacklist: [String]) {
18+
NKLogFileManager.setBlacklist(blacklist: blacklist)
19+
}
20+
21+
/// Configure the shared logger whitelist from NextcloudKit
22+
static func configureLoggerWhitelist(whitelist: [String]) {
23+
NKLogFileManager.setCandidate(whitelist: whitelist)
1924
}
2025
}

0 commit comments

Comments
 (0)