1336d762aSopenharmony_ci/*!
2336d762aSopenharmony_ciChanging the default logging format.
3336d762aSopenharmony_ci
4336d762aSopenharmony_ciBefore running this example, try setting the `MY_LOG_LEVEL` environment variable to `info`:
5336d762aSopenharmony_ci
6336d762aSopenharmony_ci```no_run,shell
7336d762aSopenharmony_ci$ export MY_LOG_LEVEL='info'
8336d762aSopenharmony_ci```
9336d762aSopenharmony_ci
10336d762aSopenharmony_ciAlso try setting the `MY_LOG_STYLE` environment variable to `never` to disable colors
11336d762aSopenharmony_cior `auto` to enable them:
12336d762aSopenharmony_ci
13336d762aSopenharmony_ci```no_run,shell
14336d762aSopenharmony_ci$ export MY_LOG_STYLE=never
15336d762aSopenharmony_ci```
16336d762aSopenharmony_ci
17336d762aSopenharmony_ciIf you want to control the logging output completely, see the `custom_logger` example.
18336d762aSopenharmony_ci*/
19336d762aSopenharmony_ci
20336d762aSopenharmony_ci#[cfg(all(feature = "termcolor", feature = "humantime"))]
21336d762aSopenharmony_cifn main() {
22336d762aSopenharmony_ci    use env_logger::{fmt::Color, Builder, Env};
23336d762aSopenharmony_ci
24336d762aSopenharmony_ci    use std::io::Write;
25336d762aSopenharmony_ci
26336d762aSopenharmony_ci    fn init_logger() {
27336d762aSopenharmony_ci        let env = Env::default()
28336d762aSopenharmony_ci            .filter("MY_LOG_LEVEL")
29336d762aSopenharmony_ci            .write_style("MY_LOG_STYLE");
30336d762aSopenharmony_ci
31336d762aSopenharmony_ci        Builder::from_env(env)
32336d762aSopenharmony_ci            .format(|buf, record| {
33336d762aSopenharmony_ci                let mut style = buf.style();
34336d762aSopenharmony_ci                style.set_bg(Color::Yellow).set_bold(true);
35336d762aSopenharmony_ci
36336d762aSopenharmony_ci                let timestamp = buf.timestamp();
37336d762aSopenharmony_ci
38336d762aSopenharmony_ci                writeln!(
39336d762aSopenharmony_ci                    buf,
40336d762aSopenharmony_ci                    "My formatted log ({}): {}",
41336d762aSopenharmony_ci                    timestamp,
42336d762aSopenharmony_ci                    style.value(record.args())
43336d762aSopenharmony_ci                )
44336d762aSopenharmony_ci            })
45336d762aSopenharmony_ci            .init();
46336d762aSopenharmony_ci    }
47336d762aSopenharmony_ci
48336d762aSopenharmony_ci    init_logger();
49336d762aSopenharmony_ci
50336d762aSopenharmony_ci    log::info!("a log from `MyLogger`");
51336d762aSopenharmony_ci}
52336d762aSopenharmony_ci
53336d762aSopenharmony_ci#[cfg(not(all(feature = "termcolor", feature = "humantime")))]
54336d762aSopenharmony_cifn main() {}
55