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 missing source files to MSVC project files.
Resolve environment variables in include directive in configuration file. (#593, Martin Engelmann)
Full Changelog :
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)... read more
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 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.... read more
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.... read more
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.... read more
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.... read more
Update to Automake 1.16.1.
Adjust spi::LoggerFactory to allow custom spi::LoggerImpl. GitHub
    issue #309.
Fix MacOS X compilation. GitHub issue #312.
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.... read more
CMake improvements: Automate export of includes if building as Cmake sub-module. (Rodion Malinovsky)
Debian spec file improvements: Use parallel build. Fix installation path on 64bit. (Michal Marek)
CMake improvements: Use ${CMAKE_INSTALL_LIBDIR} instead of hardcoding lib. (Radek Dostál)
Experimental Windows 10 ARM support through CMAKE
Fixed GitHub issue #195. Check if queue thread pointer is not NULL and if
it is running before trying to join it.
Fixed GitHub issue #205. Fixed NULL pointer dereference of queue in
AsyncAppender code.
Fixed SF#333. AsyncAppender's appenders need to be closed so that
accumulated logs get flushed onto disk.... read more
GitHub issue #205. Fixed AsyncAppender shutdown crash.
Fix GitHub bug #195. Check if queue thread pointer is not NULL and if it
is running before trying to join it.
Fixed GitHub bug #136. Adjust weekly, daily and twice daily rollover time
for DailyRollingFileAppender by time zone offset so that the rollover
happens at midnight, etc., of local time instead of UTC time.... read more
Fixed SF#334. Handle signal interrupting sem_wait().
Avoid language level thread-local variables on Cygwin to avoid
compilation issue (GCC PR64697).
Implement suggestion in SF#297 to allow filters in AsyncAppender
configuration.
Require CMake 2.8.12 and later due to use of INCLUDES DESTINATION
(Patched by Enrico Jorns.)
Fixed GitHub bug #136, again. Use mktime()'s ability to adjust for
excess values in fields of struct tm.... read more
Version 1.2.1 is virtually identical to 1.2.1-RC2. This version is signed
with new key: E406292F7D08BBB00846131404B89D51DFE5A215. The previous DSA key
was only 1024 bits long.
link
CMake improvements: Automate export of includes if building as Cmake
sub-module. (Rodion Malinovsky)
Debian spec file improvements: Use parallel build. Fix installation path
on 64bit. (Michal Marek)
CMake improvements: Use ${CMAKE_INSTALL_LIBDIR} instead of hardcoding
lib. (Radek Dostál)
Experimental Windows 10 ARM support through CMAKE
link
main() ismain() is left. Even more specifically, the libraryAvoid copying whole message just to prepend message length in
SocketAppender. Instead, use OS specific "gather" socket write.
Fixed GitHub issue #136.
FileAppender classes now have TextMode property that can be set to
Binary or Text (default) to specify underlying IO stream behavior
with respect to end-of-line handling. (Patch by raphaelmarcucci).... read more