此软件包为 swift-log 提供了一个处理器,该处理器会将日志消息发送到 Datadog 的日志管理服务。
将 DataDogLog
软件包作为依赖项与 Swift Package Manager 集成。将以下内容添加到 Package.swift
.package(url: "git@github.com:jagreenwood/swift-log-datadog.git", from: "1.0.0")
将 DataDogLog
添加到您的目标依赖项
.product(name: "DataDogLog", package: "swift-log-datadog")
通过引导 DataDogLogHandler
实例来配置日志记录器。
import DataDogLog
// add handler to logging system
LoggingSystem.bootstrap {
// initialize handler instance
var handler = DataDogLogHandler(label: $0, key: "xxx", hostname: "hostname")
// global metadata (optional)
handler.metadata = ["foo":"bar"]
return handler
}
要将日志发送到 Datadog,请初始化一个 Logger
实例,并发送带有可选附加元数据的消息
import DataDogLog
let logger = Logger(label: "com.swift-log.awesome-app")
logger.error("unfortunate error", metadata: ["request-id": "abc-123"], source: "module-name")
此调用会将以下有效负载发送到 Datadog
{
"message": "2020-05-27T06:37:17-0400 ERROR: unfortunate error",
"hostname": "hostname",
"ddsource": "module-name",
"ddtags": "callsite:testLog():39,foo:bar,request-id:abc-123",
"status": "error"
"service": "com.swift-log.awesome-app"
}
Datadog API 在多个区域(例如,美国、欧盟、美国3、美国5、US1FED)上运行,具有不同的 API 端点。如果您的帐户不是在默认的美国区域中创建的,则需要在初始化 DataDogLogHandler
时设置 region
选项
DataDogLogHandler(label: $0, key: "xxx", hostname: "hostname", region: .EU)