Vendored version of simple_logger from crates.io
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Reynard User 28ac60ec65
Some checks failed
ci / rust-publish-crates (push) Has been cancelled
ci / rust-lint (push) Has been cancelled
ci / rust-test (colors, macos-latest, stable) (push) Has been cancelled
ci / rust-test (colors, ubuntu-latest, stable) (push) Has been cancelled
ci / rust-test (colors, windows-latest, stable) (push) Has been cancelled
ci / rust-test (colors,threads,timestamps, ubuntu-latest, beta) (push) Has been cancelled
ci / rust-test (colors,threads,timestamps,nightly, ubuntu-latest, nightly) (push) Has been cancelled
ci / rust-test (stderr, macos-latest, stable) (push) Has been cancelled
ci / rust-test (stderr, ubuntu-latest, stable) (push) Has been cancelled
ci / rust-test (stderr, windows-latest, stable) (push) Has been cancelled
ci / rust-test (threads, macos-latest, stable) (push) Has been cancelled
ci / rust-test (threads, ubuntu-latest, stable) (push) Has been cancelled
ci / rust-test (threads, windows-latest, stable) (push) Has been cancelled
ci / rust-test (timestamps, ubuntu-latest, stable) (push) Has been cancelled
ci / rust-test (timestamps, windows-latest, stable) (push) Has been cancelled
Update time dependency to use git.sly.so version
2026-05-11 10:45:48 +02:00
.github/workflows Use trusted publishing 2025-10-15 12:12:02 +01:00
examples Document behavior of init_with_env 2025-10-15 11:43:03 +01:00
src Document behavior of init_with_env 2025-10-15 11:43:03 +01:00
.gitignore Ignore IDE files 2023-03-18 19:54:50 +00:00
Cargo.toml Update time dependency to use git.sly.so version 2026-05-11 10:45:48 +02:00
LICENSE Release 1.12.0 2021-07-29 12:10:53 +01:00
README.md Tidy up handling of stderr+colors 2024-04-30 16:59:25 +01:00
rustfmt.toml Relax rustfmt line length and reformat code 2022-10-19 15:58:07 +01:00

simple_logger

A logger that prints all messages with a readable output format.

The output format is based on the format used by Supervisord, with timestamps in RFC 3339 format.

The format and timezone used for timestamps can be customised, simple colours based on log level can be enabled, thread metadata can be included, and output can be toggled between STDOUT and STDERR.

Notices

Project status

I wrote the initial version of this library in 2015, and haven't written Rust professionally since then. I consider this as close as I'll ever get to a "finished" project and don't plan on adding any more features to it.

It is still maintained and I try and merge pull requests for fixes, improvements, and features; though I generally turn down pull requests for large or complex features that go outside the library's aim to be a simple logger. If you need more, the log module has a list of available logging implementations, or you could consider forking simple_logger and building on top of it.

Breaking changes

  • Version 2.0.0 changes the default from displaying timestamps in the local timezone to displaying timestamps in UTC. See issue #52 for more information.

Usage

use simple_logger::SimpleLogger;

fn main() {
    SimpleLogger::new().init().unwrap();

    log::warn!("This is an example message.");
}

This outputs:

2022-01-19T17:27:07.013874956Z WARN [logging_example] This is an example message.

You can run the above example with:

cargo run --example init

Optional features

The colors and timestamps features are enabled by default. You can remove these features and their respective dependencies by disabling all features in your Cargo.toml.

[dependencies.simple_logger]
default-features = false

To include the timestamps feature, but not the colors feature:

[dependencies.simple_logger]
default-features = false
features = ["timestamps"]

To include the colors feature, but not the timestamps feature:

[dependencies.simple_logger]
default-features = false
features = ["colors"]

To include thread metadata use the threads and nightly features:

[dependencies.simple_logger]
features = ["threads", "nightly"]

To direct logging output to stderr use the stderr feature:

[dependencies.simple_logger]
features = ["stderr"]

Multiple features can be combined.

[dependencies.simple_logger]
features = ["colors", "threads", "timestamps", "nightly", "stderr"]

Wrapping with another logger

You might want to wrap this logger to do your own processing before handing events to a SimpleLogger instance. Instead of calling init() which calls log::set_max_level and log::set_boxed_logger, you can call those functions directly giving you the chance to wrap or adjust the logger. See wrap.rs for a more detailed example.

Console setup

The SimpleLogger.init() function attempts to configure colours support as best it can in various situations:

  • On Windows, it will enable colour output. See set_up_windows_color_terminal().
  • When using the colors and stderr features, it will instruct the colored library to display colors if STDERR is a terminal (instead of checking if STDOUT is a terminal). See use_stderr_for_colors().

Licence

simple_logger is licenced under the MIT Licence.

Authors

Written by Sam Clements.