LoggingFormatAndPipe

LoggingFormatAndPipe 提供了一个 Swift Logging API Handler,允许你自定义日志消息的格式以及它们的输出目标。

如果你不喜欢默认的日志格式,可以将其更改为你想要的格式。 如果你希望一个输出目标的格式与另一个输出目标不同,你可以轻松做到这一点。 或者将相同的格式发送到多个输出目标!

安装 | 开始使用 | 文档

安装

SwiftPM

要在你的项目中使用 LoggingFormatAndPipe 库,请在你的 Package.swift 文件中添加以下内容

.package(url: "https://github.com/adorkable/swift-log-format-and-pipe.git", .from("0.1.2")),

开始使用

LoggingFormatAndPipe.Handler 需要一个 Formatter 和一个 Pipe

let logger = Logger(label: "example") { _ in 
    return LoggingFormatAndPipe.Handler(
        formatter: ...,
        pipe: ...
    )
}

示例

let logger = Logger(label: "example") { _ in 
	return LoggingFormatAndPipe.Handler(
		formatter: BasicFormatter.adorkable,
		pipe: LoggerTextOutputStreamPipe.standardOutput
	)
}

格式化

有很多方法可以自定义格式,但通常由 LogComponents 的组合组成

BasicFormatter

BasicFormatter 允许你指定 LogComponents 的序列和分隔符字符串,并自动将它们处理成每条新日志消息的单行。

它已经包含已设置的静态实例

自定义 BasicFormatter

如果这些都不起作用,你可以自定义你自己的实例!

假设你想要一个特殊的短日志格式,其中包含时间戳、级别、源文件和消息本身

let myFormat = BasicFormatter(
	[
		.timestamp, 
		.level,
		.file,
		.message
	]
)

要将分隔符从单个空格更改为指定分隔符参数

let myFormat = BasicFormatter(
	...,
	separator: "|"
)

请注意,BasicFormatter 不会为 nil 元数据添加空字符串和分隔符。

要从默认值更改时间戳

let myDateFormat = DateFormatter()
myDateFormat.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
let myFormat = BasicFormatter(
	...,
	timestampFormatter: myDateFormat
)

实现 Formatter

你还可以通过实现以下内容来创建自己的 Formatter 一致性对象

更多 formatters 即将推出!

管道 (Piping)

管道指定格式化的日志行最终去往何处。 已经包括的有

更多管道即将推出!

实现 Pipe

你还可以通过实现以下内容来创建自己的 Pipe 一致性对象

简单!

现在你已经让你的用例格式化的日志行以这种方式传播,真是太棒了 🖤

API 文档

要更深入地了解库,请在 repo here 中找到 API 文档