Releases: odygrd/quill
Releases · odygrd/quill
v1.4.1
v1.4.0
- Added support for printing colour codes in the terminal. See ConsoleHandler
- RotatingFileHandler improvements and minor change in API. See RotatingFileHandler
- DailyFileHandler is removed and replaced by TimeRotatingFileHandler. See TimeRotatingFileHandler
- Added backtrace logging. Log messages can be stored in a buffer and flushed later on demand. See Backtrace Logging
- Added bundled
doctest
2.4.0
- Migrated all tests from
gtest
todoctest
. - Upgraded bundled libfmt to
7.0.3
v1.3.3
v1.3.2
v1.3.1
v1.3.0
New Features
- Added option
QUILL_NO_EXCEPTIONS
to disable exceptions, std::abort() is called instead of an expection. (#16) - Exceptions thrown in the backend worker thread, will now call a user provided error handler callback to handle the error. (#21)
- Compile time checks for unsafe to copy user defined types. Non trivial user defined types must be explicitly tagged as safe to copy with the use of
QUILL_COPY_LOGGABLE;
. Otherwise they have to be formatted and passed as a string to the logger by the user. The old unsafe mode is still usable by#define QUILL_MODE_UNSAFE
(#20) - Added
QUILL_USE_BOUNDED_QUEUE
. In this mode no new queues get allocated but instead log messages get lost. Number of lost messages is reported to stderr. - Minor hot path optimisation. The pointer to the metadata for each log message is no logger copied to the queue but passed as a template argument instead.
- Added a latency benchmark, easily extendable for any logger
Improvements/Fixes
QUILL_RDTSC_CLOCK
option is replaced byQUILL_CHRONO_CLOCK
which is by OFF by default.- Improve compiler error message when trying to log a non copy constructible user defined type
- Fix buffer reallocation bug on TimestampFormatter. In previous versions any timestamp format set to
set_pattern
expanding to a string longer than 32 bytes would cause a crash. (#24) - The backend logging thread will now copy all messages from the SPSC queue to a local priority queue. This keeps the SPSC less empty avoiding a potential allocation on the hot path.
std::string_view
is now promoted tostd::string
to take a deep copy- The queue capacity has been moved from
config
toTweakme.h
. - Multiple formats patterns support for
stdout
andstderr
handlers. See example_stdout_multiple_formatters.cpp quill::start()
will now block until the backend worker has started.- Upgraded bundled libfmt to
6.2.1
v1.2.3
v1.2.2
v1.2.1
v1.2.0
- Linking and including an external version of
fmt
is now supported. See TweakMe.h - Fixed compiler warnings when using clang's
-Wdocumentation
. (#12) - Fixed a bug that wouldn't report a compile-time error for invalid format strings. (#13)
- Added process ID to Formatter. (#14)
- Enhanced timestamp formatting. The
timestamp_format
string passed inhandler->set_pattern(format_pattern, timestamp_format, timezone)
now accepts three additional specifiers%Qms
,%Qus
,%Qus
that can be used to format the fractional seconds. See here. (#15)