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}