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.
Update to Automake 1.16.1.
Adjust spi::LoggerFactory
to allow custom spi::LoggerImpl
. GitHub
issue #309.
Fix MacOS X compilation. GitHub issue #312.
Added AbstractSocket::shutdown()
.
Added missing documentation of MDC pattern layout converter.
Fixed SF#278 - TLS key leak.
Implemented %E{ENVVAR}
pattern layout formatter for expansion of environment
variables. (Ray Logel)
Added --enable-symbols-visibility-options
to configure
script to allow
turning off use of compiler and platform specific symbols visibility
options.
Added ENABLE_SYMBOLS_VISIBILITY
setting for CMake build system to the same
effect as above.
Disabled LOG4CPLUS_INLINES_ARE_EXPORTED
to fix linking issues on MinGW GCC
4.8.x.
Added LOG4CPLUS_BUILD_LOGGINGSERVER
setting for CMake build system to allow
disabling loggingserver. (Maxym)
Allow users overriding LOG4CPLUS_MACRO_FUNCTION
.
Improved Android platform detection in CMake build system. (Maxym)
Allow overriding ConfigureChecks.cmake
with user supplied file to help with
issues on iOS platform.
Updated android.toolchain.cmake
from OpenCV project.
Added iOS support to CMake build system. (Maxym)
Fixed compilation issue of single-threaded builds on Windows.
Improved CMake build system's default installation directories for GNU
platforms by using GNUInstallDirs
module.
Fixed SF#295 - infinite loop when underlying *printf()
function returned
EILSEQ
.
Use PROJECT_SOURCE_DIR
variable instead of CMAKE_SOURCE_DIR
to allow using
log4cplus as sub-project of another CMake project.
Fixed bug SF#298. -- int to pointer cast error on Xcode 5.1.
Documented a work-around for Android's emutls issue.
Stopped using SOVERSION and VERSION properties in Android CMake builds.
Allow negative maximal length in pattern specifier to make trimming of end
instead of beginning possible. E.g., allow %.-1p
to get initial letters of
log level.
Visual Studio DLL builds now have a resource with basic information about the library. (Oskari Timperi)
LOG4CPLUS_*_FMT()
macros can now be invoked with just formatting string,
without additional arguments. (Zhang Shengfa)
Added setCurrentThreadName()
and setCurrentThreadName2()
to allow setting
current thread name to custom string instead of the default stringified
thread ID. (Zhang Shengfa)
Fixed "most vexing parse" issue when using LOG4CPLUS_C_STR_TO_TSTRING()
.
Fixed AcceptOnMatch
property function in filters default to true value.
Fixed GitHub bug #92. DailyRollingFileAppender
rollover time was drifting.
Added LOG4CPLUS_ENABLE_DECORATED_LIBRARY_NAME
option to CMake builds to
produce log4cplus library without Unicode and/or static library decoration.
Fixed SF#322. -- C++11 construct that should not be present.
Fixed FreeAddrInfoA
and FreeAddrInfoW
not found. -- This required bump to
minimal version to Windows XP SP2.
Fixed missing thread's alternative name. -- GitHub bug #137.
Fixed GitHub bug #155. -- Process shutdown issues.
Fix 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.
Fix CMake/Visual Studio 2010 compilation. -- GitHub issue #188.
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.
Updated android.toolchain.cmake
from OpenCV.
Fixed GitHub issue #215. Mark ~HierarchyLocker()
with noexcept(false)
to avoid unlikely but possible terminate()
call and a warning message
during compilation.
Disabled TLS support for iOS.
Do not use language level thread-local storage on Cygwin. (GCC PR64697).
Allow filters cofiguration in AsyncAppender
. (suggested in SF#297 by
Markus von Arx)
Handle SocketBuffer
overflow by throwing exception.