changelog shortlog graph tags branches changeset files file revisions raw help

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

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