sp_log/lib.rs
1mod config;
2mod loggers;
3
4pub use self::config::{
5 format_description, Config, ConfigBuilder, FormatItem, LevelPadding, TargetPadding,
6 ThreadLogMode, ThreadPadding, UtcOffset,
7};
8
9pub use self::loggers::{CombinedLogger, FileLogger, SimpleLogger, WriteLogger};
10#[cfg(feature = "termcolor")]
11pub use self::loggers::{TermLogger, TerminalMode};
12#[cfg(feature = "termcolor")]
13pub use termcolor::{Color, ColorChoice};
14
15pub use log::{Level, LevelFilter};
16
17use log::Log;
18
19#[cfg(feature = "paris")]
20#[doc(hidden)]
21pub mod __private {
22 pub use paris;
23}
24
25pub trait SharedLogger: Log {
26 /// Returns the set Level for this Logger
27 ///
28 /// # Examples
29 ///
30 /// ```
31 /// # extern crate sp_log;
32 /// # use sp_log::*;
33 /// # fn main() {
34 /// let logger = SimpleLogger::new(LevelFilter::Info, Config::default());
35 /// println!("{}", logger.level());
36 /// # }
37 /// ```
38 fn level(&self) -> LevelFilter;
39
40 /// Inspect the config of a running Logger
41 ///
42 /// An Option is returned, because some Logger may not contain a Config
43 ///
44 /// # Examples
45 ///
46 /// ```
47 /// # extern crate sp_log;
48 /// # use sp_log::*;
49 /// # fn main() {
50 /// let logger = SimpleLogger::new(LevelFilter::Info, Config::default());
51 /// println!("{:?}", logger.config());
52 /// # }
53 /// ```
54 fn config(&self) -> Option<&Config>;
55
56 /// Returns the logger as a Log trait object
57 fn as_log(self: Box<Self>) -> Box<dyn Log>;
58}