Skip to content

Releases: efmsoft/logme

v2.4.15

13 Apr 05:13

Choose a tag to compare

2.4.15

Added

  • Added ContextCache support in logging macros and dispatch paths to cache per-call-site context data.
  • Added GetDefaultChannelPtr() helper for accessing the default channel as a ChannelPtr.
  • Added LogmeX_Once / LogmeX_Every helpers and completed once / rate-limited override support.
  • Added OnceEvery and DumpBuffer examples.
  • Added optional diagnostic counters for FileBackend, FileManager, and BufferQueue to simplify performance analysis.

Improved

  • Reduced hot-path overhead by switching selected ChannelPtr passing paths to references where appropriate.
  • Optimized BufferQueue and related file-output paths.
  • Reduced spurious flush requests and unnecessary FileManager wakeups during file logging.
  • Improved support for precheck-based early logging decisions.

Fixed

  • Fixed double evaluation in logging macros.
  • Fixed stream Context lifetime issues.
  • Fixed build issues affecting general builds, including Clang and CLion configurations.

2.4.14

Fixed

  • Suppressed warnings when passing non-trivial objects to fLogme* macros.

2.4.13

Added

  • Added FastFormat optimized formatting path for common logging scenarios.
  • Added protection against recursive logging in the same channel.

Improved

  • Improved file output performance, reducing overhead in heavy logging workloads.
  • Optimized FileBackend and buffering paths to reduce contention.
  • Improved BufferQueue behavior and allocation patterns under concurrency.
  • Optimized hot-path checks for channel activity using cached / thread-local mechanisms.
  • Reduced overhead of repeated isatty detection for console output.
  • Improved console handling when output is redirected (non-TTY targets).
  • Added automatic ANSI escape stripping for non-TTY outputs.

Fixed

  • Fixed several edge cases discovered during performance optimization work.
  • Fixed minor correctness issues in logging paths and backend handling.
  • Fixed small build and portability issues.

Notes

  • This release mainly focuses on performance and hot-path optimizations.
  • No major API changes.

2.4.11

Improvements

  • Optimized channel behavior when the backend list is empty.
  • Optimized FileBackend under intensive write load by reducing duplicate RequestFlush calls.

2.4.6

Fixed

  • Updated GitHub release workflow (release.yml): corrected Windows artifacts packaging (headers and libraries are now included in release archives).

Notes

  • No library code changes since 2.4.4.
  • This release only affects CI/release packaging.

2.4.4

Fixed

  • Fixed CMake build directory escaping in add_subdirectory() calls (../out/...out/...).
    This prevents debug/release build races when building in parallel (e.g. vcpkg).

2.4.2

Fixed

  • Fixed vcpkg CI failures when building examples/tests/tools with shared or static configurations.
  • Centralized library selection via LOGME_LINK_TARGET for all examples, tests, and tools.
  • Centralized Windows runtime DLL copy (logmed) using LogmeCopyRuntime() helper.
  • Made _LOGME_STATIC_BUILD_ consistently follow LOGME_LINK_TARGET (including logmectl).

logme release notes

v1.6.0 2026-01-13

Highlights

  • Fixed Windows shared builds with tests enabled under vcpkg: test discovery (gtest_discover_tests) no longer fails due to missing runtime DLLs.
  • Improved build-tree runtime behavior for shared builds: required DLLs are copied next to produced executables so tests and examples can run reliably without PATH tweaks.

Packaging / Build system

  • For Windows shared builds (USE_LOGME_SHARED=ON), executables built in subfolders (tests/examples/tools) receive required runtime DLLs in their output directory.
  • This addresses 0xc0000135 launch failures during build-time test discovery on Windows.

vcpkg integration

  • Shared builds with examples, tests, and tools features enabled build and execute correctly in vcpkg environments.

Notes

  • No public API changes.
  • Static build behavior remains unchanged.

v1.4.0 2026-01-13

Packaging / Build system

  • Fixed shared build usability on Windows: test, example, and tool executables now correctly locate logmed.dll at runtime.
  • In shared builds, logmed.dll is copied next to each executable (tests, examples, tools) to ensure reliable execution during build and test discovery.
  • This resolves failures of gtest_discover_tests() on Windows when building with shared libraries.

