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}