custom_utils/util_logger/
mod.rs1use crate::util_logger::builder::{DebugLevel, LoggerBuilder, LoggerFeatureBuilder};
2use log::LevelFilter;
3use std::fs;
4use std::path::PathBuf;
5
6mod builder;
7
8pub fn logger_stdout(lever: LevelFilter) -> LoggerBuilder {
11 LoggerBuilder::default(lever)
12}
13pub fn logger_stdout_debug() {
14 let _res = LoggerBuilder::default(LevelFilter::Debug)
15 .build_default()
16 .log_to_stdout()
17 ._start();
18}
19pub fn logger_stdout_info() {
20 let _res = LoggerBuilder::default(LevelFilter::Info)
21 .build_default()
22 .log_to_stdout()
23 ._start();
24}
25pub fn logger_feature(
39 app: &str,
40 debug_level: impl Into<DebugLevel>,
41 prod_level: LevelFilter,
42 log_etc_reset: bool,
43) -> LoggerFeatureBuilder {
44 let home = home::home_dir().unwrap();
45 let log_etc_path: PathBuf = home.join("etc");
46 if !log_etc_path.exists() {
47 std::fs::create_dir_all(&log_etc_path);
48 }
49 let log_path: PathBuf = home.join("log");
50 if !log_path.exists() {
51 std::fs::create_dir_all(&log_path);
52 }
53 logger_feature_with_path(app, debug_level, prod_level, log_etc_path, log_etc_reset, log_path)
54}
55
56pub fn logger_feature_with_path(
58 app: &str,
59 debug_level: impl Into<DebugLevel>,
60 prod_level: LevelFilter,
61 log_etc_path: PathBuf,
62 log_etc_reset: bool,
63 log_path: PathBuf,
64) -> LoggerFeatureBuilder {
65 if log_etc_reset && log_etc_path.exists() && log_etc_path.is_file() {
66 fs::remove_file(log_etc_path.clone()).unwrap();
67 }
68 LoggerFeatureBuilder::default(app, debug_level.into(), prod_level, log_etc_path, log_path)
69}