@@ -8,8 +8,11 @@ import Sentry
88/// application logs from CocoaLumberjack and send them to Sentry for analysis and monitoring.
99///
1010/// ## Level Filtering
11- /// The logger supports filtering by log level. Only logs at or above the configured `logLevel` will be
12- /// sent to Sentry. Defaults to `.info`.
11+ /// Use CocoaLumberjack's built-in filtering API when adding the logger:
12+ /// ```swift
13+ /// DDLog.addLogger(SentryCocoaLumberjackLogger(), withLogLevel: .info)
14+ /// ```
15+ /// This ensures only logs at or above the specified level are sent to Sentry.
1316///
1417/// ## Level Mapping
1518/// CocoaLumberjack log levels are mapped to Sentry log levels:
@@ -32,7 +35,7 @@ import Sentry
3235///
3336/// // Add SentryCocoaLumberjackLogger to CocoaLumberjack
3437/// // Only logs at .info level and above will be sent to Sentry
35- /// DDLog.add (SentryCocoaLumberjackLogger(logLevel : .info) )
38+ /// DDLog.addLogger (SentryCocoaLumberjackLogger(), withLogLevel : .info)
3639///
3740/// // Use CocoaLumberjack as usual
3841/// DDLogInfo("User logged in")
@@ -43,39 +46,18 @@ import Sentry
4346/// - Warning: This logger requires Sentry SDK to be initialized before use.
4447public class SentryCocoaLumberjackLogger : DDAbstractLogger {
4548
46- private let sentryLogger : SentryLogger
47-
48- /// The minimum log level for messages to be sent to Sentry.
49- ///
50- /// Messages below this level will be filtered out and not sent to Sentry.
51- /// Defaults to `.info`.
52- public var logLevel : DDLogLevel
53-
5449 /// Creates a new SentryCocoaLumberjackLogger instance.
5550 ///
56- /// - Parameter logLevel: The minimum log level for messages to be sent to Sentry.
57- /// Defaults to `.info`.
5851 /// - Note: Make sure to initialize the Sentry SDK before creating this logger.
59- public init ( logLevel: DDLogLevel = . info) {
60- self . sentryLogger = SentrySDK . logger
61- self . logLevel = logLevel
62- super. init ( )
63- }
64-
65- init ( logLevel: DDLogLevel = . info, sentryLogger: SentryLogger ) {
66- self . sentryLogger = sentryLogger
67- self . logLevel = logLevel
52+ /// Use `DDLog.addLogger(_:withLogLevel:)` to configure log level filtering.
53+ public init ( ) {
6854 super. init ( )
6955 }
7056
7157 /// Logs a message from CocoaLumberjack to Sentry.
7258 ///
7359 /// - Parameter logMessage: The log message from CocoaLumberjack containing the message, level, and metadata.
7460 public override func log( message logMessage: DDLogMessage ) {
75- guard logMessage. level. rawValue <= logLevel. rawValue else {
76- return
77- }
78-
7961 var attributes : [ String : Any ] = [ : ]
8062 attributes [ " sentry.origin " ] = " auto.logging.cocoalumberjack "
8163
@@ -100,17 +82,17 @@ public class SentryCocoaLumberjackLogger: DDAbstractLogger {
10082
10183 private func forwardToSentry( message: String , flag: DDLogFlag , attributes: [ String : Any ] ) {
10284 if flag. contains ( . error) {
103- sentryLogger . error ( message, attributes: attributes)
85+ SentrySDK . logger . error ( message, attributes: attributes)
10486 } else if flag. contains ( . warning) {
105- sentryLogger . warn ( message, attributes: attributes)
87+ SentrySDK . logger . warn ( message, attributes: attributes)
10688 } else if flag. contains ( . info) {
107- sentryLogger . info ( message, attributes: attributes)
89+ SentrySDK . logger . info ( message, attributes: attributes)
10890 } else if flag. contains ( . debug) {
109- sentryLogger . debug ( message, attributes: attributes)
91+ SentrySDK . logger . debug ( message, attributes: attributes)
11092 } else if flag. contains ( . verbose) {
111- sentryLogger . trace ( message, attributes: attributes)
93+ SentrySDK . logger . trace ( message, attributes: attributes)
11294 } else {
113- sentryLogger . info ( message, attributes: attributes)
95+ SentrySDK . logger . info ( message, attributes: attributes)
11496 }
11597 }
11698
0 commit comments