1
2
3
4
5
6
7
8
9
10
11
12
13
14
use tracing_appender::non_blocking::WorkerGuard;

pub struct Log;

impl Log {
    pub fn init() -> Result<WorkerGuard, anyhow::Error> {
        let home_dir = dirs::home_dir().unwrap();
        let log_path = home_dir.join(".config/testing_language_server/logs");
        let file_appender = tracing_appender::rolling::daily(log_path, "prefix.log");
        let (non_blocking, guard) = tracing_appender::non_blocking(file_appender);
        tracing_subscriber::fmt().with_writer(non_blocking).init();
        Ok(guard)
    }
}