Skip to content

Releases: SlickQuant/slick-logger

Release v1.0.8

02 Apr 21:02

Choose a tag to compare

Changes

  • Add cross-DSO logger instance sharing via Logger::set_instance() and Logger::clear_instance_override()
    • Enables plugin/shared-library architectures where dynamically-loaded modules should route LOG_* calls to the host application's logger
    • instance() now uses an std::atomic<Logger*> initialized to the library-local singleton, swappable at runtime
    • Thread-safe: atomic acquire-release ordering ensures full visibility of the target logger's initialization
  • Add Logger::flush(): blocks until all queued log entries are written, then returns with the logger still running
    • Use before FreeLibrary/dlclose to drain entries whose format-string pointers live in the plugin's code segment

Release v1.0.7

31 Mar 02:06

Choose a tag to compare

Changes

  • Add to_log_level function

Release v1.0.6

13 Feb 07:39

Choose a tag to compare

Changes

  • Fix logging through downstream const char* format bridge with std::format_args
    • Dynamic (non-literal) format strings are now copied into the internal string queue so they remain valid across the async writer boundary
    • Dynamic format strings now support arguments instead of requiring zero args
  • Fix string queue copy path to null-terminate using explicit payload length
  • Add regression test for const char* + std::format_args bridge logging

Release v1.0.5

10 Feb 17:26

Choose a tag to compare

Changes

  • Add std::format_args support: pass a pre-built std::format_args object directly to any log call
    • Arguments are unpacked and copied into the log entry on the calling thread (safe across thread boundary)
    • Supports all standard std::basic_format_arg types: bool, char, int, unsigned, long long, unsigned long long, float, double, long double, const char*, string_view, and void*
    • Custom formatter types (std::formatter handle) are not supported; they will be logged as <handle>
    • Fix const void* handling in enqueue_argument (also benefits regular pointer logging)

  • Updated cmake config template to avoid cmake config warning

Release v1.0.4

14 Jan 03:21

Choose a tag to compare

Changes

  • Updated to slick-queue v1.2.2
  • Try find slick-queue using CONFIG mode first before falling back to fetching it manually
  • Renamed repository from slick_logger to slick-logger (hyphenated naming follows recommended convention)
  • Changed export name from slick::slick_logger to slick::logger
  • Refactored repository name in CMake configuration files
  • Updated documentation and build references to use new repository name

Release v1.0.3

09 Jan 01:23

Choose a tag to compare

Changes

  • Fix crash when logging empty string_view values
    • Add length check before memcpy in store_string_in_queue() to handle empty strings safely
    • Set null terminator directly for zero-length strings instead of copying
  • Add comprehensive unit test for empty string_view logging (EmptyStringView test)

Release v1.0.2

03 Jan 18:40

Choose a tag to compare

Changes

  • Update slick_queue to v1.2.1
  • Added GitHub release workflow
  • Update Copyright years

v1.0.1

15 Nov 01:52

Choose a tag to compare

  • Update slick_queue to v1.1.2
  • Added vcpkg integration
  • Changed version number to three digits
  • Added alias targets

v1.0.0.8

21 Oct 23:26

Choose a tag to compare

  • Update slick_queue to v1.1.0.2
  • Change include folder from include/slick_logger to include/slick

v1.0.0.7

21 Oct 15:32

Choose a tag to compare

  • Update slick_queue to v1.1.0.1
  • Change namespace from slick_logger to slick::logger