为 Swift 提供一个轻量级的日志记录实现,将日志记录到标准输出。
HeliumStreamLogger.use(_:outputStream:)
的示例用法。LoggerAPI
和 Swift-log Logging
日志记录 API。将 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 用作 LoggerAPI 的日志记录后端
let logger = HeliumLogger()
Log.logger = logger
或者,如果您不需要自定义 HeliumLogger
HeliumLogger.use()
将 HeliumLogger 用作 swift-log 的日志记录后端
let logger = HeliumLogger()
LoggingSystem.bootstrap(logger.makeLogHandler)
或者,为了方便
HeliumLogger.bootstrapSwiftLog()
您可以在初始化时指定输出级别。您将看到该级别以及低于该级别的所有输出。
顺序是
例如,此记录器将显示 verbose
、info
、warning
和 error
类型的消息
let logger = HeliumLogger(.verbose)
Log.logger = logger
在此示例中,记录器将仅显示 warning
和 error
类型的消息
HeliumLogger.use(.warning)
请注意,当 HeliumLogger 与 swift-log 结合使用时,日志记录级别由 Logger
确定,而 HeliumLogger 自己的日志记录级别未使用。
调用 HeliumLogger.use(LoggerMessageType)
将设置 LoggerAPI
以使用此新的 HeliumLogger 实例。如果在路由中检测到应用程序的错误,您可以使用它来动态提高日志级别。
此新实例将不具有您应用于其他实例的任何自定义(请参阅第 7 项)。
如何使用 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 参考。
我们喜欢讨论服务器端 Swift 和 Kitura。加入我们的 Slack 与团队见面!
该库是在 Apache 2.0 许可下获得许可的。完整的许可证文本可在 LICENSE 中找到。