dddk_core/dddk/test_tools/
some_logger_for_test.rs1#[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}