7 个版本

0.1.6 2022年11月27日
0.1.5 2022年11月27日
0.1.4 2022年2月28日

#319配置

每月 37 次下载
用于 optic

MPL-2.0 许可证

500KB
196

task_log

build test lint docs.rs Crates.io

task_log 是一个基于任务的日志记录器。

安装

只需将 task_log = 0.1.6 添加到 Cargo.toml 的 dependency 部分。

示例

让我们直接进入主题。使用这个记录器看起来怎么样?

use std::io::Result;
use std::time::Duration;
use std::{fs, thread};

use task_log::task;

fn main() {
	task("Creating and removing file", || -> Result<()> {
		let filename = "hello.txt";
		fs::write(filename, "foo bar")?;
		thread::sleep(Duration::from_secs(2));
		fs::remove_file(filename)?;
		Ok(())
	})
	.expect("Failed to create and delete the file");
}

如您所见,我们提供了一个要运行的任务及其描述。当我们运行此代码时,将得到以下输出。

demo

要查看更多示例,请参阅 示例文件夹

配置

您可以使用名为 ConfigBuilder 的结构体来配置 task_log 的 task 函数。以下是如何使用 ConfigBuilder 的示例

use std::thread;
use std::time::Duration;

use task_log::{task, ConfigBuilder};

fn main() {
	ConfigBuilder::new()
		.duration(false)
		.apply()
		.expect("Failed to setup configuration");

	let sum = task("Adding 1 and 2", || -> u32 {
		let result = 1 + 2;
		thread::sleep(Duration::from_secs(2));
		result
	});

	println!("Sum is {}", sum)
}

有关 ConfigBuilder 的更多信息,请参阅 docs.rs 文档

未来计划

以下是我希望在将来实现的一些功能

  • 运行时间:在 RUNNING 前缀中输出到目前为止的运行时间。
  • 旋转符号:对于长时间运行的任务显示加载符号。
  • 文件输出:允许将日志写入文件。
  • 双行日志:选择将日志输出到第二行而不是替换第一行。

依赖关系