#logger #python #level #handler #log-level #msg #message

logging

受Python日志功能的启发而设计的日志记录功能

1个不稳定版本

使用旧的Rust 2015

0.1.0 2018年2月10日

#38#msg

Download history 74/week @ 2024-03-31 19/week @ 2024-04-07 20/week @ 2024-04-14 33/week @ 2024-04-21 27/week @ 2024-04-28 29/week @ 2024-05-05 47/week @ 2024-05-12 36/week @ 2024-05-19 54/week @ 2024-05-26 38/week @ 2024-06-02 33/week @ 2024-06-09 101/week @ 2024-06-16 96/week @ 2024-06-23 96/week @ 2024-06-30 48/week @ 2024-07-07 50/week @ 2024-07-14

302 每月下载量
lstty 中使用

MIT 许可证

14KB
246

logging

受Python日志框架启发的日志记录功能。

此库实现了具有与它们关联的消息处理器的命名分层记录器。

使用说明

extern crate logging;

use std::sync::Arc;

struct MyOwnHandler {}

impl logging::Handler for MyOwnHandler {
  fn emit(&self, msg: &logging::Message) {
    print!("{:7} | {}", msg.name, msg.msg);
  }
}

fn main() {
  logging::debug("app started");

  let log = logging::get("myapp");
  log.add_handler(logging::ConsoleHandler::new());
  log.add_handler(Arc::new(Box::new(MyOwnHandler {})));

  log.info("created".to_owned());
  {
    let sub_log = logging::get("myapp.special");
    sub_log.debug("some other stuff");
  }
}

待办事项

  • 添加对yaml配置文件的支持。
  • 轮转文件处理器。

lib.rs:

受Python日志框架启发的日志记录功能。

此库实现了具有与它们关联的消息处理器的命名分层记录器。

此框架旨在为那些希望为应用程序设置日志级别而不需要重新编译软件的人。

特性

  • 线程安全。
  • 易于扩展。
  • 可以在运行时添加和删除日志处理器。
  • 可以在运行时更改日志级别。

行为

  • 默认情况下,没有添加日志处理器。
  • 所有记录器的默认日志级别为 DEFAULT
  • 日志消息会向上冒泡到其父记录器,并由所有中间处理器记录。

使用说明

extern crate logging;

use std::sync::Arc;

struct MyOwnHandler {}

impl logging::Handler for MyOwnHandler {
  fn emit(&self, msg: &logging::Message) {
    print!("{:7} | {}", msg.name, msg.msg);
  }
}

fn main() {
  // you will see nothing, because no handler added yet
  logging::debug("app started");

  logging::root().add_handler(Arc::new(Box::new(MyOwnHandler {})));

  let log = logging::get("myapp");
  log.add_handler(logging::ConsoleHandler::new());

  // will be printed by both handlers
  log.info("created".to_owned());
  {
    let sub_log = logging::get("myapp.special");
    sub_log.debug("some other stuff");
  }

  log.level = logging::Level::WARN;
  // will not be printed by the handler of `myapp`.
  log.info("unly plain not in color");
}

依赖关系

~74KB