Version 1.0.4 - Fixed bug #3101459 - TTCCLayout time is not in milliseconds since process start by default. - Fixed compilation of Non-Windows builds. - Fixed various compilation and linking issues on SunOS. Version 1.0.4-RC11 - Fixed bug #3083313, deadlock because of double locking when using ConfigurationWatchDogThread. - Improved portability to HP-UX and aCC compiler. - Added %b PatternLayout format specifier; it expands to file component of file path. - Fixed bug #3058706, compilation error on AIX in socket-unix.cxx. - Added %b pattern layout specifier. It expands to file name component of path name. - Fixed bug #3034758. Fixed infinite loop in Hierarchy::updateParents() when logger hierarchy name starts with a dot. - Fixed bug #3034748. Fixed infinite loop in PatternParser::extractOption() on missing '}'. Version 1.0.4-RC10 - Fixed bug #3030133. Make Autoconf/Automake build system to respect provided --includedir= value. - Removed %X{N} PatternLayout format specifier for NDC with limited depth. Replaced it with NDCMaxDepth property. - Improved compatibility with Windows CE. - Fixed memory leak when using POSIX threads. - Fixed leak of mutex used to synchronize gethostbyname() calls. - Fixed problem with how std::toupper(), std::tolower() and std::isspace() are used in non-Unicode builds. Version 1.0.4-RC9 - Fixed compilation problem in timehelper.cxx. - Added %X{N} PatternLayout format specifier for NDC with limited depth. - Added facility property to SysLogAppender. Version 1.0.4-RC8 - Always handle %s time format specifier (seconds since epoch) in log4cplus. Detect and use clock_gettime() when available. - Fixed compilation on OpenSolaris with Sun C++. - Fixed compilation on OpenBSD. - Fixed use of operator delete/delete[] in FileAppender (Patch #3005234). - Updated config.guess and config.sub to latest Git repository versions. - Added BufferSize property to FileAppender to allow control of the appender's output buffer. - Removed -fkeep-inline-functions from GCC flags for non-debugging build. Version 1.0.4-RC7 - Fixed thread safety issues with gethostbyname() by using getaddrinfo() instead, where available. - Fixed bug #2965390 - Minor internal debugging output issue. - Added --enable-warnings (--disable-warnings) switches to the configure script. - Added ReopenDelay property to FileAppender, allowing the appender to reopen output stream after write failure. (Patch #2971315) Version 1.0.4-RC6 - Fixed bug #2945335 - MinGW/MSYS build problems. For Windows builds the source now defaults to static library/empty LOG4CPLUS_EXPORT macro. - Fixed a security problem in SyslogAppender. - Fixed bug #2955058 - Looping over properties during variables expansion. - Added missing dependency on log4cplus_dll project to filter_test project. - Added a constructor with Properties parameter to DenyAllFilter. - Reworked Layout, Appender and Filter factories registration. Version 1.0.4-RC5 - Implemented feature request #2927416 "Add a native Win32 Console Appender". - Loggingserver now exits with value 2 when it cannot open listening socket. - Improved Doxygen documentation. - Added PropertyConfigurator::getProperties() and PropertyConfigurator::getPropertyFilename() functions. - Removed LOG4CPLUS_EXPORT on SharedObjectPtr<>. - Turned on linker optimizations for MSVC8 builds to make resulting binaries slightly smaller. - Added --enable-runtime-pseudo-reloc linker option for Cygwin and Mingw. Enable --enable-auto-import linker flag also for Mingw. Version 1.0.4-RC4 - Fixed bug #2875993 - Implement connector thread for SocketAppender. - Improved documentation of Appenders' properties. - Improved behaviour of DailyRollingFileAppender. - Added x64 (AMD64) build configuration to MSVC8 project files. - Reworked MSVC8 project files to use .vsprops files to share project settings. - Moved all tests into Tests project folder. - Improved behaviour of ConfigurationWatchDogThread. - Fixed bug #2890819 - Handle empty input in towstring_internal() and tostring_internal(). - Corrected VERSION and SOVERSION in CMakeLists.txt. - Fixed thread_test compilation on AIX. - Added missing syncprims.cxx file in log4cplus_static.vcproj. Version 1.0.4-RC3 IMPORTANT: Majority of log4cplus' source code is now licensed using the Apache Software License 2.0. The rest is covered by two clause BSD license. - Fixed bug #2747435. Implement handling of log4cplus.configDebug configuration property. - Fixed variables shadowing. - Doxygen documentation improvements and fixes. - Add %i PatternLayout format. It expands to process ID. - Fix logging macros compilation for LOG4CPLUS_SINGLE_THREADED case. - Fix Logger log level configuration and root Logger handling log level handling. Version 1.0.4-RC2 - Fixed bug #2834811. Accessing index 0 of empty strings. - Fixed bug #2834808. Memory leak in thread local storage code. - Removed MSVC6 directory and project files. - Update to libtool-2.2.6. Version 1.0.4-RC1 - Fixed compilation with Borland C++ Builder compiler. - Improved CMake build system to also build tests. - Fixed compilation and improved support for Windows CE. - Fixed compilation and improved support for Sun Studio 11 compiler. - Fixed use after free and improved shutdown handling in ConfigurationWatchDogThread. - Implement %H (FQDN) and %h (host name) PatternLayout format specifiers. - Fixed bug #2829604. Environment variables substitution. Version 1.0.3 - List of bugs fixed or otherwise dealt with: Version 1.0.3-RC9 - Tweaked Doxygen docs in comments for more recent Doxygen versions. - Fix bug #2632087. Reworked WinSock initialization to fix deadlock in WSAStartup() on Windows Vista. - Fixed excessive errors reported in RollingFileAppender when renaming non-existing files. - Fall back to DAILY schedule in DailyRollingFileAppender for invalid schedule specification. - Added Debug_Unicode and Release_Unicode targets to MSVC8 test cases builds. Version 1.0.3-RC8 - Fixed SysLogAppender not being exported out of shared library because of missing LOG4CPLUS_EXPORT. - Fix bug #1168433. RollingFileAppender does a rename() to rename logfile to logfile.1 etc. rename() on Windows will not overwrite an existing file so only the first rename works. On Windows (only), try to remove existing file first before calling rename(). - Fix bug #2573222. License issues. Most of log4cplus is covered by ASL 1.1. The bits that are not covered by ASL 1.1 are covered by two clause BSD licence. Texts of both licences are in LICENCE file. - Fix bug #2580037. Trim leading white space before comment character '#' and both leading and trailing white space around both key and value (e.g. " key = value ") in property files. - Fix bug #2594345. Loggingserver and SocketAppender message format mismatch. - Fixed CMake builds. Version 1.0.3-RC7 - Fix Bug #894464. Really only consider prefixes when searching for matching properties. - Fix compilation for combination of non-threaded and UNICODE settings. Version 1.0.3-RC6 - Fix Bug #852513 - Reconfiguring a logger does not remove old appenders. - Changed log4cplus thread helpers to block all signals on POSIX platforms to enable their handling in a dedicated thread. (See README, chapter Notes for explanation.) - Changed thread creation from using CreateThread() to using _beginthreadex() to avoid leaking C and C++ runtime memory. - Fixed convertIntegerToString() to for negative numbers. - Fixed wrong name used in BasicConfigurator for the ConsoleAppender. Version 1.0.3-RC5 - Add CMakeLists.txt to facilitate compilation of log4cplus on Windows with different compilers than just the MSVC8. - Fix compilation of Unicode enabled build without working locale. (Patch #2429185) Version 1.0.3-RC4 - IMPORTANT: log4cplus shared library version has been bumped to 3. The interfaces have slightly changed and 1.0.3 is not binary compatible with 1.0.2. - Fix more MSVC compilation problems. - Changed log4cplus_static.vcproj to link with DLL C/C++ run time (MSVCR80.dll and MSVCP80.dll). - Implemented environment variables shadowing by properties and recursive properties expansion. - Reworked output directories layout of MSVC8 project. Now it produces directories of the form "log4cplus_{static,dll}.{Release,Debug}{_Unicode,}" and "loggingserver.{Release,Debug}{_Unicode,}". The tests directory projects still only compile using non-Unicode release and debug version of the library. - For single-threaded builds, re-use single tostringstream instead of using a new one for each LOG4CPLUS_DEBUG() etc. macros. - Merge Win32DebugAppender from trunk. (Patches #834925 and #858128) - Make configuration of local server for NTEventLogAppender easier by allowing empty server parameter string. (Feature Request #875935) Version 1.0.3-RC3 - Fix Bug #2268760 - Trailing garbage in strings produced by Time::getFormattedTime(). - Fixed compilation of MSVC builds. Version 1.0.3-RC2 - Fix Bug #2106949 - Compilation problem with Borland's compiler. - Fix Bug #1717320, #1040902, #1040676 - strftime() complains about our custom %q and %Q format specifiers with "Invalid format directive". - Removed safe_auto_ptr. - Added --enable-debugging switch to configure script. It disables optimization and turns on debugging info generation. - Use locale and its codecvt facet in towstring()/tostring() implementations when --with-working-locale is defined. - Added support for GCC's -fvisibility=hidden flag where available together with __attribute__ ((visibility("default"))). Version 1.0.3-RC1 - IMPORTANT: VC6 users, VC6 is unsupported. Its standard C++ library is too broken. The work around for VC6's std::string has been removed from log4cplus code; it actually does not fix the problem, it only makes it a little bit less likely to manifest. VC6 project files are still distributed with the source but they are broken as we have no means to update them. We strongly suggest that you either move away from VC6 to some more modern and standard conforming compiler (like VC8) or that you use the STLport standard C++ library implementation instead of VC6's own. - Fixed various compilation issues with MSVC8. - Added MSVC8 project files. - Fixed compilation with GCC 4.3. - Fixed autoconf/automake build machinery so that it is possible to build log4cplus in separate directory. - Updated used autoconf and automake to version 2.62 and 1.10 respectively. - Enabled DLL building on Cygwin. - Fixed Bug #894623, #1178841 - Various compilation issues on Cygwin. - Fixed Bug #2017876 - Destruction synchronization issue. - Fixed Bug #1831238 - Unintentional sign extension in char -> wchar_t conversion. - Fixed Bug #1548998 - config.h is exporting symbols that conflict with other applications/libraries. - Fixed Bug #898646 - Ambiguity between ::yield() and thread::yeild() on Solaris. - Fixed Bug #954455 - LOG4CPLUS_ macros semicolon problem. Version 1.0.2 (February 10, 2004) - Added "ImmediateFlush" configuration option to log4cplus::ConsoleAppender. - Added do while loops around the logging statements in the macros. - Fixed Bug #875960 - "log4cplus::ConfigureAndWatchThread crash" - Fixed Bug #992034 - "rpm[build] -ta log4cplus-1.0.1.tar.gz doesn't work" - Fixed Bug #875724 - "ConfigureAndWatchThread and mounted file systems" - Fixed Bug #842280 - "'Append' mode when using FileAppended from cfg file." All FileAppenders now have the "Append" configuration option. If this is "true" any existing files will be opened with ios::append, otherwise they will be opened with ios::trunc. - Fixed Bug #805203 - "%q ConversionFormat does not accept modifiers" Version 1.0.1 (December 18, 2003) - Fixed Bug #831311 - "loggingserver.cxx clientsock.read()" - Fixed Bug #851074 - "build problem HPUX 11, gcc 3.3" - Fixed Bug #805242 - "Crash in log4cplus::helpers::SocketBuffer::appendSize_t" - Fixed Bug #808119 - "TRACE_METHOD not displaying file name in log" - Fixed Bug #827804 - "UMR in ConfigurationWatchdogThread" - Fixed Bug #851116 - "Can not build" - Added the OFF_LOG_LEVEL and the ALL_LOG_LEVEL LogLevels. Version 1.0 (September 6 2003) - Fix Bug #96934. (fileappender.cxx would not compile in a UNICODE build) - Fixed compilation warning in MSVC for pointer.h Version 0.9.10 (August 27 2003) - Fixed singled-threaded build compilation issues - The DailyRollingFileAppender no longer truncates files - The DailyRollingFileAppender now performs a "rollover" on close(). If the "rollover file" exists, then it will be renamed according to the pattern that is used by the RollingFileAppender class. (Thanks Philip Green for the suggestion.) - Some socket-unix.cxx corrections. - Fixed the *Factory initialization so that it compile with the HP aCC compiler. - Corrected the getCurrentThreadName() for MacOS X and DEC. - "make install" now installs the header files. Version 0.9.9 (August 9 2003) - Fixed many MSVC++ compilation errors (6 and 7). - Updated the MSVC++ projects - Modified the Time::getFormattedTime() method to increase performance - Modified Hierarcy::getInstanceImpl() to "deep copy" Logger names. - Corrected some of the PatternLayout documentation to work better with doxygen. - Some Borland C++ Builder 6 fixes. Version 0.9.8 (August 3 2003) - Changed the LogLog class so that it is now reference counted. - Restored the LOG4CPLUS_*_STR logging macros. - Added support to disable the ERROR and FATAL macros by defining LOG4CPLUS_DISABLE_* - API Change: The LOG4CPLUS_TRACE macro now has behavior similar to all of the other logging macros. If the old behavior is desired, then the new LOG4CPLUS_TRACE_METHOD macro should be used. - Modified Appender class to support the "Threshold" property. - "localtime" is now the default time in log4cplus. - The FileAppender no longer prints out the "header" when it opens a file. - Added the "immediateFlush" field to the FileAppender class. - Changed the API of the LogLevelManager class. - Initial port work done to run on MacOS X. - Added the HierarchyLocker class - Added the ConfigureAndWatchThread class for runtime dynamic reconfiguration. - Added several performance enhancements to the InternalLoggingEvent class. - Renamed the PatternLayout "Pattern" configuration option to "ConversionPattern". - Added 3 new tests: configandwatch_test, customloglevel_test, and performance_test. (No MSVC projects created for these tests, yet.) Version 0.9.7 (June 28 2003) - Added the log4cplus::DailyRollingFileAppender class. - Added the log4cplus::helper::Time class. Now log with millisecond granularity. (microsecond granularity if the gettimeofday() function is available.) - Changed log4cplus::spi::InternalLoggingEvent from a POD to a class and introduced several performance ehancements to that class. This class can now be extended to introduce "customized" logging. - Fixed Bug #757989 - "TraceLogger should not hold a Logger reference" - Added TYPE_SOCKLEN_T to configure.in (checking for whether defines `socklen_t'). - Added the "operator!=" to log4cplus::helpers::SharedObjectPtr. - Made changes to make the DEC CXX 6.1 compiler happy. - Renamed the tolower and toupper methods to avoid a name collision with a macro with the DEC CXX compiler. - Removed "-lstdc++" from the list of libraries in all Makefiles. Version 0.9.6 (June 10 2003) - Fixed multiple compiler warnings for the MSVC++ 7 compiler - Modified configure.in so that it can now build on Solaris. - Modified the configure script so that it can build a single-threaded library (--enable-threads=no) - Added "Filtering" to Appenders. - Fixed Bug #741515 - "LogLog is causing a core on HP". - Fixed Bug #733944 - "logging in system/local time" - Fixed Bug #749040 - "Use of gmtime and localtime not thread-safe" - Fixed Bug #750232 - "Copying of Hierarchy should not be allowed" - Added an MSVC++ project to build log4cplus as a static library. Version 0.9.5 (May 19 2003) - Removed the LOG4CPLUS_*_STR logging macros. - Added support to disable the TRACE, DEBUG, and INFO macros by defining LOG4CPLUS_DISABLE_* - Added a static doConfigure() method to PropertyConfigurator and BasicConfigurator. - Fixed problems with the configure script on several platforms. - Optimized single-threaded mode. - Fixed some problems with the MSVC++ 7 compiler. Version 0.9.4 (May-5-2003) Added SocketAppender class. Now builds loggingserver to act as a source of logging messages from a SocketAppender. Numerous fixes needed for various compilers. Version 0.9.3 (Apr-19-2003) Added preliminary UNICODE support. (Little testing.) Thanks Michael CATANZARITI Now built as a shared library instead of a static library. Add support for Microsoft Visual C++ 6.0 back in. (Multi-threaded DLL) Added SysLogAppender class. Added NTEventLogAppender class. (Thanks Michael CATANZARITI) Version 0.9.2 (Apr-5-2003) Major API change: Changed the name of the Category class to Logger and replaced the Priority class with LogLevel. Added PropertyConfigurator class. Added BasicConfigurator class. Version 0.9.1 (Mar-22-2003) Added PatternLayout class. Version 0.9.0 Initial beta release.