Update of /cvsroot/objecthandler/log4cxx-0.9.7
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv25784
Added Files:
AUTHORS COPYING ChangeLog INSTALL Makefile.am NEWS README
autogen.sh configure.in license.apl
Log Message:
--- NEW FILE: license.apl ---
/*
* Copyright 2003,2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
--- NEW FILE: COPYING ---
See license.apl
--- NEW FILE: configure.in ---
AC_INIT(src/logger.cpp)
# autoconf 2.50 or higher to rebuild aclocal.m4, because the
# AC_CREATE_PREFIX_CONFIG_H macro needs the AS_DIRNAME macro.
AC_PREREQ(2.50)
AC_CANONICAL_HOST
AC_CANONICAL_TARGET
#
# +1 : ? : +1 == new interface that does not break old one
# +1 : ? : 0 == new interface that breaks old one
# ? : ? : 0 == no new interfaces, but breaks apps
# ? :+1 : ? == just some internal changes, nothing breaks but might work
# better
# CURRENT : REVISION : AGE
LT_VERSION=9:0:0
AC_SUBST(LT_VERSION)
AM_CONFIG_HEADER(include/log4cxx/config_auto.h)
AH_VERBATIM([HAVE_NO_EXPLICIT_EXPORTS],
[/* no explicit exports */
#define LOG4CXX_EXPORT])
AM_INIT_AUTOMAKE(log4cxx, 0.9.7)
# Checks for programs
# ----------------------------------------------------------------------------
AM_PROG_LIBTOOL
AC_PROG_INSTALL
AC_PROG_MAKE_SET
AC_PROG_CXX([g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC QCC])
AC_PROG_CXXCPP
AC_LANG(C++)
# CXX fine tuning
case "$host" in
*-dec-osf*)
CXXFLAGS="$CXXFLAGS -std strict_ansi_errors"
;;
*)
;;
esac
# Doxygen
AC_ARG_ENABLE(doxygen,
AC_HELP_STRING(--enable-doxygen,
[enable documentation generation with doxygen (auto)]))
AC_ARG_ENABLE(dot,
AC_HELP_STRING(--enable-dot,
[use 'dot' to generate graphs in doxygen (auto)]))
AC_ARG_ENABLE(html-docs,
AC_HELP_STRING(--enable-html-docs,
[enable HTML generation with doxygen (yes)]),
[],
[enable_html_docs=yes])
AC_ARG_ENABLE(latex-docs,
AC_HELP_STRING(--enable-latex-docs,
[enable LaTeX documentation generation with doxygen (no)]),
[],
[enable_latex_docs=no])
if test "x$enable_doxygen" = xno; then
enable_doc=no
else
AC_PATH_PROG(DOXYGEN, doxygen, , $PATH)
if test "x$DOXYGEN" = x; then
if test "x$enable_doxygen" = xyes; then
AC_MSG_ERROR([could not find doxygen])
fi
enable_doc=no
else
enable_doc=yes
AC_PATH_PROG(DOT, dot, , $PATH)
fi
fi
AM_CONDITIONAL(DOC, test x$enable_doc = xyes)
AM_CONDITIONAL(LATEX_DOC, test x$enable_latex_docs = xyes)
if test x$DOT = x; then
if test "x$enable_dot" = xyes; then
AC_MSG_ERROR([could not find dot])
fi
enable_dot=no
else
enable_dot=yes
fi
AC_SUBST(enable_dot)
AC_SUBST(enable_html_docs)
AC_SUBST(enable_latex_docs)
# CppUnit
AC_ARG_ENABLE(cppunit,
AC_HELP_STRING(--enable-cppunit,
[enable test excution with cppunit (auto)]))
enable_tests=yes
if test "x$enable_cppunit" = xno; then
enable_tests=no
else
AC_CHECK_PROG(CPPUNIT_CONFIG, cppunit-config, yes, no)
if test "x$CPPUNIT_CONFIG" = "xyes"
then
LIBS_CPPUNIT="`cppunit-config --libs`"
CPPFLAGS_CPPUNIT="`cppunit-config --cflags`"
AC_SUBST(LIBS_CPPUNIT)
AC_SUBST(CPPFLAGS_CPPUNIT)
else
AC_MSG_WARN(cppunit not found !)
fi
AC_CHECK_HEADER([cppunit/TestFixture.h],,
enable_tests=no)
fi
AC_HAVE_LIBRARY([boost_regex],,
enable_tests=no)
AC_CHECK_HEADERS([boost/regex.hpp],,
enable_tests=no)
AM_CONDITIONAL(TESTS, test x$enable_tests = xyes)
# Checks header files
# ----------------------------------------------------------------------------
AC_CHECK_HEADERS(unistd.h io.h alloca.h)
# Checks local idioms
# ----------------------------------------------------------------------------
# for SysLogAppender
AC_CHECK_FUNCS(syslog)
# Checks for libraries
# ----------------------------------------------------------------------------
AC_PROG_RANLIB
# for threads
AC_MSG_CHECKING(for thread support)
AC_ARG_WITH(thread,
AC_HELP_STRING(--with-thread, [thread support. Accepted arguments :
pthread, Microsoft, no (default=pthread)]),
[ac_with_thread=$withval],
[ac_with_thread=pthread])
case "$ac_with_thread" in
Microsoft)
AC_DEFINE(HAVE_MS_THREAD, 1, thread support through Microsoft threads.)
AC_DEFINE(HAVE_THREAD, 1, thread support)
AC_MSG_RESULT(Microsoft)
;;
pthread)
AC_MSG_RESULT(pthread)
AC_CHECK_HEADER(pthread.h,, AC_MSG_ERROR(pthread library not found !))
AC_DEFINE(HAVE_PTHREAD, 1, thread support through pthread library.)
AC_DEFINE(HAVE_THREAD, 1, thread support)
case "$host" in
*freebsd*)
CPPFLAGS="$CPPLAGS -D_THREAD_SAFE"
LIBS="-pthread $LIBS"
;;
*solaris*)
CPPFLAGS="$CPPFLAGS -D_REENTRANT"
LIBS="-lpthread -lrt $LIBS"
;;
*)
CPPFLAGS="$CPPFLAGS -D_REENTRANT"
LIBS="-lpthread $LIBS"
;;
esac
;;
no)
AC_MSG_RESULT(no)
;;
*)
AC_MSG_RESULT(???)
AC_MSG_ERROR(Unknown option : $ac_with_thread)
;;
esac
# for SocketAppender
AC_CHECK_FUNCS(gethostbyname,,
[AC_CHECK_LIB(nsl,gethostbyname,,
[AC_CHECK_LIB(socket,gethostbyname)])])
AC_CHECK_FUNCS(setsockopt,,[AC_CHECK_LIB(socket,setsockopt)])
# for DOMConfigurator
AC_MSG_CHECKING(for XML support)
AC_ARG_WITH(XML,
AC_HELP_STRING(--with-XML, [XML support. Accepted arguments :
libxml2, Microsoft, no (default=libxml2)]),
[ac_with_xml=$withval],
[ac_with_xml=libxml2]
)
case "$ac_with_xml" in
Microsoft)
AC_DEFINE(HAVE_MS_XML, 1, ODBC support through Microsoft XML.)
AC_DEFINE(HAVE_XML, 1, XML support)
AC_MSG_RESULT(Microsoft)
;;
libxml2)
AC_MSG_RESULT(libxml2)
AC_CHECK_PROG(XML2_CONFIG, xml2-config, yes, no)
if test "x$XML2_CONFIG" = "xyes"
then
AC_DEFINE(HAVE_LIBXML2, 1, XML support through libxml2.)
AC_DEFINE(HAVE_XML, 1, XML support)
LIBS_XML="`xml2-config --libs`"
CPPFLAGS_XML="`xml2-config --cflags`"
else
AC_MSG_WARN(libxml2 not found !)
fi
;;
no)
AC_MSG_RESULT(no)
;;
*)
AC_MSG_RESULT(???)
AC_MSG_ERROR(Unknown option : $ac_with_xml)
;;
esac
AC_SUBST(LIBS_XML)
AC_SUBST(CPPFLAGS_XML)
#for UNICODE
AC_MSG_CHECKING(for UTF-16 Unicode support)
AC_ARG_ENABLE(unicode,
AC_HELP_STRING(--enable-unicode, [UTF-16 Unicode support (default=no)]),
AC_DEFINE(UNICODE, 1, UTF-16 Unicode support.)
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no))
#for ODBCAppender
AC_MSG_CHECKING(for ODBC support)
AC_ARG_WITH(ODBC,
AC_HELP_STRING(--with-ODBC, [ODBC support. Accepted arguments :
unixODBC, iODBC, Microsoft, no (default=no)]),
[ac_with_odbc=$withval],
[ac_with_odbc=no])
case "$ac_with_odbc" in
Microsoft)
AC_DEFINE(HAVE_MS_ODBC, 1, ODBC support through Microsoft ODBC.)
AC_DEFINE(HAVE_ODBC, 1, ODBC support)
AC_MSG_RESULT(Microsoft)
LIBS_ODBC="-lodbc32"
;;
unixODBC)
AC_MSG_RESULT(unixODBC)
AC_CHECK_HEADER(sqlext.h,, AC_MSG_ERROR(unixODBC not found !))
AC_DEFINE(HAVE_UNIX_ODBC, 1, ODBC support through unixODBC.)
AC_DEFINE(HAVE_ODBC, 1, ODBC support)
LIBS_ODBC="-lodbc"
;;
iODBC)
AC_MSG_RESULT(iODBC)
AC_CHECK_PROG(IODBC_CONFIG, iodbc-config, yes, no)
if test "x$IODBC_CONFIG" = "xyes"
then
AC_DEFINE(HAVE_I_ODBC, 1, ODBC support through iODBC.)
AC_DEFINE(HAVE_ODBC, 1, ODBC support)
LIBS_ODBC="`iodbc-config --libs`"
CPPFLAGS_ODBC="`iodbc-config --cflags`"
else
AC_MSG_ERROR(iODBC not found !)
fi
;;
no)
AC_MSG_RESULT(no)
;;
*)
AC_MSG_RESULT(???)
AC_MSG_ERROR(Unknown option : $ac_with_odbc)
;;
esac
AC_SUBST(LIBS_ODBC)
AC_SUBST(CPPFLAGS_ODBC)
#for System
AC_CHECK_FUNCS(gettimeofday ftime setenv)
#for SMTPAppender
AC_MSG_CHECKING(for SMTP support)
AC_ARG_WITH(SMTP,
AC_HELP_STRING(--with-SMTP, [SMTP support. Accepted arguments :
libsmtp, CDO, no (default=no)]),
[ac_with_smtp=$withval],
[ac_with_smtp=no])
case "$ac_with_smtp" in
CDO)
AC_MSG_RESULT(CDO)
AC_DEFINE(HAVE_CDO_SMTP, 1, SMTP support through Microsoft CDO.)
AC_DEFINE(HAVE_SMTP, 1, SMTP support)
;;
libsmtp)
AC_MSG_RESULT(libsmtp)
AC_CHECK_LIB([smtp_mime], [libsmtp_session_initialize],,
AC_MSG_ERROR(libsmtp library not found !),
`glib-config --libs` -lsmtp)
AC_DEFINE(HAVE_LIBSMTP, 1, SMTP support through libsmtp library.)
AC_DEFINE(HAVE_SMTP, 1, SMTP support)
LIBS="`glib-config --libs` -lsmtp $LIBS"
CPPFLAGS="`glib-config --cflags` $CPPFLAGS"
;;
no)
AC_MSG_RESULT(no)
;;
*)
AC_MSG_RESULT(???)
AC_MSG_ERROR(Unknown option : $ac_with_smtp)
;;
esac
#for _T
case "$host" in
*apple-darwin*)
AC_DEFINE(MUST_UNDEF_T, 1, Defined to 1 if macro _T has to be undefined)
;;
esac
# Create files
# ----------------------------------------------------------------------------
AC_CONFIG_FILES([
Makefile
docs/Makefile
docs/Doxyfile
src/Makefile
include/Makefile
include/log4cxx/Makefile
include/log4cxx/helpers/Makefile
include/log4cxx/net/Makefile
include/log4cxx/nt/Makefile
include/log4cxx/spi/Makefile
include/log4cxx/varia/Makefile
include/log4cxx/xml/Makefile
include/log4cxx/config/Makefile
include/log4cxx/db/Makefile
tests/Makefile
tests/input/Makefile
tests/input/xml/Makefile
tests/src/Makefile
tests/src/customlogger/Makefile
tests/src/defaultinit/Makefile
tests/src/helpers/Makefile
tests/src/net/Makefile
tests/src/pattern/Makefile
tests/src/util/Makefile
tests/src/xml/Makefile
tests/src/varia/Makefile
tests/witness/Makefile
performance/Makefile
performance/xml/Makefile
examples/Makefile
msvc/Makefile
msvc/examples/Makefile
msvc/simplesocketserver/Makefile
msvc/static/Makefile
msvc/tests/Makefile
msvc/performance/Makefile
])
AC_OUTPUT
--- NEW FILE: ChangeLog ---
Version 0.9.7 (2004-05-10)
==========================
* Fixed examples source code in the "Short introduction to log4cxx".
* Fixed, in the renaming algorithm of RollingFileAppender and
DailyRollingFileAppender, a problem specific to Unicode.
* Fixed conflict with Windows macros "min" and "max", by renaming
StrictMath::min and StrictMath::max to StrictMath::minimum and
StrictMath::maximum.
* Port to HPUX 11.0.
* Fixed segmentation fault in PropertyConfigurator.
* Port to Solaris.
* Fixed MutexException thrown while destroying RollingFileAppender.
* Logging macros can be used without explicity declaring the use of log4cxx
namespace.
* Fixed static library unresolved externals for msvc 6 and 7.1
Version 0.9.6 (2004-04-11)
==========================
* Timezone management has been optimized through the class TimeZone
* Inter-thread synchronization and reference counting has been optimized
* Reference counting now uses gcc atomic functions (bug 929078)
* Use of StringBuffer has been optimized.
* Support of localisation throug resourceBundles
* SyslogAppender now uses the system function 'syslog' to log on the local host.
(only for POSIX systems)
* Added TimeZone configuration to PatternLayout (bug 912563)
* Support of the DailyRollingFileAppender (feature request 842765)
Version 0.9.5 (2004-02-04)
==========================
* Port of log4j Jnuit tests with Cppunit and Boost Regex.
* Added explicit exports for MSDEV 6 and MSDEV 7 (no further need of .def files)
* Custom levels can be configured through the DOMConfigurator and
PropertyConfigurator classes (Level inherites from Object)
* Added a reference counter to LoggingEvent to avoid useless copies
(LoggingEvent inherites from Object)
* The file log4j.xml as well as the file log4j.properties are now search
for, in log4cxx initialization.
* The root logger can be assigned the "OFF" level.
* Added MSVC6 project missing files mutext.cpp & condition.cpp (bug 847397)
* condition.cpp now compiles with MSVC6 (bug 847417)
* fixed pure virtual function call in PropertyConfigurator::configureAndWatch
(bug 848521)
* XMLAppender now displays correct timestamp with MSVC 6 (bug 852836)
* SRLPORT 4.6 support.
* Fixed an infinite loop in class Properties.
* Fixed compilations problems with unicode.
* Fixed SocketAppender bug concerning MDC ans NDC.
Version 0.9.4 (2003-10-25)
==========================
* StringBuffer has been optimized.
* Fixed miscellaneous threading problems.
* Added TimeZone support in PatternLayout (bug 796894)
* Fixed threading configuration problems (bug 809125)
* Fixed miscellaneous MSVC and cygwin compilation problems.
Version 0.9.3 (2003-09-19)
==========================
* Changed tstring to log4cxx::String and tostringstream to
log4cxx::StringBuffer.
* Fixed MSVC 2003 compilation erros and warnings.
* Added helpers for NDC and MDC.
* Added TimeZone support in TTCCLayout.
* Fixed compilation problems with logger macros (LOG4CXX_...)
* Fixed milliseconds formatting problem with MSVC 6.0 and 2003
* Fixed AsyncAppender crash
* Added new tests
* Added benchmarks
Version 0.9.2 (2003-08-10)
==========================
* Fixed FreeBSD compilation problem with pthread mutex (class CriticalSection).
* Fixed milliseconds formatting problem (class DateFormat).
* Long events (> 1024 chars) are now supported in the class XMLSocketAppender.
* Carriage returns have been normalized in the class XMLLayout.
Version 0.9.1 (2003-08-06)
==========================
* Fixed deadlock problems in classes Logger and AsyncAppender.
* Fixed MSVC 6.0 compilation problems.
* Added MSVC 6.0 static libraty project.
* Default configuration for the SMTP options is "no".
Version 0.9.0 (2003-08-06)
==========================
* Added ODBCAppender (matching log4j JDBCAppender)
* Added SyslogAppender
* Added SMTPAppender (only for Linux/FreeBSD)
* Added BasicConfigurator
* Added a FileWatchDog in PropertyConfigurator and DOMConfigurator
* Possibility to load a custom LoggerFactory through the DOMConfigurator
* Changed time precision from seconds to milliseconds
* Added MSVC 6.0 'Unicode Debug' and 'Unicode Release' targets
* Added Java like System class.
Version 0.1.1 (2003-07-09)
==========================
* Fixed MSVC 6.0 compilation problems concerning the 'Release' target
* Added MSVC 6.0 tests projects
Version 0.1.0 (2003-07-08)
==========================
* FreeBSD Autotools/Compilation support
* Fixed TelnetAppender crash when a socket bind exception occured.
* Added log4j DTD support to XMLLayout and DOMConfigurator
* Can now send events in XML format over TCP (class XMLSocketAppender) for the
log4j Chainsaw UI
* Now compiles with 'configure --enable-unicode' (UTF16 Unicode support)
* Added Java like Properties class. It's a helper for the PropertyConfigurator
* Added Java like objects with dynamic cast and instanciation. Custom objects
can be configured through the DOMConfigurator and PropertyConfigurator classes
* Port of the PropertyConfigurator class
* Port of the "Map Diagnostic Context" (MDC) class
* Added 13 tests (try make check)
Version 0.0.1 (2003-05-31)
==========================
Loggers, Hierarchy, Filters, Appenders, Layouts, NDC
* Appenders:
AsyncAppender, ConsoleAppender, FileAppender, NTEventLogAppender,
RollingFileAppender, SocketAppender, SocketHubAappender,
TelnetAppender
* Layouts:
HTMLLayout, PatternLayout, SimpleLayout, TTCCLayout, XMLLayout
* Filters:
DenyAllFilter, LevelMatchFilter, LevelRangeFilter, StringMatchFilter
* Configurators:
DOMConfigurator
--- NEW FILE: Makefile.am ---
SUBDIRS = docs src msvc include tests performance examples
EXTRA_DIST = autogen.sh configure include license.apl
dist-hook:
rm -rf\
`find $(distdir) -name Makefile`\
`find $(distdir) -name Makefile.in`\
`find $(distdir) -name CVS`\
$(distdir)/aclocal.m4\
$(distdir)/config.guess\
$(distdir)/config.sub\
$(distdir)/configure\
$(distdir)/depcomp\
$(distdir)/install-sh\
$(distdir)/ltmain.sh\
$(distdir)/missing\
$(distdir)/mkinstalldirs\
$(distdir)/include/log4cxx/stamp*\
$(distdir)/include/log4cxx/config.h*
--- NEW FILE: INSTALL ---
Basic Installation
==================
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a `Makefile' in each directory of the package.
It also create a `config.h' file containing system-dependent
definitions. Finally, it creates a shell script `config.status' that
you can run in the future to recreate the current configuration, a file
`config.cache' that saves the results of its tests to speed up
reconfiguring, and a file `config.log' containing compiler output
(useful mainly for debugging `configure').
If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
diffs or instructions to the address given in the `AUTHORS' so they can
be considered for the next release. If at some point `config.cache'
contains results you don't want to keep, you may remove or edit it.
The file `configure.in' is used to create `configure' by a program
called `autoconf'.
The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code.
2. type `./autogen.sh' to generate the configure script.
If you're using `csh' on an old version of System V, you might
need to type `sh ./autogen.sh' instead to prevent `csh' from trying
to execute `autogen.sh' itself.
3. type `./configure' to configure the package for your system.
If you're using `csh' on an old version of System V, you might
need to type `sh ./configure' instead to prevent `csh' from trying
to execute `configure' itself.
Running `configure' takes awhile. While running, it prints some
messages telling which features it is checking for.
4. Type `make' to compile the package.
5. Optionally, type `make check' to run any self-tests that come with
the package.
6. Type `make install' to install the programs and any data files and
documentation.
7. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'. There is
also a `make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.
Compilers and Options
=====================
Some systems require unusual options for compilation or linking that
the `configure' script does not know about. You can give `configure'
initial values for variables by setting them in the environment. Using
a Bourne-compatible shell, you can do that on the command line like
this:
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
Or on systems that have the `env' program, you can do it like this:
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
Compiling For Multiple Architectures
====================================
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you must use a version of `make' that
supports the `VPATH' variable, such as GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'.
If you have to use a `make' that does not supports the `VPATH'
variable, you have to compile the package for one architecture at a time
in the source code directory. After you have installed the package for
one architecture, use `make distclean' before reconfiguring for another
architecture.
Installation Names
==================
By default, `make install' will install the package's files in
`/usr/local/bin', `/usr/local/man', etc. You can specify an
installation prefix other than `/usr/local' by giving `configure' the
option `--prefix=PATH'.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
give `configure' the option `--exec-prefix=PATH', the package will use
PATH as the prefix for installing programs and libraries.
Documentation and other data files will still use the regular prefix.
In addition, if you use an unusual directory layout you can give
options like `--bindir=PATH' to specify different values for particular
kinds of files. Run `configure --help' for a list of the directories
you can set and what kinds of files go in them.
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving `configure' the
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
Optional Features
=================
With --enable-unicode, the library will be compiled with UTF16 Unicode support
(2 bytes wide characters instead of 1 byte wide characters)
If the libXML2 library (http://xmlsoft.org) is detected, the DOMConfigurator
class will be compiled.
Threading support can be added through option -with-thread
* "pthread" (default): pthread library
* "Microsoft" : native microsoft library
* "no" : no threading support
ODBC support (ODBCAppender) can be added through option -with-ODBC
* "unixODBC" : unixODBC library (http://www.unixodbc.org)
* "iODBC" : iODBC library (http://www.iodbc.org)
* "Microsoft" : Microsoft ODBC library
* "no" (default) : no ODBC support
SMTP support (SMTPAppender) can be added through option -with-SMTP
* "libsmtp" : libsmtp library (http://libsmtp.berlios.de)
* "CDO" : Microsoft CDO library (no yet implemented !)
* "no" (default) : no SMTP support
XML support (DOMConfigurator) can be added through option -with-XML
* "libxm2" (default) : gnome xml library (http://xmlsoft.org)
* "Microsoft" : MSXML library
* "no" : no XML support
Specifying the System Type
==========================
There may be some features `configure' can not figure out
automatically, but needs to determine by the type of host the package
will run on. Usually `configure' can figure that out, but if it prints
a message saying it can not guess the host type, give it the
`--host=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name with three fields:
CPU-COMPANY-SYSTEM
See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't
need to know the host type.
If you are building compiler tools for cross-compiling, you can also
use the `--target=TYPE' option to select the type of system they will
produce code for and the `--build=TYPE' option to select the type of
system on which you are compiling the package.
Sharing Defaults
================
If you want to set default values for `configure' scripts to share,
you can create a site shell script called `config.site' that gives
default values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
A warning: not all `configure' scripts look for a site script.
Operation Controls
==================
`configure' recognizes the following options to control how it
operates.
`--cache-file=FILE'
Use and save the results of the tests in FILE instead of
`./config.cache'. Set FILE to `/dev/null' to disable caching, for
debugging `configure'.
`--help'
Print a summary of the options to `configure', and exit.
`--quiet'
`--silent'
`-q'
Do not print messages saying which checks are being made. To
suppress all normal output, redirect it to `/dev/null' (any error
messages will still be shown).
`--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
`configure' can determine that directory automatically.
`--version'
Print the version of Autoconf used to generate the `configure'
script, and exit.
`configure' also accepts some other, not widely useful, options.
MsDev 6.0 Compilation
=====================
Copy the msvc/config.h.msvc file to include/log4cxx/config.h.
If you want to compile a dynamic library (dll), compile msvc/dll/dll.dsp.
If you want to compile a static library (lib), compile msvc/static/static.dsp.
The DOMConfigurator class is compiled with the MSXML library, if 'HAVE_XML'
and 'HAVE_MS_XML' are defined in the config.h file.
The ODBCAppender class is compiled with the Microsoft ODBC library, if
'HAVE_ODBC' and 'HAVE_MS_ODBC' are defined in the config.h file.
The SMTPAppender class is compiled with the Microsoft CDO library, if
'HAVE_SMTP' and 'HAVE_CDO_SMTP' are defined in the config.h file.
(not yet implemented)
log4cxx is build with Windows native thread support, if 'HAVE_THREAD' and
'HAVE_MS_THREAD' are defined in the config.h file.
UNICODE support is available through 'Unicode Debug' and 'Unicode Release'
compilation targets.
Visual Studio .Net 2003 Compilation
===================================
Copy the msvc/config.h.msvc file to include/log4cxx/config.h.
If you want to compile a dynamic library (dll), compile msvc/dll/dll.vcproj.
If you want to compile a static library (lib), compile msvc/static/static.vcproj.
The config file options are same as for MsDev 6.0
--- NEW FILE: AUTHORS ---
Michael CATANZARITI <mc...@us...>
Edmond NOLAN <log...@us...>
--- NEW FILE: README ---
Introduction
============
Log4cxx is a port to C++ of the log4j project.
The goal is have the same functionnalities and interfaces of log4j.
Features
========
It's a flexible and highly configurable logging framework
Main features :
- Configurable logging destinations (appenders)
- Configurable logging format (layouts)
- Categorized logging statements through a hierarchy (loggers)
- Advanced filtering (filters)
- Thread safe library
- UTF-16 Unicode support
* Appenders:
AsyncAppender, ConsoleAppender, DailyRollingFileAppender, FileAppender,
NTEventLogAppender, ODBCAppender, RollingFileAppender, SMTPAppender,
SocketAppender, SocketHubAappender, SyslogAppender, TelnetAppender,
XMLSocketAppender
* Layouts:
HTMLLayout, PatternLayout, SimpleLayout, TTCCLayout, XMLLayout
* Filters:
DenyAllFilter, LevelMatchFilter, LevelRangeFilter, StringMatchFilter
* Configurators:
BasicConfigurator, DOMConfigurator, PropertyConfigurator
* Java like objects with dynamic cast and instanciation. Custom objects can
be configured through the DOMConfigurator and PropertyConfigurator classes
Supported OS
============
* Linux (tested on Linux Mandrake 10.0)
* FreeBSD
* Windows (MSVC 6.0, MSVC 7.1 or Cygwin)
* Other POSIX OS should be supported but were not tested
Installation
============
./autogen.sh
./configure
make
make check
make install
See INSTALL file for further details.
Visual Studio .Net 2003 and Visual Studio 6.0 considerations
============================================================
For projects linking with log4cxx static library, the macro LOG4CXX_STATIC must
be defined (tab C++, textbox Preprocessor in the project properties) and
"log4cxxs.lib" must be passed to the linker (tab Link,textbox Object/Library
Modules in the project settings).
For projects linking with log4cxx dynamic library (dll), "log4cxx.lib" must be
passed to the linker (tab Link,textbox Object/Library Modules in the project
settings).
Unitary Tests
=============
You will need to install
* cppunit (http://cppunit.sourceforge.net/)
* boost regex (http://www.boost.org/)
Unix : run "make check"
Windows : run msvc/tests/runtests.bat
Performance Tests
=================
Just run performance/logging.sh.
The result are expressed in micro-seconds.
Links
=====
http://logging.apache.org/log4cxx
Log4cxx project page
http://logging.apache.org/log4j
Log4j project page
Contacts
========
See AUTHORS file
License
=======
This library is licensed under the Apache Public License. Please read the
included license.apl for details.
--- NEW FILE: NEWS ---
See the `http://sourceforge.net/news/?group_id=82335' page
--- NEW FILE: autogen.sh ---
#! /bin/sh
# Regenerate the files autoconf / automake
libtoolize --force --automake
rm -f config.cache
rm -f config.log
aclocal
autoheader
autoconf
automake -a
|