Releases: daboross/fern
Releases · daboross/fern
Release version 0.5.2
- 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. - Add some more general documentation updates and clarity increases.
- Add a CHANGELOG.md which mirrors git tag releases.
- Update documentation links to point to docs.rs rather than custom
hosted documentation. - Fix ColoredLevelConfig::default being an inherent method rather than
an implementation of the Default trait. - Add direct support for the syslog crate under the "syslog-3"
feature flag.- Add a module worth of documentation for using fern with syslog.
Release version 0.5.1
- Re-add support for colored log levels with the 'colored' feature
- This was initially implemented in fern 0.4.4 by @nihilus, but support was accidentally dropped in fern 0.5.0.
- Fix the ability to run tests on windows, and refactor integration tests for developer clarity
- Update documentation for clarity
Short list of changes in 0.5.0:
- Updated from log 0.3 to log 0.4. Both are interoperable, but using log 0.4 provides a much cleaner log interface for fern to use internally
- Removed fern::FernLog.
- Renamed fern::color::ColoredLogLevelConfig to ColoredLevelConfig
- Greatly simplified testing
Release version 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 recievers using log 0.4.
- To clarify: both fern 0.4 and 0.5 will work perfectly with all libraries, but line numbers will always be 0 if you use fern 0.4 and log 0.4.
- Remove fern::FernLog. With log 0.4, log records can be constructed directly, and fern loggers can now recieve just a record rather than a record and the formatted display string.
- Notable changes in the log crate: log::LogLevel is renamed to log::Level, and log::LogLevelFilter is renamed to log::LevelFilter.
- fern::color::ColoredLogLevelConfig has been renamed to fern::color::ColoredLevelConfig to match log crate renamings.
- fern tests have been greatly simplified with the new support for creating log records manually. it's now possible to just run "cargo test" and test all of fern's functionality.
Release version 0.4.4
- Add support for coloring log levels in Unix terminals using the 'colored' crate
- This is enabled via the 'colored' feature, and adds a fern::color module.
- Thanks to @nihiluis for implementing this feature.
Release version 0.4.3
- Add support for sending to an std::sync::mpsc::Sender as a log output
Release version 0.4.2
- Documentation hotfix after a too-early release of version 0.4.1
Release version 0.4.1
- Lots of documentation tweaks and reworking
- Add CONTRIBUTING file and update README to invite new contributors
- Improve example application to be more realistic
- A few small internal improvements, mostly code cleanup here
Release version 0.4.0
-
Rework API surface to be builder-based for simpler configuration
- Rename DispatchConfig to Dispatch, OutputConfig to Output and FernLogger to FernLog
-
Rework inner log structure for more efficiency
- Different outputs are now stored in an
enum
rather than every sublogger being a Box with dynamic dispatch - Remove LogError; handle errors within individual loggers now - and only within loggers which actually need it
- Remove unnecessary wrapping of streams with an Arc (now just uses Mutex for File streams)
- Remove unnecessary wrapping of Stdout and Stderr streams with a Mutex, when they are already synchronized
- Pass around just &fmt::Arguments + &log::LogRecord instead of passing each individual LogRecord part
- Different outputs are now stored in an
-
Move opening of files and stdout/stderr from configuration "building" to configuring
- Instead of taking OpenOptions, log configuration now just takes an already-opened std::io::File object
- fern::InitError is now a convenience API, and is never returned from any fern APIs
-
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 thetime
crate- This removes another extra allocation - chrono can format time directly to a writer, without allocating intermediate the result to a String
-
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
Release version 0.3.5
- Build changes to .travis.yml
- Add html_root_url doc attribute
- Add file_with_line_sep and file_with_options_and_line_sep configuration construction options to allow specifying a line separator other than the default '\n'
Release version 0.3.4
- Update for rustc version e9080ec39 (1.0.0-beta.2)
- Update to use no_test to ignore doc tests, rather than ignore
- Remove all stability attributes on public types
- Add rust version matrix for testing on travis, to test on beta as well as nightly builds