2个不稳定版本
0.2.0 | 2023年9月30日 |
---|---|
0.1.0 | 2023年9月30日 |
#827 在 调试
每月35次下载
37KB
362 行
logcontrol-tracing
tracing
对logcontrol接口的实现。
使用方法
$ cargo add logcontrol-tracing
use logcontrol::*;
use logcontrol_tracing::*;
use tracing_subscriber::prelude::*;
let (control, layer) = TracingLogControl1::new_auto(
PrettyLogControl1LayerFactory,
tracing::Level::INFO,
).unwrap();
let subscriber = tracing_subscriber::Registry::default().with(layer);
tracing::subscriber::set_global_default(subscriber).unwrap();
// Then register `control` over DBus, e.g. via `logcontrol_zbus::LogControl1`.
lib.rs
:
LogControl1
为tracing
的实现。
TracingLogControl1
在跟踪之上提供了一个LogControl1
实现,使用reload layer在日志目标或日志级别通过日志控制接口改变时动态切换层和级别过滤器。
它使用LogControl1LayerFactory
实现来创建日志目标层,每次更改日志目标时。这个crate提供了一个默认的PrettyLogControl1LayerFactory
,它使用tracing_subscriber
的格式化输出到控制台目标和tracing_journald
。您可以提供自己的实现来自定义每个目标层。
当创建TracingLogControl1
时,还会返回一个需要添加到全局跟踪订阅者中(即tracing_subscriber::Registry
),以便日志控制有任何效果。
use logcontrol::*;
use logcontrol_tracing::*;
use tracing_subscriber::prelude::*;
let (control, layer) = TracingLogControl1::new_auto(
PrettyLogControl1LayerFactory,
tracing::Level::INFO,
).unwrap();
let subscriber = tracing_subscriber::Registry::default().with(layer);
tracing::subscriber::set_global_default(subscriber).unwrap();
// Then register `control` over DBus, e.g. via `logcontrol_zbus::LogControl1`.
依赖关系
~7MB
~117K SLoC