#logging-tracing #config-file #logger #file-format #tracing #toml-config #logging

dyn-logger

通过TOML格式的配置文件动态配置跟踪日志记录器的Crate

12次发布

0.2.7 2024年1月10日
0.2.6 2024年1月10日
0.2.5 2023年10月7日
0.2.4 2023年7月18日
0.1.0 2023年3月17日

#21 in #toml-config

35 monthly downloads

EUPL-1.2

15KB
291 代码行

Dyn Logger

此Crate提供对跟踪日志记录器的配置选项,允许您根据logging.toml文件配置日志记录。使用此文件,您可以轻松更改每个模块的日志级别,以及记录器的格式和其他选项。此外,此Crate允许您配置多个文件记录器,每个记录器都有自己的日志级别、格式、颜色和路径选项。

用法

要使用此Crate,只需将其添加到您的Cargo.toml文件中作为依赖项

[dependencies]
dyn-logger = "0.2"

然后,按照以下方式配置您的记录器。这将读取您项目根目录中的logging.toml文件,并将配置设置应用于您的跟踪记录器。

fn main() -> Result<(), Box<dyn std::error::Error>>  {
    let logger = DynamicLogger::new("path/to/logging.toml")?
        .with_stdout()?
        .with_file_logger()?;
    logger.init();

    // ...

    Ok(())
}

配置

logging.toml文件允许您配置应用程序的日志记录选项。以下是一个示例

# global logging options
[global]
log_level = "trace"
enabled = false
format = "compact" # Options: `full`, `compact`, `pretty` and `json`
line_number = true
file = true
thread_name = true
thread_id = true

 # special std out logging, overrides global settings
[stream_logger]
enabled = true
color = true
format = "pretty" # Options: `full`, `compact`, `pretty` and `json`
line_number = true
file = true
thread_name = true
thread_id = true
modules = [
    "module=trace",
    "module::submodule_one=trace",
    "module::submodule_two=debug",
    "module::submodule_three=info",
]

# logging to files, uses global options
[[file_logger]]
enabled = true
filename = "logfile.log"
path = "./logs"
line_number = false # override global options
thread_id = false # override global options
format = "json" # Options: `full`, `compact`, `pretty` and `json`
modules = [
    "module_name::submodule::example=trace",
]

[[file_logger]]
enabled = true
filename = "another_logfile.log"
path = "./logs"
format = "compact" # Options: `full`, `compact`, `pretty` and `json`
modules = [
    "module_name::submodule=trace",
    "module_name::other_submodule=debug",
]

许可证

此Crate受EUPL-1.2许可证的许可。有关更多信息,请参阅LICENSE文件。

依赖项

~6–8.5MB
~150K SLoC