Support unrar64.dll
[xy_vsfilter.git] / src / log4cplus / README
blob096707aece0d0e9cc643c38bbaf68b5dc2c4b81a
1 Short Description
2 =================
4 log4cplus is a simple to use C++ logging API providing thread-safe,
5 flexible, and arbitrarily granular control over log management and
6 configuration.  It is modeled after the Java log4j API.
9 Latest Project Information
10 ==========================
12 The latest up-to-date information for this project can be found at
13 http://log4cplus.sourceforge.net.  Please submit bugs, patches,
14 feature requests, etc. there.
17 Current Status
18 ==============
20 This library has now reached "Production" status.
23 Tested on the following platforms
24 =================================
26 - Linux/AMD64 with GCC 4.1.2 and 4.3.2
27 - FreeBSD/i386 and AMD64 with GCC 3.4.6, 4.2.1 and 4.3.3
28 - Windows XP with MS Visual C++ 8.0, 9.0 and 10.0
29 - OpenSolaris 5.11 with Sun C++ 5.10 SunOS_i386 128229-02 2009/09/21,
30   with -library=stlport4
33 Notes
34 =====
36 Cygwin/MinGW
37 ------------
39 Some version of GCC (3.4.x and probably some of 4.x series too) on
40 Windows (both Mingw and Cygwin) produces lots of warnings of the form
41 "warning: inline function 'void foo()' is declared as dllimport:
42 attribute ignored."  This can be worked around by adding
43 -Wno-attributes option to GCC command.  Unfortunatelly, not all
44 affected version of GCC have this option.
47 Threads and signals
48 -------------------
50 log4cplus is not safe to be used from async signals' handlers.  This
51 is a property of most threaded programmes in general.  If you are
52 going to use log4cplus in threaded application and if you want to use
53 log4cplus from signal handlers then your only option is to block
54 signals in all threads but one that will handle all signals.  On POSIX
55 platforms, this is possible using the sigwait() call.  log4cplus
56 enables this approach by blocking all signals in any threads created
57 through its threads helpers.
60 AIX
61 ---
63 There appears to be a reentracy problem with AIX 5.3 and xlC 8 which
64 can result into a deadlock condition in some curcumstances. It is
65 unknown whether the problem manifests with other versions of either
66 the OS or the compiler, too. The problem was initially reported in a
67 bug report #3056687 ([1]).
69 The core of the problem is that IBM's/xlC's standard C++ IOStreams
70 implementation uses global non recursive lock to protect some of its
71 state. The application in the bug report was trying to do logging
72 using log4cplus from inside overflow() member function of a class
73 derived from std::streambuf class. log4cplus itself uses
74 std::ostringstream. This resulted into an attempt to recursivly lock
75 the global non recursive lock and a deadlock.
77 [1] <https://sourceforge.net/tracker/?func=detail&aid=3056687&group_id=40830&atid=429073>
80 Unsupported compilers
81 ---------------------
83 log4cplus does not support too old and broken C++ compilers:
85 - Visual C++ prior to 7.1
86 - GCC prior to 3.2
87 - All Borland/CodeGear/Embarcadero C++ compilers
90 Unsupported platforms
91 ---------------------
93 log4cplus requires some minimal set of C and/or C++ library
94 functions. Some systems/platforms fail to provide these functions and
95 thus log4cplus cannot be supported there:
97 - Windows CE - missing implementations of <time.h> functions
100 License
101 =======
103 This library is licensed under the Apache Public License 2.0 and two
104 clause BSD license.  Please read the included LICENSE file for
105 details.