NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #1382 most downloaded on crates.io
Simple, efficient logging
Last release 2 years ago
no release in 18 months
Release timing varies
gaps range from 2 weeks to 2.1 years
Nearly every release is documented
notes for 40 of 40 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
40 releases · first in 2014
Add syslog v7 support (thanks [@BlackDex]!)
Upgrade colored to version 2. This is a breaking change due to colored being exposed in the public API of fern. (thanks [@faern] for doing the boilerp…
colored to version 2. This is a breaking change due to
colored being exposed in the public API of fern. (thanks [@faern] for
doing the boilerplate here!)One column per quarter.
Add security warning for "colored" feature when using a global allocator to doc homepage and README.md. See fern-0.6.2 README.md
env_logger-style formattingDocument reopen feature requiring a feature flag (thanks [@Palladinium]!)
Move date-based file logger under its own feature (thanks [@dekellum]!)
Add a rotating date-based file logger (thanks [@tanujitghosh]!)
Version notes in CHANGELOG.md
Version notes in CHANGELOG.md
syslog feature to no longer re-export anything on Windows.
Previously, using syslog on windows would simply fail to compile.
(thanks [@17dec]!)log_enabled! macro only checking dispatch at surface and not
at sub-levels. Actually logging still only does a shallow check, but
now log_enabled!() should be actually accurate.Fix colored log level display to honor formatting flags such as "{:>5}" (thanks [@ExpHP]!)
Add another fuller example for colored logging (thanks [@digitalatigid]!)
Add a log handler for arbitrary 'Write' objects.
Write object. (thanks [@vorner]!)Add a log handler which panics on all messages. This can be used in test configurations to turn warning or error messages into hard errors.
Add support for Display::fmt implementations which call the global logger via a 'meta-logging-in-format' flag. (thanks [@jakunar]!)
Display::fmt implementations which call the global
logger via a 'meta-logging-in-format' flag. (thanks [@jakunar]!)
Re-add compatibility for rust versions 1.16.0+, and add CI testing with rustc 1.16.0 to ensure this is kept in the future.
Re-add support for colored log levels with the 'colored' feature
Short list of changes in 0.5.0:
Update from log 0.3 to log 0.4. Both log versions are interoperable, but line numbers from libraries using 0.4 won't show up in binaries with reciever
Add support for coloring log levels in Unix terminals using the 'colored' crate (thanks [@nihiluis]!)
Add support for sending to an std::mpsc::Sender as a log output (thanks [@gingerDevilish]!)
Documentation hotfix after a premature release of version 0.4.1
Lots of documentation tweaks and reworking
Rework API surface to be builder-based for simpler configuration
Rework API surface to be builder-based for simpler configuration
Rework inner log structure for more efficiency
enum rather than every
sublogger being a Box<FernLog> with dynamic dispatchMove opening of files and stdout/stderr from configuration "building" to configuring
Redo formatting to work without allocation - formatting closures now finish with a callback rather than returning a value
Update examples to use chrono instead of the time crate
Add much more documentation: almost every builder method has a full example, and all features should be thoroughly explained
Add appveyor and travis-ci badges to README and Cargo.toml
Add html_root_url doc attribute
Update for rustc version e9080ec39 (1.0.0-beta.2)
Update for rustc version 9854143cb (1.0.0-beta)
time crateUpdate to rustc version 2e3b0c051
Updates to rustc version 27901849e
This is a breaking change, as all constructors on fern::OutputConfig have been renamed from UpperCase to lower_case.
AsRef<path::Path>.
fern::OutputConfig::file("some-file.log") works,
without having to construct a Path or PathBuf manually.Updates to rustc version 3e4be02b8
This version reworks the public API in order to turn fern into a backend to the log crate.
This version reworks the public API in order to turn fern into a
backend to the log crate.
API Changes:
local module, as the log crate now handles storing a
global logger.+ Sync + Send no longer being requiredError to LogError
fmt::Display for LogErrorFormatter type is added for formatting closures. It also now
takes a &log::LogLocation parameters as well.IntoLog trait which DispatchConfig and OutputConfig
implement (instead of having into_logger() on each of them.
into_log() method to the IntoLog trait that turns a log
configuration into a log::Log (as apposed to fern::Logger)IntoLog.into_logger() to IntoLog.into_fern_logger() in
order to differentiate from the into_log() method.fern::init_global_logger() method which sets the global
log crate logger from a log configurationInitError error which is used by init_global_logger() for
either an IO error or log::SetLoggerErrorFileOptions option to OutputConfig which allows for
specifying an OpenOptions for opening the log file withAdditional Changes:
no_test and not having fully workable code examples.tests/lib.rs file which contains tests for
initializing fern and log filtering with different log levels.Fixes compile warnings and errors for rustc version 522d09dfe (thanks [@gareins]!)
Fixes small documentation error
Finishes updating to rustc version eaf4c5c78
Updates to rustc version 458a6a2f6
- Update to latest rustc
This update mainly just cleans stuff up and updates for the latest rustc
This update mainly just cleans stuff up and updates for the latest rustc (ea6f65c5f)
Updates for the latest rustc version, ad9e75938.
This version is *not* backwards compatible. The change was necessary for the latest rust update however, so only a minor version increment was added.
This version is not backwards compatible. The change was necessary for the latest rust update however, so only a minor version increment was added.
Adds a new public module, local, which stores a thread-local logger.
Adds type aliases BoxedLogger and ArcLogger, which resolve to Box and sync::Arc > respectively.
Box<Logger + Sync + Send> and
sync::Arc<Box<Logger + Sync + Send>> respectively.Adds a workaround for a bug introduced a compiler update.
[reopen]: https://github.com/vorner/reopen [@gareins]: https://github.com/gareins [@gingerDevilish]: https://github.com/gingerDevilish [@nihiluis]: ht
First release, version 0.1.0.
Your coding agent can read these notes before it upgrades. Set up the MCP server →