log4rs_macros/
lib.rs

1use once_cell::sync::OnceCell;
2
3#[macro_export]
4macro_rules! trace {
5    ($x:expr) => {
6        log::trace!(target:module_path!(), "{:?}",  $x)
7    };
8    ($($x:expr),*) => {
9        log::trace!(target:module_path!(), $($x),*)
10    };
11}
12
13#[macro_export]
14macro_rules! debug {
15    ($x:expr) => {
16        log::debug!(target:module_path!(), "{:?}",  $x)
17    };
18    ($($x:expr),*) => {
19        log::debug!(target:module_path!(), $($x),*)
20    };
21}
22
23#[macro_export]
24macro_rules! info {
25    ($x:expr) => {
26        log::info!(target:module_path!(), "{:?}",  $x)
27    };
28    ($($x:expr),*) => {
29        log::info!(target:module_path!(), $($x),*)
30    };
31}
32
33#[macro_export]
34macro_rules! warn {
35    ($x:expr) => {
36        log::warn!(target:module_path!(), "{:?}",  $x)
37    };
38    ($($x:expr),*) => {
39        log::warn!(target:module_path!(), $($x),*)
40    };
41}
42
43#[macro_export]
44macro_rules! error {
45    ($x:expr) => {
46        log::error!(target:module_path!(), "{:?}",  $x)
47    };
48    ($($x:expr),*) => {
49        log::error!(target:module_path!(), $($x),*)
50    };
51}
52
53pub static LOG_CONFIG: OnceCell<LogConfig> = OnceCell::new();
54
55pub struct LogConfig;
56
57pub fn prepare_log() {
58
59    prepare_log_with_file("log4rs_config.yaml");
60}
61
62
63pub fn prepare_log_with_file(log_file: &str) {
64    LOG_CONFIG.get_or_init(|| {
65        log4rs::init_file(log_file, Default::default()).unwrap();
66        LogConfig
67    });
68}