#logging #logger #log

loggerithm

适合每个人的日志库

7个版本 (稳定)

1.1.1 2022年10月1日
1.0.2 2022年10月1日
1.0.0 2022年9月29日

#366调试

每月21次下载

MIT 许可证

23KB
331 代码行

Loggerithm

日志库

安装

# Cargo.toml

[dependencies]
loggerithm  = "1"
static_init = "1.0.3"

准备

在需要记录文本的每个模块顶部,您必须添加以下之一

use loggerithm::logger;
// This will tell the module to use the logger from the parent module.
// If there is no parent module, it will use the default logger.
logger!(super);
use loggerithm::logger;
logger!(Logger::new()
    // All of the settings here. See `src/logger.rs`.
);

基本日志记录

Loggerithm提供标准日志级别,以及 TRACE NOTICE SUCCESSFAILURElog! 宏与 format! 宏类似,但将日志级别作为第一个参数。

use loggerithm::level::{TRACE, DEBUG, INFO, NOTICE, SUCCESS, FAILURE, WARN, ERROR, FATAL};
use loggerithm::{log, logger};

logger!(super);

fn main() {
    let x = 25;
    log!(SUCCESS, "The value of x is equal to {}.", x);
}

参见 examples/basic_logging.rs

自定义日志级别

use loggerithm::{logger, log_level, log};
use loggerithm::level::INFO;

logger!(super);

log_level!(MY_AMAZING_CUSTOM_LOGGING_LEVEL, LogLevel::new(30)
    .formatted(|v| v.magenta().on_white().reverse())
);

fn main() {
    log!(INFO, "This example shows how to create a custom logging level and add formatting to it.");
    log!(MY_AMAZING_CUSTOM_LOGGING_LEVEL, "This used my custom level, now with formatting!");
}

参见 examples/custom_level.rsexamples/custom_level_formatting.rs

自定义日志记录器

use loggerithm::{logger, log};
use loggerithm::level::{INFO, WARN};

logger!(Logger::new()
    .set_min_severity(WARN::severity())
    .add_target(|context| {
        println!("{} | {} | {}", context.time_local(), context.level_name_fp(), context.message())
    })
);

fn main() {
    log!(WARN, "This is logged.");
    log!(INFO, "This is not logged because it is below the minimum severity.");
}

参见 examples/custom_logger.rs

模块

参见 examples/module_tree.rs 了解日志记录器如何在模块之间工作的信息。

依赖

~3–14MB
~123K SLoC