All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added
FileLogger
structure which is the newLogger
trait implementation, it writes log records into a file. - Created an example of
FileLogger
structure usage. - Created basic performance tests for
BufferFormatter
andRecordFilter
traits implementations usingcriterion
library. - Added
#[inline]
attribute to several methods to improve performance based on the results of performance tests.
- Removed unnecessary imports to fix clippy lints.
- Fixed indentation of documentation comments in several places to fix
doc_lazy_continuation
clippy lint.
- Table of contents currently hidden by default.
- Extended description section with use cases information.
- Updated
itertools
from 0.12.1 to 0.13.0 - Updated
mio
from 0.8.10 to 0.8.11 - Updated
log
from 0.4.20 to 0.4.21 - Updated
chrono
from 0.4.34 to 0.4.38 - Updated
tokio
from 1.36.0 to 1.38.0
- Dependencies updates:
itertools
from 0.11.0 to 0.12.1tokio
from 1.32.0 to 1.36.0env_logger
from 0.10.0 to 0.10.1chrono
from 0.4.31 to 0.4.34
- Bump minimal supported rust version (MSRV) from 1.60.0 to 1.63.0
- README improvements.
- Dependencies updates:
tokio
from 1.31.0 to 1.32.0chrono
from 0.4.26 to 0.4.31
- Bump
itertools
from 0.10.5 to 0.11.0 - Bump
log
from 0.4.18 to 0.4.20 - Bump
tokio
from 1.28.2 to 1.31.0
- Changed
new
method signature of allBufferFormatter
trait implementations.
Before:
pub fn new(provided_separator: Option<&'static str>) -> Self;
After:
pub fn new(provided_separator: Option<&str>) -> Self;
- Updated some dependencies.
- Changed
BufferFormatter::get_separator
method signature.
Before:
fn get_separator(&self) -> &'static str;
After:
fn get_separator(&self) -> &str;
- Added
new_owned
andnew_default
methods for everyBufferFormatter
trait implementation. - Implemented
Default
trait for everyBufferFormatter
trait implementation. - Cover more code with tests.
- Improved examples section inside README file.
- Add documentation for all public (exported) items (issue #10).
- Split
HexadecimalFormatter
into lowercase and uppercase (issue #12). - Cover more code with tests.
- Implemented
BufferFormatter
,RecordFilter
andLogger
traits for boxed structures, which already implement such traits. - Implemented such traits for their boxed trait objects.
- Such trait now required to be
Send
. - Covered with test all changes above.
- Traits
BufferFormatter
,RecordFilter
andLogger
now are object safe and do not requireSized
implementation. This is the same change as in the previous minor version, but done correctly and covered with tests. Unfortunately I had a misunderstanding of trait object safety.
- Structures which implement
BufferFormatter
,RecordFilter
andLogger
traits now required to beSized
. This change allows to use the following traits as trait-objects i.e.Box<dyn BufferFormatter>
.
- Add categories into
Cargo.toml
file. - Exclude examples folder from published package to decrease its size.
- README improvements.
- Exclude several redundant files and folders from published package to decrease its size.
ConsoleLogger
now does not include timestamp into log string, it can be done byenv_logger
.ConsoleLogger
now ignores provided level when receive error kind log records.- Several README improvements.
- Extend
LoggedStream
structure with fourth part which will be responsible for log records filter. - Added new trait
RecordFilter
which must be implemented by new fourth part ofLoggedStream
. - Added several implementations of
RecordFilter
trait:DefaultFilter
which accepts all log records andRecordKindFilter
which accepts log records with kinds specified during construct. - Improved several sections inside README file.
- Removed redundant dependencies features.
Initial release