All Versions
40
Latest Version
Avg Release Cycle
18 days
Latest Release
-

Changelog History
Page 2

  • v2.1.0 Changes

    👌 Improvements

    🔧 This version includes breaking changes to the API. Those changes are related to how quill is configured, before calling quill::start() to start the backend thread.

    ⚡️ Check the updated examples.

    🔧 Config.h - contains runtime configuration options

    🔧 TweakMe.h - contains compile time configuration

    0️⃣ For example quill::set_default_logger_handler(...) has been removed. To set a default filehandler :

      // create a handler
      quill::Handler* file_handler = quill::file_handler("test.log", "w");
    
      file_handler->set_pattern(
        "%(ascii_time) [%(thread)] %(fileline:<28) %(level_name) %(logger_name:<12) - %(message)",
        "%Y-%m-%d %H:%M:%S.%Qms", quill::Timezone::GmtTime);
    
      // set the handler as the default handler for any newly created logger in the config
      quill::Config cfg;
      cfg.default_handlers.emplace_back(file_handler);
    
      // configure must always be called prior to `start()`
      quill::configure(cfg);
      quill::start();
    
    • ✂ Removed some API functions from Quill.h that were previously used for configuration. Instead, quill::Config object has to be created. For example quill::config::set_backend_thread_cpu_affinity(1); has been removed and instead the following code is needed :
      quill::Config cfg;
      cfg.backend_thread_cpu_affinity = 1;
      quill::configure(cfg);
    
    • QUILL_CHRONO_CLOCK has been moved from TweakMe.h to Config.h. It is now possible to switch between rdtsc and system clocks without re-compiling. See example_trivial_system_clock.cpp
    • QUILL_RDTSC_RESYNC_INTERVAL has been moved from TweakMe.h to Config.h.
    • 🌲 It is now possible to log user timestamps rather than the system's. This feature is useful for time simulations. See example_custom_clock.cpp and example_custom_clock_advanced.cpp
    • 🚚 Previously the logger names were limited to a maximum of 22 characters. This limitation has been removed.
    • ➕ Added support for gcc 7.5.0. (#178)
    • ⚡️ Updated bundled fmt to 9.0.0
  • v2.0.3 Changes

    🚀 (to be released...)

    👌 Improvements/Fixes

    • ➕ Add support for gcc 7.5.0. (#178)
  • v2.0.2 Changes

    🛠 Fixes

    • 🛠 Fix crash when a std::string containing null-terminated characters is passed to the logger. (#176)
  • v2.0.1 Changes

    👌 Improvements

    • ➕ Add a flag to RotatingFileHandler to disable removing the old files when w mode is used.
  • v2.0.0 Changes

    👍 From version v2 and onwards only c++17 is supported.

    🔨 This version is a major refactor.

    🛠 Fixes

    • RotatingFileHandler will now correctly rotate the files when append mode is used (#123)

    👌 Improvements

    • ⬇️ Reduced and simplified codebase.
    • 👌 Improved backend worker thread performance.
    • QUILL_DUAL_QUEUE_MODE has been removed. A single queue now handles every case.
    • 🚚 QUILL_STRING has been removed. That macro is no longer required when passing a format string to the PatternFormatter.

    Differences

    • v1.7 compiles with c++14, v2 only compiles for c++17.
    • 🏁 v1.7 on Windows supports wide character logging, v2 has limited wide character support such as logging wchar_t , std::wstring, std::wstring_view. For example, logging std::vector<std::wstring> is not supported.
    • 🏁 v1.7 on Windows requires the filepath used for the handlers as a wide strings, v2 supports only filenames as narrow strings.
  • v1.7.3 Changes

    👌 Improvements/Fixes

    • 🛠 Fix crash on windows when a long wstring (>500 chars) is logged (#173)
    • 🛠 Fix compiler error when trying to compile with -DQUILL_DISABLE_NON_PREFIXED_MACROS (#174)
    • 🛠 Fix a compile warning in clang (#175)
  • v1.7.2 Changes

    👌 Improvements/Fixes

    • 🛠 Fix compile error when C++20 is used on windows (#162)
  • v1.7.1 Changes

    👌 Improvements/Fixes

    • 🛠 Fix support for wide characters on Windows (#168)
    • 🛠 Fix compilation error when Quill::Logger* is stored as a class member in templated classes
    • ➕ Add FilenameAppend::DateTime as an option when creating a file handler
  • v1.7.0 Changes

    🆕 New Features

    • Add a new function quill::get_all_loggers() that returns all the existing loggers. (#114)
    • ➕ Add %(level_id) to pattern formatter. (#136)
    • 👉 Users can now specialise copy_loggable<T> to mark user defined types as safe to copy. (#132)

    👌 Improvements/Fixes

    • 🛠 Fix initializations for C++17.
    • 🛠 Fix compiler warning in check_format() function.
    • Replace QUILL_DUAL_QUEUE_MODE with QUILL_DISABLE_DUAL_QUEUE_MODE.
    • ⚡️ Update bundled fmt to 8.1.1
    • 🐎 Minor performance and accuracy improvements to rdtsc clock used by the backend thread.
    • 🛠 Fix compile error when C++20 is used. (#162)
    • Fix get_page_size() to only call sysconf once. (#160)
    • 🛠 Fix incorrect timestamps in the log file when the system clock is updated. (#127)
    • 🚦 Previously if quill:start(true) was called more than once in the application, the signal handlers would get initialised again. Now any subsequent calls to quill:start(true) will now have no effect (#167)
    • Previously when the max limit of rotated files in RotatingFileHandler was reached, quill would stop rotating and instead keep logging everything into the last log file. Now when the maximum limit of files is reached, quill will now keep rotating by replacing the oldest logs. (#157)
    • 👌 Improve the backend logging thread responsiveness when variables are logged in loops without any delay from multiple threads. (#116)
    • 🛠 Fix some undefined behaviour issues reported via the AddressSantizer on the backend logging thread. (#166)
  • v1.6.4 Changes

    🆕 New Features

    • Add a new function quill::get_all_loggers() that returns all the existing loggers. (#114)
    • ➕ Add %(level_id) to pattern formatter. (#136)

    👌 Improvements/Fixes

    • 🛠 Fix initializations for C++17.
    • 🛠 Fix compiler warning in check_format function.
    • Replace QUILL_DUAL_QUEUE_MODE with QUILL_DISABLE_DUAL_QUEUE_MODE.
    • ⚡️ Update bundled fmt to 8.1.1
    • 🐎 Minor performance and accuracy improvements to rdtsc clock used by the backend thread.
    • 🛠 Fix compile error when C++20 is used. (#162)
    • Fix get_page_size() to only call sysconf once. (#160)
    • 🛠 Fix incorrect timestamps in the log file when the system clock is updated. (#127)