@@ -4,7 +4,14 @@ Changing the default logging format.
44Before running this example, try setting the `MY_LOG_LEVEL` environment variable to `info`:
55
66```no_run,shell
7- $ export MY_LOG_LEVEL = 'info'
7+ $ export MY_LOG_LEVEL='info'
8+ ```
9+
10+ Also try setting the `MY_LOG_STYLE` environment variable to `never` to disable colors
11+ or `auto` to enable them:
12+
13+ ```no_run,shell
14+ $ export MY_LOG_STYLE=never
815```
916
1017If you want to control the logging output completely, see the `custom_logger` example.
@@ -14,20 +21,26 @@ If you want to control the logging output completely, see the `custom_logger` ex
1421extern crate log;
1522extern crate env_logger;
1623
17- use std:: env;
1824use std:: io:: Write ;
1925
26+ use env_logger:: { Env , Builder , fmt} ;
27+
2028fn init_logger ( ) {
21- let mut builder = env_logger:: Builder :: new ( ) ;
29+ let env = Env :: default ( )
30+ . filter ( "MY_LOG_LEVEL" )
31+ . write_style ( "MY_LOG_STYLE" ) ;
32+
33+ let mut builder = Builder :: from_env ( env) ;
2234
2335 // Use a different format for writing log records
2436 builder. format ( |buf, record| {
25- writeln ! ( buf , "My formatted log: {}" , record . args ( ) )
26- } ) ;
37+ let mut style = buf . style ( ) ;
38+ style . set_bg ( fmt :: Color :: Yellow ) . set_bold ( true ) ;
2739
28- if let Ok ( s) = env:: var ( "MY_LOG_LEVEL" ) {
29- builder. parse ( & s) ;
30- }
40+ let timestamp = buf. timestamp ( ) ;
41+
42+ writeln ! ( buf, "My formatted log ({}): {}" , timestamp, style. value( record. args( ) ) )
43+ } ) ;
3144
3245 builder. init ( ) ;
3346}
0 commit comments