07_async/
07-async.rs

1use std::env;
2
3use spdlog::{
4    prelude::*,
5    sink::{AsyncPoolSink, FileSink},
6};
7
8fn main() -> Result<(), Box<dyn std::error::Error>> {
9    let path = env::current_exe()?.with_file_name("async.log");
10    let file_sink = FileSink::builder().path(path).build_arc()?;
11
12    // AsyncPoolSink is a combined sink which wraps other sinks
13    let async_pool_sink = AsyncPoolSink::builder().sink(file_sink).build_arc()?;
14
15    let async_logger = Logger::builder()
16        .sink(async_pool_sink)
17        .flush_level_filter(LevelFilter::All)
18        .build_arc()?;
19
20    info!(logger: async_logger, "Hello, async!");
21
22    Ok(())
23}