Releases: efmsoft/logme
v2.4.15
2.4.15
Added
- Added
ContextCachesupport in logging macros and dispatch paths to cache per-call-site context data. - Added
GetDefaultChannelPtr()helper for accessing the default channel as aChannelPtr. - Added
LogmeX_Once/LogmeX_Everyhelpers and completed once / rate-limited override support. - Added
OnceEveryandDumpBufferexamples. - Added optional diagnostic counters for
FileBackend,FileManager, andBufferQueueto simplify performance analysis.
Improved
- Reduced hot-path overhead by switching selected
ChannelPtrpassing paths to references where appropriate. - Optimized
BufferQueueand related file-output paths. - Reduced spurious flush requests and unnecessary
FileManagerwakeups during file logging. - Improved support for precheck-based early logging decisions.
Fixed
- Fixed double evaluation in logging macros.
- Fixed stream
Contextlifetime 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
isattydetection 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_TARGETfor all examples, tests, and tools. - Centralized Windows runtime DLL copy (
logmed) usingLogmeCopyRuntime()helper. - Made
_LOGME_STATIC_BUILD_consistently followLOGME_LINK_TARGET(includinglogmectl).
logme release notes
v1.6.0 2026-01-13
Highlights
- Fixed Windows shared builds with
testsenabled 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
0xc0000135launch failures during build-time test discovery on Windows.
vcpkg integration
- Shared builds with
examples,tests, andtoolsfeatures 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.dllat runtime. - In shared builds,
logmed.dllis 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, ortoolsfeatures 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_SHAREDis now fully respected by all in-tree examples, tests, and tools.
CMake / Project structure
- All examples, tests, and tools consistently select
logmeorlogmedby name based onUSE_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_SHAREDswitch 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
GTestis 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
.slnand 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 simplifiedctestinvocation. (github.com)
Docs / repo
- Repository documentation emphasizes that the library targets C++20 and that Visual Studio
.slnis 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
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
isattydetection 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_TARGETfor all examples, tests, and tools. - Centralized Windows runtime DLL copy (
logmed) usingLogmeCopyRuntime()helper. - Made
_LOGME_STATIC_BUILD_consistently followLOGME_LINK_TARGET(includinglogmectl).
logme release notes
v1.6.0 2026-01-13
Highlights
- Fixed Windows shared builds with
testsenabled 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
0xc0000135launch failures during build-time test discovery on Windows.
vcpkg integration
- Shared builds with
examples,tests, andtoolsfeatures 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.dllat runtime. - In shared builds,
logmed.dllis 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, ortoolsfeatures 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_SHAREDis now fully respected by all in-tree examples, tests, and tools.
CMake / Project structure
- All examples, tests, and tools consistently select
logmeorlogmedby name based onUSE_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_SHAREDswitch 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
GTestis 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
.slnand 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 simplifiedctestinvocation. (github.com)
Docs / repo
- Repository documentation emphasizes that the library targets C++20 and that Visual Studio
.slnis 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
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
isattydetection 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_TARGETfor all examples, tests, and tools. - Centralized Windows runtime DLL copy (
logmed) usingLogmeCopyRuntime()helper. - Made
_LOGME_STATIC_BUILD_consistently followLOGME_LINK_TARGET(includinglogmectl).
logme release notes
v1.6.0 2026-01-13
Highlights
- Fixed Windows shared builds with
testsenabled 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
0xc0000135launch failures during build-time test discovery on Windows.
vcpkg integration
- Shared builds with
examples,tests, andtoolsfeatures 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.dllat runtime. - In shared builds,
logmed.dllis 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, ortoolsfeatures 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_SHAREDis now fully respected by all in-tree examples, tests, and tools.
CMake / Project structure
- All examples, tests, and tools consistently select
logmeorlogmedby name based onUSE_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_SHAREDswitch 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
GTestis 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
.slnand 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 simplifiedctestinvocation. (github.com)
Docs / repo
- Repository documentation emphasizes that the library targets C++20 and that Visual Studio
.slnis 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
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_TARGETfor all examples, tests, and tools. - Centralized Windows runtime DLL copy (
logmed) usingLogmeCopyRuntime()helper. - Made
_LOGME_STATIC_BUILD_consistently followLOGME_LINK_TARGET(includinglogmectl).
logme release notes
v1.6.0 2026-01-13
Highlights
- Fixed Windows shared builds with
testsenabled 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
0xc0000135launch failures during build-time test discovery on Windows.
vcpkg integration
- Shared builds with
examples,tests, andtoolsfeatures 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.dllat runtime. - In shared builds,
logmed.dllis 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, ortoolsfeatures 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_SHAREDis now fully respected by all in-tree examples, tests, and tools.
CMake / Project structure
- All examples, tests, and tools consistently select
logmeorlogmedby name based onUSE_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_SHAREDswitch 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
GTestis 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
.slnand 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 simplifiedctestinvocation. (github.com)
Docs / repo
- Repository documentation emphasizes that the library targets C++20 and that Visual Studio
.slnis 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
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_TARGETfor all examples, tests, and tools. - Centralized Windows runtime DLL copy (
logmed) usingLogmeCopyRuntime()helper. - Made
_LOGME_STATIC_BUILD_consistently followLOGME_LINK_TARGET(includinglogmectl).
logme release notes
v1.6.0 2026-01-13
Highlights
- Fixed Windows shared builds with
testsenabled 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
0xc0000135launch failures during build-time test discovery on Windows.
vcpkg integration
- Shared builds with
examples,tests, andtoolsfeatures 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.dllat runtime. - In shared builds,
logmed.dllis 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, ortoolsfeatures 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_SHAREDis now fully respected by all in-tree examples, tests, and tools.
CMake / Project structure
- All examples, tests, and tools consistently select
logmeorlogmedby name based onUSE_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_SHAREDswitch 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
GTestis 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
.slnand 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 simplifiedctestinvocation. (github.com)
Docs / repo
- Repository documentation emphasizes that the library targets C++20 and that Visual Studio
.slnis 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)