use chrono::Local;
use log::Record;
use std::{io, thread};
pub fn default_format(w: &mut io::Write, record: &Record) -> Result<(), io::Error> {
write!(
w,
"{} [{}] {}",
record.level(),
record.module_path().unwrap_or("<unnamed>"),
record.args()
)
}
pub fn opt_format(w: &mut io::Write, record: &Record) -> Result<(), io::Error> {
write!(
w,
"[{}] {} [{}:{}] {}",
Local::now().format("%Y-%m-%d %H:%M:%S%.6f %:z"),
record.level(),
record.file().unwrap_or("<unnamed>"),
record.line().unwrap_or(0),
&record.args()
)
}
pub fn detailed_format(w: &mut io::Write, record: &Record) -> Result<(), io::Error> {
write!(
w,
"[{}] {} [{}] {}:{}: {}",
Local::now().format("%Y-%m-%d %H:%M:%S%.6f %:z"),
record.level(),
record.module_path().unwrap_or("<unnamed>"),
record.file().unwrap_or("<unnamed>"),
record.line().unwrap_or(0),
&record.args()
)
}
pub fn with_thread(w: &mut io::Write, record: &Record) -> Result<(), io::Error> {
write!(
w,
"[{}] T[{:?}] {} [{}:{}] {}",
Local::now().format("%Y-%m-%d %H:%M:%S%.6f %:z"),
thread::current().name().unwrap_or("<unnamed>"),
record.level(),
record.file().unwrap_or("<unnamed>"),
record.line().unwrap_or(0),
&record.args()
)
}