12 个版本 (破坏性更新)
0.10.0 | 2024年2月20日 |
---|---|
0.9.1 | 2023年8月10日 |
0.8.1 | 2023年7月5日 |
#21 in #log-level
用于 goohttp
19KB
239 行
goolog
此库提供了兼容 no_std 的 goolog 日志记录器以及一些宏来简化日志打印。
嵌入式/无 std 环境中的使用
由于此日志记录器是在无 std 环境中实现的,因此它将默认与所有嵌入式系统一起工作。
#![no_std]
use goolog::*;
fn main() {
// First, we initialize the logger.
init_logger(
None,
None,
// println callback
&|_args| {
// something printing our args to the console
},
);
// Now we define a callback, which gets called whenever anyone uses the fatal! macro.
set_on_fatal(&|| {
// some function to restart your embedded device
});
// Now you can start logging using either these library macros or the log crates ones.
}
特性
std
此功能将
1. 使用标准库实现 println
回调
2. 实现致命错误回调
3. 使用 chrono 启用时间戳
示例
以下所有示例都假设您已激活
std
功能。
use goolog::*;
fn main() {
// Initializing the logger
init_logger(None, None);
// See the macros module for all possible log types.
info!("Main"; "Initialized the goolog logger.");
}
上面的代码将产生以下输出
# The timestamp (first two blocks) will only be shown when
# the `std` feature is active.
29.05.2023 | 14:34:33 | Main | INFO | Initialized the goolog logger.
但在现实中,日志消息将以这种颜色格式化
GREY | GREY | WHITE | * | WHITE
*:
DEBUG -> Blue
ERROR -> Red
INFO -> Green
TRACE -> White
WARN -> Yellow
生活质量
使用这些库宏将日志行打印到控制台时,有两种指定目标的方式
宏指定
这始终是可能的。即使在以下描述的第二种方法结合使用时也是如此。
use goolog::*;
fn main() {
init_logger(None, None);
info!("Main"; "Initialized the goolog logger.");
}
常量指定
对于此方法,您只需要指定一次目标
use goolog::*;
set_target!("Main");
fn main() {
init_logger(None, None);
info!("Initialized the goolog logger.");
// You can still specify a different target
// just for that log line.
info!("Foo"; "Initialized the goolog logger.");
}
自定义
目前,有两种方式可以自定义您的 goolog 日志记录器
更改日志级别
默认情况下,记录器将在 info
级别记录。要更改此,只需提供一个新的日志级别即可。
use goolog::*;
use goolog::log::Level;
fn main() {
// Initializing the logger with the log level set to trace
init_logger(Some(Level::Trace), None);
// See the macros module for all possible log types.
// This will only be logged if the log level is set to
// trace.
trace!("Main"; "Initialized the goolog logger.");
}
更改调用者名称的长度
默认目标长度为 16 个字符。任何给定名称超过此长度将直接截断。但是,有两种方法可以自定义此行为
1. 更改限制
use goolog::*;
fn main() {
// Initialize the logger with a new target length of 32
// characters.
init_logger(None, Some(32));
// ...
// You can also change the target length at runtime.
set_target_length(8)
}
2. 移除限制
要执行此操作,请将 target_length
设置为 0
,方法之一如上所示。
但在您这样做之前,您可能需要考虑一些缺点:如果没有给出限制,记录器无法知道为名称留多少空间。因此,每条日志行都会“弯曲”到名称周围,看起来可能如下所示
29.05.2023 | 14:34:33 | Main | INFO | Starting some very important things...
29.05.2023 | 14:34:33 | MySuperAwesomeClient | INFO | Starting...
依赖项
~180–510KB