| Crates.io | logcontrol |
| lib.rs | logcontrol |
| version | 1.0.3 |
| created_at | 2023-09-30 11:39:07.296363+00 |
| updated_at | 2025-05-05 19:53:36.22253+00 |
| description | Abstract types for the systemd logcontrol interface |
| homepage | https://codeberg.org/swsnr/logcontrol.rs |
| repository | https://codeberg.org/swsnr/logcontrol.rs.git |
| max_upload_size | |
| id | 988566 |
| size | 21,220 |
Types and implementations for systemd's logcontrol interface.
This interface provides means to change logging behaviour of system services at runtime, over D-Bus, or via systemctl service-log-level or systemctl service-log-target.
This repository provides a collection of traits of basic types and implementations of this interface:
logcontrol contains the basic types and defines an abstract trait for the interface.logcontrol-tracing provides a logcontrol backend implementation for the tracing library.logcontrol-log provides a logcontrol backend implementation for the log library.logcontrol-zbus provides a DBus interface implementation for zbus DBus framework.$ cargo add logcontrol-tracing
$ cargo add logcontrol-zbus
use std::error::Error;
use std::time::Duration;
use logcontrol_tracing::{PrettyLogControl1LayerFactory, TracingLogControl1};
use logcontrol_zbus::{ConnectionBuilderExt, LogControl1};
use tracing::{event, Level};
use tracing_subscriber::prelude::*;
use tracing_subscriber::Registry;
use zbus::ConnectionBuilder;
#[async_std::main]
async fn main() -> Result<(), Box<dyn Error>> {
let (control, control_layer) =
TracingLogControl1::new_auto(PrettyLogControl1LayerFactory, Level::INFO)?;
let subscriber = Registry::default().with(control_layer);
tracing::subscriber::set_global_default(subscriber).unwrap();
let _conn = ConnectionBuilder::session()?
.name("com.example.Foo")?
.serve_log_control(LogControl1::new(control))?
.build()
.await?;
loop {
async_std::task::sleep(Duration::from_secs(5)).await;
event!(Level::INFO, "An message at info level");
async_std::task::sleep(Duration::from_secs(1)).await;
event!(Level::WARN, "An message at warning level");
}
}