log4cplus is a simple to use C++ logging API providing thread-safe, flexible, and arbitrarily granular control over log management and configuration. It is modelled after the Java log4j API.
Add missing source files to MSVC project files.
Resolve environment variables in include directive in configuration file. (#593, Martin Engelmann)
Full Changelog: https://github.com/log4cplus/log4cplus/compare/REL_2_1_0...REL_2_1_1
Throw exception on nonexistent properties file, if requested by fThrow
flag.
Generate pkgconfig
file with CMake.
Add locale support to ConsoleAppender
. (Choy Kho Yee)
Initialize thread pool for async logging on demand.
SysLogAppender
: Allow non-FQDN hostname in syslog messages.
Update Catch2 to v2.13.9.
Add CMake alias libraries. GitHub issue #511.
Add an option to disable tests to configure
script. (Fabrice Fontaine)
Fix C++11 compatibility: C++11 does not have basic_string_view
.
Look for Android's log
library. GitHub issue #543.
Fix handling of ,aux
extension for FileAppender
. GitHub issue
#534. (Pieter du Preez)
filename
should not be empty for TimeBasedRollingFileAppender
. GitHub
issue #517. (Fox Chen)
Fix compilation with C++20 compiler, use std::invoke_result.
TimeBasedRollingFileAppender: Clear files before MaxHistory
when
CleanHistoryOnStart=false
.
Update embedded Catch2 to version v2.13.7 to fix compilation with current Glibc. GitHub issue #519.
Fixes to internal thread pool.
Internal thread pool can now be disabled during compilation. Use
--disable-thread-pool
with Autotools based build or set
LOG4CPLUS_ENABLE_THREAD_POOL
to OFF
with CMake based build.
Improved SONAME handling in CMake.
Update Catch to 2.13.4 to fix compilation on MacOS X on AArch64.
Modernized CMake build.
Update iOS support to build for current hardware architectures. (Patch by Pawel Maczewski)
Fix issue with std::va_list
value reuse.
Fix parsing of include
in configuration when included file path contains =
. (Patch by Peter Pei)
Fix build issue #455. Source file callbackappender.cxx
is missing from Visual Studio project for static library.
Fix issue #415. Wrong base source file name is provided if path on Windows contains /
.
Change of default behaviour: Instantiate thread pool with only 4 threads.
Fix Catch2 include path. GitHub issue #379.
Disable POSIX signals reception in thread before creating pool threads. GitHub issue #385 and follow up issue #390.
Fix compilation with NVCC in CUDA mode. GitHub issue #375.
Fix compilation with Visual Studio in C++17 mode. GitHub issue #401.
Allow disabling implicit initialization through configure
script option
--disable-implicit-initialization
, or CMake build option
LOG4CPLUS_REQUIRE_EXPLICIT_INITIALIZATION
. (MaksymB)
Remove android
directory with obsolete Android support. GitHub
issue #283.
Link with libatomic
when necessary. (Fabrice Fontaine)
GitHub issue #375. Fixed compilation with NVCC in CUDA mode.
Small documentation tweaks.
Fix compilation on systems without O_CLOEXEC
. This affects, e.g., Solaris 10. GitHub issue #326. (Patch by Jiangrz).
Provide log4cplus::deinitialize()
to make the API symmetric (log4cplus::initialize()
already exists) and to allow de-/initialization without log4cplus::Initializer
instance. GitHub issue #340.
Deal with register
keyword being generated in SWIG based bindings. The keyword is unused and reserved in C++17. Remove use of std::unary_function
, it was removed in C++17.
Add ability to define new log levels using C API. Add reconfiguration API. (Jens Rehsack)
Add NDCMatchFilter
and MDCMatchFilter
. (Franck)
Allow setting thread pool size using new function
setThreadPoolSize()
. Allow setting the size from log4cplus.properties
using log4cplus.threadPoolSize
property. Lower initial thread pool size
by half to std::thread::hardware_concurrency()
threads. GitHub issue
#315.
Fix Autotools based build for MinGW. GitHub issue #317.
Add configure
script option --enable-lto
to allow easier LTO builds.
Optimization of getFormattedTime()
. (Alexey Vishtak)
Introduction of LOG4CPLUS_MACRO_FILE()
used in logging macros to allow
users to redefine it and consequently hide source file names from their
compiled executables and logging output.