native_linux/
linux.rs

1#[cfg(target_os = "linux")]
2fn main() -> Result<(), Box<dyn std::error::Error>> {
3    use spdlog::{prelude::*, sink::JournaldSink};
4
5    let sink = JournaldSink::builder().build_arc()?;
6    let logger = spdlog::default_logger().fork_with(|logger| {
7        logger.set_name(Some("demo")).unwrap();
8        logger.sinks_mut().push(sink);
9        Ok(())
10    })?;
11    spdlog::set_default_logger(logger);
12
13    info!("info message from spdlog-rs's JournaldSink");
14    error!("error message from spdlog-rs's JournaldSink", kv: { error_code = 114514 });
15    Ok(())
16}
17
18#[cfg(not(target_os = "linux"))]
19fn main() {
20    panic!("this example is only available on Linux target");
21}