pub struct RingLog { /* private fields */ }
Expand description
A type which implements an asynchronous logging backend.
Implementations§
source§impl RingLog
impl RingLog
sourcepub fn start(self) -> Box<dyn Drain>
pub fn start(self) -> Box<dyn Drain>
Register the logger and return a type which implements Drain
. It is
up to the user to periodically call flush on the resulting drain.
Examples found in repository?
examples/demo-single.rs (line 14)
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
fn main() {
let log = LogBuilder::new()
.output(Box::new(Stdout::new()))
.build()
.expect("failed to initialize log");
let mut drain = log.start();
std::thread::spawn(move || loop {
let _ = drain.flush();
std::thread::sleep(Duration::from_millis(100));
});
error!("error");
warn!("warning");
info!("info");
debug!("debug");
trace!("trace");
std::thread::sleep(Duration::from_millis(1000));
}
More examples
examples/demo-multi.rs (line 45)
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
fn main() {
let default = LogBuilder::new()
.output(Box::new(Stdout::new()))
.build()
.expect("failed to initialize default log");
let command = LogBuilder::new()
.output(Box::new(
File::new("command.log", "command.old", 100).expect("failed to create file log"),
))
.format(klog_format)
.build()
.expect("failed to initialize command log");
let noplog = NopLogBuilder::new().build();
let mut drain = MultiLogBuilder::new()
.default(default)
.add_target("command", command)
.add_target("noplog", noplog)
.build()
.start();
std::thread::spawn(move || loop {
let _ = drain.flush();
std::thread::sleep(Duration::from_millis(100));
});
error!("error");
warn!("warning");
info!("info");
debug!("debug");
trace!("trace");
command!("\"get 0\" 0 0");
noplog!("this won't get displayed");
std::thread::sleep(Duration::from_millis(1000));
}
Auto Trait Implementations§
impl Freeze for RingLog
impl !RefUnwindSafe for RingLog
impl Send for RingLog
impl !Sync for RingLog
impl Unpin for RingLog
impl !UnwindSafe for RingLog
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more