Upstream changes since 1.0:
log4cplus 1.1.1
- FileAppender - Accept also std::ios_base::ate as "append to a log
file" specification.
log4cplus 1.1.1-RC4
- Fixed bug #156 - Messages are truncated when produced using the
LOG4CPLUS_*_FMT() macros.
- Fixed bug #157 - Fedora package build failure.
- Improved log4cplus initialization:
- Use APC to initialize log4cplus outside loader lock.
- Use Microsoft C runtime library TLS callbacks to initialize
log4cplus as static library.
- Warn during compilation that automatic initialization is not
possible when log4cplus is being compiled with static Microsoft C
runtime library.
- Provide log4cplus::initialize() function to allow users to
initialize log4cplus in situations where automatic initialization
is not possible.
- Several improvements to CMake build:
- Fixed OpenBSD + CMake builds.
- Fixed issues with Visual Studio 2005 CMake builds.
- Added support for CMake builds on Android with NDK. (Sergey
Nikulov)
- The defines.hxx.cmake file is now generated out of defines.hxx.in.
- Library version is parsed out of version.h. (Sergey Nikulov)
- MDC formatter for PatternLayout ("%X") now expands into list of key
value pairs if no specific key is given. (Yaqian Shen)
- Avoid clock_nanosleep() on Android.
- ServerSocket::accept() can now be interrupted from another thread
using new function ServerSocket::interruptAccept().
log4cplus 1.1.1-RC3
- Fixed another MinGW related build failure.
- Fixed mismatched #if/#endif in Windows builds.
log4cplus 1.1.1-RC2
- Allow to disable TLS usage in macros through
LOG4CPLUS_MACRO_DISABLE_TLS preprocessor symbol.
- Fixed compilation with Clang on Cygwin.
- Fixed SIGSEGV when built with some MinGW distributions.
- Fixed build failure when using -march=i386.
- Implemented thread callback to initialize log4cplus for Visual
Studio builds of static library.
- Fixed bug #154 - getHostname() failure because of uninitialized
WinSock.
- Fixed detection of C++11 thread_local keyword.
- Fixed builds using DevKit-tdm-32-4.5.2-20111229-1559.
log4cplus 1.1.1-RC1
- Improved documentation for various classes.
- Cherry-picked various small improvements from trunk.
- Fixed Unicode builds on *NIX.
- Fixed static library builds from Visual Studio project.
- Suppressed warning C4127 from MSVC. (Chris Steenwyk)
- Improved MinGW32 and MinGW64 toolchains compatiblity.
- Fixed encoding handling in Properties class.
- Added include directive for properties files. (Jukka Lantto)
- Added colored output for Win32ConsoleAppender. (Konstantin Baumann)
- (Re)Introduced support for C++Builder (XE3)
- Reimplemented acceptSocket() using select() on Windows to allow
interrupting the accept() call from different thread.
log4cplus 1.1.0
- Fixed MacOS X support - Reimplemented semaphores using named ones
for Apple builds.
- Fixed resource leak on failure in openSocket().
- Improved configuration file modification check to include file size,
in addition to file modification time.
log4cplus 1.1.0-RC10
- Fixed non-STLPort4 builds with Solaris Studio. Switch
'-library=stlport4' is only added if CXXFLAGS does not already
contain a switch matching -library=(stlport4|stdcxx4|Cstd).
- Fixed --disable-shared MinGW builds.
- Fixed non-working MinGW DLL binaries. DllMain() was not being called
because of missing extern "C" in its definition.
- CMake build configuration checks have been improved. (Chernyshev
Vyacheslav)
- GCC switch -O2 is only added if CXXFLAGS does not already contain
any other -O.
- Improved logging speed using SysLogAppender and Log4jUdpAppender by
optimizations in both the loggers and in common sockets code.
- FileAppender locale can now be specified in properties files using
Locale property. See FileAppender Doxygen documentation for more
details.
log4cplus 1.1.0-RC9
- Improved Log4jUdpAppender compatibility with Chainsaw.
- Fixed crash, bugs #3467112 and #3563699, related to thread-local
storage destruction.
- Fixed build with Visual Studio 2005, bug #3565529. (xg00)
- Created Cygwin port's .cygport definition for log4cplus.
- Improved hiding of private symbols using GCC's
__attribute__((visibility("hidden"))) and Solaris Studio's __hidden.
- Fixed build in environments where DEBUG (and other log level names)
are macros. (Chernyshev Vyacheslav)
- Improved configuration of threads support. (Jens Rehsack)
log4cplus 1.1.0-RC8
- Turned on __thread (TLS) detection on NetBSD 5.1.0 and later that
has been previously disabled.
- Improved compatibility with log4cplus 1.0.x: allow using log4cplus
1.0.x log level to string callbacks in 1.1.x.
- Improved various M4 macros.
- Added detection and use C++11 thread_local.
- Fixed XML entities escaping in Log4jUdpAppender.
- Re-added synchronization between ConsoleAppender and LogLog.
- Changed C logger API to return int instead of bool.
- Added C logger API to Visual Studio 2010 projects.
- Implemented remote syslog logging using UDP in SysLogAppender.
- Enabled SysLogAppender on Windows with only remote syslog logging
enabled.
log4cplus 1.1.0-RC7
IMPORTANT: Builds with --with-iconv configure switch now assume UTF-8
for plain char strings.
- Bumped up SO version for UDP sockets support related changes.
- Removed Windows CE support.
- Regenerated with Automake 1.12.2.
- Fixed Fedora RPM builds spec file.
- Implemented log4cplus.disableOverride similar to log4j's
log4j.disableOverride.
- Improved support of profiling and debugging builds with Sun CC.
- Added documentation for configure script options.
- Added detection and use of clock_nanosleep().
- Disabled __thread (TLS) detection for NetBSD. It is broken there.
- New appender: Log4jUdpAppender. It allows logging using UDP with
log4j XML payload to Chainsaw or Log2Console. (Siva Chandran P)
- Added support for __func__ as function name source for logging
events.
log4cplus 1.1.0-RC6
- Fixed compilation for build with wchar_t being alias to unsigned
short (/Zc:wchar_t-) (Windows).
- Added new appender CLFSAppender (experimental), based on Microsoft
Common Log File System API.
- Added new appender Qt4DebugAppender (experimenta), based on Qt4's
qDebug(), qWarning() and qCritical() functions.
- Fixed bug #3530769 - compilation issues with Visual Studio 2011.
- Added log4cplus.quietMode property handling to PropertyConfigurator.
- Added #pragma once to all headers.
- Implemented Time::gettimeofday() using Win32 API's
GetSystemTimeAsFileTime().
- Moved file based locking from FileAppender to Appender to make it
available for all appenders.
- Changed Windows configuration to use __declspec(thread) when
compiling for Windows Vista or later and TlsAlloc() otherwise.
- Implemented %r PatternLayout format specifier - miliseconds since
process start.
- Fixed bug #3101459 - TTCCLayout time is not in milliseconds since
process start by default.
log4cplus 1.1.0-RC5
- Fixed single threaded log4cplus build issues.
- Added ability to log to std::cerr (Andreas Bießmann).
- Fixed disabling of LOG4CPLUS_*_FMT() macros.
log4cplus 1.1.0-RC4
IMPORTANT: Compilation with Solaris Studio now depends on STLPort
(-library=stlport4 switch). The default Cstd library is not
conforming enough for use in log4cplus.
- Improved behaviour of log4cplus as a component of larger CMake based
project (Andreas Bießmann).
- Updated various Autoconf detection scripts in m4/ directory to newer
versions.
- Fixed some signedness and overflow warnings.
- Improved Autotools build system's behaviour for cross compilation.
- Added detection of C++11 <atomic> header and related
functions. Implemented SharedObject reference counting using C++11
atomics where possible.
- Fixed compilation with GCC 4.6 in C++11 mode.
- Fixed some single-threaded compilation and run time issues.
- Fixed bug #3520891 - FileAppender buffering issue.
- Updated to Autoconf 2.69, Automake 1.12 and Libtool 2.4.2.
- Documented build procedure for Solaris Studio.
- Improved support for Solaris Studio in configure.in.
log4cplus 1.1.0-RC3
- Fixed log4cplusS.vcxproj - Added missing source files to the
project.
log4cplus 1.1.0-RC2
- CMake build system fixes.
- Fixed TTCCLayout double time stamp issue.
log4cplus 1.1.0-RC1
Important changes relative to PRODUCTION_1_0_x branch:
- Added AsyncAppender.
- Added simple C interface for interoperability with C.
- Added inter-process file locking to file appenders to allow logging
into a single log file from multiple processes.
- Added Mapped Diagnostic Context (MDC) and associated converter (%X).
- Added alternative thread identification (%T) converter to pattern layout.
- Added function name converter (%M).
- Added wchar_t <-> char conversion implementations based on standard
C locale functions and based on iconv().
- Added DeviceAppender to allow use of Boost.IOStream's Sink as appender.
- Added LOG4CPLUS_*_FMT() macros to allow printf-like formatted output
where it is possible.
- Logging macros now accept both logger name as string and Logger
instance as their first parameter.
Note that the 2-clause-bsd is not identical. (I know there are
hundreds of different BSD licenses -- we should not track them all.)
The DESCRiption follows:
Log4cplus provides a port of the log4j logging framework for C++.
Log4cplus is a featureful log facility with various filters, run-time
re-configurations, and Wide Character (UNICODE) support. It provides
log levels, hierarchal loggers, NDC (Nested Diagnostic Context),
and log rotation support. It can log to the console, files, syslog,
Windows events, or via sockets.