v2.8.0
Breaking Changes
(see improvements
section for more details)
- If you were previously compiling with
-DQUILL_USE_BOUNDED_QUEUE
orQUILL_X86ARCH
you should now pass the
flag to you target as it is not propagated by CMake anymore. - There is a change in the API in
Quill.h
instead ofquill::Handler*
you should now use
std::shared_ptr< quill::Handler >
and also move it to the created logger.
Improvements
- Add
append_to_filename
parameter when creatingquill::time_rotating_file_handler
andquill::rotating_file_handler
- Fix
Handlers
failing to find the file when the working directory of the application is changed in
runtime. (#247) - When the given output directory of a log file passed to a
Handler
does not exist, it will now get automatically
created. - Support Windows 10 LTSB 2016, 1607 and Server 2016. (#251)
- Add back
backend_thread_sleep_duration
inConfig.h
(#256) - For
quill::rotating_file_handler(...)
andquill::time_rotating_file_handler(...)
thebackup_count
argument is
now default tostd::numeric_limits<std::uint32_t>::max()
- When the logging file is deleted from the command line while the logger is still using it, then a new file will be
reopened for writing. - Added
quill::Clock
which enables taking and converting TSC timestamps to system clock timestamps.
WhenTimestampClockType::Tsc
is used as the default clock type inConfig.h
this class
can also be used to generate timestamps that are in sync with the timestamps in the log
file. (#264) - Both
Unbounded
andBounded
queue modes can now be used without having to recompilequill
library. This is still
not a runtime option, you still need to recompile your target and passQUILL_USE_BOUNDED_QUEUE
as a flag.
See example_bounded_queue_message_dropping.cpp - Added
QUILL_USE_BOUNDED_BLOCKING_QUEUE
option that makes possible to use a bounded queue which blocks the hot
thread rather than dropping messages (#270)
See example_bounded_queue_blocking.cpp - Renamed
backend_thread_max_transit_events
tobackend_thread_transit_events_soft_limit
in
Config.h (#270) - Added
backend_thread_transit_events_hard_limit
in Config.h (#270) - Added
backend_thread_use_transit_buffer
in Config.h (#270) - CMake:
QUILL_X86ARCH
andQUILL_USE_BOUNDED_QUEUE
options have been removed. The users can decide on enabling these
options on their side and quill doesn't need to be recompiled as a library. For example :target_compile_definitions(<target> PUBLIC QUILL_X86ARCH QUILL_USE_BOUNDED_QUEUE)
- Added
quill::remove_logger(Logger* logger)
inQuill.h
. This makes it possible to remove a logger in a thread safe
way. When a logger is removed any associatedFileHandlers
with that logger will also be removed and the files will
also be closed as long as they are not being used by another logger. The logger is asynchronously removed by the
logging
thread after all the messages are written. To achieve this the API had to change to return a
std::shared_ptr< quill::Handler >
instead ofquill::Handler*
. See
example_file_callbacks.cpp - Added
quill::wake_up_logging_thread()
inQuill.h
. This thread safe function can be used to wake up the backend
logging thread on demand. (#280) - Round up queue capacity to the nearest power of 2. (#282)