vcpkg integration

  • Improved compatibility with vcpkg dynamic builds when examples, tests, or tools features are enabled.
  • Shared builds with enabled features now build and execute correctly without requiring PATH hacks or manual DLL copying.
  • The build flag USE_LOGME_SHARED is now fully respected by all in-tree examples, tests, and tools.

CMake / Project structure

  • All examples, tests, and tools consistently select logme or logmed by name based on USE_LOGME_SHARED.
  • No dependency on alias targets inside subprojects; direct add_subdirectory() usage remains fully supported.
  • Static build behavior remains unchanged.

Notes

  • No public API changes.
  • No behavioral changes for static builds.
  • This release focuses on build robustness and package-manager friendliness, especially on Windows.

v1.3.0

Highlights

  • Improved CMake packaging for vcpkg and other package managers: install/export rules and stable find_package(logme CONFIG) integration.
  • Added USE_LOGME_SHARED switch so in-tree examples/tests/tools can link against the shared library (logmed) when desired (e.g., vcpkg dynamic builds), while keeping static as the default when the switch is not defined.
  • Fixed GoogleTest discovery and enabled building gtest-based tests when GTest is available.

Notes

  • For static builds on Windows, consumers require _LOGME_STATIC_BUILD_ (propagated via targets in installed packages).
  • For shared builds, _LOGME_DLL_BUILD_ is used only while building the DLL (dllexport) and is not propagated to consumers (dllimport).

v1.2.0

Highlights

  • CMake and documentation improvements for easier integration.
  • Build system and example updates.

v1.1.0 (Jan 12, 2026)

Highlights

  • Control protocol refresh: protocol changes aimed at making runtime control more consistent and feature-complete.
  • Tooling & examples: continued work around the control ecosystem (including dynamic/ tooling and examples).
  • CI/build improvements: Windows CI was updated, including adding a dedicated MSBuild build of the repo .sln and switching the other Windows job to a Ninja+MSVC flow. (github.com)

Build / CI

  • Added Windows / MSBuild (repo logme.sln) job in CI (Debug/Release). (github.com)
  • Updated Windows CI build strategy to use Ninja with MSVC (cl) and simplified ctest invocation. (github.com)

Docs / repo

  • Repository documentation emphasizes that the library targets C++20 and that Visual Studio .sln is available on Windows. (github.com)

Note: if you want this section to be 100% exhaustive (feature-by-feature), I can expand it to a full changelog by walking the commit list between v1.0.0 and v1.1.0 and extracting the user-visible changes.


v1.0.0 (Jan 6, 2026)

Initial stable public release. (github.com)

logme is a compact cross-platform logging framework for C and C++
based on a channel-oriented architecture and flexible message routing. (github.com)

Key features:

  • Channel-based logging architecture
  • Multiple logging APIs:
    • C-style macros
    • C++ stream-style interface
    • std::format-based API (when enabled)
  • Multiple backends:
    • Console
    • File
    • Debugger
    • In-memory buffer
  • Cross-platform support (Windows, Linux)

Public API is considered stable starting from this release. (github.com)

v2.4.14

22 Mar 08:51

Choose a tag to compare

2.4.14

Fixed

  • Suppressed warnings when passing non-trivial objects to fLogme* macros.

2.4.13

Added

  • Added FastFormat optimized formatting path for common logging scenarios.
  • Added protection against recursive logging in the same channel.

Improved

  • Improved file output performance, reducing overhead in heavy logging workloads.
  • Optimized FileBackend and buffering paths to reduce contention.
  • Improved BufferQueue behavior and allocation patterns under concurrency.
  • Optimized hot-path checks for channel activity using cached / thread-local mechanisms.
  • Reduced overhead of repeated isatty detection for console output.
  • Improved console handling when output is redirected (non-TTY targets).
  • Added automatic ANSI escape stripping for non-TTY outputs.

Fixed

  • Fixed several edge cases discovered during performance optimization work.
  • Fixed minor correctness issues in logging paths and backend handling.
  • Fixed small build and portability issues.

Notes

  • This release mainly focuses on performance and hot-path optimizations.
  • No major API changes.

2.4.11

Improvements

  • Optimized channel behavior when the backend list is empty.
  • Optimized FileBackend under intensive write load by reducing duplicate RequestFlush calls.

2.4.6

Fixed

  • Updated GitHub release workflow (release.yml): corrected Windows artifacts packaging (headers and libraries are now included in release archives).

