rust_pixel/
log.rs

1// RustPixel
2// copyright zipxing@hotmail.com 2022~2024
3
4
5//! log provides various log functions, reference
6//! https://docs.rs/log4rs
7
8
9#[cfg(not(target_arch = "wasm32"))]
10use crate::util::get_abs_path;
11use log::LevelFilter;
12
13#[cfg(not(target_arch = "wasm32"))]
14use log4rs::{
15    append::file::FileAppender,
16    config::{Appender, Config, Root},
17    encode::pattern::PatternEncoder,
18    filter::threshold::ThresholdFilter,
19};
20
21/// init logs system
22#[allow(unused)]
23pub fn init_log(level: LevelFilter, file_path: &str) {
24    #[cfg(target_arch = "wasm32")]
25    {
26        wasm_logger::init(wasm_logger::Config::default());
27    }
28    #[cfg(not(target_arch = "wasm32"))]
29    {
30        let fpstr = get_abs_path(file_path);
31        let logfile = FileAppender::builder()
32            .encoder(Box::new(PatternEncoder::new(
33                "{d(%Y-%m-%d %H:%M:%S)} {l} {t} {m}{n}\n",
34            )))
35            .build(fpstr)
36            .unwrap();
37        let config = Config::builder()
38            .appender(
39                Appender::builder()
40                    .filter(Box::new(ThresholdFilter::new(level)))
41                    .build("logfile", Box::new(logfile)),
42            )
43            .build(
44                Root::builder()
45                    .appender("logfile")
46                    .build(LevelFilter::Trace),
47            )
48            .unwrap();
49        let _handle = log4rs::init_config(config).unwrap();
50    }
51}