Skip to content

v2.8.0

Compare
Choose a tag to compare
@odygrd odygrd released this 19 Apr 20:38
· 489 commits to master since this release
e42e579

Breaking Changes
(see improvements section for more details)

  • If you were previously compiling with -DQUILL_USE_BOUNDED_QUEUE or QUILL_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 of quill::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 creating quill::time_rotating_file_handler
    and quill::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 in Config.h (#256)
  • For quill::rotating_file_handler(...) and quill::time_rotating_file_handler(...) the backup_count argument is
    now default to std::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.
    When TimestampClockType::Tsc is used as the default clock type in Config.h this class
    can also be used to generate timestamps that are in sync with the timestamps in the log
    file. (#264)
  • Both Unbounded and Bounded queue modes can now be used without having to recompile quill library. This is still
    not a runtime option, you still need to recompile your target and pass QUILL_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 to backend_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 and QUILL_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) in Quill.h. This makes it possible to remove a logger in a thread safe
    way. When a logger is removed any associated FileHandlers 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 of quill::Handler*. See
    example_file_callbacks.cpp
  • Added quill::wake_up_logging_thread() in Quill.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)