DataDogLog 🐶

此软件包为 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)