Skip to content

Latest commit

 

History

History
53 lines (43 loc) · 1.88 KB

File metadata and controls

53 lines (43 loc) · 1.88 KB

在日志消息中,包含时间戳

[![log-badge]][log] [![env_logger-badge]][env_logger] [![chrono-badge]][chrono] [![cat-debugging-badge]][cat-debugging]

使用Builder创建一个自定义记录器配置。 每次记录都调用Local::now,获取在本地时区的当前DateTime,和使用DateTime::format带上strftime::specifiers,在最终记录中,格式化使用的时间戳。

示例:调用Builder::format,它需要设置一个闭包函数,对每个消息文本格式化,添加时间戳,Record::level和主体Record::args)。

#[macro_use]
extern crate log;
extern crate chrono;
extern crate env_logger;

use std::io::Write;
use chrono::Local;
use env_logger::Builder;
use log::LevelFilter;

fn main() {
    Builder::new()
        .format(|buf, record| {
            writeln!(buf,
                "{} [{}] - {}",
                Local::now().format("%Y-%m-%dT%H:%M:%S"),
                record.level(),
                record.args()
            )
        })
        .filter(None, LevelFilter::Info)
        .init();

    warn!("warn");
    info!("info");
    debug!("debug");
}

stderr 输出,将包含

2017-05-22T21:57:06 [WARN] - warn
2017-05-22T21:57:06 [INFO] - info