add log4cplus
This commit is contained in:
105
libs/log4cplus/README
Normal file
105
libs/log4cplus/README
Normal file
@ -0,0 +1,105 @@
|
||||
Short Description
|
||||
=================
|
||||
|
||||
log4cplus is a simple to use C++ logging API providing thread-safe,
|
||||
flexible, and arbitrarily granular control over log management and
|
||||
configuration. It is modeled after the Java log4j API.
|
||||
|
||||
|
||||
Latest Project Information
|
||||
==========================
|
||||
|
||||
The latest up-to-date information for this project can be found at
|
||||
http://log4cplus.sourceforge.net. Please submit bugs, patches,
|
||||
feature requests, etc. there.
|
||||
|
||||
|
||||
Current Status
|
||||
==============
|
||||
|
||||
This library has now reached "Production" status.
|
||||
|
||||
|
||||
Tested on the following platforms
|
||||
=================================
|
||||
|
||||
- Linux/AMD64 with GCC 4.1.2 and 4.3.2
|
||||
- FreeBSD/i386 and AMD64 with GCC 3.4.6, 4.2.1 and 4.3.3
|
||||
- Windows XP with MS Visual C++ 8.0, 9.0 and 10.0
|
||||
- OpenSolaris 5.11 with Sun C++ 5.10 SunOS_i386 128229-02 2009/09/21,
|
||||
with -library=stlport4
|
||||
|
||||
|
||||
Notes
|
||||
=====
|
||||
|
||||
Cygwin/MinGW
|
||||
------------
|
||||
|
||||
Some version of GCC (3.4.x and probably some of 4.x series too) on
|
||||
Windows (both Mingw and Cygwin) produces lots of warnings of the form
|
||||
"warning: inline function 'void foo()' is declared as dllimport:
|
||||
attribute ignored." This can be worked around by adding
|
||||
-Wno-attributes option to GCC command. Unfortunatelly, not all
|
||||
affected version of GCC have this option.
|
||||
|
||||
|
||||
Threads and signals
|
||||
-------------------
|
||||
|
||||
log4cplus is not safe to be used from async signals' handlers. This
|
||||
is a property of most threaded programmes in general. If you are
|
||||
going to use log4cplus in threaded application and if you want to use
|
||||
log4cplus from signal handlers then your only option is to block
|
||||
signals in all threads but one that will handle all signals. On POSIX
|
||||
platforms, this is possible using the sigwait() call. log4cplus
|
||||
enables this approach by blocking all signals in any threads created
|
||||
through its threads helpers.
|
||||
|
||||
|
||||
AIX
|
||||
---
|
||||
|
||||
There appears to be a reentracy problem with AIX 5.3 and xlC 8 which
|
||||
can result into a deadlock condition in some curcumstances. It is
|
||||
unknown whether the problem manifests with other versions of either
|
||||
the OS or the compiler, too. The problem was initially reported in a
|
||||
bug report #3056687 ([1]).
|
||||
|
||||
The core of the problem is that IBM's/xlC's standard C++ IOStreams
|
||||
implementation uses global non recursive lock to protect some of its
|
||||
state. The application in the bug report was trying to do logging
|
||||
using log4cplus from inside overflow() member function of a class
|
||||
derived from std::streambuf class. log4cplus itself uses
|
||||
std::ostringstream. This resulted into an attempt to recursivly lock
|
||||
the global non recursive lock and a deadlock.
|
||||
|
||||
[1] <https://sourceforge.net/tracker/?func=detail&aid=3056687&group_id=40830&atid=429073>
|
||||
|
||||
|
||||
Unsupported compilers
|
||||
---------------------
|
||||
|
||||
log4cplus does not support too old and broken C++ compilers:
|
||||
|
||||
- Visual C++ prior to 7.1
|
||||
- GCC prior to 3.2
|
||||
- All Borland/CodeGear/Embarcadero C++ compilers
|
||||
|
||||
|
||||
Unsupported platforms
|
||||
---------------------
|
||||
|
||||
log4cplus requires some minimal set of C and/or C++ library
|
||||
functions. Some systems/platforms fail to provide these functions and
|
||||
thus log4cplus cannot be supported there:
|
||||
|
||||
- Windows CE - missing implementations of <time.h> functions
|
||||
|
||||
|
||||
License
|
||||
=======
|
||||
|
||||
This library is licensed under the Apache Public License 2.0 and two
|
||||
clause BSD license. Please read the included LICENSE file for
|
||||
details.
|
Reference in New Issue
Block a user