1use std::fmt::Debug;
2use std::sync::Arc;
3
4pub type SharedLogger = Arc<dyn Logger>;
5
6pub fn tags_as_debug<'a>(tags: &'a [&'a str]) -> Vec<&'a dyn Debug> {
7 tags.iter().map(|tag| tag as &dyn Debug).collect()
8}
9
10pub trait Logger: Debug + Send + Sync {
11 fn debug(&self, msg: &str, args: &str);
12 fn info(&self, msg: &str, args: &str);
13 fn warn(&self, msg: &str, args: &str);
14 fn error(&self, msg: &str, args: &str);
15 fn fatal(&self, msg: &str, args: &str);
16 fn log(&self, msg: &str, args: &str);
17}