Notes

  • No library code changes since 2.4.4.
  • This release only affects CI/release packaging.

2.4.4

Fixed

  • Fixed CMake build directory escaping in add_subdirectory() calls (../out/...out/...).
    This prevents debug/release build races when building in parallel (e.g. vcpkg).

2.4.2

Fixed

  • Fixed vcpkg CI failures when building examples/tests/tools with shared or static configurations.
  • Centralized library selection via LOGME_LINK_TARGET for all examples, tests, and tools.
  • Centralized Windows runtime DLL copy (logmed) using LogmeCopyRuntime() helper.
  • Made _LOGME_STATIC_BUILD_ consistently follow LOGME_LINK_TARGET (including logmectl).

logme release notes

v1.6.0 2026-01-13

Highlights

  • Fixed Windows shared builds with tests enabled under vcpkg: test discovery (gtest_discover_tests) no longer fails due to missing runtime DLLs.
  • Improved build-tree runtime behavior for shared builds: required DLLs are copied next to produced executables so tests and examples can run reliably without PATH tweaks.

Packaging / Build system

  • For Windows shared builds (USE_LOGME_SHARED=ON), executables built in subfolders (tests/examples/tools) receive required runtime DLLs in their output directory.
  • This addresses 0xc0000135 launch failures during build-time test discovery on Windows.

vcpkg integration

  • Shared builds with examples, tests, and tools features enabled build and execute correctly in vcpkg environments.

Notes

  • No public API changes.
  • Static build behavior remains unchanged.

v1.4.0 2026-01-13

Packaging / Build system

  • Fixed shared build usability on Windows: test, example, and tool executables now correctly locate logmed.dll at runtime.
  • In shared builds, logmed.dll is copied next to each executable (tests, examples, tools) to ensure reliable execution during build and test discovery.
  • This resolves failures of gtest_discover_tests() on Windows when building with shared libraries.

vcpkg integration

  • Improved compatibility with vcpkg dynamic builds when examples, tests, or tools features are enabled.
  • Shared builds with enabled features now build and execute correctly without requiring PATH hacks or manual DLL copying.
  • The build flag USE_LOGME_SHARED is now fully respected by all in-tree examples, tests, and tools.

CMake / Project structure

  • All examples, tests, and tools consistently select logme or logmed by name based on USE_LOGME_SHARED.
  • No dependency on alias targets inside subprojects; direct add_subdirectory() usage remains fully supported.
  • Static build behavior remains unchanged.

Notes

  • No public API changes.
  • No behavioral changes for static builds.
  • This release focuses on build robustness and package-manager friendliness, especially on Windows.

v1.3.0

Highlights

  • Improved CMake packaging for vcpkg and other package managers: install/export rules and stable find_package(logme CONFIG) integration.
  • Added USE_LOGME_SHARED switch so in-tree examples/tests/tools can link against the shared library (logmed) when desired (e.g., vcpkg dynamic builds), while keeping static as the default when the switch is not defined.
  • Fixed GoogleTest discovery and enabled building gtest-based tests when GTest is available.

Notes

  • For static builds on Windows, consumers require _LOGME_STATIC_BUILD_ (propagated via targets in installed packages).
  • For shared builds, _LOGME_DLL_BUILD_ is used only while building the DLL (dllexport) and is not propagated to consumers (dllimport).

v1.2.0

Highlights

  • CMake and documentation improvements for easier integration.
  • Build system and example updates.

v1.1.0 (Jan 12, 2026)

Highlights

  • Control protocol refresh: protocol changes aimed at making runtime control more consistent and feature-complete.
  • Tooling & examples: continued work around the control ecosystem (including dynamic/ tooling and examples).
  • CI/build improvements: Windows CI was updated, including adding a dedicated MSBuild build of the repo .sln and switching the other Windows job to a Ninja+MSVC flow. (github.com)

Build / CI

  • Added Windows / MSBuild (repo logme.sln) job in CI (Debug/Release). (github.com)
  • Updated Windows CI build strategy to use Ninja with MSVC (cl) and simplified ctest invocation. (github.com)

Docs / repo

  • Repository documentation emphasizes that the library targets C++20 and that Visual Studio .sln is available on Windows. (github.com)

Note: if you want this section to be 100% exhaustive (feature-by-feature), I can expand it to a full changelog by walking the commit list between v1.0.0 and v1.1.0 and extracting the user-visible changes.


