Kitura

APIDoc Build Status - Master codecov macOS Linux Apache 2 Slack Status

HeliumLogger

为 Swift 提供一个轻量级的日志记录实现,将日志记录到标准输出。

特性

用法

添加依赖项

HeliumLogger 包添加到应用程序 Package.swift 文件中的依赖项。用最新的 HeliumLogger 版本 替换 "x.x.x"

.package(url: "https://github.com/Kitura/HeliumLogger.git", from: "x.x.x")

HeliumLogger 添加到目标依赖项

.target(name: "example", dependencies: ["HeliumLogger"]),

导入包

与 LoggerAPI 一起使用

import HeliumLogger
import LoggerAPI

与 swift-log 一起使用

import HeliumLogger
import Logging

初始化 HeliumLogger

将 HeliumLogger 用作 LoggerAPI 的日志记录后端

let logger = HeliumLogger()
Log.logger = logger

或者,如果您不需要自定义 HeliumLogger

HeliumLogger.use()

将 HeliumLogger 用作 swift-log 的日志记录后端

let logger = HeliumLogger()
LoggingSystem.bootstrap(logger.makeLogHandler)

或者,为了方便

HeliumLogger.bootstrapSwiftLog()

日志级别

您可以在初始化时指定输出级别。您将看到该级别以及低于该级别的所有输出。

顺序是

  1. entry (进入函数)
  2. exit (退出函数)
  3. debug
  4. verbose (默认)
  5. info
  6. warning
  7. error

例如,此记录器将显示 verboseinfowarningerror 类型的消息

let logger = HeliumLogger(.verbose)
Log.logger = logger

在此示例中,记录器将仅显示 warningerror 类型的消息

HeliumLogger.use(.warning)

请注意,当 HeliumLogger 与 swift-log 结合使用时,日志记录级别由 Logger 确定,而 HeliumLogger 自己的日志记录级别未使用。

在运行时调整日志记录级别 (LoggerAPI)

调用 HeliumLogger.use(LoggerMessageType) 将设置 LoggerAPI 以使用此新的 HeliumLogger 实例。如果在路由中检测到应用程序的错误,您可以使用它来动态提高日志级别。

此新实例将不具有您应用于其他实例的任何自定义(请参阅第 7 项)。

日志消息 (LoggerAPI)

如何使用 HeliumLogger 通过 LoggerAPI 在应用程序中记录消息

Log.verbose("This is a verbose log message.")

Log.info("This is an informational log message.")

Log.warning("This is a warning.")

Log.error("This is an error.")

Log.debug("This is a debug message.")

进一步的自定义

/// Whether, if true, or not the logger output should be colorized.
public var colored: Bool = false

/// If true, use the detailed format when a user logging format wasn't specified.
public var details: Bool = true

/// If true, use the full file path, not just the filename.
public var fullFilePath: Bool = false

/// If not nil, specifies the user specified logging format.
/// For example: "[(%date)] [(%type)] [(%file):(%line) (%func)] (%msg)"
public var format: String?

/// If not nil, specifies the format used when adding the date and the time to the logged messages.
public var dateFormat: String?

/// If not nil, specifies the timezone used in the date time format.
public var timeZone: TimeZone?

API 文档

有关更多信息,请访问我们的 API 参考

社区

我们喜欢讨论服务器端 Swift 和 Kitura。加入我们的 Slack 与团队见面!

许可证

该库是在 Apache 2.0 许可下获得许可的。完整的许可证文本可在 LICENSE 中找到。