2 个稳定版本

1.0.1 2024年8月19日
1.0.0 2024年8月18日

#200调试

每月 43 次下载

MIT/Apache

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 许可证定义,将按上述方式双重许可,无需任何额外的条款或条件。

依赖项

~6–15MB
~158K SLoC