#dbus #zbus #systemd #log #logging

logcontrol-zbus

基于zbus的logcontrol接口的DBus前端

3个稳定版本

2.0.0 2024年2月13日
1.1.0 2023年9月30日
1.0.0 2023年9月30日

#342调试

Download history 2/week @ 2024-03-10 3/week @ 2024-03-17 48/week @ 2024-03-31 1/week @ 2024-04-07 1/week @ 2024-05-19

每月 65 次下载

MIT/Apache

32KB
215

logcontrol-zbus

Crates.io docs.rs

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:

一个使用zbuslogcontrol::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-levelsystemctl service-log-target找到日志控制接口,您需要确保

否则systemd将无法更改日志级别或目标。

依赖项

~8–18MB
~266K SLoC