#log #facade #loki #tokio #label #info #init

loki-logger

日志外观的 Loki 日志记录器

4 个版本

0.1.3 2021 年 11 月 19 日
0.1.2 2021 年 11 月 13 日
0.1.1 2021 年 11 月 13 日
0.1.0 2021 年 11 月 13 日

#1006 in 数据结构

AGPL-3.0 或更高版本

27KB
298

Loki Logger

Build Status Crates.io Crates.io Documentation

loki 创建的 log 外观。

示例

extern crate log;
extern crate loki_logger;
use log::LevelFilter;

#[tokio::main]
async fn main() {
    loki_logger::init(
        "http://loki:3100/loki/api/v1/push",
        log::LevelFilter::Info,
    ).unwrap();

    log::info!("Logged into Loki !");
}
extern crate log;
extern crate loki_logger;
use std::iter::FromIterator;
use std::collections::HashMap;
use log::LevelFilter;

#[tokio::main]
async fn main() {
    let initial_labels = HashMap::from_iter([
        ("application".to_string(), "loki_logger".to_string()),
        ("environment".to_string(), "development".to_string()),
    ]);

    loki_logger::init_with_labels(
        "http://loki:3100/loki/api/v1/push",
        log::LevelFilter::Info,
        initial_labels,
    ).unwrap();

    log::info!("Logged into Loki !");
}

使用额外的标签

从 0.4.7 版本开始,log 包开始引入新的键/值系统,用于结构化日志记录。

此包大量使用此系统来创建和发送自定义 Loki 标签。

如果您想使用此系统,您必须使用 log 包的 git 版本并启用 kv_unstable 功能

[dependencies.log]
# It is recommended that you pin this version to a specific commit to avoid issues.
git = "https://github.com/rust-lang/log.git"
features = ["kv_unstable"]

此功能将允许您将 log 外观用作

extern crate log;
extern crate loki_logger;
use std::iter::FromIterator;
use std::collections::HashMap;
use log::LevelFilter;

#[tokio::main]
async fn main() {
    let initial_labels = HashMap::from_iter([
        ("application".to_string(), "loki_logger".to_string()),
        ("environment".to_string(), "development".to_string()),
    ]);

    loki_logger::init_with_labels(
        "http://loki:3100/loki/api/v1/push",
        log::LevelFilter::Info,
        initial_labels,
    ).unwrap();

    // Due to stabilization issue, this is still unstable,
    // the log macros needs to have at least one formatting parameter for this to work.
    log::info!(foo = "bar"; "Logged into Loki !{}", "");
}

依赖项

~6–18MB
~276K SLoC