1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
use crate::util_logger::builder::{LoggerBuilder, LoggerFeatureBuilder};
use flexi_logger::LoggerHandle;
use log::LevelFilter;
use std::path::PathBuf;

mod builder;

/// 简单,纯粹想输出日志而已。适用于临时
/// 控制台输出日志
pub fn logger_stdout(lever: LevelFilter) -> LoggerHandle {
    LoggerBuilder::default(lever)
        .build_default()
        .log_to_stdout()
        .start()
}
pub fn logger_stdout_debug() {
    let _res = LoggerBuilder::default(LevelFilter::Debug)
        .build_default()
        .log_to_stdout()
        ._start();
}
/// 根据feature来确定日志输出
///     dev:控制台输出
///     prod:在目录/var/local/log/{app}输出日志;
///         每天或大小达到10m更换日志文件;
///         维持10个日志文件;
///         生成/var/local/etc/{app}/logspecification.toml的动态配置文件
pub fn logger_feature(
    app: &str,
    debug_level: LevelFilter,
    prod_level: LevelFilter,
) -> LoggerFeatureBuilder {
    let log_etc_path: PathBuf = "/var/local/etc".into();
    let log_path: PathBuf = "/var/local/log".into();
    logger_feature_with_path(
        app,
        debug_level,
        prod_level,
        log_etc_path.join(app),
        log_path.join(app),
    )
}

pub fn logger_feature_with_path(
    app: &str,
    debug_level: LevelFilter,
    prod_level: LevelFilter,
    log_etc_path: PathBuf,
    log_path: PathBuf,
) -> LoggerFeatureBuilder {
    LoggerFeatureBuilder::default(
        app,
        debug_level,
        prod_level,
        log_etc_path.join(app),
        log_path.join(app),
    )
}

/// 自定义日志配置
pub fn custom_build(lever: LevelFilter) -> LoggerBuilder {
    LoggerBuilder::default(lever)
}