v1.0.0 (Jan 6, 2026)

Initial stable public release. (github.com)

logme is a compact cross-platform logging framework for C and C++
based on a channel-oriented architecture and flexible message routing. (github.com)

Key features:

  • Channel-based logging architecture
  • Multiple logging APIs:
    • C-style macros
    • C++ stream-style interface
    • std::format-based API (when enabled)
  • Multiple backends:
    • Console
    • File
    • Debugger
    • In-memory buffer
  • Cross-platform support (Windows, Linux)

Public API is considered stable starting from this release. (github.com)

v2.4.13

15 Mar 07:42

Choose a tag to compare

2.4.13

Added

  • Added FastFormat optimized formatting path for common logging scenarios.
  • Added protection against recursive logging in the same channel.

Improved

  • Improved file output performance, reducing overhead in heavy logging workloads.
  • Optimized FileBackend and buffering paths to reduce contention.
  • Improved BufferQueue behavior and allocation patterns under concurrency.
  • Optimized hot-path checks for channel activity using cached / thread-local mechanisms.
  • Reduced overhead of repeated isatty detection for console output.
  • Improved console handling when output is redirected (non-TTY targets).
  • Added automatic ANSI escape stripping for non-TTY outputs.

Fixed

  • Fixed several edge cases discovered during performance optimization work.
  • Fixed minor correctness issues in logging paths and backend handling.
  • Fixed small build and portability issues.

Notes

  • This release mainly focuses on performance and hot-path optimizations.
  • No major API changes.

2.4.11

Improvements

  • Optimized channel behavior when the backend list is empty.
  • Optimized FileBackend under intensive write load by reducing duplicate RequestFlush calls.

2.4.6

Fixed

  • Updated GitHub release workflow (release.yml): corrected Windows artifacts packaging (headers and libraries are now included in release archives).

Notes

  • No library code changes since 2.4.4.
  • This release only affects CI/release packaging.

2.4.4

Fixed

  • Fixed CMake build directory escaping in add_subdirectory() calls (../out/...out/...).
    This prevents debug/release build races when building in parallel (e.g. vcpkg).

2.4.2

Fixed

  • Fixed vcpkg CI failures when building examples/tests/tools with shared or static configurations.
  • Centralized library selection via LOGME_LINK_TARGET for all examples, tests, and tools.
  • Centralized Windows runtime DLL copy (logmed) using LogmeCopyRuntime() helper.
  • Made _LOGME_STATIC_BUILD_ consistently follow LOGME_LINK_TARGET (including logmectl).

logme release notes

v1.6.0 2026-01-13

Highlights

  • Fixed Windows shared builds with tests enabled under vcpkg: test discovery (gtest_discover_tests) no longer fails due to missing runtime DLLs.
  • Improved build-tree runtime behavior for shared builds: required DLLs are copied next to produced executables so tests and examples can run reliably without PATH tweaks.

Packaging / Build system

  • For Windows shared builds (USE_LOGME_SHARED=ON), executables built in subfolders (tests/examples/tools) receive required runtime DLLs in their output directory.
  • This addresses 0xc0000135 launch failures during build-time test discovery on Windows.

vcpkg integration

  • Shared builds with examples, tests, and tools features enabled build and execute correctly in vcpkg environments.

Notes

  • No public API changes.
  • Static build behavior remains unchanged.

v1.4.0 2026-01-13

Packaging / Build system

  • Fixed shared build usability on Windows: test, example, and tool executables now correctly locate logmed.dll at runtime.
  • In shared builds, logmed.dll is copied next to each executable (tests, examples, tools) to ensure reliable execution during build and test discovery.
  • This resolves failures of gtest_discover_tests() on Windows when building with shared libraries.

vcpkg integration

  • Improved compatibility with vcpkg dynamic builds when examples, tests, or tools features are enabled.
  • Shared builds with enabled features now build and execute correctly without requiring PATH hacks or manual DLL copying.
  • The build flag USE_LOGME_SHARED is now fully respected by all in-tree examples, tests, and tools.

CMake / Project structure

  • All examples, tests, and tools consistently select logme or logmed by name based on USE_LOGME_SHARED.
  • No dependency on alias targets inside subprojects; direct add_subdirectory() usage remains fully supported.
  • Static build behavior remains unchanged.

