changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > core / annotate rust/lib/logger/src/lib.rs

changeset 67: 0ccbbd142694
parent: 1227f932b628
child: 55fbe0e45b62
author: ellis <ellis@rwest.io>
date: Sat, 02 Dec 2023 16:26:08 -0500
permissions: -rw-r--r--
description: rust cleanup, added rocksdb bindings
8
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
1
 //! logger library
67
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents: 8
diff changeset
2
 use flexi_logger::{
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents: 8
diff changeset
3
   with_thread, AdaptiveFormat, Duplicate, FileSpec, Logger, LoggerHandle,
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents: 8
diff changeset
4
 };
8
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
5
 pub use log;
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
6
 use log::{Level, LevelFilter, Metadata, Record};
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
7
 
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
8
 mod err;
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
9
 
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
10
 pub use err::{Error, Result};
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
11
 
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
12
 /// initialize a simple logger
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
13
 pub fn simple() -> Result<()> {
67
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents: 8
diff changeset
14
   log::set_logger(&SimpleLogger)
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents: 8
diff changeset
15
     .map(|()| log::set_max_level(LevelFilter::Trace))?;
8
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
16
   Ok(())
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
17
 }
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
18
 
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
19
 /// a simple logger
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
20
 struct SimpleLogger;
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
21
 
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
22
 impl log::Log for SimpleLogger {
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
23
   fn enabled(&self, metadata: &Metadata) -> bool {
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
24
     metadata.level() <= Level::Info
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
25
   }
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
26
 
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
27
   fn log(&self, record: &Record) {
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
28
     if self.enabled(record.metadata()) {
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
29
       println!("{} - {}", record.level(), record.args());
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
30
     }
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
31
   }
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
32
 
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
33
   fn flush(&self) {}
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
34
 }
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
35
 
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
36
 /// Initialize a `Logger` with a specified logging level
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
37
 pub fn flexi(level: &str) -> Result<()> {
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
38
   Logger::try_with_env_or_str(level)?
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
39
     .format(flexi_logger::colored_default_format)
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
40
     .set_palette("196;208;50;7;8".to_string())
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
41
     .adaptive_format_for_stderr(AdaptiveFormat::Detailed)
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
42
     .adaptive_format_for_stdout(AdaptiveFormat::Default)
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
43
     .log_to_stdout()
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
44
     .start()?;
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
45
   Ok(())
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
46
 }
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
47
 
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
48
 /// Initialize file Logger
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
49
 pub fn file(env: &str, log_path: &str, log_name: &str) -> Result<LoggerHandle> {
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
50
   Ok(
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
51
     Logger::try_with_env_or_str(env)?
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
52
       .log_to_file(
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
53
         FileSpec::default()
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
54
           .suppress_timestamp()
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
55
           .directory(log_path)
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
56
           .basename(log_name)
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
57
           .suffix("log"),
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
58
       )
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
59
       .format_for_files(with_thread)
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
60
       .append()
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
61
       .duplicate_to_stdout(Duplicate::Error)
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
62
       .start()?,
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
63
   )
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
64
 }
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
65
 
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
66
 #[cfg(test)]
1227f932b628 rust import
ellis <ellis@rwest.io>
parents:
diff changeset
67
 mod tests;