Skip to content

Releases: odygrd/quill

v1.4.1

18 Sep 21:11
94cecd8
Compare
Choose a tag to compare
  • Do not force quill to always build as static library in cmake.
  • Minor fix when quill is compiled with no exceptions.
  • Add the option to disable the non prefixed macro definitions if QUILL_DISABLE_NON_PREFIXED_MACROS is defined. (#40)

v1.4.0

15 Aug 17:28
Compare
Choose a tag to compare
  • 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 to doctest.
  • Upgraded bundled libfmt to 7.0.3

v1.3.3

31 Jul 18:37
Compare
Choose a tag to compare

v1.3.3

  • Upgraded bundled libfmt to 7.0.2
  • Fixed compile error with libfmt versions > '7.0.0'

v1.3.2

14 May 20:54
Compare
Choose a tag to compare
  • Add a CMake option QUILL_USE_BOUNDED_QUEUE for bounded queue. (#30)
  • Fixed a clang 10 warning. (#29)
  • Fixed MinGw build on Windows. (#31)

v1.3.1

13 May 01:32
3d72126
Compare
Choose a tag to compare
  • Minor CMake fixes when QUILL_FMT_EXTERNAL option is used.

v1.3.0

13 May 00:32
Compare
Choose a tag to compare

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 by QUILL_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 to std::string to take a deep copy
  • The queue capacity has been moved from config to Tweakme.h.
  • Multiple formats patterns support for stdout and stderr 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

24 Apr 02:51
ba7c73d
Compare
Choose a tag to compare
  • CMake changes to fix package installation in conan

v1.2.2

24 Apr 02:24
f7208b6
Compare
Choose a tag to compare
  • Support for arm/arm64. (#19)
  • Add a cmake option QUILL_ENABLE_INSTALL to enable cpack

v1.2.1

20 Apr 13:32
Compare
Choose a tag to compare
  • Improved QUILL_RDTSC_CLOCK tweak option. It is now possible to switch between using rdtsc or std::chrono clock without having to recompile quill as library.

v1.2.0

18 Apr 15:22
fce925b
Compare
Choose a tag to compare
  • 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 in handler->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)