为 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 文件进行配置。
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)
}
首先,在您的 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 控制台。
了解更多关于日志记录到文件,这对于 Terminal.app 爱好者或在磁盘上存储日志非常有用。
了解更多关于发布期间日志记录到 SwiftyBeaver 平台!
通过 Github Issues、电子邮件和我们的公共 Slack 频道获取支持。
此软件包由 Gustavo Perdomo 开发和维护,并得到了所有 vapor 社区的协作。
SwiftyBeaverProvider 在 MIT 许可证下发布。