cflorion / swift-log-datadog

Send logs to Datadog with Swift

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DataDogLog 🐶

Swift Release Unit Test

This package implements a handler for swift-log which will send log messages to the Datadog's Log Management service.

Usage

Add Package 📦

Integrate the DataDogLog package as a dependency with Swift Package Manager. Add the following to Package.swift:

.package(url: "git@github.com:jagreenwood/swift-log-datadog.git", from: "0.0.1")

Add DataDogLog to your target dependencies:

.product(name: "DataDogLog", package: "swift-log-datadog")

Configure ⚙️

Configure the logger by bootstrapping a DataDogLogHandler instance.

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
}

Logging 🌲

To send logs to Datadog, initialize a Logger instance and send a message with optional additional metadata:

import DataDogLog

let logger = Logger(label: "com.swift-log.awesome-app")
logger.error("unfortunate error", metadata: ["request-id": "abc-123"])

This call will send the following payload to Datadog:

{
    "message": "2020-05-27T06:37:17-0400 ERROR: unfortunate error",
    "hostname": "hostname",
    "ddsource": "com.swift-log.awesome-app",
    "ddtags": "callsite:testLog():39,foo:bar,request-id:abc-123",
    "status": "error"
}

Select Region 🌎

The Datadog API uses a different URL in the EU region compared to the US. If your account was created using Datadog EU, you need to set the region option when initializing DataDogLogHandler:

DataDogLogHandler(label: $0, key: "xxx", hostname: "hostname", region: .EU)

About

Send logs to Datadog with Swift

License:MIT License


Languages

Language:Swift 100.0%