6 stable releases
| 3.0.2 | May 5, 2025 |
|---|---|
| 3.0.1 | Feb 3, 2025 |
| 3.0.0 | Nov 1, 2024 |
| 2.0.0 | Feb 13, 2024 |
| 1.1.0 | Sep 30, 2023 |
#908 in Debugging
136 downloads per month
32KB
257 lines
A logcontrol::LogControl1 frontend with zbus.
LogControl1 provides the D-Bus interface implementation. It receives the
underlying logcontrol::LogControl1 as sole argument and exposes it
over D-Bus, as a standard zbus D-Bus interface:
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(())
}
Note that for systemctl to find the log control interface with
systemctl service-log-level and systemctl service-log-target you need
to make sure that
- the interface is registered under
logcontrol::DBUS_OBJ_PATH, and - the unit file provides the claimed bus name in the
BusNameattribute.
Otherwise systemd will not be able to change the log level or target.
logcontrol-zbus
zbus DBus frontend for the logcontrol interface.
Usage
$ 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(())
}
Dependencies
~11–19MB
~315K SLoC