Notes

  • No public API changes.
  • No behavioral changes for static builds.
  • This release focuses on build robustness and package-manager friendliness, especially on Windows.

v1.3.0

Highlights

  • Improved CMake packaging for vcpkg and other package managers: install/export rules and stable find_package(logme CONFIG) integration.
  • Added USE_LOGME_SHARED switch so in-tree examples/tests/tools can link against the shared library (logmed) when desired (e.g., vcpkg dynamic builds), while keeping static as the default when the switch is not defined.
  • Fixed GoogleTest discovery and enabled building gtest-based tests when GTest is available.

Notes

  • For static builds on Windows, consumers require _LOGME_STATIC_BUILD_ (propagated via targets in installed packages).
  • For shared builds, _LOGME_DLL_BUILD_ is used only while building the DLL (dllexport) and is not propagated to consumers (dllimport).

v1.2.0

Highlights

  • CMake and documentation improvements for easier integration.
  • Build system and example updates.

v1.1.0 (Jan 12, 2026)

Highlights

  • Control protocol refresh: protocol changes aimed at making runtime control more consistent and feature-complete.
  • Tooling & examples: continued work around the control ecosystem (including dynamic/ tooling and examples).
  • CI/build improvements: Windows CI was updated, including adding a dedicated MSBuild build of the repo .sln and switching the other Windows job to a Ninja+MSVC flow. (github.com)

Build / CI

  • Added Windows / MSBuild (repo logme.sln) job in CI (Debug/Release). (github.com)
  • Updated Windows CI build strategy to use Ninja with MSVC (cl) and simplified ctest invocation. (github.com)

Docs / repo

  • Repository documentation emphasizes that the library targets C++20 and that Visual Studio .sln is available on Windows. (github.com)

Note: if you want this section to be 100% exhaustive (feature-by-feature), I can expand it to a full changelog by walking the commit list between v1.0.0 and v1.1.0 and extracting the user-visible changes.


v1.0.0 (Jan 6, 2026)

Initial stable public release. (github.com)

logme is a compact cross-platform logging framework for C and C++
based on a channel-oriented architecture and flexible message routing. (github.com)

Key features:

  • Channel-based logging architecture
  • Multiple logging APIs:
    • C-style macros
    • C++ stream-style interface
    • std::format-based API (when enabled)
  • Multiple backends:
    • Console
    • File
    • Debugger
    • In-memory buffer
  • Cross-platform support (Windows, Linux)

Public API is considered stable starting from this release. (github.com)

v2.4.11

20 Feb 17:39

Choose a tag to compare

2.4.11

Improvements

  • Optimized channel behavior when the backend list is empty.
  • Optimized FileBackend under intensive write load by reducing duplicate RequestFlush calls.

2.4.6

Fixed

  • Updated GitHub release workflow (release.yml): corrected Windows artifacts packaging (headers and libraries are now included in release archives).

Notes

  • No library code changes since 2.4.4.
  • This release only affects CI/release packaging.

2.4.4

Fixed

  • Fixed CMake build directory escaping in add_subdirectory() calls (../out/...out/...).
    This prevents debug/release build races when building in parallel (e.g. vcpkg).

2.4.2

Fixed

  • Fixed vcpkg CI failures when building examples/tests/tools with shared or static configurations.
  • Centralized library selection via LOGME_LINK_TARGET for all examples, tests, and tools.
  • Centralized Windows runtime DLL copy (logmed) using LogmeCopyRuntime() helper.
  • Made _LOGME_STATIC_BUILD_ consistently follow LOGME_LINK_TARGET (including logmectl).

logme release notes

v1.6.0 2026-01-13

Highlights

  • Fixed Windows shared builds with tests enabled under vcpkg: test discovery (gtest_discover_tests) no longer fails due to missing runtime DLLs.
  • Improved build-tree runtime behavior for shared builds: required DLLs are copied next to produced executables so tests and examples can run reliably without PATH tweaks.

Packaging / Build system

  • For Windows shared builds (USE_LOGME_SHARED=ON), executables built in subfolders (tests/examples/tools) receive required runtime DLLs in their output directory.
  • This addresses 0xc0000135 launch failures during build-time test discovery on Windows.

vcpkg integration

  • Shared builds with examples, tests, and tools features enabled build and execute correctly in vcpkg environments.

