task_log

build test lint docs.rs Crates.io

task_log is a task-based logger.

Installing

Just add task_log = 0.1.4 to your Cargo.toml's dependency section.

Example

Let's get right to the chase. What does using this logger look like?

```rust 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::fromsecs(2)); fs::removefile(filename)?; Ok(()) }) .expect("Failed to create and delete the file"); }

```

As you can see we provide a task to run and a description of what that task is doing. When we run this code we get the following output.

demo

To see more examples see the examples folder.

Configuration

You can configure task_log's task function using a struct called ConfigBuilder. Here is an example of using ConfigBuilder:

```rust 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)

} ```

To learn more about ConfigBuilder please reference the docs.rs documentation.

Future Plans

Here are some features I'm hoping to implement in the future: