Swift Version Vapor Version SwiftyBeaver Version Linux Build Status codecov GitHub license

为 Vapor 提供的 SwiftyBeaver 日志提供器

为 Linux 和 Mac 上服务器端的 Swift 4 的 Vapor 添加了强大的 SwiftyBeaver 日志记录功能。

安装

将此项目添加到您的 Vapor 项目的 Package.swift 依赖项中

  .package(url: "https://github.com/vapor-community/swiftybeaver-provider.git", from: "3.0.0")

设置

在您将 SwiftyBeaver Provider 包添加到您的项目后,在代码中设置提供器非常容易。

您可以使用纯 Swift 方式配置您的 SwiftyBeaver 实例,也可以像 Vapor 2 那样使用 JSON 文件进行配置。

使用纯 Swift 方式注册

import SwiftBeaverProvider

public func configure(_ config: inout Config, _ env: inout Environment, _ services: inout Services ) throws {
    // ...

    // Setup your destinations
    let console = ConsoleDestination()
    console.minLevel = .info // update properties according to your needs

    let fileDestination = FileDestination()

    // Register the logger
    services.register(SwiftyBeaverLogger(destinations: [console, fileDestination]), as: Logger.self)

    // Optional
    config.prefer(SwiftyBeaverLogger.self, for: Logger.self)
}

使用 JSON 文件注册

首先,在您的 configure.swift 文件中注册 SwiftyBeaverProvider。

import SwiftBeaverProvider

public func configure(_ config: inout Config, _ env: inout Environment, _ services: inout Services ) throws {
    // ...

    // Register providers first
    try services.register(SwiftyBeaverProvider())

    // Optional
    config.prefer(SwiftyBeaverLogger.self, for: Logger.self)
}

配置目标

如果您现在运行您的应用程序,您可能会看到 SwiftyBeaver 配置文件丢失的错误。 让我们现在添加它

该配置由位于 Config/swiftybeaver.json 文件中的目标数组组成。 这是一个简单的 SwiftyBeaver 配置文件示例,用于配置控制台、文件和 swiftybeaver 平台目标及其所需的属性。

[
  {
    "type": "console",
    "format": " $Dyyyy-MM-dd HH:mm:ss.SSS$d $C$L$c: $M"
  },
  {
    "type": "file"
  },
  {
    "type": "platform",
    "app": "YOUR_APP_ID",
    "secret": "YOUR_SECRET_ID",
    "key": "YOUR_ENCRYPTION_KEY"
  }
]

附加选项

适用于 类型 说明
async console, file Bool
format console, file String 美元符号前必须放置一个空格
levelString.debug console, file String
levelString.error console, file String
levelString.info console, file String
levelString.verbose console, file String
levelString.warning console, file String
path file String 日志文件的路径
minLevel console, file, platform String values: verbose, debug, info, warning, error
threshold platform Int min: 1, max: 1000

注意
将 SwiftyBeaver 配置文件存储在 Config/secrets 文件夹中是一个好主意,因为它包含敏感信息。

要获取有关配置选项的更多信息,请查看官方 SwiftyBeaver 文档

使用

router.get("hello") { req -> Future<String> in
    // Get a logger instance
    let logger: Logger = try req.make(SwiftyBeaverLogger.self)

    // Or
    let logger: Logger = try req.make(Logger.self) // needs config.prefer(SwiftyBeaverLogger.self, for: Logger.self) in configure.swift

    logger.info("Logger info")
    return Future("Hello, world!")
}

另请参阅 SwiftyBeaver 目标文档 以及如何设置自定义日志格式

输出到 Xcode 8 控制台

了解更多关于彩色日志记录到 Xcode 8 控制台。

输出到文件

了解更多关于日志记录到文件,这对于 Terminal.app 爱好者或在磁盘上存储日志非常有用。

输出到云 & Mac 应用程序

swiftybeaver-demo1

了解更多关于发布期间日志记录到 SwiftyBeaver 平台!

了解更多

通过 Github Issues、电子邮件和我们的公共 Slack 频道获取支持。

致谢

此软件包由 Gustavo Perdomo 开发和维护,并得到了所有 vapor 社区的协作。

许可证

SwiftyBeaverProvider 在 MIT 许可证下发布。