changelog shortlog graph tags branches changeset files file revisions raw help

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

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