jeflog

Crates.iojeflog
lib.rsjeflog
version0.1.0
sourcesrc
created_at2024-01-25 21:41:38.478964
updated_at2024-01-25 21:41:38.478964
descriptionA lightweight, responsive, task-based logging library
homepage
repositoryhttps://github.com/jeffcshelton/jeflog
max_upload_size
id1114530
size8,518
Jeff Shelton (jeffcshelton)

documentation

README

Jeflog

Jeflog is a Rust logging library containing the macros necessary to have pretty, lightweight logging. It is particularly aimed toward use in command line tools which have enumerated tasks to complete and want to notify the user of progress in an elegant way.

Structure

Jeflog is structured around tasks. A task may be begun at any time using the task! macro along with a format string and arguments that are immediately printed next to the spinner.

To initiate a subtask, simply use the task! macro once again, and it will create a subtask directly underneath the existing task.

To complete a task, use either the pass!, warn!, or fail! macro to indicate to the user the final state of the task.

Considerations

Actively spinning the spinner requires an additional thread. In the future, there will be a feature flag that toggles spawning an async task instead, but this is not yet implemented. This extra thread spends most of its time sleeping, as it sleeps for 100ms between updating the spinner. It should not have much of an impact on the performance of your program. However, it is still important to be aware that running a task does require this extra thread, even though it does not require many resources. When a task is not running, there is no concurrent spinner thread.

Commit count: 0

cargo fmt