3个稳定版本
2.0.0 | 2024年2月13日 |
---|---|
1.1.0 | 2023年9月30日 |
1.0.0 | 2023年9月30日 |
#342 在 调试 中
每月 65 次下载
32KB
215 行
logcontrol-zbus
zbus
logcontrol接口的DBus前端。
使用方法
$ cargo add logcontrol-zbus
use logcontrol_zbus::ConnectionBuilderExt;
#[async_std::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Use an implementation such as logcontrol-tracing
let control = create_log_control();
let _conn = zbus::ConnectionBuilder::session()?
.name("de.swsnr.logcontrol.SimpleServerExample")?
.serve_log_control(logcontrol_zbus::LogControl1::new(control))?
.build()
.await?;
// Do other things or go to wait forever
std::future::pending::<()>().await;
Ok(())
}
lib.rs
:
一个使用zbus
的logcontrol::LogControl1
前端。
LogControl1
提供了DBus接口实现。它接收底层的logcontrol::LogControl1
作为唯一参数,并通过DBus将其暴露,作为标准的zbusDBus接口。
use logcontrol_zbus::{LogControl1, ConnectionBuilderExt};
#[async_std::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let control = create_log_control();
let _conn = zbus::ConnectionBuilder::session()?
.name("de.swsnr.logcontrol.SimpleServerExample")?
.serve_log_control(LogControl1::new(control))?
.build()
.await?;
// Do other things or go to wait forever
std::future::pending::<()>().await;
Ok(())
}
请注意,为了使systemctl
能够通过systemctl service-log-level
和systemctl service-log-target
找到日志控制接口,您需要确保
- 接口在
logcontrol::DBUS_OBJ_PATH
下注册,并且 - 单元文件在
BusName
属性中提供了声明的总线名称。
否则systemd将无法更改日志级别或目标。
依赖项
~8–18MB
~266K SLoC