Notes

  • No public API changes.
  • Static build behavior remains unchanged.

v1.4.0 2026-01-13

Packaging / Build system

  • Fixed shared build usability on Windows: test, example, and tool executables now correctly locate logmed.dll at runtime.
  • In shared builds, logmed.dll is copied next to each executable (tests, examples, tools) to ensure reliable execution during build and test discovery.
  • This resolves failures of gtest_discover_tests() on Windows when building with shared libraries.

vcpkg integration

  • Improved compatibility with vcpkg dynamic builds when examples, tests, or tools features are enabled.
  • Shared builds with enabled features now build and execute correctly without requiring PATH hacks or manual DLL copying.
  • The build flag USE_LOGME_SHARED is now fully respected by all in-tree examples, tests, and tools.

CMake / Project structure

  • All examples, tests, and tools consistently select logme or logmed by name based on USE_LOGME_SHARED.
  • No dependency on alias targets inside subprojects; direct add_subdirectory() usage remains fully supported.
  • Static build behavior remains unchanged.

Notes

  • No public API changes.
  • No behavioral changes for static builds.
  • This release focuses on build robustness and package-manager friendliness, especially on Windows.

v1.3.0

Highlights

  • Improved CMake packaging for vcpkg and other package managers: install/export rules and stable find_package(logme CONFIG) integration.
  • Added USE_LOGME_SHARED switch so in-tree examples/tests/tools can link against the shared library (logmed) when desired (e.g., vcpkg dynamic builds), while keeping static as the default when the switch is not defined.
  • Fixed GoogleTest discovery and enabled building gtest-based tests when GTest is available.

Notes

  • For static builds on Windows, consumers require _LOGME_STATIC_BUILD_ (propagated via targets in installed packages).
  • For shared builds, _LOGME_DLL_BUILD_ is used only while building the DLL (dllexport) and is not propagated to consumers (dllimport).

v1.2.0

Highlights

  • CMake and documentation improvements for easier integration.
  • Build system and example updates.

v1.1.0 (Jan 12, 2026)

Highlights

  • Control protocol refresh: protocol changes aimed at making runtime control more consistent and feature-complete.
  • Tooling & examples: continued work around the control ecosystem (including dynamic/ tooling and examples).
  • CI/build improvements: Windows CI was updated, including adding a dedicated MSBuild build of the repo .sln and switching the other Windows job to a Ninja+MSVC flow. (github.com)

Build / CI

  • Added Windows / MSBuild (repo logme.sln) job in CI (Debug/Release). (github.com)
  • Updated Windows CI build strategy to use Ninja with MSVC (cl) and simplified ctest invocation. (github.com)

Docs / repo

  • Repository documentation emphasizes that the library targets C++20 and that Visual Studio .sln is available on Windows. (github.com)

Note: if you want this section to be 100% exhaustive (feature-by-feature), I can expand it to a full changelog by walking the commit list between v1.0.0 and v1.1.0 and extracting the user-visible changes.


v1.0.0 (Jan 6, 2026)

Initial stable public release. (github.com)

logme is a compact cross-platform logging framework for C and C++
based on a channel-oriented architecture and flexible message routing. (github.com)

Key features:

  • Channel-based logging architecture
  • Multiple logging APIs:
    • C-style macros
    • C++ stream-style interface
    • std::format-based API (when enabled)
  • Multiple backends:
    • Console
    • File
    • Debugger
    • In-memory buffer
  • Cross-platform support (Windows, Linux)

Public API is considered stable starting from this release. (github.com)

v2.4.10

08 Feb 08:38

Choose a tag to compare

2.4.6

Fixed

  • Updated GitHub release workflow (release.yml): corrected Windows artifacts packaging (headers and libraries are now included in release archives).

Notes

  • No library code changes since 2.4.4.
  • This release only affects CI/release packaging.

2.4.4

Fixed

  • Fixed CMake build directory escaping in add_subdirectory() calls (../out/...out/...).
    This prevents debug/release build races when building in parallel (e.g. vcpkg).

2.4.2

Fixed

  • Fixed vcpkg CI failures when building examples/tests/tools with shared or static configurations.
  • Centralized library selection via LOGME_LINK_TARGET for all examples, tests, and tools.
  • Centralized Windows runtime DLL copy (logmed) using LogmeCopyRuntime() helper.
  • Made _LOGME_STATIC_BUILD_ consistently follow LOGME_LINK_TARGET (including logmectl).

