log4cplus 1.1.2

- Added AbstractSocket::shutdown().

- Added missing documentation of MDC pattern layout converter.

- Fixed bug #278 - TLS key leak.

- Implemented %E{ENVVAR} pattern layout formatter for expansion of environment
  variables.

log4cplus 1.1.2-RC3

- Fixed build issues on HP-UX with aCC.

- Fixed build issues on Haiku.

- Added mingw-log4cplus.spec to allow cross-compilation from
  Fedora. (John Smits)

- Fixed build issues on AIX with XLC.

- Fixed build issues related to Microsoft's foo_s() functions with
  some version of MinGW tool-chain.

- Tiny speedup of getFormattedTime().

- Imported newer android/android.toolchain.cmake from OpenCV
  repository.


log4cplus 1.1.2-RC2

- Fixed crash of DLL builds on Windows when _WIN32_WINNT>=0x0600.

- Roll log file both before and after append to avoid logging into
  stale file when the log file has already been rolled by another
  logging process.

- Known issue: Logging into a single log file from multiple processes
  on Windows breaks the rolling of the log files because open files
  cannot be renamed.

- Fixed bug #166 - Close appender only once even when it is used by
  multiple loggers.


log4cplus 1.1.2-RC1

- Fixed bug #163 - Initialization issue.

- Added --enable-so-version and --enable-release-version configure
  script options to allow production of undecorated binaries.


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.
