All Versions
Latest Version
Avg Release Cycle
18 days
Latest Release

Changelog History
Page 4

  • v1.3.3 Changes

    July 31, 2020


    • โฌ†๏ธ Upgraded bundled libfmt to 7.0.2
    • ๐Ÿ›  Fixed compile error with libfmt versions > '7.0.0'
  • v1.3.2 Changes

    May 14, 2020
    • ๐Ÿ‘‰ 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 Changes

    May 13, 2020
    • Minor CMake fixes when QUILL_FMT_EXTERNAL option is used.
  • v1.3.0 Changes

    May 13, 2020

    ๐Ÿ†• New Features

    • Added option QUILL_NO_EXCEPTIONS to disable exceptions, std::abort() is called instead of an exception. (#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 Changes

    April 24, 2020
    • ๐Ÿ“ฆ CMake changes to support package installation in conan.
  • v1.2.2 Changes

    April 24, 2020
    • ๐Ÿ‘ Support for arm/arm64. (#19)
    • Add a cmake option QUILL_ENABLE_INSTALL to enable cpack.
  • v1.2.1 Changes

    April 20, 2020
    • 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 Changes

    April 18, 2020
    • ๐Ÿ”— 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)
  • v1.1.0 Changes

    April 12, 2020
    • โž• Added daily file handler. The file handler rollover every 24 hours.
    • โž• Added rotating file handler. The file handler will rollover based on the size of the file.
    • MinGW compatibility.
    • Added a CMake option QUILL_VERBOSE_MAKEFILE. Building Quill as a master project now defaults to non verbose makefile output unless -DQUILL_VERBOSE_MAKEFILE=ON is passed to CMake. Fixes #6.
    • ๐Ÿ‘ท Flush policy improvement. Previously Quill backend worker thread would never flush. This made watching the live log of the application harder because the user has to wait for the operating system to flush or quill::flush() had to be called on the caller threads. This has now been fixed, when the backend thread worker has no more log messages to process it will automatically flush. Fixes #8.
    • ๐ŸŒฒ The log level names have been changed from "LOG_INFO", "LOG_DEBUG", etc to "INFO", "DEBUG", etc .. The default formatter string is now using "LOG_"%(level_name) instead of %(level_name) therefore there is now change in the behaviour. This change gives a lot of more flexibility to users who prefer to see e.g. INFO instead of LOG_INFO in the logs. Fixes #7.
    • ๐Ÿ›  An option has been added to append the date to the filename when using a FileHandler quill::file_handler(filename, mode, FilenameAppend);. Fixes #7.
    • ๐Ÿ– It is now possible to specify the timezone of each handler timestamp. A new parameter is added to file_handler->set_pattern(...). See PatternFormatter::Timezone. Fixes #7.
    • ๐Ÿ›  Rename emit as it can confict with Qt macros. Fixes #4.
    • โฌ†๏ธ Upgraded libfmt to 6.2.0.
  • v1.0.0 Changes

    March 02, 2020
    • ๐Ÿš€ Initial release.
    • Using libfmt to 6.1.2.