2 个稳定版本
新 1.0.1 | 2024年8月19日 |
---|---|
1.0.0 | 2024年8月18日 |
#200 在 调试 中
每月 43 次下载
33KB
859 行
HTrace
跟踪类。
HTrace,旨在将简单、可读的跟踪行生成到不同的模块中。适用于实时应用、脚本、API 或网站。作为服务(单例)运行
Htrace 包含 2 个默认模块:(您可以轻松编写自己的模块)
- 文件:将跟踪写入文件(按天或按小时、按线程名、按源文件等写入文件)
- 命令行:将跟踪写入 stdout(带颜色)
跟踪级别的列表:(按顺序)
- Type::DEBUG:调试跟踪(用于开发)- 低级别
- Type::DEBUGERR:错误调试跟踪
- Type::NORMAL:正常跟踪
- Type::NOTICE:重要的跟踪信息
- Type::NOTICEDERR => 跟踪错误,但已通知某人(例如通过邮件)
- Type::WARNING => 需要检查的跟踪信息
- Type::ERROR:错误跟踪或阻止的跟踪信息
- Type::FATAL:导致 panic 的跟踪信息 - 高级别
htrace 和每个模块的配置保存到配置目录(通过 Hconfig),到 "Htrace.json"
在线文档
示例
注意:该代码包使用 Hconfig 进行配置
fn main()
{
// configuration path, the directory need to be existing or created before continuing
HConfigManager::singleton().setConfPath("./config");
// Adding modules into Htrace, default configuration is used if there is no configuration file, or missing part.
HTracer::appendModule("cmd", CommandLine::CommandLine::new(CommandLineConfig::default())).expect("Cannot append module");
HTracer::appendModule("file", File::File::new(FileConfig::default())).expect("Cannot append module");
// settings
HTracer::threadSetName("testThreadName"); // default thread, can be call for each thread
HTracer::minlvl_default(Type::DEBUG);
// simple trace of variable
let string_test = "machin".to_string();
HTrace!(string_test);
// trace with auto format
HTrace!("test macro {}",87);
// trace with return line
HTrace!("test macro\nlmsdkhfsldf\nmsdf\nhjsdf");
// trace different level (ERROR level and above show backtrace)
HTrace!((Type::NOTICE) "my trace");
HTrace!((Type::ERROR) 21);
HTrace!((Type::ERROR) "test macro {}",87);
// macro for consuming Result, and tracing the error, default to ERROR (ERROR level and above show backtrace)
let testerror = std::fs::File::open(Path::new("idontexist.muahahah"));
HTraceError!((Type::FATAL) "File error is : {}",testerror);
HTracer::drop(); // cannot be put in "Drop" because of OnceCell
}
您也可以查看测试。
许可
许可方式如下
- Apache 许可证 2.0 版,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则您提交的任何有意包含在工作中的贡献,根据 Apache-2.0 许可证定义,将按上述方式双重许可,无需任何额外的条款或条件。
依赖项
~6–15MB
~158K SLoC