dddk_core/dddk/test_tools/
some_logger_for_test.rs

1#[cfg(test)]
2pub mod some_logger_for_test {
3    use std::cell::RefCell;
4    use log::{Level, Log, Metadata, Record};
5
6    pub struct MockLogger {
7        pub(crate) messages: RefCell<Vec<String>>,
8    }
9
10    impl Log for MockLogger {
11        fn enabled(&self, metadata: &Metadata) -> bool {
12            metadata.level() <= Level::Info
13        }
14
15        fn log(&self, record: &Record) {
16            if self.enabled(record.metadata()) {
17                let mut message = String::new();
18                message.push_str(record.level().as_str());
19                message.push_str("_");
20                message.push_str(&*record.args().to_string());
21                self.messages.borrow_mut().push(message);
22            }
23        }
24
25        fn flush(&self) {
26            self.messages.borrow_mut().clear();
27        }
28    }
29
30    unsafe impl Sync for MockLogger {}
31
32    unsafe impl Send for MockLogger {}
33}