LoggingSwiftyBeaver

Swift Release Platforms License Twitter

一个 SwiftLog 的日志后端,可以将日志消息发送到 SwiftyBeaver

安装 📦

将 LoggingSwiftyBeaver 包作为依赖项添加到您的 Package.swift 文件中。

.package(url: "https://github.com/ShivaHuang/swift-log-SwiftyBeaver.git", from: "0.1.0")

将 LoggingSwiftyBeaver 添加到您的目标依赖项中。

.target(
    name: "Example",
    dependencies: [
        .product(name: "LoggingSwiftyBeaver", package: "swift-log-SwiftyBeaver")
    ])

使用 📝

1. 导入 logging API 包

import Logging
import LoggingSwiftyBeaver

2. 创建一个 logger,该标签的工作方式类似于 DispatchQueue 标签

let logger = Logger(label: "Example") { (label) in
    SwiftyBeaver.LogHandler(label, destinations: [
        ConsoleDestination()
    ])
}

或者,您可以仅在 DEBUG 构建中使用 SwiftyBeaver,而在 RELEASE 构建中不打印任何内容

let logger: Logger = {
    Logger(label: "Example") { (label) in
        #if DEBUG
        return SwiftyBeaver.LogHandler(label, destinations: [
            ConsoleDestination()
        ])
        #else
        return Logging.SwiftLogNoOpLogHandler()
        #endif
    }
}()

此外,您可以自定义格式并将控制台输出设置为短时间、日志级别和消息

let logger: Logger = {
    Logger(label: "Example") { (label) in
        #if DEBUG
        let console: ConsoleDestination = {
            let destination = ConsoleDestination()

            destination.format = "$DHH:mm:ss$d $L $M"

            return destination
        }()

        return SwiftyBeaver.LogHandler(label, destinations: [
            console
        ])
        #else
        return Logging.SwiftLogNoOpLogHandler()
        #endif
    }
}()

3. 我们现在可以使用它了

// logging an informational message
logger.info("Hello World!")

// ouch, something went wrong
logger.error("Houston, we have a problem: \(problem)")

日志级别 💜💚💙💛❤️

按级别区分日志是一个好习惯。但是,SwiftLog 定义了 7 个级别,而 SwiftyBeaver 只有 5 个。因此,SwiftLogSwiftyBeaver 之间不可能实现一对一的映射。以下是映射表

SwiftLog SwiftyBeaver
trace verbose
debug debug
info info
notice warning
warning warning
error error
critical error

来源 🗄

该程序由 @shivahuang 开发,作为 Taiwan Social Distancing 的一部分。