SwiftyTimber

0.0.5

Logger as it meant to be
iballan/SwiftyTimber

What's New

0.0.5

2023-04-05T19:53:36Z

Add SwiftPackages Support

SwiftyTimber

SwiftyTimber is another Logging library forked from PureLogger and inspired by Timber

INSTALLATION

CocoaPods

Latest Version:

pod 'SwiftyTimber'

OR

pod 'SwiftyTimber', :git => "https://github.com/iballan/SwiftyTimber.git"

Specific Version:

pod 'SwiftyTimber', :git => "https://github.com/iballan/SwiftyTimber.git", :tag => "0.0.4"

USAGE

Example to plant a tree:

#if DEBUG
Timber.shared.plantTree(TimberDebugTree())
#else
Timber.shared.plantTree(TimberCrashlyticsTree())
#endif

EXAMPLE

Example to plant a tree for logging to Crashlytics

import FirebaseCrashlytics

public class TimberCrashlyticsTree: TimberTree {
    public func print(_ message: String, _ error: Error?, level: TimberLogLevel?, filename: String, line: Int, column: Int, funcName: String) {
        guard level == .error else { return }
        let sourceName = getSourceFileName(filePath: filename)
        let systemInfo = "[\(sourceName)]:\(line) \(funcName)"
        let message = "\(item)"
        let keysAndValues: [String : Any] = [
            "level" : level?.name ?? "none",
            "filename" : filename,
            "line" : line,
            "column" : column,
            "systemInfo" : systemInfo,
            "message" : message
        ]
        Crashlytics.crashlytics().setCustomKeysAndValues(keysAndValues)
        if let error = error {
            Crashlytics.crashlytics().record(error: error)
        } else {
            Crashlytics.crashlytics().record(exceptionModel: ExceptionModel(name: "\(sourceName)-\(funcName)", reason: message))
        }
    }
    
    func getSourceFileName(filePath: String) -> String {
        let components = filePath.components(separatedBy: "/")
        return components.last ?? ""
    }
}

Description

  • Swift Tools 5.8.0
View More Packages from this Author

Dependencies

  • None
Last updated: Tue May 23 2023 11:27:55 GMT-0500 (GMT-05:00)