Rust日志学习(三)——simple_logger
来源:互联网 发布:php 统计文章浏览次数 编辑:程序博客网 时间:2024/06/08 03:53
simple_logger——A rust logger that prints all messages with a readable output format.
simple_logger的Github链接:https://github.com/borntyping/rust-simple_logger
下面是simple_logger的简单示例:
示例1:
最简单用法
#[macro_use]extern crate log;extern crate simple_logger;fn main() { simple_logger_fn();}#[warn(dead_code)]fn simple_logger_fn(){ simple_logger::init().unwrap(); warn!("This is an example message.");}
编译、运行结果如下:
示例2:
初始化时改变默认日志level等级:
#[macro_use]extern crate log;extern crate simple_logger;fn main() { simple_logger_level();}#[warn(dead_code)]fn simple_logger_level(){ simple_logger::init_with_level(log::LogLevel::Warn).unwrap(); warn!("This will be logged."); info!("This will NOT be logged.");//过滤掉了}
编译、运行结果如下:
源代码分析
因为这个源代码较少,所以就把所有源代码都列出来了:
//! A logger that prints all messages with a readable output format.#[macro_use]extern crate log;extern crate time;use log::{Log,LogLevel,LogMetadata,LogRecord,SetLoggerError};struct SimpleLogger { log_level: LogLevel,}//实现Log特性impl Log for SimpleLogger { fn enabled(&self, metadata: &LogMetadata) -> bool { metadata.level() <= self.log_level } fn log(&self, record: &LogRecord) { if self.enabled(record.metadata()) { println!( "{} {:<5} [{}] {}", time::strftime("%Y-%m-%d %H:%M:%S", &time::now()).unwrap(), record.level().to_string(), record.location().module_path(), record.args()); } }}//2种初始化logger的方式:/// Initializes the global logger with a SimpleLogger instance with/// `max_log_level` set to a specific log level.pub fn init_with_level(log_level: LogLevel) -> Result<(), SetLoggerError> { log::set_logger(|max_log_level| { max_log_level.set(log_level.to_log_level_filter());//设置日志level return Box::new(SimpleLogger { log_level: log_level }); })}/// Initializes the global logger with a SimpleLogger instance with/// `max_log_level` set to `LogLevel::Trace`.pub fn init() -> Result<(), SetLoggerError> { init_with_level(LogLevel::Trace)//默认等级为Trace}
果然是simple logger,代码很simple,功能很simple。
阅读全文
0 0
- Rust日志学习(三)——simple_logger
- Rust日志学习(一)—— 初识Rust log
- Rust日志学习(二)——env_logger
- Rust日志学习(四)——simplelog
- Rust日志学习(五)—— log4rs
- Rust学习记录——后缀计算器
- log4j学习(三)——AOP日志
- JBPM学习日志(三)
- java学习日志(三)
- Linux学习日志(三)
- Redis学习日志(三)
- numpy学习日志(三)
- Rust语言学习笔记(1)
- Rust语言学习笔记(2)
- Rust语言学习笔记(3)
- rust 学习入门
- Rust学习笔记
- [Rust]学习笔记-序
- jquery中attr和prop的区别
- (转)eclipse常用插件在线安装地址或下载地址
- Codeforces Round #441 (Div. 2) A,B,C
- Kubernetes架构介绍
- Pinterest的容器化实践经验
- Rust日志学习(三)——simple_logger
- [2-SAT] Codeforces #876E. National Property
- Spring上传文件
- 树的前,中,后 序遍历
- 第2章-从头开始:自然数 2.2-加法
- BootStrap table 数据填充与分页应用总结
- Linux服务器性能出问题,排查这些参数指标
- 多进程 队列 实现生产者消费者模型 python 笔记
- 2017.10.1学习(1)