@@ -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
0 commit comments