6个版本 (3个稳定版本)
1.0.2 | 2022年12月10日 |
---|---|
1.0.1 | 2021年3月13日 |
0.2.0 | 2018年7月2日 |
0.1.1 | 2018年3月25日 |
0.1.0 | 2017年9月1日 |
#438 in 调试
在 6 crates 中使用
19KB
391 行
日志尝试
日志尝试为带有可选slog日志记录器的日志提供了便利宏。
注意 - 请参阅此README的底部,了解另一种使用不需要Option<Logger>
的Logger的方法
当前版本
必需的依赖项
在您的Cargo.toml文件中将slog-try
添加为依赖项。
[dependencies]
slog-try = "1"
项目设置
添加您希望使用的宏的使用语句
use slog_try::try_info;
使用示例
考虑HasOptLogger
,这是一个可可选附加日志记录器的数据结构
#[derive(Default)]
struct HasOptLogger {
logger: Option<Logger>,
}
slog-try
中包含的宏封装了使用此日志记录器所需的样板代码,而无需验证可选字段是否实际上包含日志记录器
let mut opt_logger = HasOptLogger { logger: None };
// Try to log even if no logger exist
try_info!(opt_logger.logger, "You won't see me output. The logger is None."; "opt" => "None");
try_info!(opt_logger.logger, #"imatag", "You won't see me output. The logger is None."; "opt" => "None");
// Setup a `Logger`
let plain = slog_term::PlainSyncDecorator::new(::std::io::stdout());
let logger = Logger::root(slog_term::FullFormat::new(plain)
.build()
.fuse(), o!("surname" => "Lava"));
opt_logger.logger = Some(logger);
// Call again with the new attached logger
try_info!(opt_logger.logger, "You will see me output!"; "opt" => "Some");
try_info!(opt_logger.logger, #"imatag", "You will see me output!"; "opt" => "Some");
使用Discard Logger
您可以使用slogs Discard
drain代替包装在Option
中的日志记录器。像try_*
宏一样,如果不存在日志记录器,则丢弃日志记录器将丢弃所有传入的消息。
如何初始化丢弃的日志记录器
use slog::{Logger, Discard, o};
fn main() {
let logger = Logger::root(Discard, o!());
info!(logger, "nothing happens");
}
依赖项
~160KB