#log-level #logging #thread-safe #info #dynamic #warn #error

loggy-neko

loggy-neko 是一个线程安全的日志工具,具有动态日志级别配置功能

2个版本

0.1.2 2024年8月9日
0.1.1 2024年6月19日

#271 in 调试

Download history 89/week @ 2024-06-14 29/week @ 2024-06-21 88/week @ 2024-08-09

每月88次下载

MIT许可协议

110KB
105

loggy-banner
简单的线程安全日志工具,具有动态日志级别配置。

日志按照从Info > Warn > Error的层次结构工作。如果将日志级别设置为这些之一,则只有自身和更低的级别会记录。示例

LogLevel::Info = Info, Warn, Error
LogLevel::Warn = Warn, Error
LogLevel::Error = Error

你也可以根据个人喜好使用info/warn/error()和log(LogLevel::Level, message)进行日志记录

快速入门

use loggy_neko::prelude::*;

fn main() {
    info!("Hello World!");
}

示例用法

use loggy::{LogLevel, LOGGER};

#[derive(Debug)]
struct TestVec {
    array: Vec<String>,
}

fn main() {
    // * Standard use

    LOGGER.set_log_level(LogLevel::Error);

    LOGGER.info("Info message that wont display!");

    LOGGER.set_log_level(LogLevel::Info);

    LOGGER.info("LogLevel set to Info!");
    LOGGER.warn("Warn message!");
    LOGGER.debug("Debug message!");

    // * Or using macros

    info!("Info message using macro");

    LOGGER.set_log_level(LogLevel::Error);
    LOGGER.info("LogLevel set to Error!");

    warn!("Warn using macro that wont display!");
    error!("Error using macro");

    LOGGER.set_log_level(LogLevel::Info);
    LOGGER.info("LogLevel set to Info!");

    info!("Hello World!");

    let test_vec = TestVec {
        array: vec!["Hello".to_string(), "World!".to_string()],
    };

    info!(dbg!(format!("{:?}", test_vec).as_str()));
    warn!("Whoops!");
    debug!("Debug message via macro!");
    info!("Hello World!");
}


输出

log preview screenshot

路线图

  • 更多配置:时间格式、自定义颜色和要显示的项目

  • 显示运行了哪个函数以及在哪个行。

依赖

~1–11MB
~59K SLoC