logme release notes

v1.6.0 2026-01-13

Highlights

  • Fixed Windows shared builds with tests enabled under vcpkg: test discovery (gtest_discover_tests) no longer fails due to missing runtime DLLs.
  • Improved build-tree runtime behavior for shared builds: required DLLs are copied next to produced executables so tests and examples can run reliably without PATH tweaks.

Packaging / Build system

  • For Windows shared builds (USE_LOGME_SHARED=ON), executables built in subfolders (tests/examples/tools) receive required runtime DLLs in their output directory.
  • This addresses 0xc0000135 launch failures during build-time test discovery on Windows.

vcpkg integration

  • Shared builds with examples, tests, and tools features enabled build and execute correctly in vcpkg environments.

Notes

  • No public API changes.
  • Static build behavior remains unchanged.

v1.4.0 2026-01-13

Packaging / Build system

  • Fixed shared build usability on Windows: test, example, and tool executables now correctly locate logmed.dll at runtime.
  • In shared builds, logmed.dll is copied next to each executable (tests, examples, tools) to ensure reliable execution during build and test discovery.
  • This resolves failures of gtest_discover_tests() on Windows when building with shared libraries.

vcpkg integration

  • Improved compatibility with vcpkg dynamic builds when examples, tests, or tools features are enabled.
  • Shared builds with enabled features now build and execute correctly without requiring PATH hacks or manual DLL copying.
  • The build flag USE_LOGME_SHARED is now fully respected by all in-tree examples, tests, and tools.

CMake / Project structure

  • All examples, tests, and tools consistently select logme or logmed by name based on USE_LOGME_SHARED.
  • No dependency on alias targets inside subprojects; direct add_subdirectory() usage remains fully supported.
  • Static build behavior remains unchanged.

Notes

  • No public API changes.
  • No behavioral changes for static builds.
  • This release focuses on build robustness and package-manager friendliness, especially on Windows.

v1.3.0

Highlights

  • Improved CMake packaging for vcpkg and other package managers: install/export rules and stable find_package(logme CONFIG) integration.
  • Added USE_LOGME_SHARED switch so in-tree examples/tests/tools can link against the shared library (logmed) when desired (e.g., vcpkg dynamic builds), while keeping static as the default when the switch is not defined.
  • Fixed GoogleTest discovery and enabled building gtest-based tests when GTest is available.

Notes

  • For static builds on Windows, consumers require _LOGME_STATIC_BUILD_ (propagated via targets in installed packages).
  • For shared builds, _LOGME_DLL_BUILD_ is used only while building the DLL (dllexport) and is not propagated to consumers (dllimport).

v1.2.0

Highlights

  • CMake and documentation improvements for easier integration.
  • Build system and example updates.

v1.1.0 (Jan 12, 2026)

Highlights

  • Control protocol refresh: protocol changes aimed at making runtime control more consistent and feature-complete.
  • Tooling & examples: continued work around the control ecosystem (including dynamic/ tooling and examples).
  • CI/build improvements: Windows CI was updated, including adding a dedicated MSBuild build of the repo .sln and switching the other Windows job to a Ninja+MSVC flow. (github.com)

Build / CI

  • Added Windows / MSBuild (repo logme.sln) job in CI (Debug/Release). (github.com)
  • Updated Windows CI build strategy to use Ninja with MSVC (cl) and simplified ctest invocation. (github.com)

Docs / repo

  • Repository documentation emphasizes that the library targets C++20 and that Visual Studio .sln is available on Windows. (github.com)

Note: if you want this section to be 100% exhaustive (feature-by-feature), I can expand it to a full changelog by walking the commit list between v1.0.0 and v1.1.0 and extracting the user-visible changes.


v1.0.0 (Jan 6, 2026)

Initial stable public release. (github.com)

logme is a compact cross-platform logging framework for C and C++
based on a channel-oriented architecture and flexible message routing. (github.com)

Key features:

  • Channel-based logging architecture
  • Multiple logging APIs:
    • C-style macros
    • C++ stream-style interface
    • std::format-based API (when enabled)
  • Multiple backends:
    • Console
    • File
    • Debugger
    • In-memory buffer
  • Cross-platform support (Windows, Linux)

Public API is considered stable starting from this release. (github.com)