Skip to content

hermannm/devlog-tracing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

devlog-tracing

Log subscriber for Rust's tracing library, with a human-readable output format designed for development builds. Uses the same format as the devlog library for Go.

Run cargo add devlog-tracing to add it to your project!

Contents: crates.io/crates/devlog-tracing

Contents:

Usage

devlog-tracing is pretty much a drop-in replacement for tracing-subscriber, so the initialization works the same - just replace tracing_subscriber::fmt() with devlog_tracing::subscriber():

devlog_tracing::subscriber().init();

tracing logs will now be formatted by the devlog-tracing subscriber:

// In module `app::server`
warn!("No value found for 'PORT' in env, defaulting to 8000");
info!(port = 8000, environment = "DEV", "Server started");

// In module `app::db`
error!(cause = "UNKNOWN_TABLE", "Database query failed");

...giving the following output (using a gruvbox terminal color scheme):

Screenshot of log messages in a terminal

Maintainer's guide

Publishing a new release

  • Run tests:
    cargo test
    
  • Bump version in Cargo.toml
  • Add an entry to CHANGELOG.md (with the current date)
    • Remember to update the link section, and bump the version for the [Unreleased] link
  • Create commit and tag for the release (update TAG variable in below command):
    TAG=vX.Y.Z && git commit -m "Release ${TAG}" && git tag -a "${TAG}" -m "Release ${TAG}" && git log --oneline -2
    
  • Publish to crates.io:
    cargo publish
    
  • Push the commit and tag:
    git push && git push --tags
    
    • Our release workflow will then create a GitHub release with the pushed tag's changelog entry

About

Pretty-formatted log subscriber for Rust's tracing library.

Resources

License

Stars

Watchers

Forks

Languages