apache-log4cxx-0.10.0/src/ 40755 0 0 0 10774264474 12237 5ustar 0 0 apache-log4cxx-0.10.0/src/assembly/ 40755 0 0 0 10774263234 14047 5ustar 0 0 apache-log4cxx-0.10.0/src/test/ 40755 0 0 0 10774264477 13221 5ustar 0 0 apache-log4cxx-0.10.0/src/test/java/ 40755 0 0 0 10774263234 14130 5ustar 0 0 apache-log4cxx-0.10.0/src/test/java/org/ 40755 0 0 0 10774263234 14717 5ustar 0 0 apache-log4cxx-0.10.0/src/test/java/org/apache/ 40755 0 0 0 10774263234 16140 5ustar 0 0 apache-log4cxx-0.10.0/src/test/java/org/apache/log4j/ 40755 0 0 0 10774263234 17157 5ustar 0 0 apache-log4cxx-0.10.0/src/test/java/org/apache/log4j/net/ 40755 0 0 0 10774263234 17745 5ustar 0 0 apache-log4cxx-0.10.0/src/test/cpp/ 40755 0 0 0 10774264477 14003 5ustar 0 0 apache-log4cxx-0.10.0/src/test/cpp/db/ 40755 0 0 0 10774263234 14356 5ustar 0 0 apache-log4cxx-0.10.0/src/test/cpp/spi/ 40755 0 0 0 10774263234 14564 5ustar 0 0 apache-log4cxx-0.10.0/src/test/cpp/helpers/ 40755 0 0 0 10774263245 15435 5ustar 0 0 apache-log4cxx-0.10.0/src/test/cpp/varia/ 40755 0 0 0 10774263245 15075 5ustar 0 0 apache-log4cxx-0.10.0/src/test/cpp/rolling/ 40755 0 0 0 10774263245 15441 5ustar 0 0 apache-log4cxx-0.10.0/src/test/cpp/defaultinit/ 40755 0 0 0 10774263245 16303 5ustar 0 0 apache-log4cxx-0.10.0/src/test/cpp/pattern/ 40755 0 0 0 10774263245 15450 5ustar 0 0 apache-log4cxx-0.10.0/src/test/cpp/nt/ 40755 0 0 0 10774263250 14410 5ustar 0 0 apache-log4cxx-0.10.0/src/test/cpp/net/ 40755 0 0 0 10774263251 14556 5ustar 0 0 apache-log4cxx-0.10.0/src/test/cpp/xml/ 40755 0 0 0 10774263251 14570 5ustar 0 0 apache-log4cxx-0.10.0/src/test/cpp/customlogger/ 40755 0 0 0 10774263273 16506 5ustar 0 0 apache-log4cxx-0.10.0/src/test/cpp/util/ 40755 0 0 0 10774263274 14752 5ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/ 40755 0 0 0 10774264477 15233 5ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/input/ 40755 0 0 0 10774264477 16372 5ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/input/rolling/ 40755 0 0 0 10774264477 20040 5ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/input/xml/ 40755 0 0 0 10774264477 17172 5ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/input/ndc/ 40755 0 0 0 10774264477 17136 5ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/witness/ 40755 0 0 0 10774264500 16712 5ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/witness/encoding/ 40755 0 0 0 10774264500 20500 5ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/witness/rolling/ 40755 0 0 0 10774264500 20360 5ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/witness/serialization/ 40755 0 0 0 10774263315 21572 5ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/witness/ndc/ 40755 0 0 0 10774264500 17456 5ustar 0 0 apache-log4cxx-0.10.0/src/ant/ 40755 0 0 0 10774263317 13014 5ustar 0 0 apache-log4cxx-0.10.0/src/main/ 40755 0 0 0 10774264474 13163 5ustar 0 0 apache-log4cxx-0.10.0/src/main/cpp/ 40755 0 0 0 10774264474 13745 5ustar 0 0 apache-log4cxx-0.10.0/src/main/include/ 40755 0 0 0 10774264474 14606 5ustar 0 0 apache-log4cxx-0.10.0/src/main/include/log4cxx/ 40755 0 0 0 10774264475 16177 5ustar 0 0 apache-log4cxx-0.10.0/src/main/include/log4cxx/db/ 40755 0 0 0 10774264475 16564 5ustar 0 0 apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/ 40755 0 0 0 10774264476 16773 5ustar 0 0 apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/location/ 40755 0 0 0 10774264476 20603 5ustar 0 0 apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/ 40755 0 0 0 10774264475 17641 5ustar 0 0 apache-log4cxx-0.10.0/src/main/include/log4cxx/varia/ 40755 0 0 0 10774264476 17302 5ustar 0 0 apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/ 40755 0 0 0 10774264476 17646 5ustar 0 0 apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/ 40755 0 0 0 10774264476 17655 5ustar 0 0 apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/ 40755 0 0 0 10774264476 16621 5ustar 0 0 apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/ 40755 0 0 0 10774264475 17464 5ustar 0 0 apache-log4cxx-0.10.0/src/main/include/log4cxx/net/ 40755 0 0 0 10774264475 16765 5ustar 0 0 apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/ 40755 0 0 0 10774264476 17000 5ustar 0 0 apache-log4cxx-0.10.0/src/main/include/log4cxx/config/ 40755 0 0 0 10774264475 17444 5ustar 0 0 apache-log4cxx-0.10.0/src/main/include/log4cxx/private/ 40755 0 0 0 10774264476 17652 5ustar 0 0 apache-log4cxx-0.10.0/src/main/resources/ 40755 0 0 0 10774263402 15163 5ustar 0 0 apache-log4cxx-0.10.0/src/site/ 40755 0 0 0 10774264476 13205 5ustar 0 0 apache-log4cxx-0.10.0/src/site/doxy/ 40755 0 0 0 10774264476 14170 5ustar 0 0 apache-log4cxx-0.10.0/src/site/apt/ 40755 0 0 0 10774263403 13756 5ustar 0 0 apache-log4cxx-0.10.0/src/site/apt/building/ 40755 0 0 0 10774263403 15553 5ustar 0 0 apache-log4cxx-0.10.0/src/site/resources/ 40755 0 0 0 10774263411 15203 5ustar 0 0 apache-log4cxx-0.10.0/src/site/resources/images/ 40755 0 0 0 10774263411 16450 5ustar 0 0 apache-log4cxx-0.10.0/src/site/resources/css/ 40755 0 0 0 10774263411 15773 5ustar 0 0 apache-log4cxx-0.10.0/src/site/xdoc/ 40755 0 0 0 10774263413 14130 5ustar 0 0 apache-log4cxx-0.10.0/src/site/xdoc/stylesheets/ 40755 0 0 0 10774263413 16504 5ustar 0 0 apache-log4cxx-0.10.0/src/site/fml/ 40755 0 0 0 10774263413 13751 5ustar 0 0 apache-log4cxx-0.10.0/src/changes/ 40755 0 0 0 10774263414 13640 5ustar 0 0 apache-log4cxx-0.10.0/src/examples/ 40755 0 0 0 10774264474 14055 5ustar 0 0 apache-log4cxx-0.10.0/src/examples/cpp/ 40755 0 0 0 10774264474 14637 5ustar 0 0 apache-log4cxx-0.10.0/site/ 40755 0 0 0 10774263473 12412 5ustar 0 0 apache-log4cxx-0.10.0/site/stylesheets/ 40755 0 0 0 10774263473 14766 5ustar 0 0 apache-log4cxx-0.10.0/site/building/ 40755 0 0 0 10774263473 14207 5ustar 0 0 apache-log4cxx-0.10.0/site/images/ 40755 0 0 0 10774263451 13653 5ustar 0 0 apache-log4cxx-0.10.0/site/images/logos/ 40755 0 0 0 10774263451 14776 5ustar 0 0 apache-log4cxx-0.10.0/site/css/ 40755 0 0 0 10774263473 13202 5ustar 0 0 apache-log4cxx-0.10.0/site/apidocs/ 40755 0 0 0 10774263472 14033 5ustar 0 0 apache-log4cxx-0.10.0/configure.bat100755 0 0 2011 10774263414 14204 0ustar 0 0 ECHO OFF REM Licensed to the Apache Software Foundation (ASF) under one or more REM contributor license agreements. See the NOTICE file distributed with REM this work for additional information regarding copyright ownership. REM The ASF licenses this file to You under the Apache License, Version 2.0 REM (the "License"); you may not use this file except in compliance with REM the License. You may obtain a copy of the License at REM REM http://www.apache.org/licenses/LICENSE-2.0 REM REM Unless required by applicable law or agreed to in writing, software REM distributed under the License is distributed on an "AS IS" BASIS, REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. REM See the License for the specific language governing permissions and REM limitations under the License. REM REM copy /Y src\main\include\log4cxx\log4cxx.hw src\main\include\log4cxx\log4cxx.h copy /Y src\main\include\log4cxx\private\log4cxx_private.hw src\main\include\log4cxx\private\log4cxx_private.h apache-log4cxx-0.10.0/configure-aprutil.bat100755 0 0 2026 10774263414 15670 0ustar 0 0 ECHO OFF REM Licensed to the Apache Software Foundation (ASF) under one or more REM contributor license agreements. See the NOTICE file distributed with REM this work for additional information regarding copyright ownership. REM The ASF licenses this file to You under the Apache License, Version 2.0 REM (the "License"); you may not use this file except in compliance with REM the License. You may obtain a copy of the License at REM REM http://www.apache.org/licenses/LICENSE-2.0 REM REM Unless required by applicable law or agreed to in writing, software REM distributed under the License is distributed on an "AS IS" BASIS, REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. REM See the License for the specific language governing permissions and REM limitations under the License. REM REM sed -i -e "s/#define APU_HAVE_APR_ICONV\b.*/#define APU_HAVE_APR_ICONV 0/" ..\apr-util\include\apu.hw sed -i -e "s/#define APR_HAS_LDAP\b.*/#define APR_HAS_LDAP 0/" ..\apr-util\include\apr_ldap.hw apache-log4cxx-0.10.0/autogen.sh100755 0 0 2062 10774263414 13537 0ustar 0 0 #! /bin/sh # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # # Regenerate the files autoconf / automake case `uname` in (Darwin) LIBTOOLIZE=glibtoolize ;; (*) LIBTOOLIZE=libtoolize ;; esac $LIBTOOLIZE --force --automake --copy rm -f config.cache rm -f config.log aclocal -I . autoconf automake -a --copy apache-log4cxx-0.10.0/ltmain.sh100755 0 0 600157 10360750606 13425 0ustar 0 0 # ltmain.sh - Provide generalized library-building support services. # NOTE: Changing this file will not affect anything until you rerun configure. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. basename="s,^.*/,,g" # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" # The name of this program: progname=`echo "$progpath" | $SED $basename` modename="$progname" # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 PROGRAM=ltmain.sh PACKAGE=libtool VERSION="1.5.22 Debian 1.5.22-2" TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)" # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Check that we have a working $echo. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then # Yippee, $echo works! : else # Restart under the correct shell, and then maybe $echo will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE fi # Global variables. mode=$default_mode nonopt= prev= prevopt= run= show="$echo" show_help= execute_dlfiles= duplicate_deps=no preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" ##################################### # Shell function definitions: # This seems to be the best place for them # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $mkdir "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || { $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 exit $EXIT_FAILURE } fi $echo "X$my_tmpdir" | $Xsed } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | \ $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $echo $win32_libid_type } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case "$@ " in " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then $echo "$modename: unable to infer tagged configuration" $echo "$modename: specify a tag with \`--tag'" 1>&2 exit $EXIT_FAILURE # else # $echo "$modename: using $tagname tagged configuration" fi ;; esac fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 exit $EXIT_FAILURE fi } # func_extract_archives gentop oldlib ... func_extract_archives () { my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" my_status="" $show "${rm}r $my_gentop" $run ${rm}r "$my_gentop" $show "$mkdir $my_gentop" $run $mkdir "$my_gentop" my_status=$? if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then exit $my_status fi for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` my_xdir="$my_gentop/$my_xlib" $show "${rm}r $my_xdir" $run ${rm}r "$my_xdir" $show "$mkdir $my_xdir" $run $mkdir "$my_xdir" exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then exit $exit_status fi case $host in *-darwin*) $show "Extracting $my_xabs" # Do not bother doing anything if just a dry run if test -z "$run"; then darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` if test -n "$darwin_arches"; then darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= $show "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we have a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` lipo -create -output "$darwin_file" $darwin_files done # $darwin_filelist ${rm}r unfat-$$ cd "$darwin_orig_dir" else cd "$darwin_orig_dir" func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches fi # $run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # End of Shell function definitions ##################################### # Darwin sucks eval std_shrext=\"$shrext_cmds\" disable_libs=no # Parse our command line options once, thoroughly. while test "$#" -gt 0 do arg="$1" shift case $arg in -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in execute_dlfiles) execute_dlfiles="$execute_dlfiles $arg" ;; tag) tagname="$arg" preserve_args="${preserve_args}=$arg" # Check whether tagname contains only valid characters case $tagname in *[!-_A-Za-z0-9,/]*) $echo "$progname: invalid tag name: $tagname" 1>&2 exit $EXIT_FAILURE ;; esac case $tagname in CC) # Don't test for the "default" C tag, as we know, it's there, but # not specially marked. ;; *) if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then taglist="$taglist $tagname" # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" else $echo "$progname: ignoring unknown tag $tagname" 1>&2 fi ;; esac ;; *) eval "$prev=\$arg" ;; esac prev= prevopt= continue fi # Have we seen a non-optional argument yet? case $arg in --help) show_help=yes ;; --version) $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" $echo $echo "Copyright (C) 2005 Free Software Foundation, Inc." $echo "This is free software; see the source for copying conditions. There is NO" $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." exit $? ;; --config) ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath # Now print the configurations for the tags. for tagname in $taglist; do ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" done exit $? ;; --debug) $echo "$progname: enabling shell trace mode" set -x preserve_args="$preserve_args $arg" ;; --dry-run | -n) run=: ;; --features) $echo "host: $host" if test "$build_libtool_libs" = yes; then $echo "enable shared libraries" else $echo "disable shared libraries" fi if test "$build_old_libs" = yes; then $echo "enable static libraries" else $echo "disable static libraries" fi exit $? ;; --finish) mode="finish" ;; --mode) prevopt="--mode" prev=mode ;; --mode=*) mode="$optarg" ;; --preserve-dup-deps) duplicate_deps="yes" ;; --quiet | --silent) show=: preserve_args="$preserve_args $arg" ;; --tag) prevopt="--tag" prev=tag preserve_args="$preserve_args --tag" ;; --tag=*) set tag "$optarg" ${1+"$@"} shift prev=tag preserve_args="$preserve_args --tag" ;; -dlopen) prevopt="-dlopen" prev=execute_dlfiles ;; -*) $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *) nonopt="$arg" break ;; esac done if test -n "$prevopt"; then $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi case $disable_libs in no) ;; shared) build_libtool_libs=no build_old_libs=yes ;; static) build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` ;; esac # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= if test -z "$show_help"; then # Infer the operation mode. if test -z "$mode"; then $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 case $nonopt in *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) mode=link for arg do case $arg in -c) mode=compile break ;; esac done ;; *db | *dbx | *strace | *truss) mode=execute ;; *install*|cp|mv) mode=install ;; *rm) mode=uninstall ;; *) # If we have no mode, but dlfiles were specified, then do execute mode. test -n "$execute_dlfiles" && mode=execute # Just use the default operation mode. if test -z "$mode"; then if test -n "$nonopt"; then $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 else $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 fi fi ;; esac fi # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$modename --help --mode=$mode' for more information." # These modes are in order of execution frequency so that they run quickly. case $mode in # libtool compile mode compile) modename="$modename: compile" # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) if test -n "$libobj" ; then $echo "$modename: you cannot specify \`-o' more than once" 1>&2 exit $EXIT_FAILURE fi arg_mode=target continue ;; -static | -prefer-pic | -prefer-non-pic) later="$later $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac lastarg="$lastarg $arg" done IFS="$save_ifs" lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` # Add the arguments to base_compile. base_compile="$base_compile $lastarg" continue ;; * ) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` case $lastarg in # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, and some SunOS ksh mistreat backslash-escaping # in scan sets (worked around with variable expansion), # and furthermore cannot handle '|' '&' '(' ')' in scan sets # at all, so we specify them separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") lastarg="\"$lastarg\"" ;; esac base_compile="$base_compile $lastarg" done # for arg case $arg_mode in arg) $echo "$modename: you must specify an argument for -Xcompile" exit $EXIT_FAILURE ;; target) $echo "$modename: you must specify a target with \`-o'" 1>&2 exit $EXIT_FAILURE ;; *) # Get the name of the library object. [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo xform='[cCFSifmso]' case $libobj in *.ada) xform=ada ;; *.adb) xform=adb ;; *.ads) xform=ads ;; *.asm) xform=asm ;; *.c++) xform=c++ ;; *.cc) xform=cc ;; *.ii) xform=ii ;; *.class) xform=class ;; *.cpp) xform=cpp ;; *.cxx) xform=cxx ;; *.f90) xform=f90 ;; *.for) xform=for ;; *.java) xform=java ;; esac libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` case $libobj in *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; *) $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 exit $EXIT_FAILURE ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -static) build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` case $qlibobj in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qlibobj="\"$qlibobj\"" ;; esac test "X$libobj" != "X$qlibobj" \ && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$obj"; then xdir= else xdir=$xdir/ fi lobj=${xdir}$objdir/$objname if test -z "$base_compile"; then $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi $run $rm $removelist trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" removelist="$removelist $output_obj $lockfile" trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $run ln "$progpath" "$lockfile" 2>/dev/null; do $show "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $echo "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi $echo "$srcfile" > "$lockfile" fi if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` case $qsrcfile in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qsrcfile="\"$qsrcfile\"" ;; esac $run $rm "$libobj" "${libobj}T" # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. test -z "$run" && cat > ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then $show "$mv $output_obj $lobj" if $run $mv $output_obj $lobj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the PIC object to the libtool object file. test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then $show "$mv $output_obj $obj" if $run $mv $output_obj $obj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the non-PIC object the libtool object file. # Only append if the libtool object file exists. test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes else if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built fi build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test ;; *) qarg=$arg ;; esac libtool_args="$libtool_args $qarg" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) compile_command="$compile_command @OUTPUT@" finalize_command="$finalize_command @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. compile_command="$compile_command @SYMFILE@" finalize_command="$finalize_command @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" if test ! -f "$arg"; then $echo "$modename: symbol file \`$arg' does not exist" exit $EXIT_FAILURE fi prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat $save_arg` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi done else $echo "$modename: link input file \`$save_arg' does not exist" exit $EXIT_FAILURE fi arg=$save_arg prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= compile_command="$compile_command $wl$qarg" finalize_command="$finalize_command $wl$qarg" continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; shrext) shrext_cmds="$arg" prev= continue ;; darwin_framework|darwin_framework_skip) test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" prev= continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then compile_command="$compile_command $link_static_flag" finalize_command="$finalize_command $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 continue ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: more than one -exported-symbols argument is not allowed" exit $EXIT_FAILURE fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework|-arch|-isysroot) case " $CC " in *" ${arg} ${1} "* | *" ${arg} ${1} "*) prev=darwin_framework_skip ;; *) compiler_flags="$compiler_flags $arg" prev=darwin_framework ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" ;; esac continue ;; -L*) dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" notinst_path="$notinst_path $dir" fi dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs -framework System" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. -model) compile_command="$compile_command $arg" compiler_flags="$compiler_flags $arg" finalize_command="$finalize_command $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) compiler_flags="$compiler_flags $arg" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" continue ;; -module) module=yes continue ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m* pass through architecture-specific compiler args for GCC # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -pg pass through profiling flag for GCC # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \ -t[45]*|-txscale*|@*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" compiler_flags="$compiler_flags $arg" continue ;; -shrext) prev=shrext continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) # The PATH hackery in wrapper scripts is required on Windows # in order for the loader to find any dlls it needs. $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -static) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -Wc,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Wl,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $wl$flag" linker_flags="$linker_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # Some other compiler flag. -* | +*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi done # argument parsing loop if test -n "$prev"; then $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi oldlibs= # calculate the name of the file, without its directory outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` if test "X$output_objdir" = "X$output"; then output_objdir="$objdir" else output_objdir="$output_objdir/$objdir" fi # Create the object directory. if test ! -d "$output_objdir"; then $show "$mkdir $output_objdir" $run $mkdir $output_objdir exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then exit $exit_status fi fi # Determine the type of output case $output in "") $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac case $host in *cygwin* | *mingw* | *pw32*) # don't eliminate duplications in $postdeps and $predeps duplicate_compiler_generated_deps=yes ;; *) duplicate_compiler_generated_deps=$duplicate_deps ;; esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if test "X$duplicate_deps" = "Xyes" ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries case $linkmode in lib) passes="conv link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 exit $EXIT_FAILURE ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS%" test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" ;; esac fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 continue fi name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then library_names= old_library= case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; *) $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` if eval $echo \"$deplib\" 2>/dev/null \ | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $echo $echo "*** Warning: Trying to link with static lib archive $deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because the file extensions .$libext of this argument makes me believe" $echo "*** that it is just a static archive that I should not used here." else $echo $echo "*** Warning: Linking the shared library $output against the" $echo "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 exit $EXIT_FAILURE fi # Check to see that this really is a libtool archive. if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." dlname= dlopen= dlpreopen= libdir= library_names= old_library= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then $echo "$modename: \`$lib' is not a convenience library" 1>&2 exit $EXIT_FAILURE fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 abs_ladir="$ladir" fi ;; esac laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then $echo "$modename: warning: library \`$lib' was moved." 1>&2 dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { test "$prefer_static_libs" = no || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath " in *" $dir "*) ;; *" $absdir "*) ;; *) temp_rpath="$temp_rpath $absdir" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes ; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi # This is a shared library # Warn about portability, can't link against -module's on # some systems (darwin) if test "$shouldnotlink" = yes && test "$pass" = link ; then $echo if test "$linkmode" = prog; then $echo "*** Warning: Linking the executable $output against the loadable module" else $echo "*** Warning: Linking the shared library $output against the loadable module" fi $echo "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names realname="$2" shift; shift libname=`eval \\$echo \"$libname_spec\"` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw*) major=`expr $current - $age` versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" soname=`$echo $soroot | ${SED} -e 's/^.*\///'` newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else $show "extracting exported symbol list from \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$extract_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else $show "generating import library for \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$old_archive_from_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a module then we can not link against # it, someone is ignoring the new warnings I added if /usr/bin/file -L $add 2> /dev/null | $EGREP ": [^:]* bundle" >/dev/null ; then $echo "** Warning, lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $echo $echo "** And there doesn't seem to be a static archive available" $echo "** The link will probably fail, sorry" else add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then $echo "$modename: configuration error: unsupported hardcode properties" exit $EXIT_FAILURE fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && \ test "$hardcode_minus_L" != yes && \ test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $echo $echo "*** Warning: This system can not link to static lib archive $lib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then $echo "*** But as you try to build a module library, libtool will still create " $echo "*** a static module, that should work as long as the dlopening application" $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do case $deplib in -L*) path="$deplib" ;; *.la) dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$deplib" && dir="." # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" fi ;; esac if grep "^installed=no" $deplib > /dev/null; then path="$absdir/$objdir" else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi if test "$absdir" != "$libdir"; then $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 fi path="$absdir" fi depdepl= case $host in *-*-darwin*) # we do not want to link against static libs, # but need to link against shared eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$path/$depdepl" ; then depdepl="$path/$depdepl" fi # do not add paths which are already there case " $newlib_search_path " in *" $path "*) ;; *) newlib_search_path="$newlib_search_path $path";; esac fi path="" ;; *) path="-L$path" ;; esac ;; -l*) case $host in *-*-darwin*) # Again, we only want to link against shared libraries eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` for tmp in $newlib_search_path ; do if test -f "$tmp/lib$tmp_libs.dylib" ; then eval depdepl="$tmp/lib$tmp_libs.dylib" break fi done path="" ;; *) continue ;; esac ;; *) continue ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac case " $deplibs " in *" $depdepl "*) ;; *) deplibs="$depdepl $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 fi if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 fi # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) if test "$module" = no; then $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 exit $EXIT_FAILURE else $echo $echo "*** Warning: Linking the shared library $output against the non-libtool" $echo "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi if test "$dlself" != no; then $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 fi set dummy $rpath if test "$#" -gt 2; then $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 fi install_libdir="$2" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 fi else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 IFS="$save_ifs" if test -n "$8"; then $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$2" number_minor="$3" number_revision="$4" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows) current=`expr $number_major + $number_minor` age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) current=`expr $number_major + $number_minor - 1` age="$number_minor" revision="$number_minor" ;; *) $echo "$modename: unknown library version type \`$version_type'" 1>&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE ;; esac ;; no) current="$2" revision="$3" age="$4" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac if test "$age" -gt "$current"; then $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header major=.`expr $current - $age` versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... minor_current=`expr $current + 1` verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current"; ;; irix | nonstopux) major=`expr $current - $age + 1` case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do iface=`expr $revision - $loop` loop=`expr $loop - 1` verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) major=.`expr $current - $age` versuffix="$major.$age.$revision" ;; osf) major=.`expr $current - $age` versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do iface=`expr $current - $loop` loop=`expr $loop - 1` verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. major=`expr $current - $age` versuffix="-$major" ;; *) $echo "$modename: unknown library version type \`$version_type'" 1>&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$echo "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done if test -n "$removelist"; then $show "${rm}r $removelist" $run ${rm}r $removelist fi fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. for path in $notinst_path; do lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs -framework System" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $rm conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null \ | grep " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for file magic test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a file magic. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` for a_deplib in $deplibs; do name=`expr $a_deplib : '-l\(.*\)'` # If $name is empty we are operating on a -L argument. if test -n "$name" && test "$name" != "0"; then if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval \\$echo \"$libname_spec\"` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval $echo \"$potent_lib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for regex pattern test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a regex pattern. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` done fi if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ | grep . >/dev/null; then $echo if test "X$deplibs_check_method" = "Xnone"; then $echo "*** Warning: inter-library dependencies are not supported in this platform." else $echo "*** Warning: inter-library dependencies are not known to be supported." fi $echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $echo $echo "*** Warning: libtool could not satisfy all declared inter-library" $echo "*** dependencies of module $libname. Therefore, libtool will create" $echo "*** a static module, that should work as long as the dlopening" $echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $echo "*** The inter-library dependencies that have been dropped here will be" $echo "*** automatically added whenever a program is linked with this library" $echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then $echo $echo "*** Since this library must not contain undefined symbols," $echo "*** because either the platform does not support them or" $echo "*** it was explicitly requested with -no-undefined," $echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names realname="$2" shift; shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" if len=`expr "X$cmd" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then $show "$cmd" $run eval "$cmd" || exit $? skipped_export=false else # The command line is too long to execute in one step. $show "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex"; then $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' $show "$mv \"${export_symbols}T\" \"$export_symbols\"" $run eval '$mv "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise. $echo "creating reloadable object files..." # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output output_la=`$echo "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= delfiles= last_robj= k=1 output=$output_objdir/$output_la-${k}.$objext # Loop over the list of objects to be linked. for obj in $save_libobjs do eval test_cmds=\"$reload_cmds $objlist $last_robj\" if test "X$objlist" = X || { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len"; }; then objlist="$objlist $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext k=`expr $k + 1` output=$output_objdir/$output_la-${k}.$objext objlist=$obj len=1 fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if ${skipped_export-false}; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols libobjs=$output # Append the command to create the export file. eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" fi # Set up a command to remove the reloadable object files # after they are used. i=0 while test "$i" -lt "$k" do i=`expr $i + 1` delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" done $echo "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi # Append the command to remove the reloadable object files # to the just-reset $cmds. eval cmds=\"\$cmds~\$rm $delfiles\" fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then $show "${rm}r $gentop" $run ${rm}r "$gentop" fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 fi case $output in *.lo) if test -n "$objs$old_deplibs"; then $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 exit $EXIT_FAILURE fi libobj="$output" obj=`$echo "X$output" | $Xsed -e "$lo2o"` ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $run $rm $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $run eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; esac if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 fi if test "$preload" = yes; then if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && test "$dlopen_self_static" = unknown; then $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." fi fi case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac case $host in *darwin*) # Don't allow lazy linking, it breaks C++ global constructors if test "$tagname" = CXX ; then compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" fi ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then dlsyms="${outputname}S.c" else $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 fi fi if test -n "$dlsyms"; then case $dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${outputname}.nm" $show "$rm $nlist ${nlist}S ${nlist}T" $run $rm "$nlist" "${nlist}S" "${nlist}T" # Parse the name list into a source file. $show "creating $output_objdir/$dlsyms" test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ #ifdef __cplusplus extern \"C\" { #endif /* Prevent the only kind of declaration conflicts we can make. */ #define lt_preloaded_symbols some_other_symbol /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then $show "generating symbol list for \`$output'" test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for arg in $progfiles; do $show "extracting global C symbols from \`$arg'" $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi if test -n "$export_symbols_regex"; then $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $run $rm $export_symbols $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* ) $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac else $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' $run eval 'mv "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* ) $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac fi fi for arg in $dlprefiles; do $show "extracting global C symbols from \`$arg'" name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` $run eval '$echo ": $name " >> "$nlist"' $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -z "$run"; then # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $mv "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if grep -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else grep -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' else $echo '/* NONE */' >> "$output_objdir/$dlsyms" fi $echo >> "$output_objdir/$dlsyms" "\ #undef lt_preloaded_symbols #if defined (__STDC__) && __STDC__ # define lt_ptr void * #else # define lt_ptr char * # define const #endif /* The mapping between symbol names and symbols. */ " case $host in *cygwin* | *mingw* ) $echo >> "$output_objdir/$dlsyms" "\ /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs */ struct { " ;; * ) $echo >> "$output_objdir/$dlsyms" "\ const struct { " ;; esac $echo >> "$output_objdir/$dlsyms" "\ const char *name; lt_ptr address; } lt_preloaded_symbols[] = {\ " eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" $echo >> "$output_objdir/$dlsyms" "\ {0, (lt_ptr) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " fi pic_flag_for_symtable= case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; esac;; *-*-hpux*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag";; esac esac # Now compile the dynamic symbol file. $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? # Clean up the generated files. $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" # Transform the symbol file into the correct name. case $host in *cygwin* | *mingw* ) if test -f "$output_objdir/${outputname}.def" ; then compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` else compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` fi ;; * ) compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ;; esac ;; *) $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 exit $EXIT_FAILURE ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi if test "$need_relink" = no || test "$build_libtool_libs" != yes; then # Replace the output file specification. compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. $show "$link_command" $run eval "$link_command" exit_status=$? # Delete the generated files. if test -n "$dlsyms"; then $show "$rm $output_objdir/${outputname}S.${objext}" $run $rm "$output_objdir/${outputname}S.${objext}" fi exit $exit_status fi if test -n "$shlibpath_var"; then # We should set the shlibpath_var rpath= for dir in $temp_rpath; do case $dir in [\\/]* | [A-Za-z]:[\\/]*) # Absolute path. rpath="$rpath$dir:" ;; *) # Relative path: add a thisdir entry. rpath="$rpath\$thisdir/$dir:" ;; esac done temp_rpath="$rpath" fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $run $rm $output # Link the executable and exit $show "$link_command" $run eval "$link_command" || exit $? exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 $echo "$modename: \`$output' will be relinked during installation" 1>&2 else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname $show "$link_command" $run eval "$link_command" || exit $? # Now create the wrapper script. $show "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $echo for shipping. if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if our run command is non-null. if test -z "$run"; then # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) output_name=`basename $output` output_path=`dirname $output` cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $rm $cwrappersource $cwrapper trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 cat > $cwrappersource <> $cwrappersource<<"EOF" #include #include #include #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) /* -DDEBUG is fairly common in CFLAGS. */ #undef DEBUG #if defined DEBUGWRAPPER # define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) #else # define DEBUG(format, ...) #endif const char *program_name = NULL; void * xmalloc (size_t num); char * xstrdup (const char *string); const char * base_name (const char *name); char * find_executable(const char *wrapper); int check_executable(const char *path); char * strendzap(char *str, const char *pat); void lt_fatal (const char *message, ...); int main (int argc, char *argv[]) { char **newargz; int i; program_name = (char *) xstrdup (base_name (argv[0])); DEBUG("(main) argv[0] : %s\n",argv[0]); DEBUG("(main) program_name : %s\n",program_name); newargz = XMALLOC(char *, argc+2); EOF cat >> $cwrappersource <> $cwrappersource <<"EOF" newargz[1] = find_executable(argv[0]); if (newargz[1] == NULL) lt_fatal("Couldn't find %s", argv[0]); DEBUG("(main) found exe at : %s\n",newargz[1]); /* we know the script has the same name, without the .exe */ /* so make sure newargz[1] doesn't end in .exe */ strendzap(newargz[1],".exe"); for (i = 1; i < argc; i++) newargz[i+1] = xstrdup(argv[i]); newargz[argc+1] = NULL; for (i=0; i> $cwrappersource <> $cwrappersource <> $cwrappersource <<"EOF" return 127; } void * xmalloc (size_t num) { void * p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL ; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char)name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable(const char * path) { struct stat st; DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && ( /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ #if defined (S_IXOTH) ((st.st_mode & S_IXOTH) == S_IXOTH) || #endif #if defined (S_IXGRP) ((st.st_mode & S_IXGRP) == S_IXGRP) || #endif ((st.st_mode & S_IXUSR) == S_IXUSR)) ) return 1; else return 0; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise */ char * find_executable (const char* wrapper) { int has_slash = 0; const char* p; const char* p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char* concat_name; DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char* path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char* q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR(*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen(tmp); concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen(tmp); concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); return NULL; } char * strendzap(char *str, const char *pat) { size_t len, patlen; assert(str != NULL); assert(pat != NULL); len = strlen(str); patlen = strlen(pat); if (patlen <= len) { str += len - patlen; if (strcmp(str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char * mode, const char * message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } EOF # we should really use a build-platform specific compiler # here, but OTOH, the wrappers (shell script and this C one) # are only useful if you want to execute the "real" binary. # Since the "real" binary is built for $host, then this # wrapper might as well be built for $host, too. $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource ;; esac $rm $output trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 $echo > $output "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variable: notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$echo are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then echo=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then # Yippee, \$echo works! : else # Restart under the correct shell, and then maybe \$echo will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $echo >> $output "\ # Find the directory that this script lives in. thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $echo >> $output "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || \\ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $mkdir \"\$progdir\" else $rm \"\$progdir/\$file\" fi" $echo >> $output "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $echo \"\$relink_command_output\" >&2 $rm \"\$progdir/\$file\" exit $EXIT_FAILURE fi fi $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $rm \"\$progdir/\$program\"; $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } $rm \"\$progdir/\$file\" fi" else $echo >> $output "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $echo >> $output "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $echo >> $output "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $echo >> $output "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $echo >> $output "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2*) $echo >> $output "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $echo >> $output "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $echo >> $output "\ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" exit $EXIT_FAILURE fi else # The program doesn't exist. \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$echo \"This script is just a wrapper for \$program.\" 1>&2 $echo \"See the $PACKAGE documentation for more information.\" 1>&2 exit $EXIT_FAILURE fi fi\ " chmod +x $output fi exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do $echo "X$obj" | $Xsed -e 's%^.*/%%' done | sort | sort -uc >/dev/null 2>&1); then : else $echo "copying selected object files to avoid basename conflicts..." if test -z "$gentop"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" $show "${rm}r $gentop" $run ${rm}r "$gentop" $show "$mkdir $gentop" $run $mkdir "$gentop" exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$gentop"; then exit $exit_status fi fi save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase counter=`expr $counter + 1` case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" $run ln "$obj" "$gentop/$newobj" || $run cp "$obj" "$gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" if len=`expr "X$cmds" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts $echo "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done for obj in $save_oldobjs do oldobjs="$objlist $obj" objlist="$objlist $obj" eval test_cmds=\"$old_archive_cmds\" if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do eval cmd=\"$cmd\" IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$generated"; then $show "${rm}r$generated" $run ${rm}r$generated fi # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" $show "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. if test -z "$run"; then for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlfiles="$newdlfiles $libdir/$name" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlprefiles="$newdlprefiles $libdir/$name" done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $rm $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $echo > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $echo >> $output "\ relink_command=\"$relink_command\"" fi done fi # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? ;; esac exit $EXIT_SUCCESS ;; # libtool install mode install) modename="$modename: install" # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $echo "X$nonopt" | grep shtool > /dev/null; then # Aesthetically quote it. arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$arg " arg="$1" shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$install_prog$arg" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$install_prog $arg" done if test -z "$install_prog"; then $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -n "$prev"; then $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -z "$files"; then if test -z "$dest"; then $echo "$modename: no file or destination specified" 1>&2 else $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Strip any trailing slash from the destination. dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` test "X$destdir" = "X$dest" && destdir=. destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` # Not a directory, so check to see that there is only one file specified. set dummy $files if test "$#" -gt 2; then $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi library_names= old_library= relink_command= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ test "X$dir" = "X$file/" && dir= dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. if test "$inst_prefix_dir" = "$destdir"; then $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 exit $EXIT_FAILURE fi if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi $echo "$modename: warning: relinking \`$file'" 1>&2 $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 exit $EXIT_FAILURE fi fi # See the names of the shared library. set dummy $library_names if test -n "$2"; then realname="$2" shift shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. $show "$install_prog $dir/$srcname $destdir/$realname" $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? if test -n "$stripme" && test -n "$striplib"; then $show "$striplib $destdir/$realname" $run eval "$striplib $destdir/$realname" || exit $? fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do if test "$linkname" != "$realname"; then $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" fi done fi # Do each command in the postinstall commands. lib="$destdir/$realname" cmds=$postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' fi exit $lt_exit } done IFS="$save_ifs" fi # Install the pseudo-library for information purposes. name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` instname="$dir/$name"i $show "$install_prog $instname $destdir/$name" $run eval "$install_prog $instname $destdir/$name" || exit $? # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` ;; *.$objext) staticdest="$destfile" destfile= ;; *) $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac # Install the libtool object if requested. if test -n "$destfile"; then $show "$install_prog $file $destfile" $run eval "$install_prog $file $destfile" || exit $? fi # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` $show "$install_prog $staticobj $staticdest" $run eval "$install_prog \$staticobj \$staticdest" || exit $? fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then file=`$echo $file|${SED} 's,.exe$,,'` stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin*|*mingw*) wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` ;; *) wrapper=$file ;; esac if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then notinst_deplibs= relink_command= # Note that it is not necessary on cygwin/mingw to append a dot to # foo even if both foo and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. # # If there is no directory component, then add one. case $wrapper in */* | *\\*) . ${wrapper} ;; *) . ./${wrapper} ;; esac # Check the variables that should have been set. if test -z "$notinst_deplibs"; then $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 exit $EXIT_FAILURE fi finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then # If there is no directory component, then add one. case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac fi libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 finalize=no fi done relink_command= # Note that it is not necessary on cygwin/mingw to append a dot to # foo even if both foo and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. # # If there is no directory component, then add one. case $wrapper in */* | *\\*) . ${wrapper} ;; *) . ./${wrapper} ;; esac outputname= if test "$fast_install" = no && test -n "$relink_command"; then if test "$finalize" = yes && test -z "$run"; then tmpdir=`func_mktempdir` file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ${rm}r "$tmpdir" continue fi file="$outputname" else $echo "$modename: warning: cannot relink \`$file'" 1>&2 fi else # Install the binary that we compiled earlier. file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` ;; esac ;; esac $show "$install_prog$stripme $file $destfile" $run eval "$install_prog\$stripme \$file \$destfile" || exit $? test -n "$outputname" && ${rm}r "$tmpdir" ;; esac done for file in $staticlibs; do name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` # Set up the ranlib parameters. oldlib="$destdir/$name" $show "$install_prog $file $oldlib" $run eval "$install_prog \$file \$oldlib" || exit $? if test -n "$stripme" && test -n "$old_striplib"; then $show "$old_striplib $oldlib" $run eval "$old_striplib $oldlib" || exit $? fi # Do each command in the postinstall commands. cmds=$old_postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$future_libdirs"; then $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 fi if test -n "$current_libdirs"; then # Maybe just do a dry run. test -n "$run" && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi ;; # libtool finish mode finish) modename="$modename: finish" libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. cmds=$finish_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || admincmds="$admincmds $cmd" done IFS="$save_ifs" fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $run eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. test "$show" = : && exit $EXIT_SUCCESS $echo "X----------------------------------------------------------------------" | $Xsed $echo "Libraries have been installed in:" for libdir in $libdirs; do $echo " $libdir" done $echo $echo "If you ever happen to want to link against installed libraries" $echo "in a given directory, LIBDIR, you must either use libtool, and" $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" $echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" $echo " during execution" fi if test -n "$runpath_var"; then $echo " - add LIBDIR to the \`$runpath_var' environment variable" $echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $echo " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $echo " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi $echo $echo "See any operating system documentation about shared libraries for" $echo "more information, such as the ld(1) and ld.so(8) manual pages." $echo "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS ;; # libtool execute mode execute) modename="$modename: execute" # The first argument is the command name. cmd="$nonopt" if test -z "$cmd"; then $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" exit $EXIT_FAILURE fi # Handle -dlopen flags immediately. for file in $execute_dlfiles; do if test ! -f "$file"; then $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi dir= case $file in *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Read the libtool library. dlname= library_names= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" continue fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 exit $EXIT_FAILURE fi ;; *.lo) # Just add the directory containing the .lo file. dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. ;; *) $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` args="$args \"$file\"" done if test -z "$run"; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables if test "${save_LC_ALL+set}" = set; then LC_ALL="$save_LC_ALL"; export LC_ALL fi if test "${save_LANG+set}" = set; then LANG="$save_LANG"; export LANG fi # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" $echo "export $shlibpath_var" fi $echo "$cmd$args" exit $EXIT_SUCCESS fi ;; # libtool clean and uninstall mode clean | uninstall) modename="$modename: $mode" rm="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) rm="$rm $arg"; rmforce=yes ;; -*) rm="$rm $arg" ;; *) files="$files $arg" ;; esac done if test -z "$rm"; then $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi rmdirs= origobjdir="$objdir" for file in $files; do dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` if test "X$dir" = "X$file"; then dir=. objdir="$origobjdir" else objdir="$dir/$origobjdir" fi name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if (test -L "$file") >/dev/null 2>&1 \ || (test -h "$file") >/dev/null 2>&1 \ || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then . $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. cmds=$postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. cmds=$old_postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # Read the .lo file . $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" \ && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" \ && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) file=`$echo $file|${SED} 's,.exe$,,'` noexename=`$echo $name|${SED} 's,.exe$,,'` # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then relink_command= . $dir/$noexename # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac $show "$rm $rmfiles" $run $rm $rmfiles || exit_status=1 done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then $show "rmdir $dir" $run rmdir $dir >/dev/null 2>&1 fi done exit $exit_status ;; "") $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE ;; esac if test -z "$exec_cmd"; then $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE fi fi # test -z "$show_help" if test -n "$exec_cmd"; then eval exec $exec_cmd exit $EXIT_FAILURE fi # We need to display help for each of the modes. case $mode in "") $echo \ "Usage: $modename [OPTION]... [MODE-ARG]... Provide generalized library-building support services. --config show all configuration variables --debug enable verbose shell tracing -n, --dry-run display commands without modifying any files --features display basic configuration information and exit --finish same as \`--mode=finish' --help display this help message and exit --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] --quiet same as \`--silent' --silent don't print informational messages --tag=TAG use configuration variables from tag TAG --version print version information MODE must be one of the following: clean remove files from the build directory compile compile a source file into a libtool object execute automatically set library path, then run a program finish complete the installation of libtool libraries install install libraries or executables link create a library or an executable uninstall remove libraries from an installed directory MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for a more detailed description of MODE. Report bugs to ." exit $EXIT_SUCCESS ;; clean) $echo \ "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $echo \ "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -static always build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $echo \ "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $echo \ "Usage: $modename [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $echo \ "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $echo \ "Usage: $modename [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -static do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $echo \ "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac $echo $echo "Try \`$modename --help' for more information about other modes." exit $? # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared disable_libs=shared # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static disable_libs=static # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: apache-log4cxx-0.10.0/install-sh100755 0 0 22021 10774264474 13566 0ustar 0 0 #!/bin/sh # install - install a program, script, or datafile scriptversion=2005-05-14.22 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" chmodcmd="$chmodprog 0755" chowncmd= chgrpcmd= stripcmd= rmcmd="$rmprog -f" mvcmd="$mvprog" src= dst= dir_arg= dstarg= no_target_directory= usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: -c (ignored) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. --help display this help and exit. --version display version info and exit. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test -n "$1"; do case $1 in -c) shift continue;; -d) dir_arg=true shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; --help) echo "$usage"; exit $?;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -s) stripcmd=$stripprog shift continue;; -t) dstarg=$2 shift shift continue;; -T) no_target_directory=true shift continue;; --version) echo "$0 $scriptversion"; exit $?;; *) # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. test -n "$dir_arg$dstarg" && break # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dstarg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dstarg" shift # fnord fi shift # arg dstarg=$arg done break;; esac done if test -z "$1"; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi for src do # Protect names starting with `-'. case $src in -*) src=./$src ;; esac if test -n "$dir_arg"; then dst=$src src= if test -d "$dst"; then mkdircmd=: chmodcmd= else mkdircmd=$mkdirprog fi else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dstarg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dstarg # Protect names starting with `-'. case $dst in -*) dst=./$dst ;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dstarg: Is a directory" >&2 exit 1 fi dst=$dst/`basename "$src"` fi fi # This sed command emulates the dirname command. dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'` # Make sure that the destination directory exists. # Skip lots of stat calls in the usual case. if test ! -d "$dstdir"; then defaultIFS=' ' IFS="${IFS-$defaultIFS}" oIFS=$IFS # Some sh's can't handle IFS=/ for some reason. IFS='%' set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` shift IFS=$oIFS pathcomp= while test $# -ne 0 ; do pathcomp=$pathcomp$1 shift if test ! -d "$pathcomp"; then $mkdirprog "$pathcomp" # mkdir can fail with a `File exist' error in case several # install-sh are creating the directory concurrently. This # is OK. test -d "$pathcomp" || exit fi pathcomp=$pathcomp/ done fi if test -n "$dir_arg"; then $doit $mkdircmd "$dst" \ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } else dstfile=`basename "$dst"` # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 trap '(exit $?); exit' 1 2 13 15 # Copy the file name to the temp name. $doit $cpprog "$src" "$dsttmp" && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && # Now rename the file to the real destination. { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ || { # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { if test -f "$dstdir/$dstfile"; then $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ || { echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 (exit 1); exit 1 } else : fi } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" } } fi || { (exit 1); exit 1; } done # The final little trick to "correctly" pass the exit status to the exit trap. { (exit 0); exit 0 } # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: apache-log4cxx-0.10.0/configure100755 0 0 2655521 10774264471 13551 0ustar 0 0 #! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.59. # # Copyright (C) 2003 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac echo=${ECHO-echo} if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then # Yippee, $echo works! : else # Restart under the correct shell. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1 && unset CDPATH if test -z "$ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if (echo_test_string=`eval $cmd`) 2>/dev/null && echo_test_string=`eval $cmd` && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break fi done fi if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$echo" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. echo='print -r' elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} else # Try using printf. echo='printf %s\n' if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL echo="$CONFIG_SHELL $0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$CONFIG_SHELL $0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "$0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} else # Oops. We lost completely, so just stick with echo. echo=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. ECHO=$echo if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi tagnames=${tagnames+${tagnames},}CXX tagnames=${tagnames+${tagnames},}F77 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` exec 6>&1 # # Initializations. # ac_default_prefix=/usr/local ac_config_libobj_dir=. cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Maximum number of lines to put in a shell here document. # This variable seems obsolete. It should probably be removed, and # only ac_max_sed_lines should be used. : ${ac_max_here_lines=38} # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= ac_unique_file="src/main/cpp/logger.cpp" # Factoring default headers for most tests. ac_includes_default="\ #include #if HAVE_SYS_TYPES_H # include #endif #if HAVE_SYS_STAT_H # include #endif #if STDC_HEADERS # include # include #else # if HAVE_STDLIB_H # include # endif #endif #if HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include # endif # include #endif #if HAVE_STRINGS_H # include #endif #if HAVE_INTTYPES_H # include #else # if HAVE_STDINT_H # include # endif #endif #if HAVE_UNISTD_H # include #endif" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os LT_VERSION INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL DOXYGEN DOT DOC_TRUE DOC_FALSE LATEX_DOC_TRUE LATEX_DOC_FALSE enable_dot enable_html_docs enable_latex_docs manual_dest base_dir APR_LIBS APU_LIBS HAS_MBSRTOWCS HAS_WCSTOMBS HAS_SYSLOG HAS_STD_LOCALE HAS_WCHAR_T HAS_FWIDE HAS_ODBC IODBC_CONFIG LIBS_ODBC CPPFLAGS_ODBC HAS_LIBESMTP CHAR_API WCHAR_T_API UNICHAR_API CFSTRING_API CHARSET_UTF8 CHARSET_ISO88591 CHARSET_USASCII CHARSET_EBCDIC LOGCHAR_IS_UTF8 LOGCHAR_IS_WCHAR LOGCHAR_IS_UNICHAR LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. ac_init_help= ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datadir='${prefix}/share' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' infodir='${prefix}/info' mandir='${prefix}/man' ac_prev= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval "$ac_prev=\$ac_option" ac_prev= continue fi ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_option in -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad | --data | --dat | --da) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ | --da=*) datadir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` eval "enable_$ac_feature=no" ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "enable_$ac_feature='$ac_optarg'" ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst \ | --locals | --local | --loca | --loc | --lo) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* \ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package| sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "with_$ac_package='$ac_optarg'" ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/-/_/g'` eval "with_$ac_package=no" ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` eval "$ac_envvar='$ac_optarg'" export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute paths. for ac_var in exec_prefix prefix do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* | NONE | '' ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # Be sure to have absolute paths. for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ localstatedir libdir includedir oldincludedir infodir mandir do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then its parent. ac_confdir=`(dirname "$0") 2>/dev/null || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` srcdir=$ac_confdir if test ! -r $srcdir/$ac_unique_file; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r $srcdir/$ac_unique_file; then if test "$ac_srcdir_defaulted" = yes; then { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 { (exit 1); exit 1; }; } else { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi fi (cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 { (exit 1); exit 1; }; } srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` ac_env_build_alias_set=${build_alias+set} ac_env_build_alias_value=$build_alias ac_cv_env_build_alias_set=${build_alias+set} ac_cv_env_build_alias_value=$build_alias ac_env_host_alias_set=${host_alias+set} ac_env_host_alias_value=$host_alias ac_cv_env_host_alias_set=${host_alias+set} ac_cv_env_host_alias_value=$host_alias ac_env_target_alias_set=${target_alias+set} ac_env_target_alias_value=$target_alias ac_cv_env_target_alias_set=${target_alias+set} ac_cv_env_target_alias_value=$target_alias ac_env_CC_set=${CC+set} ac_env_CC_value=$CC ac_cv_env_CC_set=${CC+set} ac_cv_env_CC_value=$CC ac_env_CFLAGS_set=${CFLAGS+set} ac_env_CFLAGS_value=$CFLAGS ac_cv_env_CFLAGS_set=${CFLAGS+set} ac_cv_env_CFLAGS_value=$CFLAGS ac_env_LDFLAGS_set=${LDFLAGS+set} ac_env_LDFLAGS_value=$LDFLAGS ac_cv_env_LDFLAGS_set=${LDFLAGS+set} ac_cv_env_LDFLAGS_value=$LDFLAGS ac_env_CPPFLAGS_set=${CPPFLAGS+set} ac_env_CPPFLAGS_value=$CPPFLAGS ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} ac_cv_env_CPPFLAGS_value=$CPPFLAGS ac_env_CPP_set=${CPP+set} ac_env_CPP_value=$CPP ac_cv_env_CPP_set=${CPP+set} ac_cv_env_CPP_value=$CPP ac_env_CXX_set=${CXX+set} ac_env_CXX_value=$CXX ac_cv_env_CXX_set=${CXX+set} ac_cv_env_CXX_value=$CXX ac_env_CXXFLAGS_set=${CXXFLAGS+set} ac_env_CXXFLAGS_value=$CXXFLAGS ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set} ac_cv_env_CXXFLAGS_value=$CXXFLAGS ac_env_CXXCPP_set=${CXXCPP+set} ac_env_CXXCPP_value=$CXXCPP ac_cv_env_CXXCPP_set=${CXXCPP+set} ac_cv_env_CXXCPP_value=$CXXCPP ac_env_F77_set=${F77+set} ac_env_F77_value=$F77 ac_cv_env_F77_set=${F77+set} ac_cv_env_F77_value=$F77 ac_env_FFLAGS_set=${FFLAGS+set} ac_env_FFLAGS_value=$FFLAGS ac_cv_env_FFLAGS_set=${FFLAGS+set} ac_cv_env_FFLAGS_value=$FFLAGS # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures this package to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] _ACEOF cat <<_ACEOF Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --datadir=DIR read-only architecture-independent data [PREFIX/share] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --infodir=DIR info documentation [PREFIX/info] --mandir=DIR man documentation [PREFIX/man] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] --target=TARGET configure for building compilers for TARGET [HOST] _ACEOF fi if test -n "$ac_init_help"; then cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --disable-libtool-lock avoid locking (might break parallel builds) --enable-doxygen enable documentation generation with doxygen (auto) --enable-dot use 'dot' to generate graphs in doxygen (auto) --enable-html-docs enable HTML generation with doxygen (yes) --enable-latex-docs enable LaTeX documentation generation with doxygen (no) --enable-char enable char API (yes) --enable-wchar_t enable wchar_t API (yes if wchar_t available) --enable-unichar enable unichar API (no) --enable-cfstring enable cfstring API (no) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-pic try to use only PIC/non-PIC objects [default=use both] --with-tags[=TAGS] include additional configurations [automatic] --with-apr=PATH prefix for installed APR or the full path to apr-config --with-apr-util=PATH prefix for installed APU or the full path to apu-config --with-ODBC ODBC support. Accepted arguments : unixODBC, iODBC, Microsoft, no (default=no) --with-SMTP SMTP support. Accepted arguments : libesmtp, no (default=no) --with-charset=TYPE locale charset. Accepted TYPE variants: auto, utf-8, iso-8859-1, usascii, ebcdic (default=auto) --with-logchar=TYPE type for logchar. Accepted TYPE variants: utf-8, wchar_t, unichar (default=utf-8) Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor CXX C++ compiler command CXXFLAGS C++ compiler flags CXXCPP C++ preprocessor F77 Fortran 77 compiler command FFLAGS Fortran 77 compiler flags Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. _ACEOF fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. ac_popdir=`pwd` for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d $ac_dir || continue ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac cd $ac_dir # Check for guested configure; otherwise get Cygnus style configure. if test -f $ac_srcdir/configure.gnu; then echo $SHELL $ac_srcdir/configure.gnu --help=recursive elif test -f $ac_srcdir/configure; then echo $SHELL $ac_srcdir/configure --help=recursive elif test -f $ac_srcdir/configure.ac || test -f $ac_srcdir/configure.in; then echo $ac_configure --help else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi cd "$ac_popdir" done fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF Copyright (C) 2003 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit 0 fi exec 5>config.log cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ _ACEOF { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` hostinfo = `(hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_sep= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" # Get rid of the leading space. ac_sep=" " ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Be sure not to use single quotes in there, as some shells, # such as our DU 5.0 friend, will then `close' the trap. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, { (set) 2>&1 | case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in *ac_space=\ *) sed -n \ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ;; *) sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------- ## ## Output files. ## ## ------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo sed "/^$/d" confdefs.h | sort echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core *.core && rm -rf conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -rf conftest* confdefs.h # AIX cpp loses on an empty file, so make sure it contains at least a newline. echo >confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -z "$CONFIG_SITE"; then if test "x$prefix" != xNONE; then CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" else CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . $cache_file;; *) . ./$cache_file;; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in `(set) 2>&1 | sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val="\$ac_cv_env_${ac_var}_value" eval ac_new_val="\$ac_env_${ac_var}_value" case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # # autoconf 2.50 or higher to rebuild aclocal.m4, because the # AC_CREATE_PREFIX_CONFIG_H macro needs the AS_DIRNAME macro. ac_aux_dir= for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f $ac_dir/install.sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f $ac_dir/shtool; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} { (exit 1); exit 1; }; } fi ac_config_guess="$SHELL $ac_aux_dir/config.guess" ac_config_sub="$SHELL $ac_aux_dir/config.sub" ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. # Make sure we can run config.sub. $ac_config_sub sun4 >/dev/null 2>&1 || { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 echo "$as_me: error: cannot run $ac_config_sub" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking build system type" >&5 echo $ECHO_N "checking build system type... $ECHO_C" >&6 if test "${ac_cv_build+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_build_alias=$build_alias test -z "$ac_cv_build_alias" && ac_cv_build_alias=`$ac_config_guess` test -z "$ac_cv_build_alias" && { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_build" >&5 echo "${ECHO_T}$ac_cv_build" >&6 build=$ac_cv_build build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$as_me:$LINENO: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6 if test "${ac_cv_host+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_host_alias=$host_alias test -z "$ac_cv_host_alias" && ac_cv_host_alias=$ac_cv_build_alias ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6 host=$ac_cv_host host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$as_me:$LINENO: checking target system type" >&5 echo $ECHO_N "checking target system type... $ECHO_C" >&6 if test "${ac_cv_target+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_target_alias=$target_alias test "x$ac_cv_target_alias" = "x" && ac_cv_target_alias=$ac_cv_host_alias ac_cv_target=`$ac_config_sub $ac_cv_target_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_target_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_target" >&5 echo "${ECHO_T}$ac_cv_target" >&6 target=$ac_cv_target target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` target_vendor=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` target_os=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # The aliases save the names the user supplied, while $host etc. # will get canonicalized. test -n "$target_alias" && test "$program_prefix$program_suffix$program_transform_name" = \ NONENONEs,x,x, && program_prefix=${target_alias}- # # +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=10:0:0 am__api_version="1.9" # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. We don't cache a # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the path is relative. INSTALL=$ac_install_sh fi fi echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo "$as_me:$LINENO: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 test "$program_prefix" != NONE && program_transform_name="s,^,$program_prefix,;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s,\$,$program_suffix,;$program_transform_name" # Double any \ or $. echo might interpret backslashes. # By default was `s,x,x', remove it if useless. cat <<\_ACEOF >conftest.sed s/[\\$]/&&/g;s/;s,x,x,$// _ACEOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` rm conftest.sed # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then # We used to keeping the `.' as first argument, in order to # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) # where $(somedir) is conditionally defined. However this is wrong # for two reasons: # 1. if the package is installed by a user who cannot write `.' # make install will fail, # 2. the above comment should most certainly read # $(mkdir_p) $(DESTDIR)$(somedir) # so it does not work when $(somedir) is undefined and # $(DESTDIR) is not. # To support the latter case, we have to write # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), # so the `.' trick is pointless. mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. for d in ./-p ./--version; do test -d $d && rmdir $d done # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. if test -f "$ac_aux_dir/mkinstalldirs"; then mkdir_p='$(mkinstalldirs)' else mkdir_p='$(install_sh) -d' fi fi for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$AWK" && break done echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF all: @echo 'ac_maketemp="$(MAKE)"' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` if test -n "$ac_maketemp"; then eval ac_cv_prog_make_${ac_make}_set=yes else eval ac_cv_prog_make_${ac_make}_set=no fi rm -f conftest.make fi if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 SET_MAKE= else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE=log4cxx VERSION=0.10.0 cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} install_sh=${install_sh-"$am_aux_dir/install-sh"} # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi STRIP=$ac_ct_STRIP else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' # Checks for programs # ---------------------------------------------------------------------------- # Check whether --enable-shared or --disable-shared was given. if test "${enable_shared+set}" = set; then enableval="$enable_shared" p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi; # Check whether --enable-static or --disable-static was given. if test "${enable_static+set}" = set; then enableval="$enable_static" p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=yes fi; # Check whether --enable-fast-install or --disable-fast-install was given. if test "${enable_fast_install+set}" = set; then enableval="$enable_fast_install" p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi; DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6 am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi echo "$as_me:$LINENO: result: $_am_result" >&5 echo "${ECHO_T}$_am_result" >&6 rm -f confinc confmf # Check whether --enable-dependency-tracking or --disable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then enableval="$enable_dependency_tracking" fi; if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi CC=$ac_ct_CC else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi CC=$ac_ct_CC else CC="$ac_cv_prog_CC" fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CC" && break done CC=$ac_ct_CC fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 (eval $ac_link_default) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Find the output, starting from the most likely. This scheme is # not robust to junk in `.', hence go to wildcards (a.*) only as a last # resort. # Be careful to initialize this variable, since it used to be cached. # Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. ac_cv_exeext= # b.out is created by i960 compilers. for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; conftest.$ac_ext ) # This is the source file. ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` # FIXME: I believe we export ac_cv_exeext for Libtool, # but it would be cool to find out if it's true. Does anybody # maintain Libtool? --akim. export ac_cv_exeext break;; * ) break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6 # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6 echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` export ac_cv_exeext break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6 rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6 OBJEXT=$ac_cv_objext ac_objext=$OBJEXT echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS CFLAGS="-g" echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cc_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 if test "${ac_cv_prog_cc_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_stdc=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std1 is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std1. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF # Don't try gcc -ansi; that turns off useful extensions and # breaks some systems' header files. # AIX -qlanglvl=ansi # Ultrix and OSF/1 -std1 # HP-UX 10.20 and later -Ae # HP-UX older versions -Aa -D_HPUX_SOURCE # SVR4 -Xc -D__EXTENSIONS__ for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_stdc=$ac_arg break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext done rm -f conftest.$ac_ext conftest.$ac_objext CC=$ac_save_CC fi case "x$ac_cv_prog_cc_stdc" in x|xno) echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6 ;; *) echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 CC="$CC $ac_cv_prog_cc_stdc" ;; esac # Some people use a C++ compiler to compile C. Since we use `exit', # in C++ we need to declare it. In case someone uses the same compiler # for both compiling C and C++ we need to have the C++ compiler decide # the declaration of exit, since it's the most demanding environment. cat >conftest.$ac_ext <<_ACEOF #ifndef __cplusplus choke me #endif _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6 CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6 if test "${lt_cv_path_SED+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done fi SED=$lt_cv_path_SED echo "$as_me:$LINENO: result: $SED" >&5 echo "${ECHO_T}$SED" >&6 echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6 if test "${ac_cv_prog_egrep+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | (grep -E '(a|b)') >/dev/null 2>&1 then ac_cv_prog_egrep='grep -E' else ac_cv_prog_egrep='egrep' fi fi echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 echo "${ECHO_T}$ac_cv_prog_egrep" >&6 EGREP=$ac_cv_prog_egrep # Check whether --with-gnu-ld or --without-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval="$with_gnu_ld" test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi; ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 else echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 echo "${ECHO_T}$LD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 with_gnu_ld=$lt_cv_prog_gnu_ld echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6 if test "${lt_cv_ld_reload_flag+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_ld_reload_flag='-r' fi echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6 reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6 if test "${lt_cv_path_NM+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi fi echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 echo "${ECHO_T}$lt_cv_path_NM" >&6 NM="$lt_cv_path_NM" echo "$as_me:$LINENO: checking whether ln -s works" >&5 echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no, using $LN_S" >&5 echo "${ECHO_T}no, using $LN_S" >&6 fi echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5 echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6 if test "${lt_cv_deplibs_check_method+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix4* | aix5*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump'. lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | kfreebsd*-gnu | dragonfly*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix3*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux*) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu | knetbsd*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; nto-qnx*) lt_cv_deplibs_check_method=unknown ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; esac fi echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6 file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check whether --enable-libtool-lock or --disable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval="$enable_libtool_lock" fi; test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line 3741 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6 if test "${lt_cv_cc_needs_belf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then lt_cv_cc_needs_belf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 lt_cv_cc_needs_belf=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6 if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) LD="${LD-ld} -64" ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6 ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6 if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------------------ ## ## Report this to the AC_PACKAGE_NAME lists. ## ## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then echo "$as_me:$LINENO: result: $CXX" >&5 echo "${ECHO_T}$CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 echo "${ECHO_T}$ac_ct_CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CXX" && break done test -n "$ac_ct_CXX" || ac_ct_CXX="g++" CXX=$ac_ct_CXX fi # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C++ compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6 if test "${ac_cv_cxx_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6 GXX=`test $ac_compiler_gnu = yes && echo yes` ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS CXXFLAGS="-g" echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cxx_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cxx_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6 if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu depcc="$CXX" am_compiler_list= echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6 CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6 if test -z "$CXXCPP"; then if test "${ac_cv_prog_CXXCPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi echo "$as_me:$LINENO: result: $CXXCPP" >&5 echo "${ECHO_T}$CXXCPP" >&6 ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$F77"; then ac_cv_prog_F77="$F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then echo "$as_me:$LINENO: result: $F77" >&5 echo "${ECHO_T}$F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$F77" && break done fi if test -z "$F77"; then ac_ct_F77=$F77 for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_F77="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 echo "${ECHO_T}$ac_ct_F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_F77" && break done F77=$ac_ct_F77 fi # Provide some information about the compiler. echo "$as_me:5332:" \ "checking for Fortran 77 compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } rm -f a.out # If we don't use `.F' as extension, the preprocessor is not run on the # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6 if test "${ac_cv_f77_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ choke me #endif end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_f77_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6 ac_ext=$ac_save_ext ac_test_FFLAGS=${FFLAGS+set} ac_save_FFLAGS=$FFLAGS FFLAGS= echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_f77_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else FFLAGS=-g cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_f77_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_f77_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 echo "${ECHO_T}$ac_cv_prog_f77_g" >&6 if test "$ac_test_FFLAGS" = set; then FFLAGS=$ac_save_FFLAGS elif test $ac_cv_prog_f77_g = yes; then if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-g -O2" else FFLAGS="-g" fi else if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-O2" else FFLAGS= fi fi G77=`test $ac_compiler_gnu = yes && echo yes` ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! # find the maximum length of command line arguments echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6 if test "${lt_cv_sys_max_cmd_len+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ = "XX$teststring") >/dev/null 2>&1 && new_result=`expr "X$teststring" : ".*" 2>&1` && lt_cv_sys_max_cmd_len=$new_result && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done teststring= # Add a significant safety factor because C++ compilers can tack on massive # amounts of additional arguments before passing them to the linker. # It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6 else echo "$as_me:$LINENO: result: none" >&5 echo "${ECHO_T}none" >&6 fi # Check for command to grab the raw symbol name followed by C symbol from nm. echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6 if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Transform an extracted symbol line into a proper C declaration lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32*) symcode='[ABCDGISTW]' ;; hpux*) # Its linker distinguishes data from code symbols if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; linux*) if test "$host_cpu" = ia64; then symcode='[ABCDGIRSTW]' lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Try without a prefix undercore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Now try to grab the symbols. nlist=conftest.nm if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if grep ' nm_test_var$' "$nlist" >/dev/null; then if grep ' nm_test_func$' "$nlist" >/dev/null; then cat < conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' cat <> conftest.$ac_ext #if defined (__STDC__) && __STDC__ # define lt_ptr_t void * #else # define lt_ptr_t char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr_t address; } lt_preloaded_symbols[] = { EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext cat <<\EOF >> conftest.$ac_ext {0, (lt_ptr_t) 0} }; #ifdef __cplusplus } #endif EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then echo "$as_me:$LINENO: result: failed" >&5 echo "${ECHO_T}failed" >&6 else echo "$as_me:$LINENO: result: ok" >&5 echo "${ECHO_T}ok" >&6 fi echo "$as_me:$LINENO: checking for objdir" >&5 echo $ECHO_N "checking for objdir... $ECHO_C" >&6 if test "${lt_cv_objdir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 echo "${ECHO_T}$lt_cv_objdir" >&6 objdir=$lt_cv_objdir case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='sed -e 1s/^X//' sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Constants: rm="rm -f" # Global variables: default_ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a ltmain="$ac_aux_dir/ltmain.sh" ofile="$default_ofile" with_gnu_ld="$lt_cv_prog_gnu_ld" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="${ac_tool_prefix}ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then echo "$as_me:$LINENO: result: $AR" >&5 echo "${ECHO_T}$AR" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="false" fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 echo "${ECHO_T}$ac_ct_AR" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi AR=$ac_ct_AR else AR="$ac_cv_prog_AR" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then echo "$as_me:$LINENO: result: $RANLIB" >&5 echo "${ECHO_T}$RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 echo "${ECHO_T}$ac_ct_RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi RANLIB=$ac_ct_RANLIB else RANLIB="$ac_cv_prog_RANLIB" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi STRIP=$ac_ct_STRIP else STRIP="$ac_cv_prog_STRIP" fi old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" test -z "$MAGIC_CMD" && MAGIC_CMD=file test -z "$NM" && NM=nm test -z "$SED" && SED=sed test -z "$OBJDUMP" && OBJDUMP=objdump test -z "$RANLIB" && RANLIB=: test -z "$STRIP" && STRIP=: test -z "$ac_objext" && ac_objext=o # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then echo "$as_me:$LINENO: checking for file" >&5 echo $ECHO_N "checking for file... $ECHO_C" >&6 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi else MAGIC_CMD=: fi fi fi ;; esac enable_dlopen=no enable_win32_dll=no # Check whether --enable-libtool-lock or --disable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval="$enable_libtool_lock" fi; test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Check whether --with-pic or --without-pic was given. if test "${with_pic+set}" = set; then withval="$with_pic" pic_mode="$withval" else pic_mode=default fi; test -z "$pic_mode" && pic_mode=default # Use C for the default configuration in the libtool script tagname= lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}\n' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:6393: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:6397: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; *) lt_prog_compiler_pic='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic='-qnocommon' lt_prog_compiler_wl='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 echo "${ECHO_T}$lt_prog_compiler_pic" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:6661: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:6665: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6 if test x"$lt_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works=yes fi else lt_prog_compiler_static_works=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works" >&6 if test x"$lt_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:6765: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:6769: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag= enable_shared_with_static_runtimes=no archive_cmds= archive_expsym_cmds= old_archive_From_new_cmds= old_archive_from_expsyms_cmds= export_dynamic_flag_spec= whole_archive_flag_spec= thread_safe_flag_spec= hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no hardcode_shlibpath_var=unsupported link_all_deplibs=unknown hardcode_automatic=no module_cmds= module_expsym_cmds= always_export_symbols=no export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; interix3*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac archive_cmds='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi link_all_deplibs=no else ld_shlibs=no fi ;; netbsd* | netbsdelf*-gnu | knetbsd*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_libdir_separator=':' link_all_deplibs=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct=yes else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # see comment about different semantics on the GNU ld section ld_shlibs=no ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='' link_all_deplibs=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs=no ;; esac fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # GNU/kFreeBSD uses gcc -shared to do shared libraries. kfreebsd*-gnu) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no link_all_deplibs=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld='-rpath $libdir' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: link_all_deplibs=yes ;; netbsd* | netbsdelf*-gnu | knetbsd*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; openbsd*) hardcode_direct=yes hardcode_shlibpath_var=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs" >&5 echo "${ECHO_T}$ld_shlibs" >&6 test "$ld_shlibs" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 echo "${ECHO_T}$archive_cmds_need_lc" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action= if test -n "$hardcode_libdir_flag_spec" || \ test -n "$runpath_var" || \ test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action" >&5 echo "${ECHO_T}$hardcode_action" >&6 if test "$hardcode_action" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi striplib= old_striplib= echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi ;; *) echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 ;; esac fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) echo "$as_me:$LINENO: checking for shl_load" >&5 echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 if test "${ac_cv_func_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define shl_load to an innocuous variant, in case declares shl_load. For example, HP-UX 11i declares gettimeofday. */ #define shl_load innocuous_shl_load /* System header to define __stub macros and hopefully few prototypes, which can conflict with char shl_load (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef shl_load /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shl_load (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_shl_load) || defined (__stub___shl_load) choke me #else char (*f) () = shl_load; #endif #ifdef __cplusplus } #endif int main () { return f != shl_load; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_shl_load=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 echo "${ECHO_T}$ac_cv_func_shl_load" >&6 if test $ac_cv_func_shl_load = yes; then lt_cv_dlopen="shl_load" else echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shl_load (); int main () { shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dld_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_shl_load=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 if test $ac_cv_lib_dld_shl_load = yes; then lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" else echo "$as_me:$LINENO: checking for dlopen" >&5 echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 if test "${ac_cv_func_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define dlopen to an innocuous variant, in case declares dlopen. For example, HP-UX 11i declares gettimeofday. */ #define dlopen innocuous_dlopen /* System header to define __stub macros and hopefully few prototypes, which can conflict with char dlopen (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef dlopen /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_dlopen) || defined (__stub___dlopen) choke me #else char (*f) () = dlopen; #endif #ifdef __cplusplus } #endif int main () { return f != dlopen; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 echo "${ECHO_T}$ac_cv_func_dlopen" >&6 if test $ac_cv_func_dlopen = yes; then lt_cv_dlopen="dlopen" else echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 if test "${ac_cv_lib_svld_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_svld_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_svld_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 if test $ac_cv_lib_svld_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_dld_link+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dld_link (); int main () { dld_link (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dld_dld_link=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_dld_link=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 if test $ac_cv_lib_dld_dld_link = yes; then lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 echo "${ECHO_T}$lt_cv_dlopen_self" >&6 if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self_static+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6 fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi # Report which library types will actually be built echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6 echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6 echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6 # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler \ CC \ LD \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_prog_compiler_no_builtin_flag \ export_dynamic_flag_spec \ thread_safe_flag_spec \ whole_archive_flag_spec \ enable_shared_with_static_runtimes \ old_archive_cmds \ old_archive_from_new_cmds \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ archive_cmds \ archive_expsym_cmds \ postinstall_cmds \ postuninstall_cmds \ old_archive_from_expsyms_cmds \ allow_undefined_flag \ no_undefined_flag \ export_symbols_cmds \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ hardcode_automatic \ module_cmds \ module_expsym_cmds \ lt_cv_prog_compiler_c_o \ exclude_expsyms \ include_expsyms; do case $var in old_archive_cmds | \ old_archive_from_new_cmds | \ archive_cmds | \ archive_expsym_cmds | \ module_cmds | \ module_expsym_cmds | \ old_archive_from_expsyms_cmds | \ export_symbols_cmds | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="${ofile}T" trap "$rm \"$cfgfile\"; exit 1" 1 2 15 $rm -f "$cfgfile" { echo "$as_me:$LINENO: creating $ofile" >&5 echo "$as_me: creating $ofile" >&6;} cat <<__EOF__ >> "$cfgfile" #! $SHELL # `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # # This file is part of GNU Libtool: # Originally by Gordon Matzigkeit , 1996 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="$SED -e 1s/^X//" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # The names of the tagged configurations supported by this script. available_tags= # ### BEGIN LIBTOOL CONFIG # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler # Is the compiler the GNU C compiler? with_gcc=$GCC # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # ### END LIBTOOL CONFIG __EOF__ case $host_os in aix3*) cat <<\EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi EOF ;; esac # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || \ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" # Check whether --with-tags or --without-tags was given. if test "${with_tags+set}" = set; then withval="$with_tags" tagnames="$withval" fi; if test -f "$ltmain" && test -n "$tagnames"; then if test ! -f "${ofile}"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5 echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} fi if test -z "$LTCC"; then eval "`$SHELL ${ofile} --config | grep '^LTCC='`" if test -z "$LTCC"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5 echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} else { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} fi fi if test -z "$LTCFLAGS"; then eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" fi # Extract list of available tagged configurations in $ofile. # Note that this assumes the entire list is on one line. available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for tagname in $tagnames; do IFS="$lt_save_ifs" # Check whether tagname contains only valid characters case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in "") ;; *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5 echo "$as_me: error: invalid tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null then { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5 echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} { (exit 1); exit 1; }; } fi # Update the list of available tags. if test -n "$tagname"; then echo appending configuration tag \"$tagname\" to $ofile case $tagname in CXX) if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_flag_spec_ld_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # We don't want -fno-exception wen compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld or --without-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval="$with_gnu_ld" test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi; ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 else echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 echo "${ECHO_T}$LD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_CXX= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes if test "$GXX" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_CXX=yes else # We have old collect2 hardcode_direct_CXX=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_CXX=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported whole_archive_flag_spec_CXX='' link_all_deplibs_CXX=yes if test "$GXX" = yes ; then lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else archive_cmds_CXX='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' fi module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_CXX=no ;; esac fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd[12]*) # C++ shared libraries reported to be fairly broken before switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | kfreebsd*-gnu | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; gnu*) ;; hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_CXX='+b $libdir' ;; *) export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; interix3*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: ;; linux*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc*) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC*) # Portland Group C++ compiler archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd* | netbsdelf*-gnu | knetbsd*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; openbsd2*) # C++ shared libraries are fairly broken ld_shlibs_CXX=no ;; openbsd*) hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd='echo' ;; osf3*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ $rm $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The C++ compiler is used as linker so we must use $wl # flag to pass the commands to the underlying system # linker. We must also pass each convience library through # to the system linker between allextract/defaultextract. # The C++ compiler will combine linker options so we # cannot just pass the convience library names through # without $wl. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | grep -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='${wl}-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. # So that behaviour is only enabled if SCOABSPATH is set to a # non-empty value in the environment. Most likely only useful for # creating official distributions of packages. # This is a hack until libtool officially supports absolute path # names for shared libraries. no_undefined_flag_CXX='${wl}-z,text' allow_undefined_flag_CXX='${wl}-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6 test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" LD_CXX="$LD" cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no # The `*' in the case matches for architectures that use `case' in # $output_verbose_cmd can trigger glob expansion during the loop # eval without this substitution. output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"` for p in `eval $output_verbose_link_cmd`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" \ || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX="${prev}${p}" else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_CXX"; then postdeps_CXX="${prev}${p}" else postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$predep_objects_CXX"; then predep_objects_CXX="$p" else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX="$p" else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $rm -f confest.$objext # PORTME: override above test on systems where it is broken case $host_os in interix3*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; solaris*) case $cc_basename in CC*) # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. postdeps_CXX='-lCstd -lCrun' ;; esac ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | os2* | pw32*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix4* | aix5*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_CXX='-qnocommon' lt_prog_compiler_wl_CXX='-Wl,' ;; esac ;; dgux*) case $cc_basename in ec++*) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | kfreebsd*-gnu | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux*) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; icpc* | ecpc*) # Intel C++ lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC*) # Portland Group C++ compiler. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu | knetbsd*-gnu) ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:11561: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:11565: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_CXX=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6 if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_CXX=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_CXX=yes fi else lt_prog_compiler_static_works_CXX=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_CXX" >&6 if test x"$lt_prog_compiler_static_works_CXX" = xyes; then : else lt_prog_compiler_static_CXX= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_CXX=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:11665: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:11669: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix4* | aix5*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; cygwin* | mingw*) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([^ ]*\) [^ ]*/\1 DATA/;/^I /d;/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' ;; kfreebsd*-gnu) link_all_deplibs_CXX=no ;; linux*) link_all_deplibs_CXX=no ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6 test "$ld_shlibs_CXX" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_CXX=no else archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || \ test -n "$runpath_var_CXX" || \ test "X$hardcode_automatic_CXX" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_CXX" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no && test "$hardcode_minus_L_CXX" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 echo "${ECHO_T}$hardcode_action_CXX" >&6 if test "$hardcode_action_CXX" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_CXX \ CC_CXX \ LD_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_static_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ export_dynamic_flag_spec_CXX \ thread_safe_flag_spec_CXX \ whole_archive_flag_spec_CXX \ enable_shared_with_static_runtimes_CXX \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ postinstall_cmds_CXX \ postuninstall_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ export_symbols_cmds_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_flag_spec_ld_CXX \ hardcode_libdir_separator_CXX \ hardcode_automatic_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ lt_cv_prog_compiler_c_o_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX; do case $var in old_archive_cmds_CXX | \ old_archive_from_new_cmds_CXX | \ archive_cmds_CXX | \ archive_expsym_cmds_CXX | \ module_cmds_CXX | \ module_expsym_cmds_CXX | \ old_archive_from_expsyms_cmds_CXX | \ export_symbols_cmds_CXX | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU C compiler? with_gcc=$GCC_CXX # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_CXX # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_CXX old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_CXX # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_CXX # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_CXX # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_CXX # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_CXX" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ldcxx=$with_gnu_ld with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld else tagname="" fi ;; F77) if test -n "$F77" && test "X$F77" != "Xno"; then ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu archive_cmds_need_lc_F77=no allow_undefined_flag_F77= always_export_symbols_F77=no archive_expsym_cmds_F77= export_dynamic_flag_spec_F77= hardcode_direct_F77=no hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_minus_L_F77=no hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= link_all_deplibs_F77=unknown old_archive_cmds_F77=$old_archive_cmds no_undefined_flag_F77= whole_archive_flag_spec_F77= enable_shared_with_static_runtimes_F77=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o objext_F77=$objext # Code to be used in simple compile tests lt_simple_compile_test_code=" subroutine t\n return\n end\n" # Code to be used in simple link tests lt_simple_link_test_code=" program t\n end\n" # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${F77-"f77"} compiler=$CC compiler_F77=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6 echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6 echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6 GCC_F77="$G77" LD_F77="$LD" lt_prog_compiler_wl_F77= lt_prog_compiler_pic_F77= lt_prog_compiler_static_F77= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_static_F77='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_F77='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_F77='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_F77=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_F77=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_F77='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' else lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_F77='-qnocommon' lt_prog_compiler_wl_F77='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_F77='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_F77='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_F77='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_F77='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_F77='-non_shared' ;; newsos6) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fpic' lt_prog_compiler_static_F77='-Bstatic' ;; ccc*) lt_prog_compiler_wl_F77='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_F77='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; solaris*) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl_F77='-Qoption ld ';; *) lt_prog_compiler_wl_F77='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_F77='-Qoption ld ' lt_prog_compiler_pic_F77='-PIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_F77='-Kconform_pic' lt_prog_compiler_static_F77='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; unicos*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_can_build_shared_F77=no ;; uts4*) lt_prog_compiler_pic_F77='-pic' lt_prog_compiler_static_F77='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_F77=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_F77"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_F77=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_F77" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:13253: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:13257: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_F77=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6 if test x"$lt_prog_compiler_pic_works_F77" = xyes; then case $lt_prog_compiler_pic_F77 in "" | " "*) ;; *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; esac else lt_prog_compiler_pic_F77= lt_prog_compiler_can_build_shared_F77=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_F77= ;; *) lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_F77=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_F77=yes fi else lt_prog_compiler_static_works_F77=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_F77" >&6 if test x"$lt_prog_compiler_static_works_F77" = xyes; then : else lt_prog_compiler_static_F77= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_F77=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:13357: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:13361: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_F77=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag_F77= enable_shared_with_static_runtimes_F77=no archive_cmds_F77= archive_expsym_cmds_F77= old_archive_From_new_cmds_F77= old_archive_from_expsyms_cmds_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= thread_safe_flag_spec_F77= hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_direct_F77=no hardcode_minus_L_F77=no hardcode_shlibpath_var_F77=unsupported link_all_deplibs_F77=unknown hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= always_export_symbols_F77=no export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_F77= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs_F77=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_F77='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_F77= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_F77=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs_F77=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_F77=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_F77=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_F77='-L$libdir' allow_undefined_flag_F77=unsupported always_export_symbols_F77=no enable_shared_with_static_runtimes_F77=yes export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_F77=no fi ;; interix3*) hardcode_direct_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_F77='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac archive_cmds_F77='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi link_all_deplibs_F77=no else ld_shlibs_F77=no fi ;; netbsd* | netbsdelf*-gnu | knetbsd*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs_F77=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_F77=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac ;; sunos4*) archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac if test "$ld_shlibs_F77" = no; then runpath_var= hardcode_libdir_flag_spec_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_F77=unsupported always_export_symbols_F77=yes archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_F77=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_F77=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_F77='' hardcode_direct_F77=yes hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_F77=yes else # We have old collect2 hardcode_direct_F77=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_F77=yes hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_libdir_separator_F77= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_F77=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_F77='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_F77="-z nodefs" archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_F77=' ${wl}-bernotok' allow_undefined_flag_F77=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_F77='$convenience' archive_cmds_need_lc_F77=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes # see comment about different semantics on the GNU ld section ld_shlibs_F77=no ;; bsdi[45]*) export_dynamic_flag_spec_F77=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_F77=' ' allow_undefined_flag_F77=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_F77='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path_F77='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_F77=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_F77='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_F77=no hardcode_direct_F77=no hardcode_automatic_F77=yes hardcode_shlibpath_var_F77=unsupported whole_archive_flag_spec_F77='' link_all_deplibs_F77=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_F77=no ;; esac fi ;; dgux*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; freebsd1*) ld_shlibs_F77=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; # GNU/kFreeBSD uses gcc -shared to do shared libraries. kfreebsd*-gnu) archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no link_all_deplibs_F77=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes export_dynamic_flag_spec_F77='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_F77='+b $libdir' hardcode_direct_F77=no hardcode_shlibpath_var_F77=no ;; *) hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_F77='-rpath $libdir' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: link_all_deplibs_F77=yes ;; netbsd* | netbsdelf*-gnu | knetbsd*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; newsos6) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_shlibpath_var_F77=no ;; openbsd*) hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-R$libdir' ;; *) archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes allow_undefined_flag_F77=unsupported archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_F77='-rpath $libdir' fi hardcode_libdir_separator_F77=: ;; solaris*) no_undefined_flag_F77=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_shlibpath_var_F77=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec_F77='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs_F77=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; sysv4) case $host_vendor in sni) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_F77='$CC -r -o $output$reload_objs' hardcode_direct_F77=no ;; motorola) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_F77=no ;; sysv4.3*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no export_dynamic_flag_spec_F77='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_F77=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag_F77='${wl}-z,text' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_F77='${wl}-z,text' allow_undefined_flag_F77='${wl}-z,nodefs' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes export_dynamic_flag_spec_F77='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; *) ld_shlibs_F77=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 echo "${ECHO_T}$ld_shlibs_F77" >&6 test "$ld_shlibs_F77" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_F77" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_F77=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_F77 in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_F77 pic_flag=$lt_prog_compiler_pic_F77 compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_F77 allow_undefined_flag_F77= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_F77=no else archive_cmds_need_lc_F77=yes fi allow_undefined_flag_F77=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_F77= if test -n "$hardcode_libdir_flag_spec_F77" || \ test -n "$runpath_var_F77" || \ test "X$hardcode_automatic_F77" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_F77" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no && test "$hardcode_minus_L_F77" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_F77=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_F77=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_F77=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 echo "${ECHO_T}$hardcode_action_F77" >&6 if test "$hardcode_action_F77" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_F77 \ CC_F77 \ LD_F77 \ lt_prog_compiler_wl_F77 \ lt_prog_compiler_pic_F77 \ lt_prog_compiler_static_F77 \ lt_prog_compiler_no_builtin_flag_F77 \ export_dynamic_flag_spec_F77 \ thread_safe_flag_spec_F77 \ whole_archive_flag_spec_F77 \ enable_shared_with_static_runtimes_F77 \ old_archive_cmds_F77 \ old_archive_from_new_cmds_F77 \ predep_objects_F77 \ postdep_objects_F77 \ predeps_F77 \ postdeps_F77 \ compiler_lib_search_path_F77 \ archive_cmds_F77 \ archive_expsym_cmds_F77 \ postinstall_cmds_F77 \ postuninstall_cmds_F77 \ old_archive_from_expsyms_cmds_F77 \ allow_undefined_flag_F77 \ no_undefined_flag_F77 \ export_symbols_cmds_F77 \ hardcode_libdir_flag_spec_F77 \ hardcode_libdir_flag_spec_ld_F77 \ hardcode_libdir_separator_F77 \ hardcode_automatic_F77 \ module_cmds_F77 \ module_expsym_cmds_F77 \ lt_cv_prog_compiler_c_o_F77 \ exclude_expsyms_F77 \ include_expsyms_F77; do case $var in old_archive_cmds_F77 | \ old_archive_from_new_cmds_F77 | \ archive_cmds_F77 | \ archive_expsym_cmds_F77 | \ module_cmds_F77 | \ module_expsym_cmds_F77 | \ old_archive_from_expsyms_cmds_F77 | \ export_symbols_cmds_F77 | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_F77 # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77 # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_F77 # Is the compiler the GNU C compiler? with_gcc=$GCC_F77 # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_F77 # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_F77 # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_F77 pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77 # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_F77 # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77 # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77 # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77 # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_F77 old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77 # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77 # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_F77 archive_expsym_cmds=$lt_archive_expsym_cmds_F77 postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_F77 module_expsym_cmds=$lt_module_expsym_cmds_F77 # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_F77 # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_F77 # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_F77 # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_F77 # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_F77 # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_F77 # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_F77 # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_F77 # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77 # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77 # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77 # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_F77 # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_F77 # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_F77 # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_F77 # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_F77 # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_F77" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_F77 # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_F77 # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_F77 # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_F77 # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" else tagname="" fi ;; GCJ) if test -n "$GCJ" && test "X$GCJ" != "Xno"; then # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o objext_GCJ=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}\n" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${GCJ-"gcj"} compiler=$CC compiler_GCJ=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # GCJ did not exist at the time GCC didn't implicitly link libc in. archive_cmds_need_lc_GCJ=no old_archive_cmds_GCJ=$old_archive_cmds lt_prog_compiler_no_builtin_flag_GCJ= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin' echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:15580: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:15584: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl_GCJ= lt_prog_compiler_pic_GCJ= lt_prog_compiler_static_GCJ= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_static_GCJ='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_GCJ='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_GCJ=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_GCJ=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_GCJ='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' else lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_GCJ='-qnocommon' lt_prog_compiler_wl_GCJ='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_GCJ='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_GCJ='-non_shared' ;; newsos6) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-fpic' lt_prog_compiler_static_GCJ='-Bstatic' ;; ccc*) lt_prog_compiler_wl_GCJ='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_GCJ='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; solaris*) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl_GCJ='-Qoption ld ';; *) lt_prog_compiler_wl_GCJ='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_GCJ='-Qoption ld ' lt_prog_compiler_pic_GCJ='-PIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_GCJ='-Kconform_pic' lt_prog_compiler_static_GCJ='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; unicos*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_can_build_shared_GCJ=no ;; uts4*) lt_prog_compiler_pic_GCJ='-pic' lt_prog_compiler_static_GCJ='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_GCJ=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_GCJ"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_GCJ=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_GCJ" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:15848: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:15852: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_GCJ=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6 if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then case $lt_prog_compiler_pic_GCJ in "" | " "*) ;; *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;; esac else lt_prog_compiler_pic_GCJ= lt_prog_compiler_can_build_shared_GCJ=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_GCJ= ;; *) lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_GCJ=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_GCJ=yes fi else lt_prog_compiler_static_works_GCJ=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_GCJ" >&6 if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then : else lt_prog_compiler_static_GCJ= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_GCJ=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:15952: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:15956: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_GCJ=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag_GCJ= enable_shared_with_static_runtimes_GCJ=no archive_cmds_GCJ= archive_expsym_cmds_GCJ= old_archive_From_new_cmds_GCJ= old_archive_from_expsyms_cmds_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= thread_safe_flag_spec_GCJ= hardcode_libdir_flag_spec_GCJ= hardcode_libdir_flag_spec_ld_GCJ= hardcode_libdir_separator_GCJ= hardcode_direct_GCJ=no hardcode_minus_L_GCJ=no hardcode_shlibpath_var_GCJ=unsupported link_all_deplibs_GCJ=unknown hardcode_automatic_GCJ=no module_cmds_GCJ= module_expsym_cmds_GCJ= always_export_symbols_GCJ=no export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_GCJ= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs_GCJ=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_GCJ='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_GCJ= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_GCJ=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs_GCJ=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_GCJ=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_GCJ=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_GCJ='-L$libdir' allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=no enable_shared_with_static_runtimes_GCJ=yes export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_GCJ=no fi ;; interix3*) hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_GCJ='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac archive_cmds_GCJ='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi link_all_deplibs_GCJ=no else ld_shlibs_GCJ=no fi ;; netbsd* | netbsdelf*-gnu | knetbsd*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs_GCJ=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_GCJ=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac ;; sunos4*) archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac if test "$ld_shlibs_GCJ" = no; then runpath_var= hardcode_libdir_flag_spec_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=yes archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_GCJ=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_GCJ=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_GCJ='' hardcode_direct_GCJ=yes hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_GCJ=yes else # We have old collect2 hardcode_direct_GCJ=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_GCJ=yes hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_libdir_separator_GCJ= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_GCJ=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_GCJ='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_GCJ="-z nodefs" archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_GCJ=' ${wl}-bernotok' allow_undefined_flag_GCJ=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_GCJ='$convenience' archive_cmds_need_lc_GCJ=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # see comment about different semantics on the GNU ld section ld_shlibs_GCJ=no ;; bsdi[45]*) export_dynamic_flag_spec_GCJ=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_GCJ=' ' allow_undefined_flag_GCJ=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_GCJ='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_GCJ=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_GCJ=no hardcode_direct_GCJ=no hardcode_automatic_GCJ=yes hardcode_shlibpath_var_GCJ=unsupported whole_archive_flag_spec_GCJ='' link_all_deplibs_GCJ=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_GCJ=no ;; esac fi ;; dgux*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; freebsd1*) ld_shlibs_GCJ=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # GNU/kFreeBSD uses gcc -shared to do shared libraries. kfreebsd*-gnu) archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no link_all_deplibs_GCJ=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_GCJ='+b $libdir' hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no ;; *) hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: link_all_deplibs_GCJ=yes ;; netbsd* | netbsdelf*-gnu | knetbsd*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; newsos6) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_shlibpath_var_GCJ=no ;; openbsd*) hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' ;; *) archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes allow_undefined_flag_GCJ=unsupported archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_GCJ='-rpath $libdir' fi hardcode_libdir_separator_GCJ=: ;; solaris*) no_undefined_flag_GCJ=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_shlibpath_var_GCJ=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs_GCJ=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; sysv4) case $host_vendor in sni) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_GCJ='$CC -r -o $output$reload_objs' hardcode_direct_GCJ=no ;; motorola) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_GCJ=no ;; sysv4.3*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no export_dynamic_flag_spec_GCJ='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_GCJ=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag_GCJ='${wl}-z,text' archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_GCJ='${wl}-z,text' allow_undefined_flag_GCJ='${wl}-z,nodefs' archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; *) ld_shlibs_GCJ=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 echo "${ECHO_T}$ld_shlibs_GCJ" >&6 test "$ld_shlibs_GCJ" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_GCJ" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_GCJ=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_GCJ in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_GCJ pic_flag=$lt_prog_compiler_pic_GCJ compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ allow_undefined_flag_GCJ= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_GCJ=no else archive_cmds_need_lc_GCJ=yes fi allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_GCJ= if test -n "$hardcode_libdir_flag_spec_GCJ" || \ test -n "$runpath_var_GCJ" || \ test "X$hardcode_automatic_GCJ" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_GCJ" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && test "$hardcode_minus_L_GCJ" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_GCJ=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_GCJ=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_GCJ=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 echo "${ECHO_T}$hardcode_action_GCJ" >&6 if test "$hardcode_action_GCJ" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_GCJ \ CC_GCJ \ LD_GCJ \ lt_prog_compiler_wl_GCJ \ lt_prog_compiler_pic_GCJ \ lt_prog_compiler_static_GCJ \ lt_prog_compiler_no_builtin_flag_GCJ \ export_dynamic_flag_spec_GCJ \ thread_safe_flag_spec_GCJ \ whole_archive_flag_spec_GCJ \ enable_shared_with_static_runtimes_GCJ \ old_archive_cmds_GCJ \ old_archive_from_new_cmds_GCJ \ predep_objects_GCJ \ postdep_objects_GCJ \ predeps_GCJ \ postdeps_GCJ \ compiler_lib_search_path_GCJ \ archive_cmds_GCJ \ archive_expsym_cmds_GCJ \ postinstall_cmds_GCJ \ postuninstall_cmds_GCJ \ old_archive_from_expsyms_cmds_GCJ \ allow_undefined_flag_GCJ \ no_undefined_flag_GCJ \ export_symbols_cmds_GCJ \ hardcode_libdir_flag_spec_GCJ \ hardcode_libdir_flag_spec_ld_GCJ \ hardcode_libdir_separator_GCJ \ hardcode_automatic_GCJ \ module_cmds_GCJ \ module_expsym_cmds_GCJ \ lt_cv_prog_compiler_c_o_GCJ \ exclude_expsyms_GCJ \ include_expsyms_GCJ; do case $var in old_archive_cmds_GCJ | \ old_archive_from_new_cmds_GCJ | \ archive_cmds_GCJ | \ archive_expsym_cmds_GCJ | \ module_cmds_GCJ | \ module_expsym_cmds_GCJ | \ old_archive_from_expsyms_cmds_GCJ | \ export_symbols_cmds_GCJ | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_GCJ # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_GCJ # Is the compiler the GNU C compiler? with_gcc=$GCC_GCJ # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_GCJ # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_GCJ # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_GCJ pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_GCJ # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_GCJ old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_GCJ archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_GCJ module_expsym_cmds=$lt_module_expsym_cmds_GCJ # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_GCJ # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_GCJ # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_GCJ # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_GCJ # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_GCJ # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_GCJ # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_GCJ # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_GCJ # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_GCJ # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_GCJ" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_GCJ # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_GCJ # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_GCJ # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_GCJ # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" else tagname="" fi ;; RC) # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o objext_RC=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${RC-"windres"} compiler=$CC compiler_RC=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` lt_cv_prog_compiler_c_o_RC=yes # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_RC \ CC_RC \ LD_RC \ lt_prog_compiler_wl_RC \ lt_prog_compiler_pic_RC \ lt_prog_compiler_static_RC \ lt_prog_compiler_no_builtin_flag_RC \ export_dynamic_flag_spec_RC \ thread_safe_flag_spec_RC \ whole_archive_flag_spec_RC \ enable_shared_with_static_runtimes_RC \ old_archive_cmds_RC \ old_archive_from_new_cmds_RC \ predep_objects_RC \ postdep_objects_RC \ predeps_RC \ postdeps_RC \ compiler_lib_search_path_RC \ archive_cmds_RC \ archive_expsym_cmds_RC \ postinstall_cmds_RC \ postuninstall_cmds_RC \ old_archive_from_expsyms_cmds_RC \ allow_undefined_flag_RC \ no_undefined_flag_RC \ export_symbols_cmds_RC \ hardcode_libdir_flag_spec_RC \ hardcode_libdir_flag_spec_ld_RC \ hardcode_libdir_separator_RC \ hardcode_automatic_RC \ module_cmds_RC \ module_expsym_cmds_RC \ lt_cv_prog_compiler_c_o_RC \ exclude_expsyms_RC \ include_expsyms_RC; do case $var in old_archive_cmds_RC | \ old_archive_from_new_cmds_RC | \ archive_cmds_RC | \ archive_expsym_cmds_RC | \ module_cmds_RC | \ module_expsym_cmds_RC | \ old_archive_from_expsyms_cmds_RC | \ export_symbols_cmds_RC | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_RC # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_RC # Is the compiler the GNU C compiler? with_gcc=$GCC_RC # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_RC # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_RC # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_RC pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_RC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_RC old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_RC archive_expsym_cmds=$lt_archive_expsym_cmds_RC postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_RC module_expsym_cmds=$lt_module_expsym_cmds_RC # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_RC # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_RC # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_RC # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_RC # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_RC # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_RC # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_RC # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_RC # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_RC # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_RC # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_RC # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_RC # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_RC # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_RC" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_RC # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_RC # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_RC # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_RC # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ;; *) { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 echo "$as_me: error: Unsupported tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac # Append the new tag name to the list of available tags. if test -n "$tagname" ; then available_tags="$available_tags $tagname" fi fi done IFS="$lt_save_ifs" # Now substitute the updated list of available tags. if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then mv "${ofile}T" "$ofile" chmod +x "$ofile" else rm -f "${ofile}T" { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 echo "$as_me: error: unable to update list of available tagged configurations." >&2;} { (exit 1); exit 1; }; } fi fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' # Prevent multiple expansion # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. We don't cache a # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the path is relative. INSTALL=$ac_install_sh fi fi echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF all: @echo 'ac_maketemp="$(MAKE)"' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` if test -n "$ac_maketemp"; then eval ac_cv_prog_make_${ac_make}_set=yes else eval ac_cv_prog_make_${ac_make}_set=no fi rm -f conftest.make fi if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 SET_MAKE= else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 SET_MAKE="MAKE=${MAKE-make}" fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC QCC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then echo "$as_me:$LINENO: result: $CXX" >&5 echo "${ECHO_T}$CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC QCC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 echo "${ECHO_T}$ac_ct_CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CXX" && break done test -n "$ac_ct_CXX" || ac_ct_CXX="g++" CXX=$ac_ct_CXX fi # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C++ compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6 if test "${ac_cv_cxx_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6 GXX=`test $ac_compiler_gnu = yes && echo yes` ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS CXXFLAGS="-g" echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cxx_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cxx_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6 if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CXX" am_compiler_list= echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6 CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6 if test -z "$CXXCPP"; then if test "${ac_cv_prog_CXXCPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi echo "$as_me:$LINENO: result: $CXXCPP" >&5 echo "${ECHO_T}$CXXCPP" >&6 ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu # CXX fine tuning case "$host" in *-dec-osf*) CXXFLAGS="$CXXFLAGS -std strict_ansi_errors" ;; *) ;; esac # Doxygen # Check whether --enable-doxygen or --disable-doxygen was given. if test "${enable_doxygen+set}" = set; then enableval="$enable_doxygen" fi; # Check whether --enable-dot or --disable-dot was given. if test "${enable_dot+set}" = set; then enableval="$enable_dot" fi; # Check whether --enable-html-docs or --disable-html-docs was given. if test "${enable_html_docs+set}" = set; then enableval="$enable_html_docs" else enable_html_docs=yes fi; # Check whether --enable-latex-docs or --disable-latex-docs was given. if test "${enable_latex_docs+set}" = set; then enableval="$enable_latex_docs" else enable_latex_docs=no fi; if test "x$enable_doxygen" = xno; then enable_doc=no else # Extract the first word of "doxygen", so it can be a program name with args. set dummy doxygen; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_DOXYGEN+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $DOXYGEN in [\\/]* | ?:[\\/]*) ac_cv_path_DOXYGEN="$DOXYGEN" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_DOXYGEN="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done ;; esac fi DOXYGEN=$ac_cv_path_DOXYGEN if test -n "$DOXYGEN"; then echo "$as_me:$LINENO: result: $DOXYGEN" >&5 echo "${ECHO_T}$DOXYGEN" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test "x$DOXYGEN" = x; then if test "x$enable_doxygen" = xyes; then { { echo "$as_me:$LINENO: error: could not find doxygen" >&5 echo "$as_me: error: could not find doxygen" >&2;} { (exit 1); exit 1; }; } fi enable_doc=no else enable_doc=yes # Extract the first word of "dot", so it can be a program name with args. set dummy dot; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_DOT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $DOT in [\\/]* | ?:[\\/]*) ac_cv_path_DOT="$DOT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_DOT="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done ;; esac fi DOT=$ac_cv_path_DOT if test -n "$DOT"; then echo "$as_me:$LINENO: result: $DOT" >&5 echo "${ECHO_T}$DOT" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi fi if test x$enable_doc = xyes; then DOC_TRUE= DOC_FALSE='#' else DOC_TRUE='#' DOC_FALSE= fi if test x$enable_latex_docs = xyes; then LATEX_DOC_TRUE= LATEX_DOC_FALSE='#' else LATEX_DOC_TRUE='#' LATEX_DOC_FALSE= fi if test x$DOT = x; then if test "x$enable_dot" = xyes; then { { echo "$as_me:$LINENO: error: could not find dot" >&5 echo "$as_me: error: could not find dot" >&2;} { (exit 1); exit 1; }; } fi enable_dot=no else enable_dot=yes fi manual_dest="manual" base_dir=`(cd $srcdir && pwd)` # Checks header files # ---------------------------------------------------------------------------- apr_found="no" if test "$target_os" = "os2-emx"; then # Scripts don't pass test -x on OS/2 TEST_X="test -f" else TEST_X="test -x" fi acceptable_majors="1" apr_temp_acceptable_apr_config="" for apr_temp_major in $acceptable_majors do case $apr_temp_major in 0) apr_temp_acceptable_apr_config="$apr_temp_acceptable_apr_config apr-config" ;; *) apr_temp_acceptable_apr_config="$apr_temp_acceptable_apr_config apr-$apr_temp_major-config" ;; esac done echo "$as_me:$LINENO: checking for APR" >&5 echo $ECHO_N "checking for APR... $ECHO_C" >&6 # Check whether --with-apr or --without-apr was given. if test "${with_apr+set}" = set; then withval="$with_apr" if test "$withval" = "no" || test "$withval" = "yes"; then { { echo "$as_me:$LINENO: error: --with-apr requires a directory or file to be provided" >&5 echo "$as_me: error: --with-apr requires a directory or file to be provided" >&2;} { (exit 1); exit 1; }; } fi for apr_temp_apr_config_file in $apr_temp_acceptable_apr_config do for lookdir in "$withval/bin" "$withval" do if $TEST_X "$lookdir/$apr_temp_apr_config_file"; then apr_config="$lookdir/$apr_temp_apr_config_file" apr_found="yes" break 2 fi done done if test "$apr_found" != "yes" && $TEST_X "$withval" && $withval --help > /dev/null 2>&1 ; then apr_config="$withval" apr_found="yes" fi if test "$apr_found" != "yes"; then { { echo "$as_me:$LINENO: error: the --with-apr parameter is incorrect. It must specify an install prefix, a build directory, or an apr-config file." >&5 echo "$as_me: error: the --with-apr parameter is incorrect. It must specify an install prefix, a build directory, or an apr-config file." >&2;} { (exit 1); exit 1; }; } fi else if test -n "1" && test "1" = "1"; then for apr_temp_apr_config_file in $apr_temp_acceptable_apr_config do if $apr_temp_apr_config_file --help > /dev/null 2>&1 ; then apr_config="$apr_temp_apr_config_file" apr_found="yes" break else for lookdir in /usr /usr/local /usr/local/apr /opt/apr; do if $TEST_X "$lookdir/bin/$apr_temp_apr_config_file"; then apr_config="$lookdir/bin/$apr_temp_apr_config_file" apr_found="yes" break 2 fi done fi done fi if test "$apr_found" = "no" && test -d ""; then apr_temp_abs_srcdir="`cd && pwd`" apr_found="reconfig" apr_bundled_major="`sed -n '/#define.*APR_MAJOR_VERSION/s/^[^0-9]*\([0-9]*\).*$/\1/p' \"/include/apr_version.h\"`" case $apr_bundled_major in "") { { echo "$as_me:$LINENO: error: failed to find major version of bundled APR" >&5 echo "$as_me: error: failed to find major version of bundled APR" >&2;} { (exit 1); exit 1; }; } ;; 0) apr_temp_apr_config_file="apr-config" ;; *) apr_temp_apr_config_file="apr-$apr_bundled_major-config" ;; esac if test -n ""; then apr_config="/$apr_temp_apr_config_file" else apr_config="/$apr_temp_apr_config_file" fi fi fi; echo "$as_me:$LINENO: result: $apr_found" >&5 echo "${ECHO_T}$apr_found" >&6 if test "$apr_found" = "no"; then { { echo "$as_me:$LINENO: error: APR could not be located. Please use the --with-apr option." >&5 echo "$as_me: error: APR could not be located. Please use the --with-apr option." >&2;} { (exit 1); exit 1; }; } fi CPPFLAGS="$CPPFLAGS `$apr_config --cppflags` `$apr_config --includes`" APR_LIBS="`$apr_config --link-ld --libs`" LDFLAGS="$LDFLAGS $APR_LIBS" apu_found="no" if test "$target_os" = "os2-emx"; then # Scripts don't pass test -x on OS/2 TEST_X="test -f" else TEST_X="test -x" fi acceptable_majors="1" apu_temp_acceptable_apu_config="" for apu_temp_major in $acceptable_majors do case $apu_temp_major in 0) apu_temp_acceptable_apu_config="$apu_temp_acceptable_apu_config apu-config" ;; *) apu_temp_acceptable_apu_config="$apu_temp_acceptable_apu_config apu-$apu_temp_major-config" ;; esac done echo "$as_me:$LINENO: checking for APR-util" >&5 echo $ECHO_N "checking for APR-util... $ECHO_C" >&6 # Check whether --with-apr-util or --without-apr-util was given. if test "${with_apr_util+set}" = set; then withval="$with_apr_util" if test "$withval" = "no" || test "$withval" = "yes"; then { { echo "$as_me:$LINENO: error: --with-apr-util requires a directory or file to be provided" >&5 echo "$as_me: error: --with-apr-util requires a directory or file to be provided" >&2;} { (exit 1); exit 1; }; } fi for apu_temp_apu_config_file in $apu_temp_acceptable_apu_config do for lookdir in "$withval/bin" "$withval" do if $TEST_X "$lookdir/$apu_temp_apu_config_file"; then apu_config="$lookdir/$apu_temp_apu_config_file" apu_found="yes" break 2 fi done done if test "$apu_found" != "yes" && $TEST_X "$withval" && $withval --help > /dev/null 2>&1 ; then apu_config="$withval" apu_found="yes" fi if test "$apu_found" != "yes"; then { { echo "$as_me:$LINENO: error: the --with-apr-util parameter is incorrect. It must specify an install prefix, a build directory, or an apu-config file." >&5 echo "$as_me: error: the --with-apr-util parameter is incorrect. It must specify an install prefix, a build directory, or an apu-config file." >&2;} { (exit 1); exit 1; }; } fi else if test -n "1" && test "1" = "1"; then for apu_temp_apu_config_file in $apu_temp_acceptable_apu_config do if $apu_temp_apu_config_file --help > /dev/null 2>&1 ; then apu_config="$apu_temp_apu_config_file" apu_found="yes" break else for lookdir in /usr /usr/local /usr/local/apr /opt/apr; do if $TEST_X "$lookdir/bin/$apu_temp_apu_config_file"; then apu_config="$lookdir/bin/$apu_temp_apu_config_file" apu_found="yes" break 2 fi done fi done fi if test "$apu_found" = "no" && test -d ""; then apu_temp_abs_srcdir="`cd && pwd`" apu_found="reconfig" apu_bundled_major="`sed -n '/#define.*APU_MAJOR_VERSION/s/^[^0-9]*\([0-9]*\).*$/\1/p' \"/include/apu_version.h\"`" case $apu_bundled_major in "") { { echo "$as_me:$LINENO: error: failed to find major version of bundled APU" >&5 echo "$as_me: error: failed to find major version of bundled APU" >&2;} { (exit 1); exit 1; }; } ;; 0) apu_temp_apu_config_file="apu-config" ;; *) apu_temp_apu_config_file="apu-$apu_bundled_major-config" ;; esac if test -n ""; then apu_config="/$apu_temp_apu_config_file" else apu_config="/$apu_temp_apu_config_file" fi fi fi; echo "$as_me:$LINENO: result: $apu_found" >&5 echo "${ECHO_T}$apu_found" >&6 if test "$apu_found" = "no"; then { { echo "$as_me:$LINENO: error: APR-util could not be located. Please use the --with-apr-util option." >&5 echo "$as_me: error: APR-util could not be located. Please use the --with-apr-util option." >&2;} { (exit 1); exit 1; }; } fi CPPFLAGS="$CPPFLAGS `$apu_config --includes`" APU_LIBS="`$apu_config --link-ld --libs`" LDFLAGS="$LDFLAGS $APU_LIBS" # Checks local idioms # ---------------------------------------------------------------------------- # for local syslog() function for SyslogAppender for ac_func in mbsrtowcs do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else char (*f) () = $ac_func; #endif #ifdef __cplusplus } #endif int main () { return f != $ac_func; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF have_mbsrtowcs=yes else have_mbsrtowcs=no fi done if test "$have_mbsrtowcs" = "yes" then HAS_MBSRTOWCS=1 else HAS_MBSRTOWCS=0 fi for ac_func in wcstombs do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else char (*f) () = $ac_func; #endif #ifdef __cplusplus } #endif int main () { return f != $ac_func; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF have_wcstombs=yes else have_wcstombs=no fi done if test "$have_wcstombs" = "yes" then HAS_WCSTOMBS=1 else HAS_WCSTOMBS=0 fi # for local syslog() function for SyslogAppender for ac_func in syslog do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else char (*f) () = $ac_func; #endif #ifdef __cplusplus } #endif int main () { return f != $ac_func; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF have_syslog=yes else have_syslog=no fi done if test "$have_syslog" = "yes" then HAS_SYSLOG=1 else HAS_SYSLOG=0 fi if test "${ac_cv_header_locale+set}" = set; then echo "$as_me:$LINENO: checking for locale" >&5 echo $ECHO_N "checking for locale... $ECHO_C" >&6 if test "${ac_cv_header_locale+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: $ac_cv_header_locale" >&5 echo "${ECHO_T}$ac_cv_header_locale" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking locale usability" >&5 echo $ECHO_N "checking locale usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking locale presence" >&5 echo $ECHO_N "checking locale presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: locale: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: locale: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: locale: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: locale: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: locale: present but cannot be compiled" >&5 echo "$as_me: WARNING: locale: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: locale: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: locale: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: locale: see the Autoconf documentation" >&5 echo "$as_me: WARNING: locale: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: locale: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: locale: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: locale: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: locale: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: locale: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: locale: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------------------ ## ## Report this to the AC_PACKAGE_NAME lists. ## ## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for locale" >&5 echo $ECHO_N "checking for locale... $ECHO_C" >&6 if test "${ac_cv_header_locale+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_locale=$ac_header_preproc fi echo "$as_me:$LINENO: result: $ac_cv_header_locale" >&5 echo "${ECHO_T}$ac_cv_header_locale" >&6 fi if test $ac_cv_header_locale = yes; then have_locale=yes else have_locale=no fi if test "$have_locale" = "yes" then HAS_STD_LOCALE=1 else HAS_STD_LOCALE=0 fi echo "$as_me:$LINENO: checking for wchar_t" >&5 echo $ECHO_N "checking for wchar_t... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include std::wstring w; _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then have_wchar_t=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 have_wchar_t=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $have_wchar_t" >&5 echo "${ECHO_T}$have_wchar_t" >&6 if test "$have_wchar_t" = "yes" then HAS_WCHAR_T=1 else HAS_WCHAR_T=0 fi for ac_func in fwide do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else char (*f) () = $ac_func; #endif #ifdef __cplusplus } #endif int main () { return f != $ac_func; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF have_fwide=yes else have_fwide=no fi done if test "$have_fwide" = "yes" then HAS_FWIDE=1 else HAS_FWIDE=0 fi # Checks for libraries # ---------------------------------------------------------------------------- if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then echo "$as_me:$LINENO: result: $RANLIB" >&5 echo "${ECHO_T}$RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 echo "${ECHO_T}$ac_ct_RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi RANLIB=$ac_ct_RANLIB else RANLIB="$ac_cv_prog_RANLIB" fi #for ODBCAppender echo "$as_me:$LINENO: checking for ODBC support" >&5 echo $ECHO_N "checking for ODBC support... $ECHO_C" >&6 # Check whether --with-ODBC or --without-ODBC was given. if test "${with_ODBC+set}" = set; then withval="$with_ODBC" ac_with_odbc=$withval else ac_with_odbc=no fi; case "$ac_with_odbc" in Microsoft) HAS_ODBC=1 echo "$as_me:$LINENO: result: Microsoft" >&5 echo "${ECHO_T}Microsoft" >&6 LIBS_ODBC="-lodbc32" ;; unixODBC) echo "$as_me:$LINENO: result: unixODBC" >&5 echo "${ECHO_T}unixODBC" >&6 if test "${ac_cv_header_sqlext_h+set}" = set; then echo "$as_me:$LINENO: checking for sqlext.h" >&5 echo $ECHO_N "checking for sqlext.h... $ECHO_C" >&6 if test "${ac_cv_header_sqlext_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: $ac_cv_header_sqlext_h" >&5 echo "${ECHO_T}$ac_cv_header_sqlext_h" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking sqlext.h usability" >&5 echo $ECHO_N "checking sqlext.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking sqlext.h presence" >&5 echo $ECHO_N "checking sqlext.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: sqlext.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: sqlext.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: sqlext.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: sqlext.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: sqlext.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: sqlext.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: sqlext.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: sqlext.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: sqlext.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: sqlext.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: sqlext.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: sqlext.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: sqlext.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: sqlext.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: sqlext.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: sqlext.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------------------ ## ## Report this to the AC_PACKAGE_NAME lists. ## ## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for sqlext.h" >&5 echo $ECHO_N "checking for sqlext.h... $ECHO_C" >&6 if test "${ac_cv_header_sqlext_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_sqlext_h=$ac_header_preproc fi echo "$as_me:$LINENO: result: $ac_cv_header_sqlext_h" >&5 echo "${ECHO_T}$ac_cv_header_sqlext_h" >&6 fi if test $ac_cv_header_sqlext_h = yes; then : else { { echo "$as_me:$LINENO: error: unixODBC not found !" >&5 echo "$as_me: error: unixODBC not found !" >&2;} { (exit 1); exit 1; }; } fi HAS_ODBC=1 LIBS_ODBC="-lodbc" ;; iODBC) echo "$as_me:$LINENO: result: iODBC" >&5 echo "${ECHO_T}iODBC" >&6 # Extract the first word of "iodbc-config", so it can be a program name with args. set dummy iodbc-config; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_IODBC_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$IODBC_CONFIG"; then ac_cv_prog_IODBC_CONFIG="$IODBC_CONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_IODBC_CONFIG="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_IODBC_CONFIG" && ac_cv_prog_IODBC_CONFIG="no" fi fi IODBC_CONFIG=$ac_cv_prog_IODBC_CONFIG if test -n "$IODBC_CONFIG"; then echo "$as_me:$LINENO: result: $IODBC_CONFIG" >&5 echo "${ECHO_T}$IODBC_CONFIG" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test "x$IODBC_CONFIG" = "xyes" then HAS_ODBC=1 LIBS_ODBC="`iodbc-config --libs`" CPPFLAGS_ODBC="`iodbc-config --cflags`" else { { echo "$as_me:$LINENO: error: iODBC not found !" >&5 echo "$as_me: error: iODBC not found !" >&2;} { (exit 1); exit 1; }; } fi ;; no) HAS_ODBC=0 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 ;; *) echo "$as_me:$LINENO: result: ???" >&5 echo "${ECHO_T}???" >&6 { { echo "$as_me:$LINENO: error: Unknown option : $ac_with_odbc" >&5 echo "$as_me: error: Unknown option : $ac_with_odbc" >&2;} { (exit 1); exit 1; }; } ;; esac #for SMTPAppender echo "$as_me:$LINENO: checking for SMTP support" >&5 echo $ECHO_N "checking for SMTP support... $ECHO_C" >&6 # Check whether --with-SMTP or --without-SMTP was given. if test "${with_SMTP+set}" = set; then withval="$with_SMTP" ac_with_smtp=$withval else ac_with_smtp=no fi; case "$ac_with_smtp" in libesmtp) echo "$as_me:$LINENO: result: libesmtp" >&5 echo "${ECHO_T}libesmtp" >&6 echo "$as_me:$LINENO: checking for smtp_create_session in -lesmtp" >&5 echo $ECHO_N "checking for smtp_create_session in -lesmtp... $ECHO_C" >&6 if test "${ac_cv_lib_esmtp_smtp_create_session+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lesmtp -lesmtp $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char smtp_create_session (); int main () { smtp_create_session (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_esmtp_smtp_create_session=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_esmtp_smtp_create_session=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_esmtp_smtp_create_session" >&5 echo "${ECHO_T}$ac_cv_lib_esmtp_smtp_create_session" >&6 if test $ac_cv_lib_esmtp_smtp_create_session = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBESMTP 1 _ACEOF LIBS="-lesmtp $LIBS" else { { echo "$as_me:$LINENO: error: libesmtp library not found !" >&5 echo "$as_me: error: libesmtp library not found !" >&2;} { (exit 1); exit 1; }; } fi HAS_LIBESMTP=1 LIBS="-lesmtp $LIBS" ;; no) echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 HAS_LIBESMTP=0 ;; *) echo "$as_me:$LINENO: result: ???" >&5 echo "${ECHO_T}???" >&6 { { echo "$as_me:$LINENO: error: Unknown option : $ac_with_smtp" >&5 echo "$as_me: error: Unknown option : $ac_with_smtp" >&2;} { (exit 1); exit 1; }; } ;; esac #for char api # Check whether --enable-char or --disable-char was given. if test "${enable_char+set}" = set; then enableval="$enable_char" fi; if test "x$enable_char" = xno; then have_char_api=no else have_char_api=yes fi if test "$have_char_api" = "yes" then CHAR_API=1 else CHAR_API=0 fi #for wchar_t api # Check whether --enable-wchar_t or --disable-wchar_t was given. if test "${enable_wchar_t+set}" = set; then enableval="$enable_wchar_t" fi; if test "x$enable_wchar_t" = xno; then have_wchar_t_api=no else if test "$have_wchar_t" = "yes" then have_wchar_t_api=yes else have_wchar_t_api=no fi fi if test "$have_wchar_t_api" = "yes" then WCHAR_T_API=1 else WCHAR_T_API=0 fi #for unichar api # Check whether --enable-unichar or --disable-unichar was given. if test "${enable_unichar+set}" = set; then enableval="$enable_unichar" fi; if test "x$enable_unichar" = "yes" then UNICHAR_API=1 else UNICHAR_API=0 fi #for cfstring api # Check whether --enable-cfstring or --disable-cfstring was given. if test "${enable_cfstring+set}" = set; then enableval="$enable_cfstring" fi; if test "x$enable_cfstring" = xyes; then echo "$as_me:$LINENO: checking for cfstring" >&5 echo $ECHO_N "checking for cfstring... $ECHO_C" >&6 CPPFLAGS="$CPPFLAGS -framework CoreFoundation" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include CFStringRef x = CFSTR("Hello"); _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then have_cfstring_api=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 have_cfstring_api=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $have_cfstring_api" >&5 echo "${ECHO_T}$have_cfstring_api" >&6 else have_cfstring_api=no fi if test "$have_cfstring_api" = "yes" then CFSTRING_API=1 else CFSTRING_API=0 fi #determine charset type echo "$as_me:$LINENO: checking charset type" >&5 echo $ECHO_N "checking charset type... $ECHO_C" >&6 # Check whether --with-charset or --without-charset was given. if test "${with_charset+set}" = set; then withval="$with_charset" ac_with_charset=$withval else ac_with_charset=auto fi; case "$ac_with_charset" in utf-8) echo "$as_me:$LINENO: result: utf-8" >&5 echo "${ECHO_T}utf-8" >&6 CHARSET_UTF8=1 CHARSET_ISO88591=0 CHARSET_USASCII=0 CHARSET_EBCDIC=0 ;; iso-8859-1) echo "$as_me:$LINENO: result: iso-8859-1" >&5 echo "${ECHO_T}iso-8859-1" >&6 CHARSET_UTF8=0 CHARSET_ISO88591=1 CHARSET_USASCII=0 CHARSET_EBCDIC=0 ;; usascii) echo "$as_me:$LINENO: result: usascii" >&5 echo "${ECHO_T}usascii" >&6 CHARSET_UTF8=0 CHARSET_ISO88591=0 CHARSET_USASCII=1 CHARSET_EBCDIC=0 ;; ebcdic) echo "$as_me:$LINENO: result: usascii" >&5 echo "${ECHO_T}usascii" >&6 CHARSET_UTF8=0 CHARSET_ISO88591=0 CHARSET_USASCII=0 CHARSET_EBCDIC=1 ;; auto) echo "$as_me:$LINENO: result: auto" >&5 echo "${ECHO_T}auto" >&6 CHARSET_UTF8=0 CHARSET_ISO88591=0 CHARSET_USASCII=0 CHARSET_EBCDIC=0 ;; *) echo "$as_me:$LINENO: result: ???" >&5 echo "${ECHO_T}???" >&6 { { echo "$as_me:$LINENO: error: Invalid charset type: $ac_with_charset" >&5 echo "$as_me: error: Invalid charset type: $ac_with_charset" >&2;} { (exit 1); exit 1; }; } ;; esac #determine logchar type echo "$as_me:$LINENO: checking logchar type" >&5 echo $ECHO_N "checking logchar type... $ECHO_C" >&6 # Check whether --with-logchar or --without-logchar was given. if test "${with_logchar+set}" = set; then withval="$with_logchar" ac_with_logchar=$withval else ac_with_logchar=utf-8 fi; case "$ac_with_logchar" in utf-8) echo "$as_me:$LINENO: result: utf-8" >&5 echo "${ECHO_T}utf-8" >&6 LOGCHAR_IS_UTF8=1 LOGCHAR_IS_WCHAR=0 LOGCHAR_IS_UNICHAR=0 ;; wchar_t) echo "$as_me:$LINENO: result: wchar_t" >&5 echo "${ECHO_T}wchar_t" >&6 LOGCHAR_IS_UTF8=0 LOGCHAR_IS_WCHAR=1 LOGCHAR_IS_UNICHAR=0 ;; unichar) echo "$as_me:$LINENO: result: unichar" >&5 echo "${ECHO_T}unichar" >&6 LOGCHAR_IS_UTF8=0 LOGCHAR_IS_WCHAR=0 LOGCHAR_IS_UNICHAR=1 ;; *) echo "$as_me:$LINENO: result: ???" >&5 echo "${ECHO_T}???" >&6 { { echo "$as_me:$LINENO: error: Invalid logchar type: $ac_with_logchar" >&5 echo "$as_me: error: Invalid logchar type: $ac_with_logchar" >&2;} { (exit 1); exit 1; }; } ;; esac # Create files # ---------------------------------------------------------------------------- ac_config_files="$ac_config_files Makefile liblog4cxx.pc src/Makefile src/main/Makefile src/main/cpp/Makefile src/main/include/Makefile src/main/include/log4cxx/log4cxx.h src/main/include/log4cxx/private/log4cxx_private.h src/main/include/log4cxx/private/Makefile src/main/include/log4cxx/Makefile src/main/include/log4cxx/helpers/Makefile src/main/include/log4cxx/net/Makefile src/main/include/log4cxx/nt/Makefile src/main/include/log4cxx/spi/Makefile src/main/include/log4cxx/spi/location/Makefile src/main/include/log4cxx/varia/Makefile src/main/include/log4cxx/xml/Makefile src/main/include/log4cxx/config/Makefile src/main/include/log4cxx/db/Makefile src/main/include/log4cxx/rolling/Makefile src/main/include/log4cxx/pattern/Makefile src/main/include/log4cxx/filter/Makefile src/site/Makefile src/site/doxy/Makefile src/site/doxy/Doxyfile src/test/Makefile src/test/resources/Makefile src/test/resources/input/Makefile src/test/resources/input/ndc/Makefile src/test/resources/input/rolling/Makefile src/test/resources/input/xml/Makefile src/test/cpp/Makefile src/test/resources/witness/Makefile src/test/resources/witness/encoding/Makefile src/test/resources/witness/ndc/Makefile src/test/resources/witness/rolling/Makefile src/examples/Makefile src/examples/cpp/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, don't put newlines in cache variables' values. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. { (set) 2>&1 | case `(ac_space=' '; set | grep ac_space) 2>&1` in *ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } | sed ' t clear : clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ : end' >>confcache if diff $cache_file confcache >/dev/null 2>&1; then :; else if test -w $cache_file; then test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" cat confcache >$cache_file else echo "not updating unwritable cache $cache_file" fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/; s/:*\${srcdir}:*/:/; s/:*@srcdir@:*/:/; s/^\([^=]*=[ ]*\):*/\1/; s/:*$//; s/^[^=]*=[ ]*$//; }' fi # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then we branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. cat >confdef2opt.sed <<\_ACEOF t clear : clear s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g t quote s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g t quote d : quote s,[ `~#$^&*(){}\\|;'"<>?],\\&,g s,\[,\\&,g s,\],\\&,g s,\$,$$,g p _ACEOF # We use echo to avoid assuming a particular line-breaking character. # The extra dot is to prevent the shell from consuming trailing # line-breaks from the sub-command output. A line-break within # single-quotes doesn't work because, if this script is created in a # platform that uses two characters for line-breaks (e.g., DOS), tr # would break. ac_LF_and_DOT=`echo; echo .` DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` rm -f confdef2opt.sed ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_i=`echo "$ac_i" | sed 's/\$U\././;s/\.o$//;s/\.obj$//'` # 2. Add them. ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${DOC_TRUE}" && test -z "${DOC_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"DOC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"DOC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${LATEX_DOC_TRUE}" && test -z "${LATEX_DOC_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"LATEX_DOC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"LATEX_DOC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH exec 6>&1 # Open the log real soon, to keep \$[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. Logging --version etc. is OK. exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX } >&5 cat >&5 <<_CSEOF This file was extended by $as_me, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ _CSEOF echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 echo >&5 _ACEOF # Files that config.status was made for. if test -n "$ac_config_files"; then echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS fi if test -n "$ac_config_headers"; then echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS fi if test -n "$ac_config_links"; then echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS fi if test -n "$ac_config_commands"; then echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS fi cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2003 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." srcdir=$srcdir INSTALL="$INSTALL" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "x$1" : 'x\([^=]*\)='` ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` ac_shift=: ;; -*) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; *) # This is not an option, so the user has probably given explicit # arguments. ac_option=$1 ac_need_defaults=false;; esac case $ac_option in # Handling of the options. _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --vers* | -V ) echo "$ac_cs_version"; exit 0 ;; --he | --h) # Conflict between --help and --header { { echo "$as_me:$LINENO: error: ambiguous option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF if \$ac_cs_recheck; then echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS section. # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_config_target in $ac_config_targets do case "$ac_config_target" in # Handling of arguments. "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; "liblog4cxx.pc" ) CONFIG_FILES="$CONFIG_FILES liblog4cxx.pc" ;; "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "src/main/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/main/Makefile" ;; "src/main/cpp/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/main/cpp/Makefile" ;; "src/main/include/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/main/include/Makefile" ;; "src/main/include/log4cxx/log4cxx.h" ) CONFIG_FILES="$CONFIG_FILES src/main/include/log4cxx/log4cxx.h" ;; "src/main/include/log4cxx/private/log4cxx_private.h" ) CONFIG_FILES="$CONFIG_FILES src/main/include/log4cxx/private/log4cxx_private.h" ;; "src/main/include/log4cxx/private/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/main/include/log4cxx/private/Makefile" ;; "src/main/include/log4cxx/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/main/include/log4cxx/Makefile" ;; "src/main/include/log4cxx/helpers/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/main/include/log4cxx/helpers/Makefile" ;; "src/main/include/log4cxx/net/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/main/include/log4cxx/net/Makefile" ;; "src/main/include/log4cxx/nt/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/main/include/log4cxx/nt/Makefile" ;; "src/main/include/log4cxx/spi/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/main/include/log4cxx/spi/Makefile" ;; "src/main/include/log4cxx/spi/location/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/main/include/log4cxx/spi/location/Makefile" ;; "src/main/include/log4cxx/varia/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/main/include/log4cxx/varia/Makefile" ;; "src/main/include/log4cxx/xml/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/main/include/log4cxx/xml/Makefile" ;; "src/main/include/log4cxx/config/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/main/include/log4cxx/config/Makefile" ;; "src/main/include/log4cxx/db/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/main/include/log4cxx/db/Makefile" ;; "src/main/include/log4cxx/rolling/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/main/include/log4cxx/rolling/Makefile" ;; "src/main/include/log4cxx/pattern/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/main/include/log4cxx/pattern/Makefile" ;; "src/main/include/log4cxx/filter/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/main/include/log4cxx/filter/Makefile" ;; "src/site/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/site/Makefile" ;; "src/site/doxy/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/site/doxy/Makefile" ;; "src/site/doxy/Doxyfile" ) CONFIG_FILES="$CONFIG_FILES src/site/doxy/Doxyfile" ;; "src/test/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/test/Makefile" ;; "src/test/resources/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/test/resources/Makefile" ;; "src/test/resources/input/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/test/resources/input/Makefile" ;; "src/test/resources/input/ndc/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/test/resources/input/ndc/Makefile" ;; "src/test/resources/input/rolling/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/test/resources/input/rolling/Makefile" ;; "src/test/resources/input/xml/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/test/resources/input/xml/Makefile" ;; "src/test/cpp/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/test/cpp/Makefile" ;; "src/test/resources/witness/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/test/resources/witness/Makefile" ;; "src/test/resources/witness/encoding/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/test/resources/witness/encoding/Makefile" ;; "src/test/resources/witness/ndc/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/test/resources/witness/ndc/Makefile" ;; "src/test/resources/witness/rolling/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/test/resources/witness/rolling/Makefile" ;; "src/examples/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/examples/Makefile" ;; "src/examples/cpp/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/examples/cpp/Makefile" ;; "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason to put it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Create a temporary directory, and hook for its removal unless debugging. $debug || { trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./confstat$$-$RANDOM (umask 077 && mkdir $tmp) } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "\$CONFIG_FILES"; then # Protect against being on the right side of a sed subst in config.status. sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF s,@SHELL@,$SHELL,;t t s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t s,@exec_prefix@,$exec_prefix,;t t s,@prefix@,$prefix,;t t s,@program_transform_name@,$program_transform_name,;t t s,@bindir@,$bindir,;t t s,@sbindir@,$sbindir,;t t s,@libexecdir@,$libexecdir,;t t s,@datadir@,$datadir,;t t s,@sysconfdir@,$sysconfdir,;t t s,@sharedstatedir@,$sharedstatedir,;t t s,@localstatedir@,$localstatedir,;t t s,@libdir@,$libdir,;t t s,@includedir@,$includedir,;t t s,@oldincludedir@,$oldincludedir,;t t s,@infodir@,$infodir,;t t s,@mandir@,$mandir,;t t s,@build_alias@,$build_alias,;t t s,@host_alias@,$host_alias,;t t s,@target_alias@,$target_alias,;t t s,@DEFS@,$DEFS,;t t s,@ECHO_C@,$ECHO_C,;t t s,@ECHO_N@,$ECHO_N,;t t s,@ECHO_T@,$ECHO_T,;t t s,@LIBS@,$LIBS,;t t s,@build@,$build,;t t s,@build_cpu@,$build_cpu,;t t s,@build_vendor@,$build_vendor,;t t s,@build_os@,$build_os,;t t s,@host@,$host,;t t s,@host_cpu@,$host_cpu,;t t s,@host_vendor@,$host_vendor,;t t s,@host_os@,$host_os,;t t s,@target@,$target,;t t s,@target_cpu@,$target_cpu,;t t s,@target_vendor@,$target_vendor,;t t s,@target_os@,$target_os,;t t s,@LT_VERSION@,$LT_VERSION,;t t s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t s,@INSTALL_DATA@,$INSTALL_DATA,;t t s,@CYGPATH_W@,$CYGPATH_W,;t t s,@PACKAGE@,$PACKAGE,;t t s,@VERSION@,$VERSION,;t t s,@ACLOCAL@,$ACLOCAL,;t t s,@AUTOCONF@,$AUTOCONF,;t t s,@AUTOMAKE@,$AUTOMAKE,;t t s,@AUTOHEADER@,$AUTOHEADER,;t t s,@MAKEINFO@,$MAKEINFO,;t t s,@install_sh@,$install_sh,;t t s,@STRIP@,$STRIP,;t t s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t s,@mkdir_p@,$mkdir_p,;t t s,@AWK@,$AWK,;t t s,@SET_MAKE@,$SET_MAKE,;t t s,@am__leading_dot@,$am__leading_dot,;t t s,@AMTAR@,$AMTAR,;t t s,@am__tar@,$am__tar,;t t s,@am__untar@,$am__untar,;t t s,@CC@,$CC,;t t s,@CFLAGS@,$CFLAGS,;t t s,@LDFLAGS@,$LDFLAGS,;t t s,@CPPFLAGS@,$CPPFLAGS,;t t s,@ac_ct_CC@,$ac_ct_CC,;t t s,@EXEEXT@,$EXEEXT,;t t s,@OBJEXT@,$OBJEXT,;t t s,@DEPDIR@,$DEPDIR,;t t s,@am__include@,$am__include,;t t s,@am__quote@,$am__quote,;t t s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t s,@CCDEPMODE@,$CCDEPMODE,;t t s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t s,@EGREP@,$EGREP,;t t s,@LN_S@,$LN_S,;t t s,@ECHO@,$ECHO,;t t s,@AR@,$AR,;t t s,@ac_ct_AR@,$ac_ct_AR,;t t s,@RANLIB@,$RANLIB,;t t s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t s,@CPP@,$CPP,;t t s,@CXX@,$CXX,;t t s,@CXXFLAGS@,$CXXFLAGS,;t t s,@ac_ct_CXX@,$ac_ct_CXX,;t t s,@CXXDEPMODE@,$CXXDEPMODE,;t t s,@am__fastdepCXX_TRUE@,$am__fastdepCXX_TRUE,;t t s,@am__fastdepCXX_FALSE@,$am__fastdepCXX_FALSE,;t t s,@CXXCPP@,$CXXCPP,;t t s,@F77@,$F77,;t t s,@FFLAGS@,$FFLAGS,;t t s,@ac_ct_F77@,$ac_ct_F77,;t t s,@LIBTOOL@,$LIBTOOL,;t t s,@DOXYGEN@,$DOXYGEN,;t t s,@DOT@,$DOT,;t t s,@DOC_TRUE@,$DOC_TRUE,;t t s,@DOC_FALSE@,$DOC_FALSE,;t t s,@LATEX_DOC_TRUE@,$LATEX_DOC_TRUE,;t t s,@LATEX_DOC_FALSE@,$LATEX_DOC_FALSE,;t t s,@enable_dot@,$enable_dot,;t t s,@enable_html_docs@,$enable_html_docs,;t t s,@enable_latex_docs@,$enable_latex_docs,;t t s,@manual_dest@,$manual_dest,;t t s,@base_dir@,$base_dir,;t t s,@APR_LIBS@,$APR_LIBS,;t t s,@APU_LIBS@,$APU_LIBS,;t t s,@HAS_MBSRTOWCS@,$HAS_MBSRTOWCS,;t t s,@HAS_WCSTOMBS@,$HAS_WCSTOMBS,;t t s,@HAS_SYSLOG@,$HAS_SYSLOG,;t t s,@HAS_STD_LOCALE@,$HAS_STD_LOCALE,;t t s,@HAS_WCHAR_T@,$HAS_WCHAR_T,;t t s,@HAS_FWIDE@,$HAS_FWIDE,;t t s,@HAS_ODBC@,$HAS_ODBC,;t t s,@IODBC_CONFIG@,$IODBC_CONFIG,;t t s,@LIBS_ODBC@,$LIBS_ODBC,;t t s,@CPPFLAGS_ODBC@,$CPPFLAGS_ODBC,;t t s,@HAS_LIBESMTP@,$HAS_LIBESMTP,;t t s,@CHAR_API@,$CHAR_API,;t t s,@WCHAR_T_API@,$WCHAR_T_API,;t t s,@UNICHAR_API@,$UNICHAR_API,;t t s,@CFSTRING_API@,$CFSTRING_API,;t t s,@CHARSET_UTF8@,$CHARSET_UTF8,;t t s,@CHARSET_ISO88591@,$CHARSET_ISO88591,;t t s,@CHARSET_USASCII@,$CHARSET_USASCII,;t t s,@CHARSET_EBCDIC@,$CHARSET_EBCDIC,;t t s,@LOGCHAR_IS_UTF8@,$LOGCHAR_IS_UTF8,;t t s,@LOGCHAR_IS_WCHAR@,$LOGCHAR_IS_WCHAR,;t t s,@LOGCHAR_IS_UNICHAR@,$LOGCHAR_IS_UNICHAR,;t t s,@LIBOBJS@,$LIBOBJS,;t t s,@LTLIBOBJS@,$LTLIBOBJS,;t t CEOF _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Split the substitutions into bite-sized pieces for seds with # small command number limits, like on Digital OSF/1 and HP-UX. ac_max_sed_lines=48 ac_sed_frag=1 # Number of current file. ac_beg=1 # First line for current file. ac_end=$ac_max_sed_lines # Line after last line for current file. ac_more_lines=: ac_sed_cmds= while $ac_more_lines; do if test $ac_beg -gt 1; then sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag else sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag fi if test ! -s $tmp/subs.frag; then ac_more_lines=false else # The purpose of the label and of the branching condition is to # speed up the sed processing (if there are no `@' at all, there # is no need to browse any of the substitutions). # These are the two extra sed commands mentioned above. (echo ':t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed if test -z "$ac_sed_cmds"; then ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" else ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" fi ac_sed_frag=`expr $ac_sed_frag + 1` ac_beg=$ac_end ac_end=`expr $ac_end + $ac_max_sed_lines` fi done if test -z "$ac_sed_cmds"; then ac_sed_cmds=cat fi fi # test -n "$CONFIG_FILES" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_builddir$INSTALL ;; esac # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ if test x"$ac_file" = x-; then configure_input= else configure_input="$ac_file. " fi configure_input=$configure_input"Generated from `echo $ac_file_in | sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo "$f";; *) # Relative if test -f "$f"; then # Build tree echo "$f" elif test -f "$srcdir/$f"; then # Source tree echo "$srcdir/$f" else # /dev/null tree { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } if test x"$ac_file" != x-; then { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} rm -f "$ac_file" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s,@configure_input@,$configure_input,;t t s,@srcdir@,$ac_srcdir,;t t s,@abs_srcdir@,$ac_abs_srcdir,;t t s,@top_srcdir@,$ac_top_srcdir,;t t s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t s,@builddir@,$ac_builddir,;t t s,@abs_builddir@,$ac_abs_builddir,;t t s,@top_builddir@,$ac_top_builddir,;t t s,@abs_top_builddir@,$ac_abs_top_builddir,;t t s,@INSTALL@,$ac_INSTALL,;t t " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out rm -f $tmp/stdin if test x"$ac_file" != x-; then mv $tmp/out $ac_file else cat $tmp/out rm -f $tmp/out fi done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # # CONFIG_COMMANDS section. # for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue ac_dest=`echo "$ac_file" | sed 's,:.*,,'` ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_dir=`(dirname "$ac_dest") 2>/dev/null || $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_dest" : 'X\(//\)[^/]' \| \ X"$ac_dest" : 'X\(//\)$' \| \ X"$ac_dest" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_dest" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 echo "$as_me: executing $ac_dest commands" >&6;} case $ac_dest in depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`(dirname "$mf") 2>/dev/null || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`(dirname "$file") 2>/dev/null || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p $dirpart/$fdir else as_dir=$dirpart/$fdir as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5 echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;} { (exit 1); exit 1; }; }; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; esac done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi apache-log4cxx-0.10.0/missing100755 0 0 25406 10774264474 13173 0ustar 0 0 #! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2005-06-08.21 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). case "$1" in lex|yacc) # Not GNU programs, they don't have --version. ;; tar) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: apache-log4cxx-0.10.0/depcomp100755 0 0 37100 10774264474 13143 0ustar 0 0 #! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2005-07-09.11 # Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mecanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: apache-log4cxx-0.10.0/src/assembly/source.xml100644 0 0 7524 10774263234 16176 0ustar 0 0 source zip tar.gz apache-log4cxx-${project.version} true autogen.sh configure.bat configure-aprutil.bat configure install-sh missing ltmain.sh depcomp 0755 INSTALL KEYS LICENSE Makefile.am NOTICE build.xml configure.in find_apr.m4 find_apu.m4 liblog4cxx.pc.in pom.xml Makefile.in config.sub config.guess aclocal.m4 src/** src/main/include/log4cxx/log4cxx.h src/main/include/log4cxx/private/log4cxx_private.h src/test/cpp/testsuite src/examples/cpp/console src/examples/cpp/delayedloop src/examples/cpp/stream src/examples/cpp/trivial **/Makefile **/*.o **/*.Po **/*.lo **/*.a **/*.la **/*.so **/*.dylib **/*.dll **/Doxyfile src/test/resources/output/** **/.libs/** **/.deps/** **/.svn target keep projects *.dsw *.dsp *.xcodeproj/project.pbxproj apr*.ds* xml.ds* apache-log4cxx-0.10.0/src/test/java/org/apache/log4j/net/ShortSocketServer.java100644 0 0 5523 10774263234 24351 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ package org.apache.log4j.net; import java.net.Socket; import java.net.ServerSocket; import java.io.IOException; import org.apache.log4j.Logger; import org.apache.log4j.LogManager; import org.apache.log4j.PropertyConfigurator; import org.apache.log4j.MDC; import org.apache.log4j.helpers.LogLog; import org.apache.log4j.net.SocketNode; import org.apache.log4j.net.SocketServer; /** * This SocketServer exits after certain number of connections from a * client. This number is determined the totalsTest parameter, that is * the first argument on the commmand line. The second argument, * prefix, determines the prefix of the configuration file to * use. Each run of the server will use a different properties * file. For the i-th run, the path to the file is * (prefix+i+".properties"). * * @author Ceki Gulcu */ public class ShortSocketServer { static Logger cat = Logger.getLogger(ShortSocketServer.class); public static void main(String args[]) throws Exception { int totalTests = 0; String prefix = null; if(args.length == 2) { totalTests = Integer.parseInt(args[0]); prefix = args[1]; } else { usage("Wrong number of arguments."); } int port = Integer.valueOf(System.getProperty("port", "12345")); LogLog.debug("Listening on port " + port); ServerSocket serverSocket = new ServerSocket(port); MDC.put("hostID", "shortSocketServer"); for(int i = 1; i <= totalTests; i++) { PropertyConfigurator.configure(prefix+i+".properties"); LogLog.debug("Waiting to accept a new client."); Socket socket = serverSocket.accept(); LogLog.debug("Connected to client at " + socket.getInetAddress()); LogLog.debug("Starting new socket node."); SocketNode sn = new SocketNode(socket, LogManager.getLoggerRepository()); Thread t = new Thread(sn); t.start(); t.join(); } } static void usage(String msg) { System.err.println(msg); System.err.println( "Usage: java " +ShortSocketServer.class.getName() + " totalTests configFilePrefix"); System.exit(1); } } apache-log4cxx-0.10.0/src/test/cpp/db/odbcappendertestcase.cpp100644 0 0 3171 10774263234 21343 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include "../appenderskeletontestcase.h" #include "../logunit.h" #define LOG4CXX_TEST 1 #include #ifdef LOG4CXX_HAVE_ODBC using namespace log4cxx; using namespace log4cxx::helpers; /** Unit tests of log4cxx::SocketAppender */ class ODBCAppenderTestCase : public AppenderSkeletonTestCase { LOGUNIT_TEST_SUITE(ODBCAppenderTestCase); // // tests inherited from AppenderSkeletonTestCase // LOGUNIT_TEST(testDefaultThreshold); LOGUNIT_TEST(testSetOptionThreshold); LOGUNIT_TEST_SUITE_END(); public: AppenderSkeleton* createAppenderSkeleton() const { return new log4cxx::db::ODBCAppender(); } }; LOGUNIT_TEST_SUITE_REGISTRATION(ODBCAppenderTestCase); #endif apache-log4cxx-0.10.0/src/test/cpp/spi/loggingeventtest.cpp100644 0 0 7103 10774263234 20756 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include "../util/serializationtesthelper.h" #include #include #include #include "../logunit.h" using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::util; using namespace log4cxx::spi; using namespace std; /** Unit tests for LoggingEvent */ LOGUNIT_CLASS(LoggingEventTest) { LOGUNIT_TEST_SUITE(LoggingEventTest); LOGUNIT_TEST(testSerializationSimple); LOGUNIT_TEST(testSerializationWithLocation); LOGUNIT_TEST(testSerializationNDC); LOGUNIT_TEST(testSerializationMDC); LOGUNIT_TEST_SUITE_END(); public: void setUp() { NDC::clear(); MDC::clear(); } void tearDown() { LogManager::shutdown(); } /** * Serialize a simple logging event and check it against * a witness. * @throws Exception if exception during test. */ void testSerializationSimple() { LoggingEventPtr event = new LoggingEvent( LOG4CXX_STR("root"), Level::getInfo(), LOG4CXX_STR("Hello, world."), LocationInfo::getLocationUnavailable()); LOGUNIT_ASSERT_EQUAL(true, SerializationTestHelper::compare( "witness/serialization/simple.bin", event, 237)); } /** * Serialize a logging event with an exception and check it against * a witness. * @throws Exception if exception during test. * */ void testSerializationWithLocation() { LoggingEventPtr event = new LoggingEvent( LOG4CXX_STR("root"), Level::getInfo(), LOG4CXX_STR("Hello, world."), LOG4CXX_LOCATION); LOGUNIT_ASSERT_EQUAL(true, SerializationTestHelper::compare( "witness/serialization/location.bin", event, 237)); } /** * Serialize a logging event with ndc. * @throws Exception if exception during test. * */ void testSerializationNDC() { NDC::push("ndc test"); LoggingEventPtr event = new LoggingEvent( LOG4CXX_STR("root"), Level::getInfo(), LOG4CXX_STR("Hello, world."), LocationInfo::getLocationUnavailable()); LOGUNIT_ASSERT_EQUAL(true, SerializationTestHelper::compare( "witness/serialization/ndc.bin", event, 237)); } /** * Serialize a logging event with mdc. * @throws Exception if exception during test. * */ void testSerializationMDC() { MDC::put("mdckey", "mdcvalue"); LoggingEventPtr event = new LoggingEvent( LOG4CXX_STR("root"), Level::getInfo(), LOG4CXX_STR("Hello, world."), LocationInfo::getLocationUnavailable()); LOGUNIT_ASSERT_EQUAL(true, SerializationTestHelper::compare( "witness/serialization/mdc.bin", event, 237)); } }; LOGUNIT_TEST_SUITE_REGISTRATION(LoggingEventTest); apache-log4cxx-0.10.0/src/test/cpp/helpers/absolutetimedateformattestcase.cpp100644 0 0 13422 10774263245 24560 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "../logunit.h" #include #include #include "../insertwide.h" #include #include #include //Define INT64_C for compilers that don't have it #if (!defined(INT64_C)) #define INT64_C(value) value ## LL #endif using namespace log4cxx; using namespace log4cxx::helpers; /** Unit test {@link AbsoluteTimeDateFormat}. */ LOGUNIT_CLASS(AbsoluteTimeDateFormatTestCase) { LOGUNIT_TEST_SUITE(AbsoluteTimeDateFormatTestCase); LOGUNIT_TEST(test1); LOGUNIT_TEST(test2); LOGUNIT_TEST(test3); LOGUNIT_TEST(test4); LOGUNIT_TEST(test5); LOGUNIT_TEST(test6); LOGUNIT_TEST(test7); LOGUNIT_TEST(test8); LOGUNIT_TEST_SUITE_END(); public: /** * Asserts that formatting the provided date results * in the expected string. * * @param date Date date * @param timeZone TimeZone timezone for conversion * @param expected String expected string */ private: void assertFormattedTime(apr_time_t date, const TimeZonePtr& timeZone, const LogString& expected) { AbsoluteTimeDateFormat formatter; formatter.setTimeZone(timeZone); LogString actual; Pool p; formatter.format(actual, date, p); LOGUNIT_ASSERT_EQUAL(expected, actual); } #define MICROSECONDS_PER_DAY APR_INT64_C(86400000000) public: /** * Convert 02 Jan 2004 00:00:00 GMT for GMT. */ void test1() { // // 02 Jan 2004 00:00 GMT // apr_time_t jan2 = MICROSECONDS_PER_DAY * 12419; assertFormattedTime(jan2, TimeZone::getGMT(), LOG4CXX_STR("00:00:00,000")); } /** * Convert 03 Jan 2004 00:00:00 GMT for America/Chicago. */ void test2() { // // 03 Jan 2004 00:00 GMT // (asking for the same time at a different timezone // will ignore the change of timezone) apr_time_t jan2 = MICROSECONDS_PER_DAY * 12420; assertFormattedTime(jan2, TimeZone::getTimeZone(LOG4CXX_STR("GMT-6")), LOG4CXX_STR("18:00:00,000")); } /** * Convert 29 Jun 2004 00:00:00 GMT for GMT. */ void test3() { apr_time_t jun29 = MICROSECONDS_PER_DAY * 12599; assertFormattedTime(jun29, TimeZone::getGMT(), LOG4CXX_STR("00:00:00,000")); } /** * Convert 29 Jun 2004 00:00:00 GMT for Chicago, daylight savings in effect. */ void test4() { apr_time_t jun30 = MICROSECONDS_PER_DAY * 12600; // // log4cxx doesn't support non-fixed timezones at this time // passing the fixed equivalent to Chicago's Daylight Savings Time // assertFormattedTime(jun30, TimeZone::getTimeZone(LOG4CXX_STR("GMT-5")), LOG4CXX_STR("19:00:00,000")); } /** * Test multiple calls in close intervals. */ void test5() { // subsequent calls within one minute // are optimized to reuse previous formatted value // make a couple of nearly spaced calls apr_time_t ticks = MICROSECONDS_PER_DAY * 12601; assertFormattedTime(ticks, TimeZone::getGMT(), LOG4CXX_STR("00:00:00,000")); assertFormattedTime(ticks + 8000, TimeZone::getGMT(), LOG4CXX_STR("00:00:00,008")); assertFormattedTime(ticks + 17000, TimeZone::getGMT(), LOG4CXX_STR("00:00:00,017")); assertFormattedTime(ticks + 237000, TimeZone::getGMT(), LOG4CXX_STR("00:00:00,237")); assertFormattedTime(ticks + 1415000, TimeZone::getGMT(), LOG4CXX_STR("00:00:01,415")); } /** * Check that caching does not disregard timezone. * This test would fail for revision 1.4 of AbsoluteTimeDateFormat.java. */ void test6() { apr_time_t jul2 = MICROSECONDS_PER_DAY * 12602; assertFormattedTime(jul2, TimeZone::getGMT(), LOG4CXX_STR("00:00:00,000")); assertFormattedTime(jul2, TimeZone::getTimeZone(LOG4CXX_STR("GMT-5")), LOG4CXX_STR("19:00:00,000")); } /** * Test multiple calls in close intervals predating 1 Jan 1970. */ void test7() { // subsequent calls within one minute // are optimized to reuse previous formatted value // make a couple of nearly spaced calls apr_time_t ticks = MICROSECONDS_PER_DAY * -7; assertFormattedTime(ticks, TimeZone::getGMT(), LOG4CXX_STR("00:00:00,000")); #if defined(_WIN32) // // These tests fail on Unix due to bug in APR's explode_time // // assertFormattedTime(ticks + 8000, TimeZone::getGMT(), LOG4CXX_STR("00:00:00,008")); // assertFormattedTime(ticks + 17000, TimeZone::getGMT(), LOG4CXX_STR("00:00:00,017")); // assertFormattedTime(ticks + 237000, TimeZone::getGMT(), LOG4CXX_STR("00:00:00,237")); // assertFormattedTime(ticks + 1415000, TimeZone::getGMT(), LOG4CXX_STR("00:00:01,415")); #endif } /** * Checks that numberFormat works as expected. */ void test8() { Pool p; LogString numb; AbsoluteTimeDateFormat formatter; formatter.numberFormat(numb, 87, p); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("87"), numb); } }; LOGUNIT_TEST_SUITE_REGISTRATION(AbsoluteTimeDateFormatTestCase); apache-log4cxx-0.10.0/src/test/cpp/helpers/datetimedateformattestcase.cpp100644 0 0 16611 10774263245 23662 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #define __STDC_CONSTANT_MACROS #include #include #include "../logunit.h" #include #include "../insertwide.h" #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace std; #define LOCALE_US "C" #if defined(_WIN32) #define LOCALE_FR "French_france" #else #define LOCALE_FR "fr_FR" #endif #define LOG4CXX_TEST 1 #include #if LOG4CXX_HAS_STD_LOCALE #include #include "localechanger.h" #define MAKE_LOCALE(ptr, id) \ std::locale loco(id); \ std::locale* ptr = &loco; #else #define MAKE_LOCALE(ptr, id) \ std::locale* ptr = NULL; #endif /** Unit test {@link DateTimeDateFormat}. */ LOGUNIT_CLASS(DateTimeDateFormatTestCase) { LOGUNIT_TEST_SUITE( DateTimeDateFormatTestCase ); LOGUNIT_TEST( test1 ); LOGUNIT_TEST( test2 ); LOGUNIT_TEST( test3 ); LOGUNIT_TEST( test4 ); LOGUNIT_TEST( test5 ); LOGUNIT_TEST( test6 ); #if LOG4CXX_HAS_STD_LOCALE LOGUNIT_TEST( test7 ); LOGUNIT_TEST( test8 ); #endif LOGUNIT_TEST_SUITE_END(); private: #define MICROSECONDS_PER_DAY APR_INT64_C(86400000000) /** Asserts that formatting the provided date results in the expected string. @param date Date date @param timeZone TimeZone timezone for conversion @param expected String expected string */ void assertFormattedTime( apr_time_t date, const std::locale* locale, const TimeZonePtr& timeZone, const LogString& expected ) { DateTimeDateFormat formatter(locale); formatter.setTimeZone(timeZone); LogString actual; Pool p; formatter.format(actual, date, p); LOGUNIT_ASSERT_EQUAL( expected, actual ); } public: /** Convert 02 Jan 2004 00:00:00 GMT for GMT. */ void test1() { // // 02 Jan 2004 00:00 GMT // apr_time_t jan2 = MICROSECONDS_PER_DAY * 12419; MAKE_LOCALE(localeUS, LOCALE_US); assertFormattedTime( jan2, localeUS, TimeZone::getGMT(), LOG4CXX_STR("02 Jan 2004 00:00:00,000")); } /** Convert 03 Jan 2004 00:00:00 GMT for America/Chicago. */ void test2() { // // 03 Jan 2004 00:00 GMT apr_time_t jan3 = MICROSECONDS_PER_DAY * 12420; MAKE_LOCALE(localeUS, LOCALE_US); assertFormattedTime( jan3, localeUS, TimeZone::getTimeZone(LOG4CXX_STR("GMT-6")), LOG4CXX_STR("02 Jan 2004 18:00:00,000")); } /** Convert 30 Jun 2004 00:00:00 GMT for GMT. */ void test3() { apr_time_t jun30 = MICROSECONDS_PER_DAY * 12599; MAKE_LOCALE(localeUS, LOCALE_US); assertFormattedTime( jun30, localeUS, TimeZone::getGMT(), LOG4CXX_STR("30 Jun 2004 00:00:00,000")); } /** Convert 29 Jun 2004 00:00:00 GMT for Chicago, daylight savings in effect. */ void test4() { apr_time_t jul1 = MICROSECONDS_PER_DAY * 12600; MAKE_LOCALE(localeUS, LOCALE_US); assertFormattedTime( jul1, localeUS, TimeZone::getTimeZone(LOG4CXX_STR("GMT-5")), LOG4CXX_STR("30 Jun 2004 19:00:00,000")); } /** Test multiple calls in close intervals. */ void test5() { // subsequent calls within one minute // are optimized to reuse previous formatted value // make a couple of nearly spaced calls apr_time_t ticks = MICROSECONDS_PER_DAY * 12601; MAKE_LOCALE(localeUS, LOCALE_US); assertFormattedTime( ticks, localeUS, TimeZone::getGMT(), LOG4CXX_STR("02 Jul 2004 00:00:00,000")); assertFormattedTime( ticks + 8000, localeUS, TimeZone::getGMT(), LOG4CXX_STR("02 Jul 2004 00:00:00,008")); assertFormattedTime( ticks + 17000, localeUS, TimeZone::getGMT(), LOG4CXX_STR("02 Jul 2004 00:00:00,017")); assertFormattedTime( ticks + 237000, localeUS, TimeZone::getGMT(), LOG4CXX_STR("02 Jul 2004 00:00:00,237")); assertFormattedTime( ticks + 1415000, localeUS, TimeZone::getGMT(), LOG4CXX_STR("02 Jul 2004 00:00:01,415")); } /** Check that caching does not disregard timezone. This test would fail for revision 1.4 of DateTimeDateFormat.java. */ void test6() { apr_time_t jul3 = MICROSECONDS_PER_DAY * 12602; MAKE_LOCALE(localeUS, LOCALE_US); assertFormattedTime( jul3, localeUS, TimeZone::getGMT(), LOG4CXX_STR("03 Jul 2004 00:00:00,000")); assertFormattedTime( jul3, localeUS, TimeZone::getTimeZone(LOG4CXX_STR("GMT-5")), LOG4CXX_STR("02 Jul 2004 19:00:00,000")); assertFormattedTime( jul3, localeUS, TimeZone::getGMT(), LOG4CXX_STR("03 Jul 2004 00:00:00,000")); } #if LOG4CXX_HAS_STD_LOCALE LogString formatDate(const std::locale& locale, const tm& date, const LogString& fmt) { // // output the using STL // std::basic_ostringstream buffer; #if defined(_USEFAC) _USEFAC(locale, std::time_put) .put(buffer, buffer, &date, fmt.c_str(), fmt.c_str() + fmt.length()); #else #if defined(_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE) const std::time_put& facet = std::use_facet(locale, (std::time_put*) 0); #else const std::time_put& facet = std::use_facet >(locale); #endif facet.put(buffer, buffer, buffer.fill(), &date, fmt.c_str(), fmt.c_str() + fmt.length()); #endif return buffer.str(); } /** Check that format is locale sensitive. */ void test7() { apr_time_t avr11 = MICROSECONDS_PER_DAY * 12519; LocaleChanger localeChange(LOCALE_FR); if (localeChange.isEffective()) { LogString formatted; Pool p; SimpleDateFormat formatter(LOG4CXX_STR("MMM")); formatter.format(formatted, avr11, p); std::locale localeFR(LOCALE_FR); struct tm avr11tm = { 0, 0, 0, 11, 03, 104 }; LogString expected(formatDate(localeFR, avr11tm, LOG4CXX_STR("%b"))); LOGUNIT_ASSERT_EQUAL(expected, formatted); } } /** Check that format is locale sensitive. */ void test8() { apr_time_t apr11 = MICROSECONDS_PER_DAY * 12519; LocaleChanger localeChange(LOCALE_US); if (localeChange.isEffective()) { LogString formatted; Pool p; SimpleDateFormat formatter(LOG4CXX_STR("MMM")); formatter.setTimeZone(TimeZone::getGMT()); formatter.format(formatted, apr11, p); std::locale localeUS(LOCALE_US); struct tm apr11tm = { 0, 0, 0, 11, 03, 104 }; LogString expected(formatDate(localeUS, apr11tm, LOG4CXX_STR("%b"))); LOGUNIT_ASSERT_EQUAL(expected, formatted); } } #endif }; LOGUNIT_TEST_SUITE_REGISTRATION(DateTimeDateFormatTestCase); apache-log4cxx-0.10.0/src/test/cpp/helpers/cacheddateformattestcase.cpp100644 0 0 42443 10774263245 23277 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include "../logunit.h" #include #include #include #include #include "../insertwide.h" #include #include #include "localechanger.h" using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::pattern; #define LOCALE_US "C" #if defined(_WIN32) #define LOCALE_JP "Japanese_japan" #else #define LOCALE_JP "ja_JP" #endif //Define INT64_C for compilers that don't have it #if (!defined(INT64_C)) #define INT64_C(value) value ##LL #endif #define LOG4CXX_TEST 1 #include /** Unit test {@link CachedDateFormat}. */ LOGUNIT_CLASS(CachedDateFormatTestCase) { LOGUNIT_TEST_SUITE( CachedDateFormatTestCase ); LOGUNIT_TEST( test1 ); LOGUNIT_TEST( test2 ); LOGUNIT_TEST( test3 ); LOGUNIT_TEST( test4 ); #if LOG4CXX_HAS_STD_LOCALE LOGUNIT_TEST( test5 ); #endif LOGUNIT_TEST( test6 ); LOGUNIT_TEST( test8 ); // Gump doesn't like this test // LOGUNIT_TEST( test9 ); LOGUNIT_TEST( test10 ); LOGUNIT_TEST( test11); LOGUNIT_TEST( test12 ); LOGUNIT_TEST( test13 ); LOGUNIT_TEST( test14 ); LOGUNIT_TEST( test15 ); LOGUNIT_TEST( test16 ); LOGUNIT_TEST( test17); LOGUNIT_TEST( test18); LOGUNIT_TEST( test19); LOGUNIT_TEST( test20); LOGUNIT_TEST( test21); LOGUNIT_TEST_SUITE_END(); #define MICROSECONDS_PER_DAY APR_INT64_C(86400000000) public: /** * Test multiple calls in close intervals. */ void test1() { // subsequent calls within one minute // are optimized to reuse previous formatted value // make a couple of nearly spaced calls DateFormatPtr baseFormatter(new AbsoluteTimeDateFormat()); CachedDateFormat gmtFormat(baseFormatter, 1000000); gmtFormat.setTimeZone(TimeZone::getGMT()); apr_time_t jul1 = MICROSECONDS_PER_DAY * 12601L; Pool p; LogString actual; gmtFormat.format(actual, jul1, p); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("00:00:00,000"), actual); actual.erase(actual.begin(), actual.end()); gmtFormat.format(actual, jul1 + 8000, p); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("00:00:00,008"), actual); actual.erase(actual.begin(), actual.end()); gmtFormat.format(actual, jul1 + 17000, p); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("00:00:00,017"), actual); actual.erase(actual.begin(), actual.end()); gmtFormat.format(actual, jul1 + 237000, p); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("00:00:00,237"), actual); actual.erase(actual.begin(), actual.end()); gmtFormat.format(actual, jul1 + 1415000, p); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("00:00:01,415"), actual); actual.erase(actual.begin(), actual.end()); } /** * Check for interaction between caches. */ void test2() { apr_time_t jul2 = MICROSECONDS_PER_DAY * 12602; DateFormatPtr baseFormatter(new AbsoluteTimeDateFormat()); CachedDateFormat gmtFormat(baseFormatter, 1000000); gmtFormat.setTimeZone(TimeZone::getGMT()); DateFormatPtr chicagoBase(new AbsoluteTimeDateFormat()); CachedDateFormat chicagoFormat(chicagoBase, 1000000); chicagoFormat.setTimeZone(TimeZone::getTimeZone(LOG4CXX_STR("GMT-5"))); Pool p; LogString actual; gmtFormat.format(actual, jul2, p); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("00:00:00,000"), actual); actual.erase(actual.begin(), actual.end()); chicagoFormat.format(actual, jul2, p); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("19:00:00,000"), actual); actual.erase(actual.begin(), actual.end()); gmtFormat.format(actual, jul2, p); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("00:00:00,000"), actual); } /** * Test multiple calls in close intervals prior to 1 Jan 1970. */ void test3() { // subsequent calls within one minute // are optimized to reuse previous formatted value // make a couple of nearly spaced calls DateFormatPtr baseFormatter(new AbsoluteTimeDateFormat()); CachedDateFormat gmtFormat(baseFormatter, 1000000); gmtFormat.setTimeZone(TimeZone::getGMT()); apr_time_t ticks = MICROSECONDS_PER_DAY * -7; Pool p; LogString actual; gmtFormat.format(actual, ticks, p); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("00:00:00,000"), actual); actual.erase(actual.begin(), actual.end()); // // APR's explode_time method does not properly calculate tm_usec // prior to 1 Jan 1970 on Unix gmtFormat.format(actual, ticks + 8000, p); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("00:00:00,008"), actual); actual.erase(actual.begin(), actual.end()); gmtFormat.format(actual, ticks + 17000, p); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("00:00:00,017"), actual); actual.erase(actual.begin(), actual.end()); gmtFormat.format(actual, ticks + 237000, p); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("00:00:00,237"), actual); actual.erase(actual.begin(), actual.end()); gmtFormat.format(actual, ticks + 1423000, p); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("00:00:01,423"), actual); } void assertFormattedEquals( const DateFormatPtr& baseFormat, const CachedDateFormat& cachedFormat, apr_time_t date, Pool& p) { LogString expected; LogString actual; baseFormat->format(expected, date, p); cachedFormat.format(actual, date, p); LOGUNIT_ASSERT_EQUAL(expected, actual); } void test4() { // subsequent calls within one minute // are optimized to reuse previous formatted value // make a couple of nearly spaced calls #if LOG4CXX_HAS_STD_LOCALE std::locale loco(LOCALE_US); std::locale* localeEN = &loco; #else std::locale* localeEN = NULL; #endif DateFormatPtr baseFormat( new SimpleDateFormat(LOG4CXX_STR("EEE, MMM dd, HH:mm:ss.SSS Z"), localeEN)); CachedDateFormat cachedFormat(baseFormat, 1000000); // // use a date in 2000 to attempt to confuse the millisecond locator apr_time_t ticks = MICROSECONDS_PER_DAY * 11141; Pool p; assertFormattedEquals(baseFormat, cachedFormat, ticks, p); assertFormattedEquals(baseFormat, cachedFormat, ticks + 8000, p); assertFormattedEquals(baseFormat, cachedFormat, ticks + 17000, p); assertFormattedEquals(baseFormat, cachedFormat, ticks + 237000, p); assertFormattedEquals(baseFormat, cachedFormat, ticks + 1415000, p); } #if LOG4CXX_HAS_STD_LOCALE void test5() { // subsequent calls within one minute // are optimized to reuse previous formatted value // make a couple of nearly spaced calls LocaleChanger localeChange(LOCALE_JP); if (localeChange.isEffective()) { DateFormatPtr baseFormat(new SimpleDateFormat( LOG4CXX_STR("EEE, MMM dd, HH:mm:ss.SSS Z"))); CachedDateFormat cachedFormat(baseFormat, 1000000); // // use a date in 2000 to attempt to confuse the millisecond locator apr_time_t ticks = MICROSECONDS_PER_DAY * 11141; Pool p; assertFormattedEquals(baseFormat, cachedFormat, ticks, p); assertFormattedEquals(baseFormat, cachedFormat, ticks + 8000, p); assertFormattedEquals(baseFormat, cachedFormat, ticks + 17000, p); assertFormattedEquals(baseFormat, cachedFormat, ticks + 237000, p); assertFormattedEquals(baseFormat, cachedFormat, ticks + 1415000, p); } } #endif /** * Checks that numberFormat works as expected. */ void test6() { LogString numb; Pool p; AbsoluteTimeDateFormat formatter; formatter.numberFormat(numb, 87, p); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("87"), numb); } /** * Set time zone on cached and check that it is effective. */ void test8() { DateFormatPtr baseFormat(new SimpleDateFormat(LOG4CXX_STR("yyyy-MM-dd HH:mm:ss,SSS"))); baseFormat->setTimeZone(TimeZone::getGMT()); CachedDateFormat cachedFormat(baseFormat, 1000000); apr_time_t jul4 = MICROSECONDS_PER_DAY * 12603; Pool p; LogString actual; cachedFormat.format(actual, jul4, p); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("2004-07-04 00:00:00,000"), actual); cachedFormat.setTimeZone(TimeZone::getTimeZone(LOG4CXX_STR("GMT-6"))); actual.erase(actual.begin(), actual.end()); cachedFormat.format(actual, jul4, p); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("2004-07-03 18:00:00,000"), actual); } /** * Test of caching when less than three millisecond digits are specified. */ void test9() { std::locale localeUS(LOCALE_US); DateFormatPtr baseFormat = new SimpleDateFormat( LOG4CXX_STR("yyyy-MMMM-dd HH:mm:ss,SS Z"), &localeUS); DateFormatPtr cachedFormat = new CachedDateFormat(baseFormat, 1000000); TimeZonePtr cet = TimeZone::getTimeZone(LOG4CXX_STR("GMT+1")); cachedFormat->setTimeZone(cet); apr_time_exp_t c; memset(&c, 0, sizeof(c)); c.tm_year = 104; c.tm_mon = 11; c.tm_mday = 12; c.tm_hour = 19; c.tm_sec = 37; c.tm_usec = 23000; apr_time_t dec12; apr_status_t stat = apr_time_exp_gmt_get(&dec12, &c); const apr_status_t statOK = 0; LOGUNIT_ASSERT_EQUAL(statOK, stat); Pool p; LogString s; cachedFormat->format(s, dec12, p); LOGUNIT_ASSERT_EQUAL( (LogString) LOG4CXX_STR("2004-December-12 20:00:37,23 +0100"), s); memset(&c, 0, sizeof(c)); c.tm_year = 104; c.tm_mon = 11; c.tm_mday = 31; c.tm_hour = 23; c.tm_sec = 13; c.tm_usec = 905000; apr_time_t jan1; stat = apr_time_exp_gmt_get(&jan1, &c); LOGUNIT_ASSERT_EQUAL(statOK, stat); s.erase(s.begin(), s.end()); cachedFormat->format(s, jan1, p); LOGUNIT_ASSERT_EQUAL( (LogString) LOG4CXX_STR("2005-January-01 00:00:13,905 +0100"), s); } /** * Test when millisecond position moves but length remains constant. */ void test10() { #if LOG4CXX_HAS_STD_LOCALE std::locale loco("C"); std::locale* localeUS = &loco; #else std::locale* localeUS = NULL; #endif DateFormatPtr baseFormat = new SimpleDateFormat( LOG4CXX_STR("MMMM SSS EEEEEE"), localeUS); DateFormatPtr cachedFormat = new CachedDateFormat(baseFormat, 1000000); TimeZonePtr cet = TimeZone::getTimeZone(LOG4CXX_STR("GMT+1")); cachedFormat->setTimeZone(cet); apr_time_exp_t c; memset(&c, 0, sizeof(c)); c.tm_year = 104; c.tm_mon = 9; c.tm_mday = 5; c.tm_hour = 21; c.tm_sec = 37; c.tm_usec = 23000; apr_time_t oct5; apr_status_t stat = apr_time_exp_gmt_get(&oct5, &c); const apr_status_t statOK = 0; LOGUNIT_ASSERT_EQUAL(statOK, stat); Pool p; LogString s; cachedFormat->format(s, oct5, p); LOGUNIT_ASSERT_EQUAL( (LogString) LOG4CXX_STR("October 023 Tuesday"), s); memset(&c, 0, sizeof(c)); c.tm_year = 104; c.tm_mon = 10; c.tm_mday = 1; c.tm_usec = 23000; apr_time_t nov1; stat = apr_time_exp_gmt_get(&nov1, &c); LOGUNIT_ASSERT_EQUAL(statOK, stat); s.erase(s.begin(), s.end()); cachedFormat->format(s, nov1, p); LOGUNIT_ASSERT_EQUAL( (LogString) LOG4CXX_STR("November 023 Monday"), s); nov1 += 961000; s.erase(s.begin(), s.end()); cachedFormat->format(s, nov1, p); LOGUNIT_ASSERT_EQUAL( (LogString) LOG4CXX_STR("November 984 Monday"), s); } /** * Test that tests if caching is skipped if only "SS" * is specified. */ void test11() { // // Earlier versions could be tricked by "SS0" patterns. // LogString badPattern(LOG4CXX_STR("ss,SS0")); DateFormatPtr simpleFormat = new SimpleDateFormat(badPattern); DateFormatPtr gmtFormat = new CachedDateFormat(simpleFormat, 1000000); gmtFormat->setTimeZone(TimeZone::getGMT()); // // The first request has to 100 ms after an ordinal second // to push the literal zero out of the pattern check apr_time_t ticks = MICROSECONDS_PER_DAY * 11142L; apr_time_t jul2 = ticks + 120000; Pool p; LogString s; gmtFormat->format(s, jul2, p); LOGUNIT_ASSERT_EQUAL( (LogString) LOG4CXX_STR("00,1200"), s); jul2 = ticks + 87000; s.erase(s.begin(), s.end()); gmtFormat->format(s, jul2, p); LOGUNIT_ASSERT_EQUAL( (LogString) LOG4CXX_STR("00,870"), s); } /** * Check pattern location for ISO8601 */ void test12() { DateFormatPtr df = new SimpleDateFormat(LOG4CXX_STR("yyyy-MM-dd HH:mm:ss,SSS")); apr_time_t ticks = 11142L * MICROSECONDS_PER_DAY; Pool p; LogString formatted; df->format(formatted, ticks, p); int millisecondStart = CachedDateFormat::findMillisecondStart(ticks, formatted, df, p); LOGUNIT_ASSERT_EQUAL(20, millisecondStart); } /** * Check pattern location for DATE */ void test13() { DateFormatPtr df = new SimpleDateFormat(LOG4CXX_STR("yyyy-MM-dd")); apr_time_t ticks = 11142L * MICROSECONDS_PER_DAY; Pool p; LogString formatted; df->format(formatted, ticks, p); int millisecondStart = CachedDateFormat::findMillisecondStart(ticks, formatted, df, p); LOGUNIT_ASSERT_EQUAL((int) CachedDateFormat::NO_MILLISECONDS, millisecondStart); } /** * Check pattern location for ABSOLUTE */ void test14() { DateFormatPtr df = new SimpleDateFormat(LOG4CXX_STR("HH:mm:ss,SSS")); apr_time_t ticks = 11142L * MICROSECONDS_PER_DAY; Pool p; LogString formatted; df->format(formatted, ticks, p); int millisecondStart = CachedDateFormat::findMillisecondStart(ticks, formatted, df, p); LOGUNIT_ASSERT_EQUAL(9, millisecondStart); } /** * Check pattern location for single S */ void test15() { DateFormatPtr df = new SimpleDateFormat(LOG4CXX_STR("HH:mm:ss,S")); apr_time_t ticks = 11142L * MICROSECONDS_PER_DAY; Pool p; LogString formatted; df->format(formatted, ticks, p); int millisecondStart = CachedDateFormat::findMillisecondStart(ticks, formatted, df, p); LOGUNIT_ASSERT_EQUAL((int) CachedDateFormat::UNRECOGNIZED_MILLISECONDS, millisecondStart); } /** * Check pattern location for single SS */ void test16() { DateFormatPtr df = new SimpleDateFormat(LOG4CXX_STR("HH:mm:ss,SS")); apr_time_t ticks = 11142L * MICROSECONDS_PER_DAY; Pool p; LogString formatted; df->format(formatted, ticks, p); int millisecondStart = CachedDateFormat::findMillisecondStart(ticks, formatted, df, p); LOGUNIT_ASSERT_EQUAL((int) CachedDateFormat::UNRECOGNIZED_MILLISECONDS, millisecondStart); } /** * Check caching when multiple SSS appear in pattern */ void test17() { apr_time_t jul2 = 12602L * MICROSECONDS_PER_DAY; LogString badPattern(LOG4CXX_STR("HH:mm:ss,SSS HH:mm:ss,SSS")); DateFormatPtr simpleFormat = new SimpleDateFormat(badPattern); simpleFormat->setTimeZone(TimeZone::getGMT()); DateFormatPtr cachedFormat = new CachedDateFormat(simpleFormat, 1000000); Pool p; LogString s; cachedFormat->format(s, jul2, p); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("00:00:00,000 00:00:00,000"), s); jul2 += 120000; s.erase(s.begin(), s.end()); simpleFormat->format(s, jul2, p); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("00:00:00,120 00:00:00,120"), s); s.erase(s.begin(), s.end()); cachedFormat->format(s, jul2, p); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("00:00:00,120 00:00:00,120"), s) ; int maxValid = CachedDateFormat::getMaximumCacheValidity(badPattern); LOGUNIT_ASSERT_EQUAL(1000, maxValid); } /** * Check that patterns not containing microseconds * are reported as being able to be cached for a full second. */ void test18() { int maxValid = CachedDateFormat::getMaximumCacheValidity( LOG4CXX_STR("yyyy-MM-dd")); LOGUNIT_ASSERT_EQUAL(1000000, maxValid); } /** * Check that patterns not containing 3 microseconds * are reported as being able to be cached for a full second. */ void test19() { int maxValid = CachedDateFormat::getMaximumCacheValidity( LOG4CXX_STR("yyyy-MM-dd SSS")); LOGUNIT_ASSERT_EQUAL(1000000, maxValid); } /** * Check that patterns not containing 2 S's * are reported as being able to be cached for only a millisecond. */ void test20() { int maxValid = CachedDateFormat::getMaximumCacheValidity( LOG4CXX_STR("yyyy-MM-dd SS")); LOGUNIT_ASSERT_EQUAL(1000, maxValid); } /** * Check that patterns not containing multi S groups * are reported as being able to be cached for only a millisecond. */ void test21() { int maxValid = CachedDateFormat::getMaximumCacheValidity( LOG4CXX_STR("yyyy-MM-dd SSS SSS")); LOGUNIT_ASSERT_EQUAL(1000, maxValid); } }; LOGUNIT_TEST_SUITE_REGISTRATION(CachedDateFormatTestCase); apache-log4cxx-0.10.0/src/test/cpp/helpers/transcodertestcase.cpp100644 0 0 25021 10774263245 22156 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include "../insertwide.h" #include "../logunit.h" using namespace log4cxx; using namespace log4cxx::helpers; LOGUNIT_CLASS(TranscoderTestCase) { LOGUNIT_TEST_SUITE(TranscoderTestCase); LOGUNIT_TEST(decode1); #if LOG4CXX_WCHAR_T_API LOGUNIT_TEST(decode2); #endif LOGUNIT_TEST(decode3); #if LOG4CXX_WCHAR_T_API LOGUNIT_TEST(decode4); #endif LOGUNIT_TEST(decode7); LOGUNIT_TEST(decode8); #if LOG4CXX_WCHAR_T_API LOGUNIT_TEST(encode1); #endif LOGUNIT_TEST(encode2); #if LOG4CXX_WCHAR_T_API LOGUNIT_TEST(encode3); #endif LOGUNIT_TEST(encode4); #if LOG4CXX_WCHAR_T_API LOGUNIT_TEST(encode5); #endif LOGUNIT_TEST(encode6); LOGUNIT_TEST(testDecodeUTF8_1); LOGUNIT_TEST(testDecodeUTF8_2); LOGUNIT_TEST(testDecodeUTF8_3); LOGUNIT_TEST(testDecodeUTF8_4); #if LOG4CXX_UNICHAR_API LOGUNIT_TEST(udecode2); LOGUNIT_TEST(udecode4); LOGUNIT_TEST(uencode1); LOGUNIT_TEST(uencode3); LOGUNIT_TEST(uencode5); #endif LOGUNIT_TEST_SUITE_END(); public: void decode1() { const char* greeting = "Hello, World"; LogString decoded(LOG4CXX_STR("foo\n")); Transcoder::decode(greeting, decoded); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("foo\nHello, World"), decoded); } #if LOG4CXX_WCHAR_T_API void decode2() { const wchar_t* greeting = L"Hello, World"; LogString decoded(LOG4CXX_STR("foo\n")); Transcoder::decode(greeting, decoded); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("foo\nHello, World"), decoded); } #endif void decode3() { const char* nothing = ""; LogString decoded(LOG4CXX_STR("foo\n")); Transcoder::decode(nothing, decoded); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("foo\n"), decoded); } #if LOG4CXX_WCHAR_T_API void decode4() { const wchar_t* nothing = L""; LogString decoded(LOG4CXX_STR("foo\n")); Transcoder::decode(nothing, decoded); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("foo\n"), decoded); } #endif enum { BUFSIZE = 255 }; void decode7() { // // normal characters striding over a buffer boundary // std::string longMsg(BUFSIZE - 2, 'A'); longMsg.append("Hello"); LogString decoded; Transcoder::decode(longMsg, decoded); LOGUNIT_ASSERT_EQUAL((size_t) BUFSIZE + 3, decoded.length()); LOGUNIT_ASSERT_EQUAL(LogString(BUFSIZE -2, LOG4CXX_STR('A')), decoded.substr(0, BUFSIZE - 2)); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("Hello"), decoded.substr(BUFSIZE -2 )); } void decode8() { std::string msg("Hello, World."); LogString actual; Transcoder::decode(msg, actual); LogString expected(LOG4CXX_STR("Hello, World.")); LOGUNIT_ASSERT_EQUAL(expected, actual); } #if LOG4CXX_WCHAR_T_API void encode1() { const LogString greeting(LOG4CXX_STR("Hello, World")); std::wstring encoded; Transcoder::encode(greeting, encoded); LOGUNIT_ASSERT_EQUAL((std::wstring) L"Hello, World", encoded); } #endif void encode2() { const LogString greeting(LOG4CXX_STR("Hello, World")); std::string encoded; Transcoder::encode(greeting, encoded); LOGUNIT_ASSERT_EQUAL((std::string) "Hello, World", encoded); } #if LOG4CXX_WCHAR_T_API void encode3() { LogString greeting(BUFSIZE - 3, LOG4CXX_STR('A')); greeting.append(LOG4CXX_STR("Hello")); std::wstring encoded; Transcoder::encode(greeting, encoded); std::wstring manyAs(BUFSIZE - 3, L'A'); LOGUNIT_ASSERT_EQUAL(manyAs, encoded.substr(0, BUFSIZE - 3)); LOGUNIT_ASSERT_EQUAL(std::wstring(L"Hello"), encoded.substr(BUFSIZE - 3)); } #endif void encode4() { LogString greeting(BUFSIZE - 3, LOG4CXX_STR('A')); greeting.append(LOG4CXX_STR("Hello")); std::string encoded; Transcoder::encode(greeting, encoded); std::string manyAs(BUFSIZE - 3, 'A'); LOGUNIT_ASSERT_EQUAL(manyAs, encoded.substr(0, BUFSIZE - 3)); LOGUNIT_ASSERT_EQUAL(std::string("Hello"), encoded.substr(BUFSIZE - 3)); } #if LOG4CXX_WCHAR_T_API void encode5() { // arbitrary, hopefully meaningless, characters from // Latin, Arabic, Armenian, Bengali, CJK and Cyrillic const wchar_t greeting[] = { L'A', 0x0605, 0x0530, 0x984, 0x40E3, 0x400, 0 }; // // decode to LogString (UTF-16 or UTF-8) // LogString decoded; Transcoder::decode(greeting, decoded); // // decode to wstring // std::wstring encoded; Transcoder::encode(decoded, encoded); // // should be lossless // LOGUNIT_ASSERT_EQUAL((std::wstring) greeting, encoded); } #endif void encode6() { #if LOG4CXX_LOGCHAR_IS_WCHAR || LOG4CXX_LOGCHAR_IS_UNICHAR // arbitrary, hopefully meaningless, characters from // Latin, Arabic, Armenian, Bengali, CJK and Cyrillic const logchar greeting[] = { L'A', 0x0605, 0x0530, 0x984, 0x40E3, 0x400, 0 }; #endif #if LOG4CXX_LOGCHAR_IS_UTF8 const char greeting[] = { 'A', (char) 0xD8, (char) 0x85, (char) 0xD4, (char) 0xB0, (char) 0xE0, (char) 0xCC, (char) 0x84, (char) 0xE8, (char) 0x87, (char) 0x83, (char) 0xD0, (char) 0x80, 0 }; #endif // // decode to LogString (UTF-16 or UTF-8) // LogString decoded; Transcoder::decode(greeting, decoded); // // decode to wstring // std::string encoded; // // likely 'A\u0605\u0530\u0984\u40E3\u0400' // Transcoder::encode(decoded, encoded); } void testDecodeUTF8_1() { std::string src("a"); LogString out; Transcoder::decodeUTF8(src, out); LOGUNIT_ASSERT_EQUAL(LogString(LOG4CXX_STR("a")), out); } void testDecodeUTF8_2() { std::string src(1, 0x80); LogString out; Transcoder::decodeUTF8(src, out); LOGUNIT_ASSERT_EQUAL(LogString(1, Transcoder::LOSSCHAR), out); } void testDecodeUTF8_3() { std::string src("\xC2"); LogString out; Transcoder::decodeUTF8(src, out); LOGUNIT_ASSERT_EQUAL(LogString(1, Transcoder::LOSSCHAR), out); } void testDecodeUTF8_4() { std::string src("\xC2\xA9"); LogString out; Transcoder::decodeUTF8(src, out); LogString::const_iterator iter = out.begin(); unsigned int sv = Transcoder::decode(out, iter); LOGUNIT_ASSERT_EQUAL((unsigned int) 0xA9, sv); LOGUNIT_ASSERT_EQUAL(true, iter == out.end()); } #if LOG4CXX_UNICHAR_API void udecode2() { const UniChar greeting[] = { 'H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', 0 }; LogString decoded(LOG4CXX_STR("foo\n")); Transcoder::decode(greeting, decoded); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("foo\nHello, World"), decoded); } void udecode4() { const UniChar nothing[] = { 0 }; LogString decoded(LOG4CXX_STR("foo\n")); Transcoder::decode(nothing, decoded); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("foo\n"), decoded); } void uencode1() { const LogString greeting(LOG4CXX_STR("Hello, World")); std::basic_string encoded; Transcoder::encode(greeting, encoded); const UniChar expected[] = { 'H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', 0 }; LOGUNIT_ASSERT_EQUAL(std::basic_string(expected), encoded); } void uencode3() { LogString greeting(BUFSIZE - 3, LOG4CXX_STR('A')); greeting.append(LOG4CXX_STR("Hello")); std::basic_string encoded; Transcoder::encode(greeting, encoded); std::basic_string manyAs(BUFSIZE - 3, 'A'); LOGUNIT_ASSERT_EQUAL(manyAs, encoded.substr(0, BUFSIZE - 3)); const UniChar hello[] = { 'H', 'e', 'l', 'l', 'o', 0 }; LOGUNIT_ASSERT_EQUAL(std::basic_string(hello), encoded.substr(BUFSIZE - 3)); } void uencode5() { // arbitrary, hopefully meaningless, characters from // Latin, Arabic, Armenian, Bengali, CJK and Cyrillic const UniChar greeting[] = { L'A', 0x0605, 0x0530, 0x984, 0x40E3, 0x400, 0 }; // // decode to LogString (UTF-16 or UTF-8) // LogString decoded; Transcoder::decode(greeting, decoded); // // decode to basic_string // std::basic_string encoded; Transcoder::encode(decoded, encoded); // // should be lossless // LOGUNIT_ASSERT_EQUAL(std::basic_string(greeting), encoded); } #endif }; LOGUNIT_TEST_SUITE_REGISTRATION(TranscoderTestCase); apache-log4cxx-0.10.0/src/test/cpp/helpers/inetaddresstestcase.cpp100644 0 0 5454 10774263245 22307 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include "../logunit.h" using namespace log4cxx; using namespace log4cxx::helpers; LOGUNIT_CLASS(InetAddressTestCase) { LOGUNIT_TEST_SUITE(InetAddressTestCase); LOGUNIT_TEST(testGetLocalHost); LOGUNIT_TEST(testByNameLocal); LOGUNIT_TEST(testAllByNameLocal); LOGUNIT_TEST(testUnreachable); LOGUNIT_TEST_SUITE_END(); public: /** * Tests the InetAddress::getLocalHost() method. */ void testGetLocalHost() { InetAddressPtr addr = InetAddress::getLocalHost(); LOGUNIT_ASSERT(addr->getHostAddress() == LOG4CXX_STR("127.0.0.1")); LOGUNIT_ASSERT(!addr->getHostName().empty()); } /** * Tests the InetAddress::getByName() method with the * "localhost" host name. */ void testByNameLocal() { InetAddressPtr addr = InetAddress::getByName(LOG4CXX_STR("localhost")); LOGUNIT_ASSERT(addr->getHostAddress() == LOG4CXX_STR("127.0.0.1")); LOGUNIT_ASSERT(!addr->getHostName().empty()); } /** * Tests the InetAddress::getAllByName() method with the * "localhost" host name. */ void testAllByNameLocal() { std::vector addr = InetAddress::getAllByName(LOG4CXX_STR("localhost")); LOGUNIT_ASSERT(addr.size() > 0); } /** * Tests the UnknownHostException. */ void testUnknownHost() { InetAddressPtr addr = InetAddress::getByName(LOG4CXX_STR("unknown.invalid")); } /** * Tests an (likely) unreachable address. */ void testUnreachable() { InetAddressPtr addr(InetAddress::getByName(LOG4CXX_STR("192.168.10.254"))); LogString addrStr(addr->toString()); LOGUNIT_ASSERT_EQUAL(addrStr.size() - 15, addrStr.find(LOG4CXX_STR("/192.168.10.254"))); } }; LOGUNIT_TEST_SUITE_REGISTRATION(InetAddressTestCase); apache-log4cxx-0.10.0/src/test/cpp/helpers/stringhelpertestcase.cpp100644 0 0 7033 10774263245 22503 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include "../insertwide.h" #include "../logunit.h" using namespace log4cxx; using namespace log4cxx::helpers; /** Unit test for StringHelper. */ LOGUNIT_CLASS(StringHelperTestCase) { LOGUNIT_TEST_SUITE( StringHelperTestCase ); LOGUNIT_TEST( testStartsWith1 ); LOGUNIT_TEST( testStartsWith2 ); LOGUNIT_TEST( testStartsWith3 ); LOGUNIT_TEST( testStartsWith4 ); LOGUNIT_TEST( testStartsWith5 ); LOGUNIT_TEST( testEndsWith1 ); LOGUNIT_TEST( testEndsWith2 ); LOGUNIT_TEST( testEndsWith3 ); LOGUNIT_TEST( testEndsWith4 ); LOGUNIT_TEST( testEndsWith5 ); LOGUNIT_TEST_SUITE_END(); public: /** * Check that startsWith("foobar", "foo") returns true. */ void testStartsWith1() { LOGUNIT_ASSERT_EQUAL(true, StringHelper::startsWith(LOG4CXX_STR("foobar"), LOG4CXX_STR("foo"))); } /** * Check that startsWith("bar", "foobar") returns false. */ void testStartsWith2() { LOGUNIT_ASSERT_EQUAL(false, StringHelper::startsWith(LOG4CXX_STR("foo"), LOG4CXX_STR("foobar"))); } /** * Check that startsWith("foobar", "foobar") returns true. */ void testStartsWith3() { LOGUNIT_ASSERT_EQUAL(true, StringHelper::startsWith(LOG4CXX_STR("foobar"), LOG4CXX_STR("foobar"))); } /** * Check that startsWith("foobar", "") returns true. */ void testStartsWith4() { LOGUNIT_ASSERT_EQUAL(true, StringHelper::startsWith(LOG4CXX_STR("foobar"), LOG4CXX_STR(""))); } /** * Check that startsWith("foobar", "abc") returns false. */ void testStartsWith5() { LOGUNIT_ASSERT_EQUAL(false, StringHelper::startsWith(LOG4CXX_STR("foobar"), LOG4CXX_STR("abc"))); } /** * Check that endsWith("foobar", "bar") returns true. */ void testEndsWith1() { LOGUNIT_ASSERT_EQUAL(true, StringHelper::endsWith(LOG4CXX_STR("foobar"), LOG4CXX_STR("bar"))); } /** * Check that endsWith("bar", "foobar") returns false. */ void testEndsWith2() { LOGUNIT_ASSERT_EQUAL(false, StringHelper::endsWith(LOG4CXX_STR("bar"), LOG4CXX_STR("foobar"))); } /** * Check that endsWith("foobar", "foobar") returns true. */ void testEndsWith3() { LOGUNIT_ASSERT_EQUAL(true, StringHelper::endsWith(LOG4CXX_STR("foobar"), LOG4CXX_STR("foobar"))); } /** * Check that endsWith("foobar", "") returns true. */ void testEndsWith4() { LOGUNIT_ASSERT_EQUAL(true, StringHelper::endsWith(LOG4CXX_STR("foobar"), LOG4CXX_STR(""))); } /** * Check that endsWith("foobar", "abc") returns false. */ void testEndsWith5() { LOGUNIT_ASSERT_EQUAL(false, StringHelper::startsWith(LOG4CXX_STR("foobar"), LOG4CXX_STR("abc"))); } }; LOGUNIT_TEST_SUITE_REGISTRATION(StringHelperTestCase); apache-log4cxx-0.10.0/src/test/cpp/helpers/iso8601dateformattestcase.cpp100644 0 0 11764 10774263245 23203 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include "../logunit.h" #define LOG4CXX_TEST #include #if LOG4CXX_HAS_STD_LOCALE #include #endif #include "../insertwide.h" #include #include using namespace log4cxx; using namespace log4cxx::helpers; /** Unit test {@link ISO8601DateFormat}. */ LOGUNIT_CLASS(ISO8601DateFormatTestCase) { LOGUNIT_TEST_SUITE( ISO8601DateFormatTestCase ); LOGUNIT_TEST( test1 ); LOGUNIT_TEST( test2 ); LOGUNIT_TEST( test3 ); LOGUNIT_TEST( test4 ); LOGUNIT_TEST( test5 ); LOGUNIT_TEST( test6 ); LOGUNIT_TEST( test7 ); LOGUNIT_TEST_SUITE_END(); /** * Asserts that formatting the provided date results * in the expected string. * * @param date Date date * @param timeZone TimeZone timezone for conversion * @param expected String expected string */ void assertFormattedTime(log4cxx_time_t date, const TimeZonePtr& timeZone, const LogString& expected) { ISO8601DateFormat formatter; formatter.setTimeZone(timeZone); LogString actual; Pool p; formatter.format(actual, date, p); LOGUNIT_ASSERT_EQUAL(expected, actual); } public: /** * Convert 02 Jan 2004 00:00:00 GMT for GMT. */ void test1() { log4cxx_time_t jan2 = Date::getMicrosecondsPerDay() * 12419; assertFormattedTime(jan2, TimeZone::getGMT(), LOG4CXX_STR("2004-01-02 00:00:00,000")); } /** * Convert 03 Jan 2004 00:00:00 GMT for America/Chicago. */ void test2() { // // 03 Jan 2004 00:00 GMT // (asking for the same time at a different timezone // will ignore the change of timezone) log4cxx_time_t jan3 = Date::getMicrosecondsPerDay() * 12420; assertFormattedTime(jan3, TimeZone::getTimeZone(LOG4CXX_STR("GMT-6")), LOG4CXX_STR("2004-01-02 18:00:00,000")); } /** * Convert 30 Jun 2004 00:00:00 GMT for GMT. */ void test3() { log4cxx_time_t jun30 = Date::getMicrosecondsPerDay() * 12599; assertFormattedTime(jun30, TimeZone::getGMT(), LOG4CXX_STR("2004-06-30 00:00:00,000")); } /** * Convert 1 Jul 2004 00:00:00 GMT for Chicago, daylight savings in effect. */ void test4() { log4cxx_time_t jul1 = Date::getMicrosecondsPerDay() * 12600; assertFormattedTime(jul1, TimeZone::getTimeZone(LOG4CXX_STR("GMT-5")), LOG4CXX_STR("2004-06-30 19:00:00,000")); } /** * Test multiple calls in close intervals. */ void test5() { // subsequent calls within one minute // are optimized to reuse previous formatted value // make a couple of nearly spaced calls log4cxx_time_t ticks = Date::getMicrosecondsPerDay() * 12601; assertFormattedTime(ticks, TimeZone::getGMT(), LOG4CXX_STR("2004-07-02 00:00:00,000")); assertFormattedTime(ticks + 8000, TimeZone::getGMT(), LOG4CXX_STR("2004-07-02 00:00:00,008")); assertFormattedTime(ticks + 17000, TimeZone::getGMT(), LOG4CXX_STR("2004-07-02 00:00:00,017")); assertFormattedTime(ticks + 237000, TimeZone::getGMT(), LOG4CXX_STR("2004-07-02 00:00:00,237")); assertFormattedTime(ticks + 1415000, TimeZone::getGMT(), LOG4CXX_STR("2004-07-02 00:00:01,415")); } /** * Check that caching does not disregard timezone. * This test would fail for revision 1.4 of DateTimeDateFormat.java. */ void test6() { log4cxx_time_t jul3 = Date::getMicrosecondsPerDay() * 12602; assertFormattedTime(jul3, TimeZone::getGMT(), LOG4CXX_STR("2004-07-03 00:00:00,000")); assertFormattedTime(jul3, TimeZone::getTimeZone(LOG4CXX_STR("GMT-5")), LOG4CXX_STR("2004-07-02 19:00:00,000")); assertFormattedTime(jul3, TimeZone::getGMT(), LOG4CXX_STR("2004-07-03 00:00:00,000")); } /** * Checks that numberFormat is implemented. */ void test7() { LogString number; ISO8601DateFormat formatter; Pool p; formatter.numberFormat(number, 87, p); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("87"), number); } }; LOGUNIT_TEST_SUITE_REGISTRATION(ISO8601DateFormatTestCase); apache-log4cxx-0.10.0/src/test/cpp/helpers/charsetdecodertestcase.cpp100644 0 0 7044 10774263245 22756 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include "../logunit.h" #include "../insertwide.h" #include using namespace log4cxx; using namespace log4cxx::helpers; #define APR_SUCCESS ((log4cxx_status_t) 0) LOGUNIT_CLASS(CharsetDecoderTestCase) { LOGUNIT_TEST_SUITE(CharsetDecoderTestCase); LOGUNIT_TEST(decode1); LOGUNIT_TEST(decode2); LOGUNIT_TEST(decode8); LOGUNIT_TEST_SUITE_END(); enum { BUFSIZE = 256 }; public: void decode1() { char buf[] = "Hello, World"; ByteBuffer src(buf, strlen(buf)); CharsetDecoderPtr dec(CharsetDecoder::getDefaultDecoder()); LogString greeting; log4cxx_status_t stat = dec->decode(src, greeting); LOGUNIT_ASSERT_EQUAL(APR_SUCCESS, stat); stat = dec->decode(src, greeting); LOGUNIT_ASSERT_EQUAL(APR_SUCCESS, stat); LOGUNIT_ASSERT_EQUAL((size_t) 12, src.position()); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("Hello, World"), greeting); } void decode2() { char buf[BUFSIZE + 6]; memset(buf, 'A', BUFSIZE); buf[BUFSIZE - 3] = 0; #if defined(__STDC_LIB_EXT1__) || defined(__STDC_SECURE_LIB__) strcat_s(buf, sizeof buf, "Hello"); #else strcat(buf, "Hello"); #endif ByteBuffer src(buf, strlen(buf)); CharsetDecoderPtr dec(CharsetDecoder::getDefaultDecoder()); LogString greeting; log4cxx_status_t stat = dec->decode(src, greeting); LOGUNIT_ASSERT_EQUAL(APR_SUCCESS, stat); LOGUNIT_ASSERT_EQUAL((size_t) 0, src.remaining()); stat = dec->decode(src, greeting); LOGUNIT_ASSERT_EQUAL(APR_SUCCESS, stat); LogString manyAs(BUFSIZE - 3, LOG4CXX_STR('A')); LOGUNIT_ASSERT_EQUAL(manyAs, greeting.substr(0, BUFSIZE - 3)); LOGUNIT_ASSERT_EQUAL(LogString(LOG4CXX_STR("Hello")), greeting.substr(BUFSIZE - 3)); } void decode8() { char buf[] = { 'H', 'e', 'l', 'l', 'o', ',', 0, 'W', 'o', 'r', 'l', 'd'}; ByteBuffer src(buf, 12); CharsetDecoderPtr dec(CharsetDecoder::getDefaultDecoder()); LogString greeting; log4cxx_status_t stat = dec->decode(src, greeting); LOGUNIT_ASSERT_EQUAL(APR_SUCCESS, stat); stat = dec->decode(src, greeting); LOGUNIT_ASSERT_EQUAL(APR_SUCCESS, stat); LOGUNIT_ASSERT_EQUAL((size_t) 12, src.position()); const logchar expected[] = { 0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x2C, 0x00, 0x57, 0x6F, 0x72, 0x6C, 0x64 }; LOGUNIT_ASSERT_EQUAL(LogString(expected, 12), greeting); } }; LOGUNIT_TEST_SUITE_REGISTRATION(CharsetDecoderTestCase); apache-log4cxx-0.10.0/src/test/cpp/helpers/messagebuffertest.cpp100644 0 0 15675 10774263245 22012 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include "../insertwide.h" #include "../logunit.h" #include #if LOG4CXX_CFSTRING_API #include #endif using namespace log4cxx; using namespace log4cxx::helpers; /** * Test MessageBuffer. */ LOGUNIT_CLASS(MessageBufferTest) { LOGUNIT_TEST_SUITE(MessageBufferTest); LOGUNIT_TEST(testInsertChar); LOGUNIT_TEST(testInsertConstStr); LOGUNIT_TEST(testInsertStr); LOGUNIT_TEST(testInsertString); LOGUNIT_TEST(testInsertNull); LOGUNIT_TEST(testInsertInt); LOGUNIT_TEST(testInsertManipulator); #if LOG4CXX_WCHAR_T_API LOGUNIT_TEST(testInsertConstWStr); LOGUNIT_TEST(testInsertWString); LOGUNIT_TEST(testInsertWStr); #endif #if LOG4CXX_UNICHAR_API LOGUNIT_TEST(testInsertConstUStr); LOGUNIT_TEST(testInsertUString); #endif #if LOG4CXX_CFSTRING_API LOGUNIT_TEST(testInsertCFString); #endif LOGUNIT_TEST_SUITE_END(); public: void testInsertChar() { MessageBuffer buf; std::string greeting("Hello, World"); CharMessageBuffer& retval = buf << "Hello, Worl" << 'd'; LOGUNIT_ASSERT_EQUAL(greeting, buf.str(retval)); LOGUNIT_ASSERT_EQUAL(false, buf.hasStream()); } void testInsertConstStr() { MessageBuffer buf; std::string greeting("Hello, World"); CharMessageBuffer& retval = buf << "Hello" << ", World"; LOGUNIT_ASSERT_EQUAL(greeting, buf.str(retval)); LOGUNIT_ASSERT_EQUAL(false, buf.hasStream()); } void testInsertStr() { MessageBuffer buf; std::string greeting("Hello, World"); char* part1 = (char*) malloc(10*sizeof(wchar_t)); strcpy(part1, "Hello"); char* part2 = (char*) malloc(10*sizeof(wchar_t)); strcpy(part2, ", World"); CharMessageBuffer& retval = buf << part1 << part2; free(part1); free(part2); LOGUNIT_ASSERT_EQUAL(greeting, buf.str(retval)); LOGUNIT_ASSERT_EQUAL(false, buf.hasStream()); } void testInsertString() { MessageBuffer buf; std::string greeting("Hello, World"); CharMessageBuffer& retval = buf << std::string("Hello") << std::string(", World"); LOGUNIT_ASSERT_EQUAL(greeting, buf.str(retval)); LOGUNIT_ASSERT_EQUAL(false, buf.hasStream()); } void testInsertNull() { MessageBuffer buf; std::string greeting("Hello, null"); CharMessageBuffer& retval = buf << "Hello, " << (const char*) 0; LOGUNIT_ASSERT_EQUAL(greeting, buf.str(retval)); LOGUNIT_ASSERT_EQUAL(false, buf.hasStream()); } void testInsertInt() { MessageBuffer buf; std::string greeting("Hello, 5"); std::ostream& retval = buf << "Hello, " << 5; LOGUNIT_ASSERT_EQUAL(greeting, buf.str(retval)); LOGUNIT_ASSERT_EQUAL(true, buf.hasStream()); } void testInsertManipulator() { MessageBuffer buf; std::string greeting("pi=3.142"); std::ostream& retval = buf << "pi=" << std::setprecision(4) << 3.1415926; LOGUNIT_ASSERT_EQUAL(greeting, buf.str(retval)); LOGUNIT_ASSERT_EQUAL(true, buf.hasStream()); } #if LOG4CXX_WCHAR_T_API void testInsertConstWStr() { MessageBuffer buf; std::wstring greeting(L"Hello, World"); WideMessageBuffer& retval = buf << L"Hello" << L", World"; LOGUNIT_ASSERT_EQUAL(greeting, buf.str(retval)); LOGUNIT_ASSERT_EQUAL(false, buf.hasStream()); } void testInsertWString() { MessageBuffer buf; std::wstring greeting(L"Hello, World"); WideMessageBuffer& retval = buf << std::wstring(L"Hello") << std::wstring(L", World"); LOGUNIT_ASSERT_EQUAL(greeting, buf.str(retval)); LOGUNIT_ASSERT_EQUAL(false, buf.hasStream()); } void testInsertWStr() { MessageBuffer buf; std::wstring greeting(L"Hello, World"); wchar_t* part1 = (wchar_t*) malloc(10*sizeof(wchar_t)); wcscpy(part1, L"Hello"); wchar_t* part2 = (wchar_t*) malloc(10*sizeof(wchar_t)); wcscpy(part2, L", World"); WideMessageBuffer& retval = buf << part1 << part2; free(part1); free(part2); LOGUNIT_ASSERT_EQUAL(greeting, buf.str(retval)); LOGUNIT_ASSERT_EQUAL(false, buf.hasStream()); } #endif #if LOG4CXX_UNICHAR_API void testInsertConstUStr() { MessageBuffer buf; const log4cxx::UniChar hello[] = { 'H', 'e', 'l', 'l', 'o', 0 }; const log4cxx::UniChar world[] = { ',', ' ', 'W', 'o', 'r', 'l', 'd', 0 }; const log4cxx::UniChar greeting[] = { 'H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', 0 }; UniCharMessageBuffer& retval = buf << hello << world; LOGUNIT_ASSERT_EQUAL(std::basic_string(greeting), buf.str(retval)); LOGUNIT_ASSERT_EQUAL(false, buf.hasStream()); } void testInsertUString() { MessageBuffer buf; const log4cxx::UniChar hello[] = { 'H', 'e', 'l', 'l', 'o', 0 }; const log4cxx::UniChar world[] = { ',', ' ', 'W', 'o', 'r', 'l', 'd', 0 }; const log4cxx::UniChar greeting[] = { 'H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', 0 }; UniCharMessageBuffer& retval = buf << std::basic_string(hello) << std::basic_string(world); LOGUNIT_ASSERT_EQUAL(std::basic_string(greeting), buf.str(retval)); LOGUNIT_ASSERT_EQUAL(false, buf.hasStream()); } #endif #if LOG4CXX_CFSTRING_API void testInsertCFString() { MessageBuffer buf; const log4cxx::UniChar greeting[] = { 'H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', 0 }; UniCharMessageBuffer& retval = buf << CFSTR("Hello") << CFSTR(", World"); LOGUNIT_ASSERT_EQUAL(std::basic_string(greeting), buf.str(retval)); LOGUNIT_ASSERT_EQUAL(false, buf.hasStream()); } #endif }; LOGUNIT_TEST_SUITE_REGISTRATION(MessageBufferTest); apache-log4cxx-0.10.0/src/test/cpp/helpers/syslogwritertest.cpp100644 0 0 2575 10774263245 21724 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "../logunit.h" #include using namespace log4cxx; using namespace log4cxx::helpers; LOGUNIT_CLASS(SyslogWriterTest) { LOGUNIT_TEST_SUITE(SyslogWriterTest); LOGUNIT_TEST(testUnknownHost); LOGUNIT_TEST_SUITE_END(); public: /** * Tests writing to an unknown host. */ void testUnknownHost() { SyslogWriter writer(LOG4CXX_STR("unknown.invalid")); writer.write(LOG4CXX_STR("Hello, Unknown World.")); } }; LOGUNIT_TEST_SUITE_REGISTRATION(SyslogWriterTest); apache-log4cxx-0.10.0/src/test/cpp/helpers/charsetencodertestcase.cpp100644 0 0 26361 10774263245 23013 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include "../logunit.h" #include "../insertwide.h" #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; LOGUNIT_CLASS(CharsetEncoderTestCase) { LOGUNIT_TEST_SUITE(CharsetEncoderTestCase); LOGUNIT_TEST(encode1); LOGUNIT_TEST(encode2); LOGUNIT_TEST(encode3); LOGUNIT_TEST(encode4); #if APR_HAS_THREADS LOGUNIT_TEST(thread1); #endif LOGUNIT_TEST_SUITE_END(); enum { BUFSIZE = 256 }; public: void encode1() { const LogString greeting(LOG4CXX_STR("Hello, World")); CharsetEncoderPtr enc(CharsetEncoder::getEncoder(LOG4CXX_STR("US-ASCII"))); char buf[BUFSIZE]; ByteBuffer out(buf, BUFSIZE); LogString::const_iterator iter = greeting.begin(); log4cxx_status_t stat = enc->encode(greeting, iter, out); LOGUNIT_ASSERT_EQUAL(APR_SUCCESS, stat); LOGUNIT_ASSERT(iter == greeting.end()); stat = enc->encode(greeting, iter, out); LOGUNIT_ASSERT_EQUAL(APR_SUCCESS, stat); LOGUNIT_ASSERT_EQUAL((size_t) 12, out.position()); out.flip(); std::string encoded((const char*) out.data(), out.limit()); LOGUNIT_ASSERT_EQUAL((std::string) "Hello, World", encoded); LOGUNIT_ASSERT(iter == greeting.end()); } void encode2() { LogString greeting(BUFSIZE - 3, LOG4CXX_STR('A')); greeting.append(LOG4CXX_STR("Hello")); CharsetEncoderPtr enc(CharsetEncoder::getEncoder(LOG4CXX_STR("US-ASCII"))); char buf[BUFSIZE]; ByteBuffer out(buf, BUFSIZE); LogString::const_iterator iter = greeting.begin(); log4cxx_status_t stat = enc->encode(greeting, iter, out); LOGUNIT_ASSERT_EQUAL(APR_SUCCESS, stat); LOGUNIT_ASSERT_EQUAL((size_t) 0, out.remaining()); LOGUNIT_ASSERT_EQUAL(LOG4CXX_STR('o'), *(iter+1)); out.flip(); std::string encoded((char*) out.data(), out.limit()); out.clear(); stat = enc->encode(greeting, iter, out); LOGUNIT_ASSERT_EQUAL(APR_SUCCESS, stat); LOGUNIT_ASSERT_EQUAL((size_t) 2, out.position()); LOGUNIT_ASSERT(iter == greeting.end()); stat = enc->encode(greeting, iter, out); out.flip(); LOGUNIT_ASSERT_EQUAL(APR_SUCCESS, stat); encoded.append(out.data(), out.limit()); std::string manyAs(BUFSIZE - 3, 'A'); LOGUNIT_ASSERT_EQUAL(manyAs, encoded.substr(0, BUFSIZE - 3)); LOGUNIT_ASSERT_EQUAL(std::string("Hello"), encoded.substr(BUFSIZE - 3)); } void encode3() { #if LOG4CXX_LOGCHAR_IS_WCHAR || LOG4CXX_LOGCHAR_IS_UNICHAR // arbitrary, hopefully meaningless, characters from // Latin, Arabic, Armenian, Bengali, CJK and Cyrillic const logchar greet[] = { L'A', 0x0605, 0x0530, 0x986, 0x4E03, 0x400, 0 }; #endif #if LOG4CXX_LOGCHAR_IS_UTF8 const char greet[] = { 'A', (char) 0xD8, (char) 0x85, (char) 0xD4, (char) 0xB0, (char) 0xE0, (char) 0xA6, (char) 0x86, (char) 0xE4, (char) 0xB8, (char) 0x83, (char) 0xD0, (char) 0x80, 0 }; #endif LogString greeting(greet); CharsetEncoderPtr enc(CharsetEncoder::getEncoder(LOG4CXX_STR("US-ASCII"))); char buf[BUFSIZE]; ByteBuffer out(buf, BUFSIZE); LogString::const_iterator iter = greeting.begin(); log4cxx_status_t stat = enc->encode(greeting, iter, out); out.flip(); LOGUNIT_ASSERT_EQUAL(true, CharsetEncoder::isError(stat)); LOGUNIT_ASSERT_EQUAL((size_t) 1, out.limit()); LOGUNIT_ASSERT_EQUAL(greet[1], *iter); LOGUNIT_ASSERT_EQUAL('A', out.data()[0]); } void encode4() { const char utf8_greet[] = { 'A', (char) 0xD8, (char) 0x85, (char) 0xD4, (char) 0xB0, (char) 0xE0, (char) 0xA6, (char) 0x86, (char) 0xE4, (char) 0xB8, (char) 0x83, (char) 0xD0, (char) 0x80, 0 }; #if LOG4CXX_LOGCHAR_IS_WCHAR || LOG4CXX_LOGCHAR_IS_UNICHAR // arbitrary, hopefully meaningless, characters from // Latin, Arabic, Armenian, Bengali, CJK and Cyrillic const logchar greet[] = { L'A', 0x0605, 0x0530, 0x986, 0x4E03, 0x400, 0 }; #endif #if LOG4CXX_LOGCHAR_IS_UTF8 const logchar *greet = utf8_greet; #endif LogString greeting(greet); CharsetEncoderPtr enc(CharsetEncoder::getEncoder(LOG4CXX_STR("UTF-8"))); char buf[BUFSIZE]; ByteBuffer out(buf, BUFSIZE); LogString::const_iterator iter = greeting.begin(); log4cxx_status_t stat = enc->encode(greeting, iter, out); LOGUNIT_ASSERT_EQUAL(false, CharsetEncoder::isError(stat)); stat = enc->encode(greeting, iter, out); LOGUNIT_ASSERT_EQUAL(false, CharsetEncoder::isError(stat)); out.flip(); LOGUNIT_ASSERT_EQUAL((size_t) 13, out.limit()); for(size_t i = 0; i < out.limit(); i++) { LOGUNIT_ASSERT_EQUAL((int) utf8_greet[i], (int) out.data()[i]); } LOGUNIT_ASSERT(iter == greeting.end()); } #if APR_HAS_THREADS class ThreadPackage { public: ThreadPackage(CharsetEncoderPtr& enc, int repetitions) : p(), lock(p), condition(p), passCount(0), failCount(0), enc(enc), repetitions(repetitions) { } void await() { synchronized sync(lock); condition.await(lock); } void signalAll() { synchronized sync(lock); condition.signalAll(); } void fail() { apr_atomic_inc32(&failCount); } void pass() { apr_atomic_inc32(&passCount); } apr_uint32_t getFail() { return apr_atomic_read32(&failCount); } apr_uint32_t getPass() { return apr_atomic_read32(&passCount); } int getRepetitions() { return repetitions; } CharsetEncoderPtr& getEncoder() { return enc; } private: ThreadPackage(const ThreadPackage&); ThreadPackage& operator=(ThreadPackage&); Pool p; Mutex lock; Condition condition; volatile apr_uint32_t passCount; volatile apr_uint32_t failCount; CharsetEncoderPtr enc; int repetitions; }; static void* LOG4CXX_THREAD_FUNC thread1Action(apr_thread_t* /* thread */, void* data) { ThreadPackage* package = (ThreadPackage*) data; #if LOG4CXX_LOGCHAR_IS_UTF8 const logchar greet[] = { 'H', 'e', 'l', 'l', 'o', ' ', (char) 0xC2, (char) 0xA2, // cent sign (char) 0xC2, (char) 0xA9, // copyright (char) 0xc3, (char) 0xb4, // latin small letter o with circumflex 0 }; #endif #if LOG4CXX_LOGCHAR_IS_WCHAR || LOG4CXX_LOGCHAR_IS_UNICHAR // arbitrary, hopefully meaningless, characters from // Latin, Arabic, Armenian, Bengali, CJK and Cyrillic const logchar greet[] = { L'H', L'e', L'l', L'l', L'o', L' ', 0x00A2, 0x00A9, 0x00F4 , 0 }; #endif const char expected[] = { 'H', 'e', 'l', 'l', 'o', ' ', (char) 0x00A2, (char) 0x00A9, (char) 0x00F4 }; LogString greeting(greet); package->await(); for(int i = 0; i < package->getRepetitions(); i++) { bool pass = true; char buf[BUFSIZE]; ByteBuffer out(buf, BUFSIZE); LogString::const_iterator iter = greeting.begin(); log4cxx_status_t stat = package->getEncoder()->encode(greeting, iter, out); pass = (false == CharsetEncoder::isError(stat)); if (pass) { stat = package->getEncoder()->encode(greeting, iter, out); pass = (false == CharsetEncoder::isError(stat)); if (pass) { out.flip(); pass = (sizeof(expected) == out.limit()); for(size_t i = 0; i < out.limit() && pass; i++) { pass = (expected[i] == out.data()[i]); } pass = pass && (iter == greeting.end()); } } if (pass) { package->pass(); } else { package->fail(); } } return 0; } void thread1() { enum { THREAD_COUNT = 10, THREAD_REPS = 10000 }; Thread threads[THREAD_COUNT]; CharsetEncoderPtr enc(CharsetEncoder::getEncoder(LOG4CXX_STR("ISO-8859-1"))); ThreadPackage* package = new ThreadPackage(enc, THREAD_REPS); { for(int i = 0; i < THREAD_COUNT; i++) { threads[i].run(thread1Action, package); } } // // give time for all threads to be launched so // we don't signal before everybody is waiting. Thread::sleep(100); package->signalAll(); for(int i = 0; i < THREAD_COUNT; i++) { threads[i].join(); } LOGUNIT_ASSERT_EQUAL((apr_uint32_t) 0, package->getFail()); LOGUNIT_ASSERT_EQUAL((apr_uint32_t) THREAD_COUNT * THREAD_REPS, package->getPass()); delete package; } #endif }; LOGUNIT_TEST_SUITE_REGISTRATION(CharsetEncoderTestCase); apache-log4cxx-0.10.0/src/test/cpp/helpers/timezonetestcase.cpp100644 0 0 6546 10774263245 21637 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include "../insertwide.h" #include "../logunit.h" #include using namespace log4cxx; using namespace log4cxx::helpers; //Define INT64_C for compilers that don't have it #if (!defined(INT64_C)) #define INT64_C(value) value ## LL #endif /** Unit test {@link TimeZone}. */ LOGUNIT_CLASS(TimeZoneTestCase) { LOGUNIT_TEST_SUITE(TimeZoneTestCase); LOGUNIT_TEST(test1); LOGUNIT_TEST(test2); #if !defined(__BORLANDC__) LOGUNIT_TEST(test3); #endif LOGUNIT_TEST(test4); LOGUNIT_TEST(test5); LOGUNIT_TEST(test6); LOGUNIT_TEST_SUITE_END(); #define MICROSECONDS_PER_DAY APR_INT64_C(86400000000) public: /** * Checks the GMT timezone */ void test1() { TimeZonePtr tz(TimeZone::getGMT()); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("GMT"), tz->getID()); } /** * Get "GMT-6" time zone */ void test2() { TimeZonePtr tz(TimeZone::getTimeZone(LOG4CXX_STR("GMT-6"))); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("GMT-06:00"), tz->getID()); apr_time_t jan2 = MICROSECONDS_PER_DAY * 12420; apr_time_exp_t exploded; tz->explode(&exploded, jan2); LOGUNIT_ASSERT_EQUAL(-6 * 3600, exploded.tm_gmtoff); LOGUNIT_ASSERT_EQUAL(18, exploded.tm_hour); } /** * Get the default timezone name */ void test3() { TimeZonePtr tz(TimeZone::getDefault()); LogString tzName(tz->getID()); LOGUNIT_ASSERT(tzName.length() > 0); } /** * Get "GMT+0010" time zone */ void test4() { TimeZonePtr tz(TimeZone::getTimeZone(LOG4CXX_STR("GMT+0010"))); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("GMT+00:10"), tz->getID()); apr_time_t jan2 = MICROSECONDS_PER_DAY * 12420; apr_time_exp_t exploded; tz->explode(&exploded, jan2); LOGUNIT_ASSERT_EQUAL(600, exploded.tm_gmtoff); LOGUNIT_ASSERT_EQUAL(0, exploded.tm_hour); LOGUNIT_ASSERT_EQUAL(10, exploded.tm_min); } /** * Get "GMT+6" time zone */ void test5() { TimeZonePtr tz(TimeZone::getTimeZone(LOG4CXX_STR("GMT+6"))); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("GMT+06:00"), tz->getID()); apr_time_t jan2 = MICROSECONDS_PER_DAY * 12420; apr_time_exp_t exploded; tz->explode(&exploded, jan2); LOGUNIT_ASSERT_EQUAL(6 * 3600, exploded.tm_gmtoff); LOGUNIT_ASSERT_EQUAL(6, exploded.tm_hour); } /** * Checks the GMT timezone */ void test6() { TimeZonePtr tz(TimeZone::getTimeZone(LOG4CXX_STR("GMT"))); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("GMT"), tz->getID()); } }; LOGUNIT_TEST_SUITE_REGISTRATION(TimeZoneTestCase); apache-log4cxx-0.10.0/src/test/cpp/helpers/localechanger.cpp100644 0 0 2722 10774263245 21030 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #define LOG4CXX_TEST #include #if LOG4CXX_HAS_STD_LOCALE #include "localechanger.h" #include using namespace log4cxx::helpers; /** * Construction attemtps to change default locale. * @param locale locale. */ LocaleChanger::LocaleChanger(const char* locale) { effective = false; try { std::locale newLocale(locale); initial = std::locale::global(newLocale); effective = true; } catch(std::runtime_error&) { } catch(std::exception&) { } } /** * Restores previous locale. */ LocaleChanger::~LocaleChanger() { if (effective) { std::locale::global(initial); } } #endif apache-log4cxx-0.10.0/src/test/cpp/helpers/propertiestestcase.cpp100644 0 0 3270 10774263245 22170 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include "../insertwide.h" #include "../logunit.h" using namespace log4cxx; using namespace log4cxx::helpers; LOGUNIT_CLASS(PropertiesTestCase) { LOGUNIT_TEST_SUITE(PropertiesTestCase); LOGUNIT_TEST(testLoad1); LOGUNIT_TEST_SUITE_END(); public: void testLoad1() { // // read patternLayout1.properties FileInputStreamPtr propFile = new FileInputStream(LOG4CXX_STR("input/patternLayout1.properties")); Properties properties; properties.load(propFile); LogString pattern(properties.getProperty(LOG4CXX_STR("log4j.appender.testAppender.layout.ConversionPattern"))); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("%-5p - %m%n"), pattern); } }; LOGUNIT_TEST_SUITE_REGISTRATION(PropertiesTestCase); apache-log4cxx-0.10.0/src/test/cpp/helpers/optionconvertertestcase.cpp100644 0 0 14712 10774263245 23257 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include "../testchar.h" #include "../insertwide.h" #include "../logunit.h" #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::spi; #define MAX 1000 LOGUNIT_CLASS(OptionConverterTestCase) { LOGUNIT_TEST_SUITE(OptionConverterTestCase); LOGUNIT_TEST(varSubstTest1); LOGUNIT_TEST(varSubstTest2); LOGUNIT_TEST(varSubstTest3); LOGUNIT_TEST(varSubstTest4); LOGUNIT_TEST(varSubstTest5); LOGUNIT_TEST(testTmpDir); #if APR_HAS_USER LOGUNIT_TEST(testUserHome); LOGUNIT_TEST(testUserName); #endif LOGUNIT_TEST(testUserDir); LOGUNIT_TEST_SUITE_END(); Properties props; Properties nullProperties; public: void setUp() { } void tearDown() { } /** * Checks that environment variables were properly set * before invoking tests. ::putenv not reliable. */ void envCheck() { Pool p; char* toto; apr_status_t stat = apr_env_get(&toto, "TOTO", p.getAPRPool()); LOGUNIT_ASSERT_EQUAL(APR_SUCCESS, stat); LOGUNIT_ASSERT_EQUAL("wonderful", toto); char* key1; stat = apr_env_get(&key1, "key1", p.getAPRPool()); LOGUNIT_ASSERT_EQUAL(APR_SUCCESS, stat); LOGUNIT_ASSERT_EQUAL("value1", key1); char* key2; stat = apr_env_get(&key2, "key2", p.getAPRPool()); LOGUNIT_ASSERT_EQUAL(APR_SUCCESS, stat); LOGUNIT_ASSERT_EQUAL("value2", key2); } void varSubstTest1() { envCheck(); LogString r(OptionConverter::substVars(LOG4CXX_STR("hello world."), nullProperties)); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("hello world."), r); r = OptionConverter::substVars(LOG4CXX_STR("hello ${TOTO} world."), nullProperties); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("hello wonderful world."), r); } void varSubstTest2() { envCheck(); LogString r(OptionConverter::substVars(LOG4CXX_STR("Test2 ${key1} mid ${key2} end."), nullProperties)); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("Test2 value1 mid value2 end."), r); } void varSubstTest3() { envCheck(); LogString r(OptionConverter::substVars( LOG4CXX_STR("Test3 ${unset} mid ${key1} end."), nullProperties)); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("Test3 mid value1 end."), r); } void varSubstTest4() { LogString res; LogString val(LOG4CXX_STR("Test4 ${incomplete ")); try { res = OptionConverter::substVars(val, nullProperties); } catch(IllegalArgumentException& e) { std::string witness("\"Test4 ${incomplete \" has no closing brace. Opening brace at position 6."); LOGUNIT_ASSERT_EQUAL(witness, (std::string) e.what()); } } void varSubstTest5() { Properties props1; props1.setProperty(LOG4CXX_STR("p1"), LOG4CXX_STR("x1")); props1.setProperty(LOG4CXX_STR("p2"), LOG4CXX_STR("${p1}")); LogString res = OptionConverter::substVars(LOG4CXX_STR("${p2}"), props1); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("x1"), res); } void testTmpDir() { LogString actual(OptionConverter::substVars( LOG4CXX_STR("${java.io.tmpdir}"), nullProperties)); Pool p; const char* tmpdir = NULL; apr_status_t stat = apr_temp_dir_get(&tmpdir, p.getAPRPool()); LOGUNIT_ASSERT_EQUAL(APR_SUCCESS, stat); LogString expected; Transcoder::decode(tmpdir, expected); LOGUNIT_ASSERT_EQUAL(expected, actual); } #if APR_HAS_USER void testUserHome() { LogString actual(OptionConverter::substVars( LOG4CXX_STR("${user.home}"), nullProperties)); Pool p; apr_uid_t userid; apr_gid_t groupid; apr_status_t stat = apr_uid_current(&userid, &groupid, p.getAPRPool()); if (stat == APR_SUCCESS) { char* username = NULL; stat = apr_uid_name_get(&username, userid, p.getAPRPool()); if (stat == APR_SUCCESS) { char* dirname = NULL; stat = apr_uid_homepath_get(&dirname, username, p.getAPRPool()); if (stat == APR_SUCCESS) { LogString expected; Transcoder::decode(dirname, expected); LOGUNIT_ASSERT_EQUAL(expected, actual); } } } } void testUserName() { LogString actual(OptionConverter::substVars( LOG4CXX_STR("${user.name}"), nullProperties)); Pool p; apr_uid_t userid; apr_gid_t groupid; apr_status_t stat = apr_uid_current(&userid, &groupid, p.getAPRPool()); if (stat == APR_SUCCESS) { char* username = NULL; stat = apr_uid_name_get(&username, userid, p.getAPRPool()); if (stat == APR_SUCCESS) { LogString expected; Transcoder::decode(username, expected); LOGUNIT_ASSERT_EQUAL(expected, actual); } } } #endif void testUserDir() { LogString actual(OptionConverter::substVars( LOG4CXX_STR("${user.dir}"), nullProperties)); Pool p; char* dirname = NULL; apr_status_t stat = apr_filepath_get(&dirname, APR_FILEPATH_NATIVE, p.getAPRPool()); LOGUNIT_ASSERT_EQUAL(APR_SUCCESS, stat); LogString expected; Transcoder::decode(dirname, expected); LOGUNIT_ASSERT_EQUAL(expected, actual); } }; LOGUNIT_TEST_SUITE_REGISTRATION(OptionConverterTestCase); apache-log4cxx-0.10.0/src/test/cpp/helpers/localechanger.h100644 0 0 3156 10774263245 20477 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_LOCALE_CHANGER_H #define _LOG4CXX_HELPERS_LOCALE_CHANGER_H #include namespace log4cxx { namespace helpers { /** * Utility class to change the locale for the duration of a test. * * * * */ class LocaleChanger { public: /** * Construction attemtps to change default locale. * @param locale locale. */ LocaleChanger(const char* locale); /** * Restores previous locale. */ ~LocaleChanger(); /** * Determines whether locale change was effective. * @return true if effective. */ inline bool isEffective() { return effective; } private: LocaleChanger(LocaleChanger&); LocaleChanger& operator=(LocaleChanger&); std::locale initial; bool effective; }; } } #endif apache-log4cxx-0.10.0/src/test/cpp/helpers/cyclicbuffertestcase.cpp100644 0 0 10742 10774263245 22456 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include "../logunit.h" #include #include #include #include #include "../testchar.h" using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::spi; #define MAX 1000 LOGUNIT_CLASS(CyclicBufferTestCase) { LOGUNIT_TEST_SUITE(CyclicBufferTestCase); LOGUNIT_TEST(test0); LOGUNIT_TEST(test1); LOGUNIT_TEST(testResize); LOGUNIT_TEST_SUITE_END(); LoggerPtr logger; std::vector e; public: void setUp() { e.reserve(1000); LoggingEventPtr event; for (int i = 0; i < MAX; i++) { event = new LoggingEvent(LOG4CXX_STR("x"), Level::getDebug(), LOG4CXX_STR("e"), log4cxx::spi::LocationInfo::getLocationUnavailable()); e.push_back(event); } } void tearDown() { LogManager::shutdown(); } void test0() { int size = 2; CyclicBuffer cb(size); LOGUNIT_ASSERT_EQUAL(size, cb.getMaxSize()); cb.add(e[0]); LOGUNIT_ASSERT_EQUAL(1, cb.length()); LOGUNIT_ASSERT_EQUAL(e[0], cb.get()); LOGUNIT_ASSERT_EQUAL(0, cb.length()); LOGUNIT_ASSERT(cb.get() == 0); LOGUNIT_ASSERT_EQUAL(0, cb.length()); CyclicBuffer cb2(size); cb2.add(e[0]); cb2.add(e[1]); LOGUNIT_ASSERT_EQUAL(2, cb2.length()); LOGUNIT_ASSERT_EQUAL(e[0], cb2.get()); LOGUNIT_ASSERT_EQUAL(1, cb2.length()); LOGUNIT_ASSERT_EQUAL(e[1], cb2.get()); LOGUNIT_ASSERT_EQUAL(0, cb2.length()); LOGUNIT_ASSERT(cb2.get() == 0); LOGUNIT_ASSERT_EQUAL(0, cb2.length()); } void test1() { for (int bufSize = 1; bufSize <= 128; bufSize *= 2) doTest1(bufSize); } void doTest1(int size) { //System.out.println("Doing test with size = "+size); CyclicBuffer cb(size); LOGUNIT_ASSERT_EQUAL(size, cb.getMaxSize()); int i; for (i = -(size + 10); i < (size + 10); i++) { LOGUNIT_ASSERT(cb.get(i) == 0); } for (i = 0; i < MAX; i++) { cb.add(e[i]); int limit = (i < (size - 1)) ? i : (size - 1); //System.out.println("\nLimit is " + limit + ", i="+i); for (int j = limit; j >= 0; j--) { //System.out.println("i= "+i+", j="+j); LOGUNIT_ASSERT_EQUAL(e[i - (limit - j)], cb.get(j)); } LOGUNIT_ASSERT(cb.get(-1) == 0); LOGUNIT_ASSERT(cb.get(limit + 1) == 0); } } void testResize() { for (int isize = 1; isize <= 128; isize *= 2) { doTestResize(isize, (isize / 2) + 1, (isize / 2) + 1); doTestResize(isize, (isize / 2) + 1, isize + 10); doTestResize(isize, isize + 10, (isize / 2) + 1); doTestResize(isize, isize + 10, isize + 10); } } void doTestResize(int initialSize, int numberOfAdds, int newSize) { //System.out.println("initialSize = "+initialSize+", numberOfAdds=" // +numberOfAdds+", newSize="+newSize); CyclicBuffer cb(initialSize); for (int i = 0; i < numberOfAdds; i++) { cb.add(e[i]); } cb.resize(newSize); int offset = numberOfAdds - initialSize; if (offset < 0) { offset = 0; } int len = (newSize < numberOfAdds) ? newSize : numberOfAdds; len = (len < initialSize) ? len : initialSize; //System.out.println("Len = "+len+", offset="+offset); for (int j = 0; j < len; j++) { LOGUNIT_ASSERT_EQUAL(e[offset + j], cb.get(j)); } } }; LOGUNIT_TEST_SUITE_REGISTRATION(CyclicBufferTestCase); apache-log4cxx-0.10.0/src/test/cpp/helpers/stringtokenizertestcase.cpp100644 0 0 11254 10774263245 23256 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include "../logunit.h" #include "../insertwide.h" using namespace log4cxx; using namespace log4cxx::helpers; LOGUNIT_CLASS(StringTokenizerTestCase) { LOGUNIT_TEST_SUITE(StringTokenizerTestCase); LOGUNIT_TEST(testNextTokenEmptyString); LOGUNIT_TEST(testHasMoreTokensEmptyString); LOGUNIT_TEST(testNextTokenAllDelim); LOGUNIT_TEST(testHasMoreTokensAllDelim); LOGUNIT_TEST(test1); LOGUNIT_TEST(test2); LOGUNIT_TEST(test3); LOGUNIT_TEST(test4); LOGUNIT_TEST(test5); LOGUNIT_TEST(test6); LOGUNIT_TEST_SUITE_END(); public: void testNextTokenEmptyString() { LogString src; LogString delim(LOG4CXX_STR(" ")); StringTokenizer tokenizer(src, delim); try { LogString token(tokenizer.nextToken()); } catch (NoSuchElementException &ex) { return; } LOGUNIT_ASSERT(false); } void testHasMoreTokensEmptyString() { LogString src; LogString delim(LOG4CXX_STR(" ")); StringTokenizer tokenizer(src, delim); LOGUNIT_ASSERT_EQUAL(false, tokenizer.hasMoreTokens()); } void testNextTokenAllDelim() { LogString src(LOG4CXX_STR("===")); LogString delim(LOG4CXX_STR("=")); StringTokenizer tokenizer(src, delim); try { LogString token(tokenizer.nextToken()); } catch (NoSuchElementException &ex) { return; } LOGUNIT_ASSERT(false); } void testHasMoreTokensAllDelim() { LogString src(LOG4CXX_STR("===")); LogString delim(LOG4CXX_STR("=")); StringTokenizer tokenizer(src, delim); LOGUNIT_ASSERT_EQUAL(false, tokenizer.hasMoreTokens()); } void testBody(const LogString& src, const LogString& delim) { StringTokenizer tokenizer(src, delim); LOGUNIT_ASSERT_EQUAL(true, tokenizer.hasMoreTokens()); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("log4j"), tokenizer.nextToken()); LOGUNIT_ASSERT_EQUAL(true, tokenizer.hasMoreTokens()); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("properties"), tokenizer.nextToken()); LOGUNIT_ASSERT_EQUAL(true, tokenizer.hasMoreTokens()); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("txt"), tokenizer.nextToken()); LOGUNIT_ASSERT_EQUAL(false, tokenizer.hasMoreTokens()); try { LogString token(tokenizer.nextToken()); } catch (NoSuchElementException& ex) { return; } LOGUNIT_ASSERT(false); } void test1() { LogString src(LOG4CXX_STR("log4j.properties.txt")); LogString delim(LOG4CXX_STR(".")); testBody(src, delim); } void test2() { LogString src(LOG4CXX_STR(".log4j.properties.txt")); LogString delim(LOG4CXX_STR(".")); testBody(src, delim); } void test3() { LogString src(LOG4CXX_STR("log4j.properties.txt.")); LogString delim(LOG4CXX_STR(".")); testBody(src, delim); } void test4() { LogString src(LOG4CXX_STR("log4j..properties....txt")); LogString delim(LOG4CXX_STR(".")); testBody(src, delim); } void test5() { LogString src(LOG4CXX_STR("log4j properties,txt")); LogString delim(LOG4CXX_STR(" ,")); testBody(src, delim); } void test6() { LogString src(LOG4CXX_STR(" log4j properties,txt ")); LogString delim(LOG4CXX_STR(" ,")); testBody(src, delim); } }; LOGUNIT_TEST_SUITE_REGISTRATION(StringTokenizerTestCase); apache-log4cxx-0.10.0/src/test/cpp/helpers/relativetimedateformattestcase.cpp100644 0 0 4747 10774263245 24547 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include "../insertwide.h" #include "../logunit.h" #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::spi; /** Unit test {@link RelativeTimeDateFormat} class. */ LOGUNIT_CLASS(RelativeTimeDateFormatTestCase) { LOGUNIT_TEST_SUITE(RelativeTimeDateFormatTestCase); LOGUNIT_TEST(test1); LOGUNIT_TEST(test2); LOGUNIT_TEST(test3); LOGUNIT_TEST_SUITE_END(); public: /** * Convert 2 Jan 2004 */ void test1() { log4cxx_time_t jan2 = Date::getMicrosecondsPerDay() * 12419; log4cxx_time_t preStartTime = LoggingEvent::getStartTime(); RelativeTimeDateFormat formatter; Pool p; LogString actual; formatter.format(actual, jan2, p); log4cxx_time_t elapsed = log4cxx::helpers::StringHelper::toInt64(actual); LOGUNIT_ASSERT(preStartTime + elapsed*1000 > jan2 - 2000); LOGUNIT_ASSERT(preStartTime + elapsed*1000 < jan2 + 2000); } /** * Checks that numberFormat works as expected. */ void test2() { LogString numb; Pool p; RelativeTimeDateFormat formatter; formatter.numberFormat(numb, 87, p); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("87"), numb); } /** * Checks that setting timezone doesn't throw an exception. */ void test3() { RelativeTimeDateFormat formatter; formatter.setTimeZone(TimeZone::getGMT()); } }; LOGUNIT_TEST_SUITE_REGISTRATION(RelativeTimeDateFormatTestCase); apache-log4cxx-0.10.0/src/test/cpp/varia/levelmatchfiltertestcase.cpp100644 0 0 14035 10774263245 23007 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "../logunit.h" #include #include #include #include #include #include #include #include #include #include #include "../util/compare.h" #include "../testchar.h" using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::filter; LOGUNIT_CLASS(LevelMatchFilterTestCase) { LOGUNIT_TEST_SUITE(LevelMatchFilterTestCase); LOGUNIT_TEST(accept); LOGUNIT_TEST(deny); LOGUNIT_TEST_SUITE_END(); LoggerPtr root; LoggerPtr logger; public: void setUp() { root = Logger::getRootLogger(); root->removeAllAppenders(); logger = Logger::getLogger(LOG4CXX_TEST_STR("test")); } void tearDown() { root->getLoggerRepository()->resetConfiguration(); } void accept() { // set up appender LayoutPtr layout = new SimpleLayout(); AppenderPtr appender = new FileAppender(layout, ACCEPT_FILE, false); // create LevelMatchFilter LevelMatchFilterPtr matchFilter = new LevelMatchFilter(); // attach match filter to appender appender->addFilter(matchFilter); // attach DenyAllFilter to end of filter chain to deny neutral // (non matching) messages spi::FilterPtr filter(new DenyAllFilter()); appender->addFilter(filter); // set appender on root and set level to debug root->addAppender(appender); root->setLevel(Level::getDebug()); LevelPtr levelArray[] = { Level::getDebug(), Level::getInfo(), Level::getWarn(), Level::getError(), Level::getFatal() }; int length = sizeof(levelArray)/sizeof(levelArray[0]); Pool pool; for (int x = 0; x < length; x++) { // set the level to match matchFilter->setLevelToMatch(levelArray[x]->toString()); LogString sbuf(LOG4CXX_STR("pass ")); StringHelper::toString(x, pool, sbuf); sbuf.append(LOG4CXX_STR("; filter set to accept only ")); sbuf.append(levelArray[x]->toString()); sbuf.append(LOG4CXX_STR(" msgs")); common(sbuf); } LOGUNIT_ASSERT(Compare::compare(ACCEPT_FILE, ACCEPT_WITNESS)); } void deny() { // set up appender LayoutPtr layout = new SimpleLayout(); AppenderPtr appender = new FileAppender(layout, DENY_FILE, false); // create LevelMatchFilter, set to deny matches LevelMatchFilterPtr matchFilter = new LevelMatchFilter(); matchFilter->setAcceptOnMatch(false); // attach match filter to appender appender->addFilter(matchFilter); // set appender on root and set level to debug root->addAppender(appender); root->setLevel(Level::getDebug()); LevelPtr levelArray[] = { Level::getDebug(), Level::getInfo(), Level::getWarn(), Level::getError(), Level::getFatal() }; int length = sizeof(levelArray)/sizeof(levelArray[0]); Pool pool; for (int x = 0; x < length; x++) { // set the level to match matchFilter->setLevelToMatch(levelArray[x]->toString()); LogString sbuf(LOG4CXX_STR("pass ")); StringHelper::toString(x, pool, sbuf); sbuf.append(LOG4CXX_STR("; filter set to deny only ")); sbuf.append(levelArray[x]->toString()); sbuf.append(LOG4CXX_STR(" msgs")); common(sbuf); } LOGUNIT_ASSERT(Compare::compare(DENY_FILE, DENY_WITNESS)); } void common(const LogString& msg) { logger->debug(msg); logger->info(msg); logger->warn(msg); logger->error(msg); logger->fatal(msg); } private: static const LogString ACCEPT_FILE; static const LogString ACCEPT_WITNESS; static const LogString DENY_FILE; static const LogString DENY_WITNESS; }; const LogString LevelMatchFilterTestCase::ACCEPT_FILE(LOG4CXX_STR("output/LevelMatchFilter_accept")); const LogString LevelMatchFilterTestCase::ACCEPT_WITNESS(LOG4CXX_STR("witness/LevelMatchFilter_accept")); const LogString LevelMatchFilterTestCase::DENY_FILE(LOG4CXX_STR("output/LevelMatchFilter_deny")); const LogString LevelMatchFilterTestCase::DENY_WITNESS(LOG4CXX_STR("witness/LevelMatchFilter_deny")); LOGUNIT_TEST_SUITE_REGISTRATION(LevelMatchFilterTestCase); apache-log4cxx-0.10.0/src/test/cpp/varia/errorhandlertestcase.cpp100644 0 0 10221 10774263245 22135 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #define LOG4CXX_TEST 1 #include #include #include #include "../logunit.h" #include "../util/transformer.h" #include "../util/compare.h" #include "../util/controlfilter.h" #include "../util/threadfilter.h" #include "../util/linenumberfilter.h" #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::xml; #define TEST1_A_PAT "FALLBACK - test - Message [0-9]" #define TEST1_B_PAT "FALLBACK - root - Message [0-9]" #define TEST1_2_PAT \ "^[0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} [0-9]\\{2\\}:[0-9]\\{2\\}:[0-9]\\{2\\},[0-9]\\{3\\} " \ "\\[main]\\ (DEBUG|INFO|WARN|ERROR|FATAL) .* - Message [0-9]" LOGUNIT_CLASS(ErrorHandlerTestCase) { LOGUNIT_TEST_SUITE(ErrorHandlerTestCase); LOGUNIT_TEST(test1); LOGUNIT_TEST_SUITE_END(); LoggerPtr root; LoggerPtr logger; static const File TEMP; static const File FILTERED; public: void setUp() { root = Logger::getRootLogger(); logger = Logger::getLogger("test"); } void tearDown() { logger->getLoggerRepository()->resetConfiguration(); } void test1() { DOMConfigurator::configure("input/xml/fallback1.xml"); common(); ControlFilter cf; cf << TEST1_A_PAT << TEST1_B_PAT << TEST1_2_PAT; ThreadFilter threadFilter; LineNumberFilter lineNumberFilter; std::vector filters; filters.push_back(&cf); filters.push_back(&threadFilter); filters.push_back(&lineNumberFilter); common(); try { Transformer::transform(TEMP, FILTERED, filters); } catch(UnexpectedFormatException& e) { std::cout << "UnexpectedFormatException :" << e.what() << std::endl; throw; } const File witness("witness/fallback"); LOGUNIT_ASSERT(Compare::compare(FILTERED, witness)); } void common() { int i = -1; std::ostringstream os; os << "Message " << ++ i; LOG4CXX_DEBUG(logger, os.str()); LOG4CXX_DEBUG(root, os.str()); os.str(""); os << "Message " << ++i; LOG4CXX_INFO(logger, os.str()); LOG4CXX_INFO(root, os.str()); os.str(""); os << "Message " << ++i; LOG4CXX_WARN(logger, os.str()); LOG4CXX_WARN(root, os.str()); os.str(""); os << "Message " << ++i; LOG4CXX_ERROR(logger, os.str()); LOG4CXX_ERROR(root, os.str()); os.str(""); os << "Message " << ++i; LOG4CXX_FATAL(logger, os.str()); LOG4CXX_FATAL(root, os.str()); } }; //TODO: Not sure this test ever worked. 0.9.7 didn't call common // had nothing that attempted to dispatch any log events //LOGUNIT_TEST_SUITE_REGISTRATION(ErrorHandlerTestCase); const File ErrorHandlerTestCase::TEMP("output/temp"); const File ErrorHandlerTestCase::FILTERED("output/filtered"); apache-log4cxx-0.10.0/src/test/cpp/varia/levelrangefiltertestcase.cpp100644 0 0 22507 10774263245 23012 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include "../util/compare.h" #include #include #include #include "../testchar.h" #include "../logunit.h" #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::filter; LOGUNIT_CLASS(LevelRangeFilterTestCase) { LOGUNIT_TEST_SUITE(LevelRangeFilterTestCase); LOGUNIT_TEST(accept); LOGUNIT_TEST(neutral); LOGUNIT_TEST_SUITE_END(); LoggerPtr root; LoggerPtr logger; public: void setUp() { root = Logger::getRootLogger(); root->removeAllAppenders(); logger = Logger::getLogger(LOG4CXX_TEST_STR("test")); } void tearDown() { root->getLoggerRepository()->resetConfiguration(); } void accept() { // set up appender LayoutPtr layout = new SimpleLayout(); AppenderPtr appender = new FileAppender(layout, ACCEPT_FILE, false); // create LevelMatchFilter LevelRangeFilterPtr rangeFilter = new LevelRangeFilter(); // set it to accept on a match rangeFilter->setAcceptOnMatch(true); // attach match filter to appender appender->addFilter(rangeFilter); // set appender on root and set level to debug root->addAppender(appender); root->setLevel(Level::getDebug()); int passCount = 0; LogString sbuf(LOG4CXX_STR("pass ")); Pool pool; StringHelper::toString(passCount, pool, sbuf); sbuf.append(LOG4CXX_STR("; no min or max set")); common(sbuf); passCount++; // test with a min set rangeFilter->setLevelMin(Level::getWarn()); sbuf.assign(LOG4CXX_STR("pass ")); StringHelper::toString(passCount, pool, sbuf); sbuf.append(LOG4CXX_STR("; min set to WARN, max not set")); common(sbuf); passCount++; // create a clean filter appender->clearFilters(); rangeFilter = new LevelRangeFilter(); appender->addFilter(rangeFilter); //test with max set rangeFilter->setLevelMax(Level::getWarn()); sbuf.assign(LOG4CXX_STR("pass ")); StringHelper::toString(passCount, pool, sbuf); sbuf.append(LOG4CXX_STR("; min not set, max set to WARN")); common(sbuf); passCount++; LevelPtr levelArray[] = { Level::getDebug(), Level::getInfo(), Level::getWarn(), Level::getError(), Level::getFatal() }; int length = sizeof(levelArray)/sizeof(levelArray[0]); for (int x = 0; x < length; x++) { // set the min level to match rangeFilter->setLevelMin(levelArray[x]); for (int y = length - 1; y >= 0; y--) { // set max level to match rangeFilter->setLevelMax(levelArray[y]); sbuf.assign(LOG4CXX_STR("pass ")); StringHelper::toString(passCount, pool, sbuf); sbuf.append(LOG4CXX_STR("; filter set to accept between ")); sbuf.append(levelArray[x]->toString()); sbuf.append(LOG4CXX_STR(" and ")); sbuf.append(levelArray[y]->toString()); sbuf.append(LOG4CXX_STR(" msgs")); common(sbuf); // increment passCount passCount++; } } LOGUNIT_ASSERT(Compare::compare(ACCEPT_FILE, ACCEPT_WITNESS)); } void neutral() { // set up appender LayoutPtr layout = new SimpleLayout(); AppenderPtr appender = new FileAppender(layout, NEUTRAL_FILE, false); // create LevelMatchFilter LevelRangeFilterPtr rangeFilter = new LevelRangeFilter(); // set it to accept on a match rangeFilter->setAcceptOnMatch(true); // attach match filter to appender appender->addFilter(rangeFilter); // set appender on root and set level to debug root->addAppender(appender); root->setLevel(Level::getDebug()); int passCount = 0; LogString sbuf(LOG4CXX_STR("pass ")); Pool pool; StringHelper::toString(passCount, pool, sbuf); // test with no min or max set sbuf.append(LOG4CXX_STR("; no min or max set")); common(sbuf); passCount++; // test with a min set rangeFilter->setLevelMin(Level::getWarn()); sbuf.assign(LOG4CXX_STR("pass ")); StringHelper::toString(passCount, pool, sbuf); sbuf.append(LOG4CXX_STR("; min set to WARN, max not set")); common(sbuf); passCount++; // create a clean filter appender->clearFilters(); rangeFilter = new LevelRangeFilter(); appender->addFilter(rangeFilter); //test with max set rangeFilter->setLevelMax(Level::getWarn()); sbuf.assign(LOG4CXX_STR("pass ")); StringHelper::toString(passCount, pool, sbuf); sbuf.append(LOG4CXX_STR("; min not set, max set to WARN")); common(sbuf); passCount++; LevelPtr levelArray[] = { Level::getDebug(), Level::getInfo(), Level::getWarn(), Level::getError(), Level::getFatal() }; int length = sizeof(levelArray)/sizeof(levelArray[0]); for (int x = 0; x < length; x++) { // set the min level to match rangeFilter->setLevelMin(levelArray[x]); for (int y = length - 1; y >= 0; y--) { // set max level to match rangeFilter->setLevelMax(levelArray[y]); sbuf.assign(LOG4CXX_STR("pass ")); StringHelper::toString(passCount, pool, sbuf); sbuf.append(LOG4CXX_STR("; filter set to accept between ")); sbuf.append(levelArray[x]->toString()); sbuf.append(LOG4CXX_STR(" and ")); sbuf.append(levelArray[y]->toString()); sbuf.append(LOG4CXX_STR(" msgs")); common(sbuf); // increment passCount passCount++; } } LOGUNIT_ASSERT(Compare::compare(NEUTRAL_FILE, NEUTRAL_WITNESS)); } void common(const LogString& msg) { logger->debug(msg); logger->info(msg); logger->warn(msg); logger->error(msg); logger->fatal(msg); } private: static const LogString ACCEPT_FILE; static const LogString ACCEPT_WITNESS; static const LogString NEUTRAL_FILE; static const LogString NEUTRAL_WITNESS; }; const LogString LevelRangeFilterTestCase::ACCEPT_FILE(LOG4CXX_STR("output/LevelRangeFilter_accept")); const LogString LevelRangeFilterTestCase::ACCEPT_WITNESS(LOG4CXX_STR("witness/LevelRangeFilter_accept")); const LogString LevelRangeFilterTestCase::NEUTRAL_FILE(LOG4CXX_STR("output/LevelRangeFilter_neutral")); const LogString LevelRangeFilterTestCase::NEUTRAL_WITNESS(LOG4CXX_STR("witness/LevelRangeFilter_neutral")); LOGUNIT_TEST_SUITE_REGISTRATION(LevelRangeFilterTestCase); apache-log4cxx-0.10.0/src/test/cpp/rolling/filenamepatterntestcase.cpp100644 0 0 14007 10774263245 23176 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include "../util/compare.h" #include "../logunit.h" #include "../insertwide.h" #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::pattern; /** * Tests for FileNamePattern. * * * * */ LOGUNIT_CLASS(FileNamePatternTestCase) { LOGUNIT_TEST_SUITE(FileNamePatternTestCase); LOGUNIT_TEST(testFormatInteger1); LOGUNIT_TEST(testFormatInteger2); LOGUNIT_TEST(testFormatInteger3); LOGUNIT_TEST(testFormatInteger4); LOGUNIT_TEST(testFormatInteger5); LOGUNIT_TEST(testFormatInteger6); LOGUNIT_TEST(testFormatInteger7); LOGUNIT_TEST(testFormatInteger8); LOGUNIT_TEST(testFormatInteger9); LOGUNIT_TEST(testFormatInteger10); LOGUNIT_TEST(testFormatInteger11); LOGUNIT_TEST(testFormatDate1); // // TODO: Problem with timezone offset // LOGUNIT_TEST(testFormatDate2); // LOGUNIT_TEST(testFormatDate3); LOGUNIT_TEST(testFormatDate4); LOGUNIT_TEST(testFormatDate5); LOGUNIT_TEST_SUITE_END(); public: LogString format(const LogString& pattern, const ObjectPtr& obj) { std::vector converters; std::vector fields; PatternMap rules; rules.insert(PatternMap::value_type(LOG4CXX_STR("d"), (PatternConstructor) FileDatePatternConverter::newInstance)); rules.insert(PatternMap::value_type(LOG4CXX_STR("i"), (PatternConstructor) IntegerPatternConverter::newInstance)); PatternParser::parse(pattern, converters, fields, rules); LogString result; Pool pool; std::vector::const_iterator fieldIter = fields.begin(); for(std::vector::const_iterator converterIter = converters.begin(); converterIter != converters.end(); converterIter++, fieldIter++) { LogString::size_type i = result.length(); (*converterIter)->format(obj, result, pool); (*fieldIter)->format(i, result); } return result; } void assertDatePattern(const LogString& pattern, int year, int month, int day, int hour, int min, const LogString& expected) { apr_time_exp_t tm; memset(&tm, 0, sizeof(tm)); tm.tm_min = min; tm.tm_hour = hour; tm.tm_mday = day; tm.tm_mon = month; tm.tm_year = year - 1900; apr_time_t n; /*apr_status_t stat = */apr_time_exp_get(&n, &tm); ObjectPtr obj(new Date(n)); LOGUNIT_ASSERT_EQUAL(expected, format(pattern, obj)); } void assertIntegerPattern(const LogString& pattern, int value, const LogString& expected) { ObjectPtr obj(new Integer(value)); LOGUNIT_ASSERT_EQUAL(expected, format(pattern, obj)); } void testFormatInteger1() { assertIntegerPattern(LOG4CXX_STR("t"), 3, LOG4CXX_STR("t")); } void testFormatInteger2() { assertIntegerPattern(LOG4CXX_STR("foo"), 3, LOG4CXX_STR("foo")); } void testFormatInteger3() { assertIntegerPattern(LOG4CXX_STR("foo%"), 3, LOG4CXX_STR("foo%")); } void testFormatInteger4() { assertIntegerPattern(LOG4CXX_STR("%ifoo"), 3, LOG4CXX_STR("3foo")); } void testFormatInteger5() { assertIntegerPattern(LOG4CXX_STR("foo%ixixo"), 3, LOG4CXX_STR("foo3xixo")); } void testFormatInteger6() { assertIntegerPattern(LOG4CXX_STR("foo%i.log"), 3, LOG4CXX_STR("foo3.log")); } void testFormatInteger7() { assertIntegerPattern(LOG4CXX_STR("foo.%i.log"), 3, LOG4CXX_STR("foo.3.log")); } void testFormatInteger8() { assertIntegerPattern(LOG4CXX_STR("%ifoo%"), 3, LOG4CXX_STR("3foo%")); } void testFormatInteger9() { assertIntegerPattern(LOG4CXX_STR("%ifoo%%"), 3, LOG4CXX_STR("3foo%")); } void testFormatInteger10() { assertIntegerPattern(LOG4CXX_STR("%%foo"), 3, LOG4CXX_STR("%foo")); } void testFormatInteger11() { assertIntegerPattern(LOG4CXX_STR("foo%ibar%i"), 3, LOG4CXX_STR("foo3bar3")); } void testFormatDate1() { assertDatePattern(LOG4CXX_STR("foo%d{yyyy.MM.dd}"), 2003, 4, 20, 17, 55, LOG4CXX_STR("foo2003.05.20")); } void testFormatDate2() { assertDatePattern(LOG4CXX_STR("foo%d{yyyy.MM.dd HH:mm}"), 2003, 4, 20, 17, 55, LOG4CXX_STR("foo2003.05.20 17:55")); } void testFormatDate3() { assertDatePattern(LOG4CXX_STR("%d{yyyy.MM.dd HH:mm} foo"), 2003, 4, 20, 17, 55, LOG4CXX_STR("2003.05.20 17:55 foo")); } void testFormatDate4() { assertDatePattern(LOG4CXX_STR("foo%dyyyy.MM.dd}"), 2003, 4, 20, 17, 55, LOG4CXX_STR("foo2003-05-20yyyy.MM.dd}")); } void testFormatDate5() { assertDatePattern(LOG4CXX_STR("foo%d{yyyy.MM.dd"), 2003, 4, 20, 17, 55, LOG4CXX_STR("foo2003-05-20{yyyy.MM.dd")); } }; // // See bug LOGCXX-204 // #if !defined(_MSC_VER) || _MSC_VER > 1200 LOGUNIT_TEST_SUITE_REGISTRATION(FileNamePatternTestCase); #endif apache-log4cxx-0.10.0/src/test/cpp/rolling/sizebasedrollingtest.cpp100644 0 0 27672 10774263245 22540 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "../util/compare.h" #include "../insertwide.h" #include "../logunit.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::xml; using namespace log4cxx::filter; using namespace log4cxx::helpers; using namespace log4cxx::rolling; /** * * Do not forget to call activateOptions when configuring programatically. * * * */ LOGUNIT_CLASS(SizeBasedRollingTest) { LOGUNIT_TEST_SUITE(SizeBasedRollingTest); LOGUNIT_TEST(test1); LOGUNIT_TEST(test2); LOGUNIT_TEST(test3); LOGUNIT_TEST(test4); LOGUNIT_TEST(test5); LOGUNIT_TEST(test6); LOGUNIT_TEST_SUITE_END(); LoggerPtr root; LoggerPtr logger; public: void setUp() { PatternLayoutPtr layout(new PatternLayout(LOG4CXX_STR("%d %level %c -%m%n"))); AppenderPtr ca(new ConsoleAppender(layout)); ca->setName(LOG4CXX_STR("CONSOLE")); root = Logger::getRootLogger(); root->addAppender(ca); logger = Logger::getLogger("org.apache.log4j.rolling.SizeBasedRollingTest"); } void tearDown() { LogManager::shutdown(); } void common(LoggerPtr& logger1, int /*sleep*/) { char msg[] = { 'H', 'e', 'l', 'l', 'o', '-', '-', '-', 'N', 0 }; // Write exactly 10 bytes with each log for (int i = 0; i < 25; i++) { if (i < 10) { msg[8] = '0' + i; } else if (i < 100) { msg[7] = '0' + i / 10; msg[8] = '0' + i % 10; } LOG4CXX_DEBUG(logger1, msg); } } /** * Tests that the lack of an explicit active file will use the * low index as the active file. * */ void test1() { PatternLayoutPtr layout = new PatternLayout(LOG4CXX_STR("%m\n")); RollingFileAppenderPtr rfa = new RollingFileAppender(); rfa->setName(LOG4CXX_STR("ROLLING")); rfa->setAppend(false); rfa->setLayout(layout); FixedWindowRollingPolicyPtr swrp = new FixedWindowRollingPolicy(); SizeBasedTriggeringPolicyPtr sbtp = new SizeBasedTriggeringPolicy(); sbtp->setMaxFileSize(100); swrp->setMinIndex(0); swrp->setFileNamePattern(LOG4CXX_STR("output/sizeBased-test1.%i")); Pool p; swrp->activateOptions(p); rfa->setRollingPolicy(swrp); rfa->setTriggeringPolicy(sbtp); rfa->activateOptions(p); root->addAppender(rfa); common(logger, 0); LOGUNIT_ASSERT_EQUAL(true, File("output/sizeBased-test1.0").exists(p)); LOGUNIT_ASSERT_EQUAL(true, File("output/sizeBased-test1.1").exists(p)); LOGUNIT_ASSERT_EQUAL(true, File("output/sizeBased-test1.2").exists(p)); LOGUNIT_ASSERT_EQUAL(true, Compare::compare(File("output/sizeBased-test1.0"), File("witness/rolling/sbr-test2.log"))); LOGUNIT_ASSERT_EQUAL(true, Compare::compare(File("output/sizeBased-test1.1"), File("witness/rolling/sbr-test2.0"))); LOGUNIT_ASSERT_EQUAL(true, Compare::compare(File("output/sizeBased-test1.2"), File("witness/rolling/sbr-test2.1"))); } /** * Test basic rolling functionality with explicit setting of FileAppender.file. */ void test2() { PatternLayoutPtr layout = new PatternLayout(LOG4CXX_STR("%m\n")); RollingFileAppenderPtr rfa = new RollingFileAppender(); rfa->setName(LOG4CXX_STR("ROLLING")); rfa->setAppend(false); rfa->setLayout(layout); rfa->setFile(LOG4CXX_STR("output/sizeBased-test2.log")); FixedWindowRollingPolicyPtr swrp = new FixedWindowRollingPolicy(); SizeBasedTriggeringPolicyPtr sbtp = new SizeBasedTriggeringPolicy(); sbtp->setMaxFileSize(100); swrp->setMinIndex(0); swrp->setFileNamePattern(LOG4CXX_STR("output/sizeBased-test2.%i")); Pool p; swrp->activateOptions(p); rfa->setRollingPolicy(swrp); rfa->setTriggeringPolicy(sbtp); rfa->activateOptions(p); root->addAppender(rfa); common(logger, 0); LOGUNIT_ASSERT_EQUAL(true, File("output/sizeBased-test2.log").exists(p)); LOGUNIT_ASSERT_EQUAL(true, File("output/sizeBased-test2.0").exists(p)); LOGUNIT_ASSERT_EQUAL(true, File("output/sizeBased-test2.1").exists(p)); LOGUNIT_ASSERT_EQUAL(true, Compare::compare(File("output/sizeBased-test2.log"), File("witness/rolling/sbr-test2.log"))); LOGUNIT_ASSERT_EQUAL(true, Compare::compare(File("output/sizeBased-test2.0"), File("witness/rolling/sbr-test2.0"))); LOGUNIT_ASSERT_EQUAL(true, Compare::compare(File("output/sizeBased-test2.1"), File("witness/rolling/sbr-test2.1"))); } /** * Same as testBasic but also with GZ compression. */ void test3() { PatternLayoutPtr layout = new PatternLayout(LOG4CXX_STR("%m\n")); RollingFileAppenderPtr rfa = new RollingFileAppender(); rfa->setAppend(false); rfa->setLayout(layout); FixedWindowRollingPolicyPtr fwrp = new FixedWindowRollingPolicy(); SizeBasedTriggeringPolicyPtr sbtp = new SizeBasedTriggeringPolicy(); sbtp->setMaxFileSize(100); fwrp->setMinIndex(0); rfa->setFile(LOG4CXX_STR("output/sbr-test3.log")); fwrp->setFileNamePattern(LOG4CXX_STR("output/sbr-test3.%i.gz")); Pool p; fwrp->activateOptions(p); rfa->setRollingPolicy(fwrp); rfa->setTriggeringPolicy(sbtp); rfa->activateOptions(p); root->addAppender(rfa); common(logger, 100); LOGUNIT_ASSERT_EQUAL(true, File("output/sbr-test3.log").exists(p)); LOGUNIT_ASSERT_EQUAL(true, File("output/sbr-test3.0.gz").exists(p)); LOGUNIT_ASSERT_EQUAL(true, File("output/sbr-test3.1.gz").exists(p)); LOGUNIT_ASSERT_EQUAL(true, Compare::compare(File("output/sbr-test3.log"), File("witness/rolling/sbr-test3.log"))); LOGUNIT_ASSERT_EQUAL(File("witness/rolling/sbr-test3.0.gz").length(p), File("output/sbr-test3.0.gz").length(p)); LOGUNIT_ASSERT_EQUAL(File("witness/rolling/sbr-test3.1.gz").length(p), File("output/sbr-test3.1.gz").length(p)); } /** * Test basic rolling functionality with bogus path in file name pattern. */ void test4() { PatternLayoutPtr layout = new PatternLayout(LOG4CXX_STR("%m\n")); RollingFileAppenderPtr rfa = new RollingFileAppender(); rfa->setName(LOG4CXX_STR("ROLLING")); rfa->setAppend(false); rfa->setLayout(layout); rfa->setFile(LOG4CXX_STR("output/sizeBased-test4.log")); FixedWindowRollingPolicyPtr swrp = new FixedWindowRollingPolicy(); SizeBasedTriggeringPolicyPtr sbtp = new SizeBasedTriggeringPolicy(); sbtp->setMaxFileSize(100); swrp->setMinIndex(0); // // test4 directory should not exists. Should cause all rollover attempts to fail. // swrp->setFileNamePattern(LOG4CXX_STR("output/test4/sizeBased-test4.%i")); Pool p; swrp->activateOptions(p); rfa->setRollingPolicy(swrp); rfa->setTriggeringPolicy(sbtp); rfa->activateOptions(p); root->addAppender(rfa); common(logger, 0); LOGUNIT_ASSERT_EQUAL(true, File("output/sizeBased-test4.log").exists(p)); LOGUNIT_ASSERT_EQUAL(true, Compare::compare(File("output/sizeBased-test4.log"), File("witness/rolling/sbr-test4.log"))); } /** * Checking handling of rename failures due to other access * to the indexed files. */ void test5() { PatternLayoutPtr layout = new PatternLayout(LOG4CXX_STR("%m\n")); RollingFileAppenderPtr rfa = new RollingFileAppender(); rfa->setName(LOG4CXX_STR("ROLLING")); rfa->setAppend(false); rfa->setLayout(layout); rfa->setFile(LOG4CXX_STR("output/sizeBased-test5.log")); FixedWindowRollingPolicyPtr swrp = new FixedWindowRollingPolicy(); SizeBasedTriggeringPolicyPtr sbtp = new SizeBasedTriggeringPolicy(); sbtp->setMaxFileSize(100); swrp->setMinIndex(0); swrp->setFileNamePattern(LOG4CXX_STR("output/sizeBased-test5.%i")); Pool p; swrp->activateOptions(p); rfa->setRollingPolicy(swrp); rfa->setTriggeringPolicy(sbtp); rfa->activateOptions(p); root->addAppender(rfa); // // put stray file about locked file FileOutputStream os1(LOG4CXX_STR("output/sizeBased-test5.1"), false); os1.close(p); FileOutputStream os0(LOG4CXX_STR("output/sizeBased-test5.0"), false); common(logger, 0); os0.close(p); if (File("output/sizeBased-test5.3").exists(p)) { // // looks like platform where open files can be renamed // LOGUNIT_ASSERT_EQUAL(true, File("output/sizeBased-test5.log").exists(p)); LOGUNIT_ASSERT_EQUAL(true, File("output/sizeBased-test5.0").exists(p)); LOGUNIT_ASSERT_EQUAL(true, File("output/sizeBased-test5.1").exists(p)); LOGUNIT_ASSERT_EQUAL(true, File("output/sizeBased-test5.2").exists(p)); LOGUNIT_ASSERT_EQUAL(true, File("output/sizeBased-test5.3").exists(p)); LOGUNIT_ASSERT_EQUAL(true, Compare::compare(File("output/sizeBased-test5.log"), File("witness/rolling/sbr-test2.log"))); LOGUNIT_ASSERT_EQUAL(true, Compare::compare(File("output/sizeBased-test5.0"), File("witness/rolling/sbr-test2.0"))); LOGUNIT_ASSERT_EQUAL(true, Compare::compare(File("output/sizeBased-test5.1"), File("witness/rolling/sbr-test2.1"))); } else { // // rollover attempts should all fail // so initial log file should have all log content // open file should be unaffected // stray file should have only been moved one slot. LOGUNIT_ASSERT_EQUAL(true, File("output/sizeBased-test5.log").exists(p)); LOGUNIT_ASSERT_EQUAL(true, File("output/sizeBased-test5.0").exists(p)); LOGUNIT_ASSERT_EQUAL(true, File("output/sizeBased-test5.2").exists(p)); LOGUNIT_ASSERT_EQUAL(true, Compare::compare(File("output/sizeBased-test5.log"), File("witness/rolling/sbr-test4.log"))); } } /** * Same as testBasic but also with GZ compression. */ void test6() { PatternLayoutPtr layout = new PatternLayout(LOG4CXX_STR("%m\n")); RollingFileAppenderPtr rfa = new RollingFileAppender(); rfa->setAppend(false); rfa->setLayout(layout); FixedWindowRollingPolicyPtr fwrp = new FixedWindowRollingPolicy(); SizeBasedTriggeringPolicyPtr sbtp = new SizeBasedTriggeringPolicy(); sbtp->setMaxFileSize(100); fwrp->setMinIndex(0); rfa->setFile(LOG4CXX_STR("output/sbr-test6.log")); fwrp->setFileNamePattern(LOG4CXX_STR("output/sbr-test6.%i.zip")); Pool p; fwrp->activateOptions(p); rfa->setRollingPolicy(fwrp); rfa->setTriggeringPolicy(sbtp); rfa->activateOptions(p); root->addAppender(rfa); common(logger, 100); LOGUNIT_ASSERT_EQUAL(true, File("output/sbr-test6.log").exists(p)); LOGUNIT_ASSERT_EQUAL(true, File("output/sbr-test6.0.zip").exists(p)); LOGUNIT_ASSERT_EQUAL(true, File("output/sbr-test6.1.zip").exists(p)); LOGUNIT_ASSERT_EQUAL(true, Compare::compare(File("output/sbr-test6.log"), File("witness/rolling/sbr-test3.log"))); } }; LOGUNIT_TEST_SUITE_REGISTRATION(SizeBasedRollingTest); apache-log4cxx-0.10.0/src/test/cpp/rolling/manualrollingtest.cpp100644 0 0 23450 10774263245 22032 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "../util/compare.h" #include "../insertwide.h" #include "../logunit.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::xml; using namespace log4cxx::filter; using namespace log4cxx::helpers; using namespace log4cxx::rolling; /** * Tests of explicit manual rolling of RollingFileAppenders. * * * */ LOGUNIT_CLASS(ManualRollingTest) { LOGUNIT_TEST_SUITE(ManualRollingTest); LOGUNIT_TEST(test1); LOGUNIT_TEST(test2); // TODO: Compression not yet implemented // LOGUNIT_TEST(test3); LOGUNIT_TEST(test4); LOGUNIT_TEST(test5); LOGUNIT_TEST_SUITE_END(); LoggerPtr root; LoggerPtr logger; public: void setUp() { logger = Logger::getLogger("org.apache.log4j.rolling.ManualRollingTest"); root = Logger::getRootLogger(); } void tearDown() { LogManager::shutdown(); } void common(RollingFileAppenderPtr& rfa, Pool& pool, LoggerPtr& logger1) { char msg[] = { 'H', 'e', 'l', 'l', 'o', '-', '-', '-', 'N', 0 }; // Write exactly 10 bytes with each log for (int i = 0; i < 25; i++) { if (i < 10) { msg[8] = '0' + i; } else if (i < 100) { int digit = i % 10; if (digit == 0) { rfa->rollover(pool); } msg[7] = '0' + i / 10; msg[8] = '0' + digit; } LOG4CXX_DEBUG(logger1, msg); } } /** * Tests that the lack of an explicit active file will use the * low index as the active file. * */ void test1() { PatternLayoutPtr layout = new PatternLayout(LOG4CXX_STR("%m\n")); RollingFileAppenderPtr rfa = new RollingFileAppender(); rfa->setName(LOG4CXX_STR("ROLLING")); rfa->setAppend(false); rfa->setLayout(layout); FixedWindowRollingPolicyPtr swrp = new FixedWindowRollingPolicy(); swrp->setMinIndex(0); swrp->setFileNamePattern(LOG4CXX_STR("output/manual-test1.%i")); Pool p; swrp->activateOptions(p); rfa->setRollingPolicy(swrp); rfa->activateOptions(p); root->addAppender(rfa); common(rfa, p, logger); LOGUNIT_ASSERT_EQUAL(true, File("output/manual-test1.0").exists(p)); LOGUNIT_ASSERT_EQUAL(true, File("output/manual-test1.1").exists(p)); LOGUNIT_ASSERT_EQUAL(true, File("output/manual-test1.2").exists(p)); LOGUNIT_ASSERT_EQUAL(true, Compare::compare(File("output/manual-test1.0"), File("witness/rolling/sbr-test2.log"))); LOGUNIT_ASSERT_EQUAL(true, Compare::compare(File("output/manual-test1.1"), File("witness/rolling/sbr-test2.0"))); LOGUNIT_ASSERT_EQUAL(true, Compare::compare(File("output/manual-test1.2"), File("witness/rolling/sbr-test2.1"))); } /** * Test basic rolling functionality with explicit setting of FileAppender.file. */ void test2() { PatternLayoutPtr layout = new PatternLayout(LOG4CXX_STR("%m\n")); RollingFileAppenderPtr rfa = new RollingFileAppender(); rfa->setName(LOG4CXX_STR("ROLLING")); rfa->setAppend(false); rfa->setLayout(layout); rfa->setFile(LOG4CXX_STR("output/manual-test2.log")); Pool p; rfa->activateOptions(p); root->addAppender(rfa); common(rfa, p, logger); LOGUNIT_ASSERT_EQUAL(true, File("output/manual-test2.log").exists(p)); LOGUNIT_ASSERT_EQUAL(true, File("output/manual-test2.log.1").exists(p)); LOGUNIT_ASSERT_EQUAL(true, File("output/manual-test2.log.2").exists(p)); LOGUNIT_ASSERT_EQUAL(true, Compare::compare(File("output/manual-test2.log"), File("witness/rolling/sbr-test2.log"))); LOGUNIT_ASSERT_EQUAL(true, Compare::compare(File("output/manual-test2.log.1"), File("witness/rolling/sbr-test2.0"))); LOGUNIT_ASSERT_EQUAL(true, Compare::compare(File("output/manual-test2.log.2"), File("witness/rolling/sbr-test2.1"))); } /** * Same as testBasic but also with GZ compression. */ void test3() { PatternLayoutPtr layout = new PatternLayout(LOG4CXX_STR("%m\n")); RollingFileAppenderPtr rfa = new RollingFileAppender(); rfa->setAppend(false); rfa->setLayout(layout); FixedWindowRollingPolicyPtr fwrp = new FixedWindowRollingPolicy(); fwrp->setMinIndex(0); rfa->setFile(LOG4CXX_STR("output/manual-test3.log")); fwrp->setFileNamePattern(LOG4CXX_STR("output/sbr-test3.%i.gz")); Pool p; fwrp->activateOptions(p); rfa->setRollingPolicy(fwrp); rfa->activateOptions(p); root->addAppender(rfa); common(rfa, p, logger); LOGUNIT_ASSERT_EQUAL(true, File("output/manual-test3.log").exists(p)); LOGUNIT_ASSERT_EQUAL(true, File("output/manual-test3.0.gz").exists(p)); LOGUNIT_ASSERT_EQUAL(true, File("output/manual-test3.1.gz").exists(p)); LOGUNIT_ASSERT_EQUAL(true, Compare::compare(File("output/manual-test3.log"), File("witness/rolling/sbr-test3.log"))); LOGUNIT_ASSERT_EQUAL(File("witness/rolling/sbr-test3.0.gz").length(p), File("output/manual-test3.0.gz").length(p)); LOGUNIT_ASSERT_EQUAL(File("witness/rolling/sbr-test3.1.gz").length(p), File("output/manual-test3.1.gz").length(p)); } /** * Test basic rolling functionality with bogus path in file name pattern. */ void test4() { PatternLayoutPtr layout = new PatternLayout(LOG4CXX_STR("%m\n")); RollingFileAppenderPtr rfa = new RollingFileAppender(); rfa->setName(LOG4CXX_STR("ROLLING")); rfa->setAppend(false); rfa->setLayout(layout); rfa->setFile(LOG4CXX_STR("output/manual-test4.log")); FixedWindowRollingPolicyPtr swrp = new FixedWindowRollingPolicy(); swrp->setMinIndex(0); // // test4 directory should not exists. Should cause all rollover attempts to fail. // swrp->setFileNamePattern(LOG4CXX_STR("output/test4/manual-test4.%i")); Pool p; swrp->activateOptions(p); rfa->setRollingPolicy(swrp); rfa->activateOptions(p); root->addAppender(rfa); common(rfa, p, logger); LOGUNIT_ASSERT_EQUAL(true, File("output/manual-test4.log").exists(p)); LOGUNIT_ASSERT_EQUAL(true, Compare::compare(File("output/manual-test4.log"), File("witness/rolling/sbr-test4.log"))); } /** * Checking handling of rename failures due to other access * to the indexed files. */ void test5() { PatternLayoutPtr layout = new PatternLayout(LOG4CXX_STR("%m\n")); RollingFileAppenderPtr rfa = new RollingFileAppender(); rfa->setName(LOG4CXX_STR("ROLLING")); rfa->setAppend(false); rfa->setLayout(layout); rfa->setFile(LOG4CXX_STR("output/manual-test5.log")); FixedWindowRollingPolicyPtr swrp = new FixedWindowRollingPolicy(); swrp->setMinIndex(0); swrp->setFileNamePattern(LOG4CXX_STR("output/manual-test5.%i")); Pool p; swrp->activateOptions(p); rfa->setRollingPolicy(swrp); rfa->activateOptions(p); root->addAppender(rfa); // // put stray file about locked file FileOutputStream os1(LOG4CXX_STR("output/manual-test5.1"), false); os1.close(p); FileOutputStream os0(LOG4CXX_STR("output/manual-test5.0"), false); common(rfa, p, logger); os0.close(p); if (File("output/manual-test5.3").exists(p)) { // // looks like platform where open files can be renamed // LOGUNIT_ASSERT_EQUAL(true, File("output/manual-test5.log").exists(p)); LOGUNIT_ASSERT_EQUAL(true, File("output/manual-test5.0").exists(p)); LOGUNIT_ASSERT_EQUAL(true, File("output/manual-test5.1").exists(p)); LOGUNIT_ASSERT_EQUAL(true, File("output/manual-test5.2").exists(p)); LOGUNIT_ASSERT_EQUAL(true, File("output/manual-test5.3").exists(p)); LOGUNIT_ASSERT_EQUAL(true, Compare::compare(File("output/manual-test5.log"), File("witness/rolling/sbr-test2.log"))); LOGUNIT_ASSERT_EQUAL(true, Compare::compare(File("output/manual-test5.0"), File("witness/rolling/sbr-test2.0"))); LOGUNIT_ASSERT_EQUAL(true, Compare::compare(File("output/manual-test5.1"), File("witness/rolling/sbr-test2.1"))); } else { // // rollover attempts should all fail // so initial log file should have all log content // open file should be unaffected // stray file should have only been moved one slot. LOGUNIT_ASSERT_EQUAL(true, File("output/manual-test5.log").exists(p)); LOGUNIT_ASSERT_EQUAL(true, File("output/manual-test5.0").exists(p)); LOGUNIT_ASSERT_EQUAL(true, File("output/manual-test5.2").exists(p)); LOGUNIT_ASSERT_EQUAL(true, Compare::compare(File("output/manual-test5.log"), File("witness/rolling/sbr-test4.log"))); } } }; LOGUNIT_TEST_SUITE_REGISTRATION(ManualRollingTest); apache-log4cxx-0.10.0/src/test/cpp/rolling/obsoleterollingfileappendertest.cpp100644 0 0 11171 10774263245 24745 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "../util/compare.h" #include "../insertwide.h" #include "../logunit.h" #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::xml; using namespace log4cxx::filter; using namespace log4cxx::helpers; /** * Tests the emulation of org.apache.log4j.RollingFileAppender * * * */ LOGUNIT_CLASS(ObsoleteRollingFileAppenderTest) { LOGUNIT_TEST_SUITE(ObsoleteRollingFileAppenderTest); LOGUNIT_TEST(test1); LOGUNIT_TEST(test2); LOGUNIT_TEST(testIsOptionHandler); LOGUNIT_TEST(testClassForName); LOGUNIT_TEST_SUITE_END(); public: void tearDown() { LogManager::shutdown(); } /** * Test basic rolling functionality. */ void test1() { PropertyConfigurator::configure(File("input/rolling/obsoleteRFA1.properties")); char msg[] = { 'H', 'e', 'l', 'l', 'o', '-', '-', '-', '?', 0}; LoggerPtr logger(Logger::getLogger("org.apache.logj4.ObsoleteRollingFileAppenderTest")); // Write exactly 10 bytes with each log for (int i = 0; i < 25; i++) { apr_sleep(100000); if (i < 10) { msg[8] = (char) ('0' + i); LOG4CXX_DEBUG(logger, msg); } else if (i < 100) { msg[7] = (char) ('0' + i / 10); msg[8] = (char) ('0' + i % 10); LOG4CXX_DEBUG(logger, msg); } } Pool p; LOGUNIT_ASSERT_EQUAL(true, File("output/obsoleteRFA-test1.log").exists(p)); LOGUNIT_ASSERT_EQUAL(true, File("output/obsoleteRFA-test1.log.1").exists(p)); } /** * Test basic rolling functionality. * @deprecated Class under test is deprecated. */ void test2() { PatternLayoutPtr layout(new PatternLayout(LOG4CXX_STR("%m\n"))); log4cxx::RollingFileAppenderPtr rfa( new log4cxx::RollingFileAppender()); rfa->setName(LOG4CXX_STR("ROLLING")); rfa->setLayout(layout); rfa->setOption(LOG4CXX_STR("append"), LOG4CXX_STR("false")); rfa->setMaximumFileSize(100); rfa->setFile(LOG4CXX_STR("output/obsoleteRFA-test2.log")); Pool p; rfa->activateOptions(p); LoggerPtr root(Logger::getRootLogger()); root->addAppender(rfa); char msg[] = { 'H', 'e', 'l', 'l', 'o', '-', '-', '-', '?', 0}; LoggerPtr logger(Logger::getLogger("org.apache.logj4.ObsoleteRollingFileAppenderTest")); // Write exactly 10 bytes with each log for (int i = 0; i < 25; i++) { apr_sleep(100000); if (i < 10) { msg[8] = (char) ('0' + i); LOG4CXX_DEBUG(logger, msg); } else if (i < 100) { msg[7] = (char) ('0' + i / 10); msg[8] = (char) ('0' + i % 10); LOG4CXX_DEBUG(logger, msg); } } LOGUNIT_ASSERT_EQUAL(true, File("output/obsoleteRFA-test2.log").exists(p)); LOGUNIT_ASSERT_EQUAL(true, File("output/obsoleteRFA-test2.log.1").exists(p)); } /** * Tests if class is declared to support the OptionHandler interface. * See LOGCXX-136. */ void testIsOptionHandler() { RollingFileAppenderPtr rfa(new RollingFileAppender()); LOGUNIT_ASSERT_EQUAL(true, rfa->instanceof(log4cxx::spi::OptionHandler::getStaticClass())); } void testClassForName() { LogString className(LOG4CXX_STR("org.apache.log4j.RollingFileAppender")); const Class& myclass = Class::forName(className); LOGUNIT_ASSERT_EQUAL(className, LogString(myclass.getName())); } }; LOGUNIT_TEST_SUITE_REGISTRATION(ObsoleteRollingFileAppenderTest); apache-log4cxx-0.10.0/src/test/cpp/rolling/timebasedrollingtest.cpp100644 0 0 33416 10774263245 22515 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include #include #include #include "../util/compare.h" #include "../logunit.h" #include #ifndef INT64_C #define INT64_C(x) x ## LL #endif #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::rolling; /** * A rather exhaustive set of tests. Tests include leaving the ActiveFileName * argument blank, or setting it, with and without compression, and tests * with or without stopping/restarting the RollingFileAppender. * * The regression tests log a few times using a RollingFileAppender. Then, * they predict the names of the files which sould be generated and compare * them with witness files. * *
         Compression    ActiveFileName  Stop/Restart
 Test1      NO              BLANK          NO
 Test2      NO              BLANK          YES
 Test3      YES             BLANK          NO
 Test4      NO                SET          YES
 Test5      NO                SET          NO
 Test6      YES               SET          NO
 * 
* */ LOGUNIT_CLASS(TimeBasedRollingTest) { LOGUNIT_TEST_SUITE(TimeBasedRollingTest); LOGUNIT_TEST(test1); LOGUNIT_TEST(test2); LOGUNIT_TEST(test3); LOGUNIT_TEST(test4); LOGUNIT_TEST(test5); LOGUNIT_TEST(test6); LOGUNIT_TEST_SUITE_END(); static LoggerPtr logger; public: void setUp() { LoggerPtr root(Logger::getRootLogger()); root->addAppender( new ConsoleAppender(new PatternLayout( LOG4CXX_STR("%d{ABSOLUTE} [%t] %level %c{2}#%M:%L - %m%n")))); } void tearDown() { LogManager::shutdown(); } /** * Test rolling without compression, activeFileName left blank, no stop/start */ void test1() { PatternLayoutPtr layout(new PatternLayout(LOG4CXX_STR("%c{1} - %m%n"))); RollingFileAppenderPtr rfa(new RollingFileAppender()); rfa->setLayout(layout); LogString datePattern(LOG4CXX_STR("yyyy-MM-dd_HH_mm_ss")); TimeBasedRollingPolicyPtr tbrp(new TimeBasedRollingPolicy()); tbrp->setFileNamePattern(LOG4CXX_STR("output/test1-%d{yyyy-MM-dd_HH_mm_ss}")); Pool p; tbrp->activateOptions(p); rfa->setRollingPolicy(tbrp); rfa->activateOptions(p); logger->addAppender(rfa); SimpleDateFormat sdf(datePattern); LogString filenames[4]; Pool pool; apr_time_t now = apr_time_now(); { for (int i = 0; i < 4; i++) { filenames[i] = LOG4CXX_STR("output/test1-"); sdf.format(filenames[i], now, p); now += APR_USEC_PER_SEC; } } std::cout << "Waiting until next second and 100 millis."; delayUntilNextSecond(100); std::cout << "Done waiting."; { for (int i = 0; i < 5; i++) { std::string message("Hello---"); message.append(pool.itoa(i)); LOG4CXX_DEBUG(logger, message); apr_sleep(APR_USEC_PER_SEC/2); } } for (int i = 0; i < 4; i++) { LogString witness(LOG4CXX_STR("witness/rolling/tbr-test1.")); StringHelper::toString(i, pool, witness); LOGUNIT_ASSERT(Compare::compare(filenames[i], File(witness))); } } /** * No compression, with stop/restart, activeFileName left blank */ void test2() { LogString datePattern(LOG4CXX_STR("yyyy-MM-dd_HH_mm_ss")); PatternLayoutPtr layout1(new PatternLayout(LOG4CXX_STR("%c{1} - %m%n"))); RollingFileAppenderPtr rfa1(new RollingFileAppender()); rfa1->setLayout(layout1); TimeBasedRollingPolicyPtr tbrp1(new TimeBasedRollingPolicy()); tbrp1->setFileNamePattern(LOG4CXX_STR("output/test2-%d{yyyy-MM-dd_HH_mm_ss}")); Pool pool; tbrp1->activateOptions(pool); rfa1->setRollingPolicy(tbrp1); rfa1->activateOptions(pool); logger->addAppender(rfa1); SimpleDateFormat sdf(datePattern); LogString filenames[4]; apr_time_t now = apr_time_now(); { for (int i = 0; i < 4; i++) { filenames[i] = LOG4CXX_STR("output/test2-"); sdf.format(filenames[i], now, pool); now += APR_USEC_PER_SEC; } } delayUntilNextSecond(100); { for (int i = 0; i <= 2; i++) { std::string message("Hello---"); message.append(pool.itoa(i)); LOG4CXX_DEBUG(logger, message); apr_sleep(APR_USEC_PER_SEC/2); } } logger->removeAppender(rfa1); rfa1->close(); PatternLayoutPtr layout2(new PatternLayout(LOG4CXX_STR("%c{1} - %m%n"))); RollingFileAppenderPtr rfa2 = new RollingFileAppender(); rfa2->setLayout(layout2); TimeBasedRollingPolicyPtr tbrp2 = new TimeBasedRollingPolicy(); tbrp2->setFileNamePattern(LOG4CXX_STR("output/test2-%d{yyyy-MM-dd_HH_mm_ss}")); tbrp2->activateOptions(pool); rfa2->setRollingPolicy(tbrp2); rfa2->activateOptions(pool); logger->addAppender(rfa2); { for (int i = 3; i <= 4; i++) { std::string message("Hello---"); message.append(pool.itoa(i)); LOG4CXX_DEBUG(logger, message); apr_sleep(APR_USEC_PER_SEC/2); } } for (int i = 0; i < 4; i++) { LogString witness(LOG4CXX_STR("witness/rolling/tbr-test2.")); StringHelper::toString(i, pool, witness); LOGUNIT_ASSERT(Compare::compare(filenames[i], File(witness))); } } /** * With compression, activeFileName left blank, no stop/restart */ void test3() { Pool p; PatternLayoutPtr layout = new PatternLayout(LOG4CXX_STR("%c{1} - %m%n")); RollingFileAppenderPtr rfa = new RollingFileAppender(); rfa->setAppend(false); rfa->setLayout(layout); LogString datePattern = LOG4CXX_STR("yyyy-MM-dd_HH_mm_ss"); TimeBasedRollingPolicyPtr tbrp = new TimeBasedRollingPolicy(); tbrp->setFileNamePattern(LogString(LOG4CXX_STR("output/test3-%d{")) + datePattern + LogString(LOG4CXX_STR("}.gz"))); tbrp->activateOptions(p); rfa->setRollingPolicy(tbrp); rfa->activateOptions(p); logger->addAppender(rfa); DateFormatPtr sdf = new SimpleDateFormat(datePattern); LogString filenames[4]; apr_time_t now = apr_time_now(); { for (int i = 0; i < 4; i++) { filenames[i] = LOG4CXX_STR("output/test3-"); sdf->format(filenames[i], now, p); filenames[i].append(LOG4CXX_STR(".gz")); now += APR_USEC_PER_SEC; } } filenames[3].resize(filenames[3].size() - 3); delayUntilNextSecond(100); { for (int i = 0; i < 5; i++) { std::string message("Hello---"); message.append(p.itoa(i)); LOG4CXX_DEBUG(logger, message); apr_sleep(APR_USEC_PER_SEC/2); } } LOGUNIT_ASSERT_EQUAL(true, File(filenames[0]).exists(p)); LOGUNIT_ASSERT_EQUAL(true, File(filenames[1]).exists(p)); LOGUNIT_ASSERT_EQUAL(true, File(filenames[2]).exists(p)); LOGUNIT_ASSERT_EQUAL(true, Compare::compare(File(filenames[3]), File(LOG4CXX_STR("witness/rolling/tbr-test3.3")))); } /** * Without compression, activeFileName set, with stop/restart */ void test4() { LogString datePattern = LOG4CXX_STR("yyyy-MM-dd_HH_mm_ss"); PatternLayoutPtr layout1 = new PatternLayout(LOG4CXX_STR("%c{1} - %m%n")); RollingFileAppenderPtr rfa1 = new RollingFileAppender(); rfa1->setLayout(layout1); Pool pool; TimeBasedRollingPolicyPtr tbrp1 = new TimeBasedRollingPolicy(); rfa1->setFile(LOG4CXX_STR("output/test4.log")); tbrp1->setFileNamePattern(LOG4CXX_STR("output/test4-%d{yyyy-MM-dd_HH_mm_ss}")); tbrp1->activateOptions(pool); rfa1->setRollingPolicy(tbrp1); rfa1->activateOptions(pool); logger->addAppender(rfa1); SimpleDateFormat sdf(datePattern); LogString filenames[4]; apr_time_t now = apr_time_now(); { for (int i = 0; i < 3; i++) { filenames[i] = LOG4CXX_STR("output/test4-"); sdf.format(filenames[i], now, pool); now += APR_USEC_PER_SEC; } } filenames[3] = LOG4CXX_STR("output/test4.log"); std::cout << "Waiting until next second and 100 millis."; delayUntilNextSecond(100); std::cout << "Done waiting."; { for (int i = 0; i <= 2; i++) { std::string message("Hello---"); message.append(pool.itoa(i)); LOG4CXX_DEBUG(logger, message); apr_sleep(APR_USEC_PER_SEC/2); } } logger->removeAppender(rfa1); rfa1->close(); PatternLayoutPtr layout2 = new PatternLayout(LOG4CXX_STR("%c{1} - %m%n")); RollingFileAppenderPtr rfa2 = new RollingFileAppender(); rfa2->setLayout(layout2); TimeBasedRollingPolicyPtr tbrp2 = new TimeBasedRollingPolicy(); tbrp2->setFileNamePattern(LOG4CXX_STR("output/test4-%d{yyyy-MM-dd_HH_mm_ss}")); rfa2->setFile(LOG4CXX_STR("output/test4.log")); tbrp2->activateOptions(pool); rfa2->setRollingPolicy(tbrp2); rfa2->activateOptions(pool); logger->addAppender(rfa2); { for (int i = 3; i <= 4; i++) { std::string message("Hello---"); message.append(pool.itoa(i)); LOG4CXX_DEBUG(logger, message); apr_sleep(APR_USEC_PER_SEC/2); } } for (int i = 0; i < 4; i++) { LogString witness(LOG4CXX_STR("witness/rolling/tbr-test4.")); StringHelper::toString(i, pool, witness); LOGUNIT_ASSERT(Compare::compare(filenames[i], File(witness))); } } /** * No compression, activeFileName set, without stop/restart */ void test5() { PatternLayoutPtr layout = new PatternLayout(LOG4CXX_STR("%c{1} - %m%n")); RollingFileAppenderPtr rfa = new RollingFileAppender(); rfa->setLayout(layout); LogString datePattern(LOG4CXX_STR("yyyy-MM-dd_HH_mm_ss")); TimeBasedRollingPolicyPtr tbrp = new TimeBasedRollingPolicy(); tbrp->setFileNamePattern(LOG4CXX_STR("output/test5-%d{yyyy-MM-dd_HH_mm_ss}")); rfa->setFile(LOG4CXX_STR("output/test5.log")); Pool pool; tbrp->activateOptions(pool); rfa->setRollingPolicy(tbrp); rfa->activateOptions(pool); logger->addAppender(rfa); SimpleDateFormat sdf(datePattern); LogString filenames[4]; apr_time_t now = apr_time_now(); { for (int i = 0; i < 3; i++) { filenames[i] = LOG4CXX_STR("output/test5-"); sdf.format(filenames[i], now, pool); now += APR_USEC_PER_SEC; } } filenames[3] = LOG4CXX_STR("output/test5.log"); std::cout << "Waiting until next second and 100 millis."; delayUntilNextSecond(100); std::cout << "Done waiting."; { for (int i = 0; i < 5; i++) { std::string message("Hello---"); message.append(pool.itoa(i)); LOG4CXX_DEBUG(logger, message); apr_sleep(APR_USEC_PER_SEC/2); } } for (int i = 0; i < 4; i++) { LogString witness(LOG4CXX_STR("witness/rolling/tbr-test5.")); StringHelper::toString(i, pool, witness); LOGUNIT_ASSERT(Compare::compare(filenames[i], File(witness))); } } /** * With compression, activeFileName set, no stop/restart, */ void test6() { Pool p; PatternLayoutPtr layout = new PatternLayout(LOG4CXX_STR("%c{1} - %m%n")); RollingFileAppenderPtr rfa = new RollingFileAppender(); rfa->setAppend(false); rfa->setLayout(layout); LogString datePattern = LOG4CXX_STR("yyyy-MM-dd_HH_mm_ss"); TimeBasedRollingPolicyPtr tbrp = new TimeBasedRollingPolicy(); tbrp->setFileNamePattern(LogString(LOG4CXX_STR("output/test6-%d{")) + datePattern + LogString(LOG4CXX_STR("}.gz"))); rfa->setFile(LOG4CXX_STR("output/test6.log")); tbrp->activateOptions(p); rfa->setRollingPolicy(tbrp); rfa->activateOptions(p); logger->addAppender(rfa); DateFormatPtr sdf = new SimpleDateFormat(datePattern); LogString filenames[4]; apr_time_t now = apr_time_now(); { for (int i = 0; i < 3; i++) { filenames[i] = LOG4CXX_STR("output/test6-"); sdf->format(filenames[i], now, p); filenames[i].append(LOG4CXX_STR(".gz")); now += APR_USEC_PER_SEC; } } filenames[3] = LOG4CXX_STR("output/test6.log"); delayUntilNextSecond(100); { for (int i = 0; i < 5; i++) { std::string message("Hello---"); message.append(p.itoa(i)); LOG4CXX_DEBUG(logger, message); apr_sleep(APR_USEC_PER_SEC/2); } } LOGUNIT_ASSERT_EQUAL(true, File(filenames[0]).exists(p)); LOGUNIT_ASSERT_EQUAL(true, File(filenames[1]).exists(p)); LOGUNIT_ASSERT_EQUAL(true, File(filenames[2]).exists(p)); LOGUNIT_ASSERT_EQUAL(true, Compare::compare(File(filenames[3]), File(LOG4CXX_STR("witness/rolling/tbr-test6.3")))); } void delayUntilNextSecond(int millis) { apr_time_t now = apr_time_now(); apr_time_t next = ((now / APR_USEC_PER_SEC) + 1) * APR_USEC_PER_SEC + millis * 1000L; apr_sleep(next - now); } void delayUntilNextMinute(int seconds) { apr_time_t now = apr_time_now(); apr_time_t next = ((now / APR_USEC_PER_SEC) + 1) * APR_USEC_PER_SEC + seconds * 1000000L; apr_sleep(next - now); } }; LoggerPtr TimeBasedRollingTest::logger(Logger::getLogger("org.apache.log4j.TimeBasedRollingTest")); LOGUNIT_TEST_SUITE_REGISTRATION(TimeBasedRollingTest); apache-log4cxx-0.10.0/src/test/cpp/rolling/obsoletedailyrollingfileappendertest.cpp100644 0 0 10144 10774263245 25767 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "../util/compare.h" #include "../insertwide.h" #include "../logunit.h" #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::rolling; using namespace log4cxx::xml; using namespace log4cxx::filter; using namespace log4cxx::helpers; /** * Tests the emulation of org.apache.log4j.DailyRollingFileAppender * * * */ LOGUNIT_CLASS(ObsoleteDailyRollingFileAppenderTest) { LOGUNIT_TEST_SUITE(ObsoleteDailyRollingFileAppenderTest); LOGUNIT_TEST(test1); LOGUNIT_TEST(test2); LOGUNIT_TEST_SUITE_END(); public: void tearDown() { LogManager::shutdown(); } /** * Test basic rolling functionality. */ void test1() { PropertyConfigurator::configure(File("input/rolling/obsoleteDRFA1.properties")); int preCount = getFileCount("output", LOG4CXX_STR("obsoleteDRFA-test1.log.")); LoggerPtr logger(Logger::getLogger("org.apache.log4j.ObsoleteDailyRollingFileAppenderTest")); char msg[11]; strcpy(msg, "Hello---??"); for (int i = 0; i < 25; i++) { apr_sleep(100000); msg[8] = (char) ('0' + (i / 10)); msg[9] = (char) ('0' + (i % 10)); LOG4CXX_DEBUG(logger, msg); } int postCount = getFileCount("output", LOG4CXX_STR("obsoleteDRFA-test1.log.")); LOGUNIT_ASSERT_EQUAL(true, postCount > preCount); } /** * Test basic rolling functionality. * @deprecated Class under test is deprecated. */ void test2() { PatternLayoutPtr layout(new PatternLayout(LOG4CXX_STR("%m%n"))); log4cxx::DailyRollingFileAppenderPtr rfa(new log4cxx::DailyRollingFileAppender()); rfa->setName(LOG4CXX_STR("ROLLING")); rfa->setLayout(layout); rfa->setAppend(false); rfa->setFile(LOG4CXX_STR("output/obsoleteDRFA-test2.log")); rfa->setDatePattern(LOG4CXX_STR("'.'yyyy-MM-dd-HH_mm_ss")); Pool p; rfa->activateOptions(p); LoggerPtr root(Logger::getRootLogger()); root->addAppender(rfa); LoggerPtr logger(Logger::getLogger("org.apache.log4j.ObsoleteDailyRollingAppenderTest")); int preCount = getFileCount("output", LOG4CXX_STR("obsoleteDRFA-test2.log.")); char msg[11]; strcpy(msg, "Hello---??"); for (int i = 0; i < 25; i++) { apr_sleep(100000); msg[8] = (char) ('0' + i / 10); msg[9] = (char) ('0' + i % 10); LOG4CXX_DEBUG(logger, msg); } int postCount = getFileCount("output", LOG4CXX_STR("obsoleteDRFA-test2.log.")); LOGUNIT_ASSERT_EQUAL(true, postCount > preCount); } private: static int getFileCount(const char* dir, const LogString& initial) { Pool p; std::vector files(File(dir).list(p)); int count = 0; for (size_t i = 0; i < files.size(); i++) { if (StringHelper::startsWith(files[i], initial)) { count++; } } return count; } }; LOGUNIT_TEST_SUITE_REGISTRATION(ObsoleteDailyRollingFileAppenderTest); apache-log4cxx-0.10.0/src/test/cpp/rolling/filterbasedrollingtest.cpp100644 0 0 10722 10774263245 23037 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "../util/compare.h" #include "../logunit.h" #include "../insertwide.h" #include #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::rolling; using namespace log4cxx::xml; using namespace log4cxx::filter; using namespace log4cxx::helpers; /** * * Tests of rolling file appender with a filter based triggering policy. * * * * */ LOGUNIT_CLASS(FilterBasedRollingTest) { LOGUNIT_TEST_SUITE(FilterBasedRollingTest); LOGUNIT_TEST(test1); LOGUNIT_TEST(test2); LOGUNIT_TEST_SUITE_END(); public: void tearDown() { LogManager::getLoggerRepository()->resetConfiguration(); } /** * Test basic rolling functionality using configuration file. */ void test1() { DOMConfigurator::configure( "./input/rolling/filter1.xml" /*, LogManager::getLoggerRepository() */); common(LOG4CXX_STR("output/filterBased-test1")); } /** * Test basic rolling functionality using explicit configuration. * @remarks Test fails when run immediately after test1. */ void test2() { LayoutPtr layout(new PatternLayout(LOG4CXX_STR("%m\n"))); RollingFileAppenderPtr rfa(new RollingFileAppender()); rfa->setName(LOG4CXX_STR("ROLLING")); rfa->setLayout(layout); FixedWindowRollingPolicyPtr swrp(new FixedWindowRollingPolicy()); FilterBasedTriggeringPolicyPtr fbtp(new FilterBasedTriggeringPolicy()); LevelRangeFilterPtr rf(new LevelRangeFilter()); rf->setLevelMin(Level::getInfo()); fbtp->addFilter(rf); Pool p; fbtp->activateOptions(p); swrp->setMinIndex(0); rfa->setFile(LOG4CXX_STR("output/filterBased-test2.log")); rfa->setAppend(false); swrp->setFileNamePattern(LOG4CXX_STR("output/filterBased-test2.%i")); swrp->activateOptions(p); rfa->setRollingPolicy(swrp); rfa->setTriggeringPolicy(fbtp); rfa->activateOptions(p); Logger::getRootLogger()->addAppender(rfa); Logger::getRootLogger()->setLevel(Level::getDebug()); common(LOG4CXX_STR("output/filterBased-test2")); } private: /** * Common aspects of test1 and test2 */ void common(const LogString& baseName) { LoggerPtr logger(Logger::getLogger("org.apache.log4j.rolling.FilterBasedRollingTest")); // Write exactly 10 bytes with each log for (int i = 0; i < 25; i++) { char msg[10]; #if defined(__STDC_LIB_EXT1__) || defined(__STDC_SECURE_LIB__) strcpy_s(msg, sizeof msg, "Hello---?"); #else strcpy(msg, "Hello---?"); #endif if (i < 10) { msg[8] = (char) ('0' + i); LOG4CXX_DEBUG(logger, msg); } else if (i < 100) { msg[7] = (char) ('0' + (i / 10)); msg[8] = (char) ('0' + (i % 10)); if ((i % 10) == 0) { LOG4CXX_WARN(logger, msg); } else { LOG4CXX_DEBUG(logger, msg); } } } // // test was constructed to mimic SizeBasedRollingTest.test2 // LOGUNIT_ASSERT_EQUAL(true, Compare::compare(baseName + LOG4CXX_STR(".log"), LogString(LOG4CXX_STR("witness/rolling/sbr-test2.log")))); LOGUNIT_ASSERT_EQUAL(true, Compare::compare(baseName + LOG4CXX_STR(".0"), LogString(LOG4CXX_STR("witness/rolling/sbr-test2.0")))); LOGUNIT_ASSERT_EQUAL(true, Compare::compare(baseName + LOG4CXX_STR(".1"), LogString(LOG4CXX_STR("witness/rolling/sbr-test2.1")))); } }; LOGUNIT_TEST_SUITE_REGISTRATION(FilterBasedRollingTest); apache-log4cxx-0.10.0/src/test/cpp/defaultinit/testcase3.cpp100644 0 0 3131 10774263245 21000 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include "../insertwide.h" #include "../logunit.h" using namespace log4cxx; LOGUNIT_CLASS(TestCase3) { LOGUNIT_TEST_SUITE(TestCase3); LOGUNIT_TEST(testProperties); LOGUNIT_TEST_SUITE_END(); public: void setUp() { } void tearDown() { LogManager::shutdown(); } void testProperties() { LoggerPtr root = Logger::getRootLogger(); LOG4CXX_DEBUG(root, "Hello, world"); bool rootIsConfigured = !root->getAllAppenders().empty(); LOGUNIT_ASSERT(rootIsConfigured); AppenderList list = root->getAllAppenders(); AppenderPtr appender = list.front(); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("D3"), appender->getName()); } }; LOGUNIT_TEST_SUITE_REGISTRATION_DISABLED(TestCase3) apache-log4cxx-0.10.0/src/test/cpp/defaultinit/testcase4.cpp100644 0 0 3321 10774263245 21002 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #define LOG4CXX_TEST 1 #include #include #include #include "../insertwide.h" #include "../logunit.h" using namespace log4cxx; LOGUNIT_CLASS(TestCase4) { LOGUNIT_TEST_SUITE(TestCase4); LOGUNIT_TEST(combinedTest); LOGUNIT_TEST_SUITE_END(); public: void setUp() { } void tearDown() { LogManager::shutdown(); } void combinedTest() { LoggerPtr root = Logger::getRootLogger(); LOG4CXX_DEBUG(root, "Hello, world"); bool rootIsConfigured = !root->getAllAppenders().empty(); LOGUNIT_ASSERT(rootIsConfigured); AppenderList list = root->getAllAppenders(); LOGUNIT_ASSERT_EQUAL((size_t) 1, list.size()); AppenderPtr appender = list.front(); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("D1"), appender->getName()); } }; LOGUNIT_TEST_SUITE_REGISTRATION_DISABLED(TestCase4) apache-log4cxx-0.10.0/src/test/cpp/defaultinit/testcase1.cpp100644 0 0 2616 10774263245 21005 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "../logunit.h" #include #include using namespace log4cxx; LOGUNIT_CLASS(TestCase1) { LOGUNIT_TEST_SUITE(TestCase1); LOGUNIT_TEST(noneTest); LOGUNIT_TEST_SUITE_END(); public: void setUp() { } void tearDown() { LogManager::shutdown(); } void noneTest() { LoggerPtr root = Logger::getRootLogger(); LOG4CXX_DEBUG(root, "Hello, world"); bool rootIsConfigured = !root->getAllAppenders().empty(); LOGUNIT_ASSERT(!rootIsConfigured); } }; LOGUNIT_TEST_SUITE_REGISTRATION_DISABLED(TestCase1) apache-log4cxx-0.10.0/src/test/cpp/defaultinit/testcase2.cpp100644 0 0 3223 10774263245 21001 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #define LOG4CXX_TEST 1 #include #include #include #include "../insertwide.h" #include "../logunit.h" using namespace log4cxx; LOGUNIT_CLASS(TestCase2) { LOGUNIT_TEST_SUITE(TestCase2); LOGUNIT_TEST(xmlTest); LOGUNIT_TEST_SUITE_END(); public: void setUp() { } void tearDown() { LogManager::shutdown(); } void xmlTest() { LoggerPtr root = Logger::getRootLogger(); LOG4CXX_DEBUG(root, "Hello, world"); bool rootIsConfigured = !root->getAllAppenders().empty(); LOGUNIT_ASSERT(rootIsConfigured); AppenderList list = root->getAllAppenders(); AppenderPtr appender = list.front(); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("D1"), appender->getName()); } }; LOGUNIT_TEST_SUITE_REGISTRATION_DISABLED(TestCase2) apache-log4cxx-0.10.0/src/test/cpp/pattern/num343patternconverter.cpp100644 0 0 2760 10774263245 22635 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include "num343patternconverter.h" using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::pattern; IMPLEMENT_LOG4CXX_OBJECT(Num343PatternConverter) Num343PatternConverter::Num343PatternConverter() : LoggingEventPatternConverter(LOG4CXX_STR("Num343"), LOG4CXX_STR("num343")) { } PatternConverterPtr Num343PatternConverter::newInstance( const std::vector&) { return new Num343PatternConverter(); } void Num343PatternConverter::format( const spi::LoggingEventPtr&, LogString& sbuf, Pool&) const { sbuf.append(LOG4CXX_STR("343")); } apache-log4cxx-0.10.0/src/test/cpp/pattern/num343patternconverter.h100644 0 0 2573 10774263245 22304 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include namespace log4cxx { namespace pattern { class Num343PatternConverter : public LoggingEventPatternConverter { public: DECLARE_LOG4CXX_OBJECT(Num343PatternConverter) Num343PatternConverter(); static PatternConverterPtr newInstance( const std::vector& options); protected: void format( const log4cxx::spi::LoggingEventPtr& event, LogString& toAppendTo, log4cxx::helpers::Pool& pool) const; }; } } apache-log4cxx-0.10.0/src/test/cpp/pattern/patternparsertestcase.cpp100644 0 0 17436 10774263245 22732 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include "num343patternconverter.h" #include "../testchar.h" #include "../insertwide.h" #include "../logunit.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::spi; using namespace log4cxx::pattern; #define RULES_PUT(spec, cls) \ map.insert(PatternMap::value_type(LOG4CXX_STR(spec), (PatternConstructor) cls ::newInstance)) LOGUNIT_CLASS(PatternParserTestCase) { LOGUNIT_TEST_SUITE(PatternParserTestCase); LOGUNIT_TEST(testNewWord); LOGUNIT_TEST(testNewWord2); LOGUNIT_TEST(testBogusWord1); LOGUNIT_TEST(testBogusWord2); LOGUNIT_TEST(testBasic1); LOGUNIT_TEST(testBasic2); LOGUNIT_TEST(testMultiOption); LOGUNIT_TEST_SUITE_END(); LoggingEventPtr event; public: void setUp() { event = new LoggingEvent( LOG4CXX_STR("org.foobar"), Level::getInfo(), LOG4CXX_STR("msg 1"), LOG4CXX_LOCATION); } void tearDown() { } PatternMap getFormatSpecifiers() { PatternMap map; RULES_PUT("c", LoggerPatternConverter); RULES_PUT("logger", LoggerPatternConverter); RULES_PUT("C", ClassNamePatternConverter); RULES_PUT("class", ClassNamePatternConverter); RULES_PUT("d", DatePatternConverter); RULES_PUT("date", DatePatternConverter); RULES_PUT("F", FileLocationPatternConverter); RULES_PUT("file", FileLocationPatternConverter); RULES_PUT("l", FullLocationPatternConverter); RULES_PUT("L", LineLocationPatternConverter); RULES_PUT("line", LineLocationPatternConverter); RULES_PUT("m", MessagePatternConverter); RULES_PUT("message", MessagePatternConverter); RULES_PUT("n", LineSeparatorPatternConverter); RULES_PUT("M", MethodLocationPatternConverter); RULES_PUT("method", MethodLocationPatternConverter); RULES_PUT("p", LevelPatternConverter); RULES_PUT("level", LevelPatternConverter); RULES_PUT("r", RelativeTimePatternConverter); RULES_PUT("relative", RelativeTimePatternConverter); RULES_PUT("t", ThreadPatternConverter); RULES_PUT("thread", ThreadPatternConverter); RULES_PUT("x", NDCPatternConverter); RULES_PUT("ndc", NDCPatternConverter); RULES_PUT("X", PropertiesPatternConverter); RULES_PUT("properties", PropertiesPatternConverter); RULES_PUT("throwable", ThrowableInformationPatternConverter); return map; } void assertFormattedEquals(const LogString& pattern, const PatternMap& patternMap, const LogString& expected) { std::vector converters; std::vector fields; PatternParser::parse(pattern, converters, fields, patternMap); Pool p; LogString actual; std::vector::const_iterator fieldIter = fields.begin(); for(std::vector::const_iterator converterIter = converters.begin(); converterIter != converters.end(); converterIter++, fieldIter++) { int fieldStart = actual.length(); (*converterIter)->format(event, actual, p); (*fieldIter)->format(fieldStart, actual); } LOGUNIT_ASSERT_EQUAL(expected, actual); } void testNewWord() { PatternMap testRules(getFormatSpecifiers()); testRules.insert( PatternMap::value_type(LOG4CXX_STR("z343"), (PatternConstructor) Num343PatternConverter::newInstance)); assertFormattedEquals(LOG4CXX_STR("%z343"), testRules, LOG4CXX_STR("343")); } /* Test whether words starting with the letter 'n' are treated differently, * which was previously the case by mistake. */ void testNewWord2() { PatternMap testRules(getFormatSpecifiers()); testRules.insert( PatternMap::value_type(LOG4CXX_STR("n343"), (PatternConstructor) Num343PatternConverter::newInstance)); assertFormattedEquals(LOG4CXX_STR("%n343"), testRules, LOG4CXX_STR("343")); } void testBogusWord1() { assertFormattedEquals(LOG4CXX_STR("%, foobar"), getFormatSpecifiers(), LOG4CXX_STR("%, foobar")); } void testBogusWord2() { assertFormattedEquals(LOG4CXX_STR("xyz %, foobar"), getFormatSpecifiers(), LOG4CXX_STR("xyz %, foobar")); } void testBasic1() { assertFormattedEquals(LOG4CXX_STR("hello %-5level - %m%n"), getFormatSpecifiers(), LogString(LOG4CXX_STR("hello INFO - msg 1")) + LOG4CXX_EOL); } void testBasic2() { Pool pool; RelativeTimeDateFormat relativeFormat; LogString expected; relativeFormat.format(expected, event->getTimeStamp(), pool); expected.append(LOG4CXX_STR(" INFO [")); expected.append(event->getThreadName()); expected.append(LOG4CXX_STR("] org.foobar - msg 1")); expected.append(LOG4CXX_EOL); assertFormattedEquals(LOG4CXX_STR("%relative %-5level [%thread] %logger - %m%n"), getFormatSpecifiers(), expected); } void testMultiOption() { Pool pool; SimpleDateFormat dateFormat(LOG4CXX_STR("HH:mm:ss")); LogString localTime; dateFormat.format(localTime, event->getTimeStamp(), pool); dateFormat.setTimeZone(TimeZone::getGMT()); LogString utcTime; dateFormat.format(utcTime, event->getTimeStamp(), pool); LogString expected(utcTime); expected.append(1, LOG4CXX_STR(' ')); expected.append(localTime); expected.append(LOG4CXX_STR(" org.foobar - msg 1")); assertFormattedEquals(LOG4CXX_STR("%d{HH:mm:ss}{GMT} %d{HH:mm:ss} %c - %m"), getFormatSpecifiers(), expected); } }; // // See bug LOGCXX-204 // #if !defined(_MSC_VER) || _MSC_VER > 1200 LOGUNIT_TEST_SUITE_REGISTRATION(PatternParserTestCase); #endif apache-log4cxx-0.10.0/src/test/cpp/nt/nteventlogappendertestcase.cpp100644 0 0 7026 10774263250 22656 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_WIN32) && !defined(_WIN32_WCE) #include #include "../appenderskeletontestcase.h" #include "windows.h" #include #include #include #include "../insertwide.h" #include "../logunit.h" #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::nt; using namespace log4cxx::spi; /** Unit tests of log4cxx::nt::NTEventLogAppender */ class NTEventLogAppenderTestCase : public AppenderSkeletonTestCase { LOGUNIT_TEST_SUITE(NTEventLogAppenderTestCase); // // tests inherited from AppenderSkeletonTestCase // LOGUNIT_TEST(testDefaultThreshold); LOGUNIT_TEST(testSetOptionThreshold); LOGUNIT_TEST(testHelloWorld); LOGUNIT_TEST_SUITE_END(); public: AppenderSkeleton* createAppenderSkeleton() const { return new log4cxx::nt::NTEventLogAppender(); } void testHelloWorld() { DWORD expectedId = 1; HANDLE hEventLog = ::OpenEventLogW(NULL, L"log4cxx_test"); if (hEventLog != NULL) { BOOL stat = GetNumberOfEventLogRecords(hEventLog, &expectedId); DWORD oldest; if(stat) stat = GetOldestEventLogRecord(hEventLog, &oldest); CloseEventLog(hEventLog); LOGUNIT_ASSERT(stat); expectedId += oldest; } Pool p; Date now; DWORD expectedTime = now.getTime() / Date::getMicrosecondsPerSecond(); { NTEventLogAppenderPtr appender(new NTEventLogAppender()); appender->setSource(LOG4CXX_STR("log4cxx_test")); LayoutPtr layout(new PatternLayout(LOG4CXX_STR("%c - %m%n"))); appender->setLayout(layout); appender->activateOptions(p); LoggingEventPtr event(new LoggingEvent( LOG4CXX_STR("org.foobar"), Level::getInfo(), LOG4CXX_STR("Hello, World"), LOG4CXX_LOCATION)); appender->doAppend(event, p); } hEventLog = ::OpenEventLogW(NULL, L"log4cxx_test"); LOGUNIT_ASSERT(hEventLog != NULL); DWORD actualId; BOOL stat = GetNumberOfEventLogRecords(hEventLog, &actualId); DWORD oldest; if (stat) stat = GetOldestEventLogRecord(hEventLog, &oldest); actualId += oldest; actualId--; CloseEventLog(hEventLog); LOGUNIT_ASSERT(stat); LOGUNIT_ASSERT_EQUAL(expectedId, actualId); } }; LOGUNIT_TEST_SUITE_REGISTRATION(NTEventLogAppenderTestCase); #endif apache-log4cxx-0.10.0/src/test/cpp/net/socketappendertestcase.cpp100644 0 0 3042 10774263250 22120 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include "../appenderskeletontestcase.h" using namespace log4cxx; using namespace log4cxx::helpers; #if APR_HAS_THREADS /** Unit tests of log4cxx::SocketAppender */ class SocketAppenderTestCase : public AppenderSkeletonTestCase { LOGUNIT_TEST_SUITE(SocketAppenderTestCase); // // tests inherited from AppenderSkeletonTestCase // LOGUNIT_TEST(testDefaultThreshold); LOGUNIT_TEST(testSetOptionThreshold); LOGUNIT_TEST_SUITE_END(); public: AppenderSkeleton* createAppenderSkeleton() const { return new log4cxx::net::SocketAppender(); } }; LOGUNIT_TEST_SUITE_REGISTRATION(SocketAppenderTestCase); #endif apache-log4cxx-0.10.0/src/test/cpp/net/smtpappendertestcase.cpp100644 0 0 10041 10774263250 21630 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #define LOG4CXX_TEST 1 #include #if LOG4CXX_HAVE_SMTP #include #include "../appenderskeletontestcase.h" #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::net; using namespace log4cxx::xml; using namespace log4cxx::spi; namespace log4cxx { namespace net { class MockTriggeringEventEvaluator : public virtual spi::TriggeringEventEvaluator, public virtual helpers::ObjectImpl { public: DECLARE_LOG4CXX_OBJECT(MockTriggeringEventEvaluator) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(MockTriggeringEventEvaluator) LOG4CXX_CAST_ENTRY(spi::TriggeringEventEvaluator) END_LOG4CXX_CAST_MAP() MockTriggeringEventEvaluator() { } virtual bool isTriggeringEvent(const spi::LoggingEventPtr& event) { return true; } private: MockTriggeringEventEvaluator(const MockTriggeringEventEvaluator&); MockTriggeringEventEvaluator& operator=(const MockTriggeringEventEvaluator&); }; } } IMPLEMENT_LOG4CXX_OBJECT(MockTriggeringEventEvaluator) /** Unit tests of log4cxx::SocketAppender */ class SMTPAppenderTestCase : public AppenderSkeletonTestCase { LOGUNIT_TEST_SUITE(SMTPAppenderTestCase); // // tests inherited from AppenderSkeletonTestCase // LOGUNIT_TEST(testDefaultThreshold); LOGUNIT_TEST(testSetOptionThreshold); LOGUNIT_TEST(testTrigger); LOGUNIT_TEST(testInvalid); LOGUNIT_TEST_SUITE_END(); public: AppenderSkeleton* createAppenderSkeleton() const { return new log4cxx::net::SMTPAppender(); } void setUp() { } void tearDown() { LogManager::resetConfiguration(); } /** * Tests that triggeringPolicy element will set evaluator. */ void testTrigger() { DOMConfigurator::configure("input/xml/smtpAppender1.xml"); SMTPAppenderPtr appender(Logger::getRootLogger()->getAppender(LOG4CXX_STR("A1"))); TriggeringEventEvaluatorPtr evaluator(appender->getEvaluator()); LOGUNIT_ASSERT_EQUAL(true, evaluator->instanceof(MockTriggeringEventEvaluator::getStaticClass())); } void testInvalid() { SMTPAppenderPtr appender(new SMTPAppender()); appender->setSMTPHost(LOG4CXX_STR("smtp.invalid")); appender->setTo(LOG4CXX_STR("you@example.invalid")); appender->setFrom(LOG4CXX_STR("me@example.invalid")); appender->setLayout(new TTCCLayout()); Pool p; appender->activateOptions(p); LoggerPtr root(Logger::getRootLogger()); root->addAppender(appender); LOG4CXX_INFO(root, "Hello, World."); LOG4CXX_ERROR(root, "Sending Message"); } }; LOGUNIT_TEST_SUITE_REGISTRATION(SMTPAppenderTestCase); #endif apache-log4cxx-0.10.0/src/test/cpp/net/socketservertestcase.h100644 0 0 1704 10774263250 21300 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_NET_SOCKETSERVER_TESTCASE_H #define _LOG4CXX_NET_SOCKETSERVER_TESTCASE_H #define PORT 12345 #endif //_LOG4CXX_NET_SOCKETSERVER_TESTCASE_H apache-log4cxx-0.10.0/src/test/cpp/net/sockethubappendertestcase.cpp100644 0 0 5262 10774263250 22625 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include "../appenderskeletontestcase.h" #include #include using namespace log4cxx; using namespace log4cxx::net; using namespace log4cxx::helpers; #if APR_HAS_THREADS /** Unit tests of log4cxx::SocketHubAppender */ class SocketHubAppenderTestCase : public AppenderSkeletonTestCase { LOGUNIT_TEST_SUITE(SocketHubAppenderTestCase); // // tests inherited from AppenderSkeletonTestCase // LOGUNIT_TEST(testDefaultThreshold); LOGUNIT_TEST(testSetOptionThreshold); LOGUNIT_TEST(testActivateClose); LOGUNIT_TEST(testActivateSleepClose); LOGUNIT_TEST(testActivateWriteClose); LOGUNIT_TEST_SUITE_END(); public: AppenderSkeleton* createAppenderSkeleton() const { return new log4cxx::net::SocketHubAppender(); } void testActivateClose() { SocketHubAppenderPtr hubAppender(new SocketHubAppender()); Pool p; hubAppender->activateOptions(p); hubAppender->close(); } void testActivateSleepClose() { SocketHubAppenderPtr hubAppender(new SocketHubAppender()); Pool p; hubAppender->activateOptions(p); Thread::sleep(1000); hubAppender->close(); } void testActivateWriteClose() { SocketHubAppenderPtr hubAppender(new SocketHubAppender()); Pool p; hubAppender->activateOptions(p); LoggerPtr root(Logger::getRootLogger()); root->addAppender(hubAppender); for(int i = 0; i < 50; i++) { LOG4CXX_INFO(root, "Hello, World " << i); } hubAppender->close(); } }; LOGUNIT_TEST_SUITE_REGISTRATION(SocketHubAppenderTestCase); #endif apache-log4cxx-0.10.0/src/test/cpp/net/xmlsocketappendertestcase.cpp100644 0 0 3071 10774263250 22643 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include "../appenderskeletontestcase.h" using namespace log4cxx; using namespace log4cxx::helpers; #if APR_HAS_THREADS /** Unit tests of log4cxx::net::XMLSocketAppender */ class XMLSocketAppenderTestCase : public AppenderSkeletonTestCase { LOGUNIT_TEST_SUITE(XMLSocketAppenderTestCase); // // tests inherited from AppenderSkeletonTestCase // LOGUNIT_TEST(testDefaultThreshold); LOGUNIT_TEST(testSetOptionThreshold); LOGUNIT_TEST_SUITE_END(); public: AppenderSkeleton* createAppenderSkeleton() const { return new log4cxx::net::XMLSocketAppender(); } }; LOGUNIT_TEST_SUITE_REGISTRATION(XMLSocketAppenderTestCase); #endif apache-log4cxx-0.10.0/src/test/cpp/net/telnetappendertestcase.cpp100644 0 0 5705 10774263250 22133 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include "../appenderskeletontestcase.h" #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::net; #if APR_HAS_THREADS /** Unit tests of log4cxx::TelnetAppender */ class TelnetAppenderTestCase : public AppenderSkeletonTestCase { LOGUNIT_TEST_SUITE(TelnetAppenderTestCase); // // tests inherited from AppenderSkeletonTestCase // LOGUNIT_TEST(testDefaultThreshold); LOGUNIT_TEST(testSetOptionThreshold); LOGUNIT_TEST(testActivateClose); LOGUNIT_TEST(testActivateSleepClose); LOGUNIT_TEST(testActivateWriteClose); LOGUNIT_TEST_SUITE_END(); enum { TEST_PORT = 1723 }; public: AppenderSkeleton* createAppenderSkeleton() const { return new log4cxx::net::TelnetAppender(); } void testActivateClose() { TelnetAppenderPtr appender(new TelnetAppender()); appender->setLayout(new TTCCLayout()); appender->setPort(TEST_PORT); Pool p; appender->activateOptions(p); appender->close(); } void testActivateSleepClose() { TelnetAppenderPtr appender(new TelnetAppender()); appender->setLayout(new TTCCLayout()); appender->setPort(TEST_PORT); Pool p; appender->activateOptions(p); Thread::sleep(1000); appender->close(); } void testActivateWriteClose() { TelnetAppenderPtr appender(new TelnetAppender()); appender->setLayout(new TTCCLayout()); appender->setPort(TEST_PORT); Pool p; appender->activateOptions(p); LoggerPtr root(Logger::getRootLogger()); root->addAppender(appender); for (int i = 0; i < 50; i++) { LOG4CXX_INFO(root, "Hello, World " << i); } appender->close(); } }; LOGUNIT_TEST_SUITE_REGISTRATION(TelnetAppenderTestCase); #endif apache-log4cxx-0.10.0/src/test/cpp/net/socketservertestcase.cpp100644 0 0 42466 10774263251 21666 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include "socketservertestcase.h" #include "../util/compare.h" #include "../util/transformer.h" #include "../util/controlfilter.h" #include "../util/absolutedateandtimefilter.h" #include "../util/threadfilter.h" #include "../util/filenamefilter.h" #include #include #include #include #include #include "../testchar.h" #include "../logunit.h" #include //Define INT64_C for compilers that don't have it #if (!defined(INT64_C)) #define INT64_C(value) value ## LL #endif #if defined(WIN32) || defined(_WIN32) #include #endif using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::net; #define REGEX_STR(x) x // %5p %x [%t] %c %m%n // DEBUG T1 [thread] org.apache.log4j.net.SocketAppenderTestCase Message 1 #define PAT1 \ REGEX_STR("^(DEBUG| INFO| WARN|ERROR|FATAL|LETHAL) T1 \\[0x[0-9A-F]*]\\ ") \ REGEX_STR(".* Message [0-9]\\{1,2\\}") // DEBUG T2 [thread] patternlayouttest.cpp(?) Message 1 #define PAT2 \ REGEX_STR("^(DEBUG| INFO| WARN|ERROR|FATAL|LETHAL) T2 \\[0x[0-9A-F]*]\\ ") \ REGEX_STR(".*socketservertestcase.cpp\\([0-9]\\{1,4\\}\\) Message [0-9]\\{1,2\\}") // DEBUG T3 [thread] patternlayouttest.cpp(?) Message 1 #define PAT3 \ REGEX_STR("^(DEBUG| INFO| WARN|ERROR|FATAL|LETHAL) T3 \\[0x[0-9A-F]*]\\ ") \ REGEX_STR(".*socketservertestcase.cpp\\([0-9]\\{1,4\\}\\) Message [0-9]\\{1,2\\}") // DEBUG some T4 MDC-TEST4 [thread] SocketAppenderTestCase - Message 1 // DEBUG some T4 MDC-TEST4 [thread] SocketAppenderTestCase - Message 1 #define PAT4 \ REGEX_STR("^(DEBUG| INFO| WARN|ERROR|FATAL|LETHAL) some T4 MDC-TEST4 \\[0x[0-9A-F]*]\\") \ REGEX_STR(" (root|SocketServerTestCase) - Message [0-9]\\{1,2\\}") #define PAT5 \ REGEX_STR("^(DEBUG| INFO| WARN|ERROR|FATAL|LETHAL) some5 T5 MDC-TEST5 \\[0x[0-9A-F]*]\\") \ REGEX_STR(" (root|SocketServerTestCase) - Message [0-9]\\{1,2\\}") #define PAT6 \ REGEX_STR("^(DEBUG| INFO| WARN|ERROR|FATAL|LETHAL) some6 T6 client-test6 MDC-TEST6") \ REGEX_STR(" \\[0x[0-9A-F]*]\\ (root|SocketServerTestCase) - Message [0-9]\\{1,2\\}") #define PAT7 \ REGEX_STR("^(DEBUG| INFO| WARN|ERROR|FATAL|LETHAL) some7 T7 client-test7 MDC-TEST7") \ REGEX_STR(" \\[0x[0-9A-F]*]\\ (root|SocketServerTestCase) - Message [0-9]\\{1,2\\}") // DEBUG some8 T8 shortSocketServer MDC-TEST7 [thread] SocketServerTestCase - Message 1 #define PAT8 \ REGEX_STR("^(DEBUG| INFO| WARN|ERROR|FATAL|LETHAL) some8 T8 shortSocketServer") \ REGEX_STR(" MDC-TEST8 \\[0x[0-9A-F]*]\\ (root|SocketServerTestCase) - Message [0-9]\\{1,2\\}") /** * This test checks receipt of SocketAppender messages by the ShortSocketServer * class from log4j. That class must be started externally to this class * for this test to succeed. */ LOGUNIT_CLASS(SocketServerTestCase) { LOGUNIT_TEST_SUITE(SocketServerTestCase); LOGUNIT_TEST(test1); LOGUNIT_TEST(test2); LOGUNIT_TEST(test3); LOGUNIT_TEST(test4); LOGUNIT_TEST(test5); LOGUNIT_TEST(test6); LOGUNIT_TEST(test7); LOGUNIT_TEST(test8); LOGUNIT_TEST_SUITE_END(); SocketAppenderPtr socketAppender; LoggerPtr logger; LoggerPtr root; class LineNumberFilter : public Filter { public: LineNumberFilter() { patterns.push_back(PatternReplacement("cpp:[0-9]*", "cpp:XXX")); } }; public: void setUp() { logger = Logger::getLogger(LOG4CXX_STR("org.apache.log4j.net.SocketServerTestCase")); root = Logger::getRootLogger(); } void tearDown() { socketAppender = 0; root->getLoggerRepository()->resetConfiguration(); logger = 0; root = 0; } /** The pattern on the server side: %5p %x [%t] %c %m%n. We are testing NDC functionality across the wire. */ void test1() { SocketAppenderPtr socketAppender1 = new SocketAppender(LOG4CXX_STR("localhost"), PORT); root->addAppender(socketAppender1); common("test1", LOG4CXX_STR("T1"), LOG4CXX_STR("key1"), LOG4CXX_STR("MDC-TEST1")); delay(1); ControlFilter cf; cf << PAT1; ThreadFilter threadFilter; std::vector filters; filters.push_back(&cf); filters.push_back(&threadFilter); try { Transformer::transform(TEMP, FILTERED, filters); } catch(UnexpectedFormatException& e) { std::cout << "UnexpectedFormatException :" << e.what() << std::endl; throw; } LOGUNIT_ASSERT(Compare::compare(FILTERED, LOG4CXX_FILE("witness/socketServer.1"))); } void test2() { SocketAppenderPtr socketAppender1 = new SocketAppender(LOG4CXX_STR("localhost"), PORT); root->addAppender(socketAppender1); common("test2", LOG4CXX_STR("T2"), LOG4CXX_STR("key2"), LOG4CXX_STR("MDC-TEST2")); delay(1); ControlFilter cf; cf << PAT2; ThreadFilter threadFilter; LineNumberFilter lineNumberFilter; LogString thisFile; FilenameFilter filenameFilter(__FILE__, "socketservertestcase.cpp"); std::vector filters; filters.push_back(&filenameFilter); filters.push_back(&cf); filters.push_back(&threadFilter); filters.push_back(&lineNumberFilter); try { Transformer::transform(TEMP, FILTERED, filters); } catch(UnexpectedFormatException& e) { std::cout << "UnexpectedFormatException :" << e.what() << std::endl; throw; } LOGUNIT_ASSERT(Compare::compare(FILTERED, LOG4CXX_FILE("witness/socketServer.2"))); } void test3() { SocketAppenderPtr socketAppender1 = new SocketAppender(LOG4CXX_STR("localhost"), PORT); root->addAppender(socketAppender1); common("test3", LOG4CXX_STR("T3"), LOG4CXX_STR("key3"), LOG4CXX_STR("MDC-TEST3")); delay(1); ControlFilter cf; cf << PAT3; ThreadFilter threadFilter; LineNumberFilter lineNumberFilter; LogString thisFile; FilenameFilter filenameFilter(__FILE__, "socketservertestcase.cpp"); std::vector filters; filters.push_back(&filenameFilter); filters.push_back(&cf); filters.push_back(&threadFilter); filters.push_back(&lineNumberFilter); try { Transformer::transform(TEMP, FILTERED, filters); } catch(UnexpectedFormatException& e) { std::cout << "UnexpectedFormatException :" << e.what() << std::endl; throw; } LOGUNIT_ASSERT(Compare::compare(FILTERED, LOG4CXX_FILE("witness/socketServer.3"))); } void test4() { SocketAppenderPtr socketAppender1 = new SocketAppender(LOG4CXX_STR("localhost"), PORT); root->addAppender(socketAppender1); NDC::push(LOG4CXX_TEST_STR("some")); common("test4", LOG4CXX_STR("T4"), LOG4CXX_STR("key4"), LOG4CXX_STR("MDC-TEST4")); NDC::pop(); delay(1); ControlFilter cf; cf << PAT4; ThreadFilter threadFilter; std::vector filters; filters.push_back(&cf); filters.push_back(&threadFilter); try { Transformer::transform(TEMP, FILTERED, filters); } catch(UnexpectedFormatException& e) { std::cout << "UnexpectedFormatException :" << e.what() << std::endl; throw; } LOGUNIT_ASSERT(Compare::compare(FILTERED, LOG4CXX_FILE("witness/socketServer.4"))); } void test5() { SocketAppenderPtr socketAppender1 = new SocketAppender(LOG4CXX_STR("localhost"), PORT); AsyncAppenderPtr asyncAppender = new AsyncAppender(); root->addAppender(socketAppender1); root->addAppender(asyncAppender); NDC::push(LOG4CXX_TEST_STR("some5")); common("test5", LOG4CXX_STR("T5"), LOG4CXX_STR("key5"), LOG4CXX_STR("MDC-TEST5")); NDC::pop(); delay(2); ControlFilter cf; cf << PAT5; ThreadFilter threadFilter; std::vector filters; filters.push_back(&cf); filters.push_back(&threadFilter); try { Transformer::transform(TEMP, FILTERED, filters); } catch(UnexpectedFormatException& e) { std::cout << "UnexpectedFormatException :" << e.what() << std::endl; throw; } LOGUNIT_ASSERT(Compare::compare(FILTERED, LOG4CXX_FILE("witness/socketServer.5"))); } void test6() { SocketAppenderPtr socketAppender1 = new SocketAppender(LOG4CXX_STR("localhost"), PORT); AsyncAppenderPtr asyncAppender = new AsyncAppender(); root->addAppender(socketAppender1); root->addAppender(asyncAppender); NDC::push(LOG4CXX_TEST_STR("some6")); MDC::put(LOG4CXX_TEST_STR("hostID"), LOG4CXX_TEST_STR("client-test6")); common("test6", LOG4CXX_STR("T6"), LOG4CXX_STR("key6"), LOG4CXX_STR("MDC-TEST6")); NDC::pop(); MDC::remove(LOG4CXX_TEST_STR("hostID")); delay(2); ControlFilter cf; cf << PAT6; ThreadFilter threadFilter; std::vector filters; filters.push_back(&cf); filters.push_back(&threadFilter); try { Transformer::transform(TEMP, FILTERED, filters); } catch(UnexpectedFormatException& e) { std::cout << "UnexpectedFormatException :" << e.what() << std::endl; throw; } LOGUNIT_ASSERT(Compare::compare(FILTERED, LOG4CXX_FILE("witness/socketServer.6"))); } void test7() { SocketAppenderPtr socketAppender1 = new SocketAppender(LOG4CXX_STR("localhost"), PORT); AsyncAppenderPtr asyncAppender = new AsyncAppender(); root->addAppender(socketAppender1); root->addAppender(asyncAppender); NDC::push(LOG4CXX_TEST_STR("some7")); MDC::put(LOG4CXX_TEST_STR("hostID"), LOG4CXX_TEST_STR("client-test7")); common("test7", LOG4CXX_STR("T7"), LOG4CXX_STR("key7"), LOG4CXX_STR("MDC-TEST7")); NDC::pop(); MDC::remove(LOG4CXX_TEST_STR("hostID")); delay(2); ControlFilter cf; cf << PAT7; ThreadFilter threadFilter; std::vector filters; filters.push_back(&cf); filters.push_back(&threadFilter); try { Transformer::transform(TEMP, FILTERED, filters); } catch(UnexpectedFormatException& e) { std::cout << "UnexpectedFormatException :" << e.what() << std::endl; throw; } LOGUNIT_ASSERT(Compare::compare(FILTERED, LOG4CXX_FILE("witness/socketServer.7"))); } void test8() { SocketAppenderPtr socketAppender1 = new SocketAppender(LOG4CXX_STR("localhost"), PORT); root->addAppender(socketAppender1); NDC::push(LOG4CXX_TEST_STR("some8")); common("test8", LOG4CXX_STR("T8"), LOG4CXX_STR("key8"), LOG4CXX_STR("MDC-TEST8")); NDC::pop(); delay(2); ControlFilter cf; cf << PAT8; ThreadFilter threadFilter; std::vector filters; filters.push_back(&cf); filters.push_back(&threadFilter); try { Transformer::transform(TEMP, FILTERED, filters); } catch(UnexpectedFormatException& e) { std::cout << "UnexpectedFormatException :" << e.what() << std::endl; throw; } LOGUNIT_ASSERT(Compare::compare(FILTERED, LOG4CXX_FILE("witness/socketServer.8"))); } void common(const std::string& testName, const LogString& dc, const LogString& key, const LogString& val) { int i = -1; NDC::push(dc); MDC::put(key, val); logger->setLevel(Level::getDebug()); root->setLevel(Level::getDebug()); LOG4CXX_TRACE(logger, "Message " << i); i++; logger->setLevel(Level::getTrace()); root->setLevel(Level::getTrace()); LOG4CXX_TRACE(logger, "Message " << ++i); LOG4CXX_TRACE(root, "Message " << ++i); LOG4CXX_DEBUG(logger, "Message " << ++i); LOG4CXX_DEBUG(root, "Message " << ++i); LOG4CXX_INFO(logger, "Message " << ++i); LOG4CXX_WARN(logger, "Message " << ++i); LOG4CXX_FATAL(logger, "Message " << ++i); //5 std::string exceptionMsg("\njava.lang.Exception: Just testing\n" "\tat org.apache.log4j.net.SocketServerTestCase.common(SocketServerTestCase.java:XXX)\n" "\tat org.apache.log4j.net.SocketServerTestCase."); exceptionMsg.append(testName); exceptionMsg.append("(SocketServerTestCase.java:XXX)\n" "\tat junit.framework.TestCase.runTest(TestCase.java:XXX)\n" "\tat junit.framework.TestCase.runBare(TestCase.java:XXX)\n" "\tat junit.framework.TestResult$1.protect(TestResult.java:XXX)\n" "\tat junit.framework.TestResult.runProtected(TestResult.java:XXX)\n" "\tat junit.framework.TestResult.run(TestResult.java:XXX)\n" "\tat junit.framework.TestCase.run(TestCase.java:XXX)\n" "\tat junit.framework.TestSuite.runTest(TestSuite.java:XXX)\n" "\tat junit.framework.TestSuite.run(TestSuite.java:XXX)"); LOG4CXX_DEBUG(logger, "Message " << ++i << exceptionMsg); LOG4CXX_ERROR(root, "Message " << ++i << exceptionMsg); NDC::pop(); MDC::remove(key); } void delay(int secs) { apr_sleep(APR_USEC_PER_SEC * secs); } private: static const File TEMP; static const File FILTERED; }; const File SocketServerTestCase::TEMP("output/temp"); const File SocketServerTestCase::FILTERED("output/filtered"); LOGUNIT_TEST_SUITE_REGISTRATION_DISABLED(SocketServerTestCase) apache-log4cxx-0.10.0/src/test/cpp/net/syslogappendertestcase.cpp100644 0 0 3063 10774263251 22154 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include "../appenderskeletontestcase.h" using namespace log4cxx; using namespace log4cxx::helpers; /** Unit tests of log4cxx::SyslogAppender */ class SyslogAppenderTestCase : public AppenderSkeletonTestCase { LOGUNIT_TEST_SUITE(SyslogAppenderTestCase); // // tests inherited from AppenderSkeletonTestCase // LOGUNIT_TEST(testDefaultThreshold); LOGUNIT_TEST(testSetOptionThreshold); LOGUNIT_TEST_SUITE_END(); public: AppenderSkeleton* createAppenderSkeleton() const { return new log4cxx::net::SyslogAppender(); } }; LOGUNIT_TEST_SUITE_REGISTRATION(SyslogAppenderTestCase); apache-log4cxx-0.10.0/src/test/cpp/xml/xlevel.h100644 0 0 4046 10774263251 16341 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include namespace log4cxx { class XLevel : public Level { DECLARE_LOG4CXX_LEVEL(XLevel) public: enum { TRACE_INT = Level::DEBUG_INT - 1, LETHAL_INT = Level::FATAL_INT + 1 }; static LevelPtr getTrace(); static LevelPtr getLethal(); XLevel(int level, const LogString& name, int syslogEquivalent); /** Convert the string passed as argument to a level. If the conversion fails, then this method returns #DEBUG. */ static LevelPtr toLevelLS(const LogString& sArg); /** Convert an integer passed as argument to a level. If the conversion fails, then this method returns #DEBUG. */ static LevelPtr toLevel(int val); /** Convert an integer passed as argument to a level. If the conversion fails, then this method returns the specified default. */ static LevelPtr toLevel(int val, const LevelPtr& defaultLevel); /** Convert the string passed as argument to a level. If the conversion fails, then this method returns the value of defaultLevel. */ static LevelPtr toLevelLS(const LogString& sArg, const LevelPtr& defaultLevel); }; } apache-log4cxx-0.10.0/src/test/cpp/xml/customleveltestcase.cpp100644 0 0 6760 10774263251 21500 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #define LOG4CXX_TEST 1 #include #include "../logunit.h" #include #include #include #include #include #include "../util/compare.h" #include "xlevel.h" #include "../testchar.h" using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::xml; LOGUNIT_CLASS(CustomLevelTestCase) { LOGUNIT_TEST_SUITE(CustomLevelTestCase); LOGUNIT_TEST(test1); LOGUNIT_TEST(test2); LOGUNIT_TEST(test3); LOGUNIT_TEST(test4); LOGUNIT_TEST_SUITE_END(); LoggerPtr root; LoggerPtr logger; static const File TEMP; public: void setUp() { root = Logger::getRootLogger(); logger = Logger::getLogger(LOG4CXX_TEST_STR("xml.CustomLevelTestCase")); } void tearDown() { root->getLoggerRepository()->resetConfiguration(); LoggerPtr logger1 = Logger::getLogger(LOG4CXX_TEST_STR("LOG4J")); logger1->setAdditivity(false); logger1->addAppender( new ConsoleAppender(new PatternLayout(LOG4CXX_STR("log4j: %-22c{2} - %m%n")))); } void test1() { DOMConfigurator::configure(LOG4CXX_TEST_STR("input/xml/customLevel1.xml")); common(); const File witness("witness/customLevel.1"); LOGUNIT_ASSERT(Compare::compare(TEMP, witness)); } void test2() { DOMConfigurator::configure(LOG4CXX_TEST_STR("input/xml/customLevel2.xml")); common(); const File witness("witness/customLevel.2"); LOGUNIT_ASSERT(Compare::compare(TEMP, witness)); } void test3() { DOMConfigurator::configure(LOG4CXX_TEST_STR("input/xml/customLevel3.xml")); common(); const File witness("witness/customLevel.3"); LOGUNIT_ASSERT(Compare::compare(TEMP, witness)); } void test4() { DOMConfigurator::configure(LOG4CXX_TEST_STR("input/xml/customLevel4.xml")); common(); const File witness("witness/customLevel.4"); LOGUNIT_ASSERT(Compare::compare(TEMP, witness)); } void common() { int i = 0; std::ostringstream os; os << "Message " << ++i; LOG4CXX_DEBUG(logger, os.str()); os.str(""); os << "Message " << ++i; LOG4CXX_INFO(logger, os.str()); os.str(""); os << "Message " << ++i; LOG4CXX_WARN(logger, os.str()); os.str(""); os << "Message " << ++i; LOG4CXX_ERROR(logger, os.str()); os.str(""); os << "Message " << ++i; LOG4CXX_LOG(logger, XLevel::getTrace(), os.str()); } }; LOGUNIT_TEST_SUITE_REGISTRATION(CustomLevelTestCase); const File CustomLevelTestCase::TEMP("output/temp"); apache-log4cxx-0.10.0/src/test/cpp/xml/xmllayouttest.cpp100644 0 0 30541 10774263251 20352 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "../logunit.h" #include #include #include #include #include "../util/transformer.h" #include "../util/compare.h" #include "../util/xmltimestampfilter.h" #include "../util/xmllineattributefilter.h" #include "../util/xmlthreadfilter.h" #include "../util/filenamefilter.h" #include #include #include "../testchar.h" #include #include #include #include #include "../xml/xlevel.h" #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::xml; using namespace log4cxx::spi; #if defined(__LOG4CXX_FUNC__) #undef __LOG4CXX_FUNC__ #define __LOG4CXX_FUNC__ "X::X()" #else #error __LOG4CXX_FUNC__ expected to be defined #endif /** * Test for XMLLayout. * */ LOGUNIT_CLASS(XMLLayoutTest) { LOGUNIT_TEST_SUITE(XMLLayoutTest); LOGUNIT_TEST(testGetContentType); LOGUNIT_TEST(testIgnoresThrowable); LOGUNIT_TEST(testGetHeader); LOGUNIT_TEST(testGetFooter); LOGUNIT_TEST(testFormat); LOGUNIT_TEST(testFormatWithNDC); LOGUNIT_TEST(testGetSetLocationInfo); LOGUNIT_TEST(testActivateOptions); LOGUNIT_TEST(testProblemCharacters); LOGUNIT_TEST(testNDCWithCDATA); LOGUNIT_TEST_SUITE_END(); public: /** * Clear MDC and NDC before test. */ void setUp() { NDC::clear(); MDC::clear(); } /** * Clear MDC and NDC after test. */ void tearDown() { setUp(); } public: /** * Tests getContentType. */ void testGetContentType() { LogString expected(LOG4CXX_STR("text/plain")); LogString actual(XMLLayout().getContentType()); LOGUNIT_ASSERT(expected == actual); } /** * Tests ignoresThrowable. */ void testIgnoresThrowable() { LOGUNIT_ASSERT_EQUAL(false, XMLLayout().ignoresThrowable()); } /** * Tests getHeader. */ void testGetHeader() { Pool p; LogString header; XMLLayout().appendHeader(header, p); LOGUNIT_ASSERT_EQUAL((size_t) 0, header.size()); } /** * Tests getFooter. */ void testGetFooter() { Pool p; LogString footer; XMLLayout().appendFooter(footer, p); LOGUNIT_ASSERT_EQUAL((size_t) 0, footer.size()); } private: /** * Parses the string as the body of an XML document and returns the document element. * @param source source string. * @return document element. * @throws Exception if parser can not be constructed or source is not a valid XML document. */ static apr_xml_elem* parse(const LogString& source, Pool& p) { char backing[3000]; ByteBuffer buf(backing, sizeof(backing)); CharsetEncoderPtr encoder(CharsetEncoder::getUTF8Encoder()); LogString header(LOG4CXX_STR("")); LogString::const_iterator iter(header.begin()); encoder->encode(header, iter, buf); LOGUNIT_ASSERT(iter == header.end()); iter = source.begin(); encoder->encode(source, iter, buf); LOGUNIT_ASSERT(iter == source.end()); LogString footer(LOG4CXX_STR("")); iter = footer.begin(); encoder->encode(footer, iter, buf); buf.flip(); apr_pool_t* apr_pool = p.getAPRPool(); apr_xml_parser* parser = apr_xml_parser_create(apr_pool); LOGUNIT_ASSERT(parser != 0); apr_status_t stat = apr_xml_parser_feed(parser, buf.data(), buf.remaining()); LOGUNIT_ASSERT(stat == APR_SUCCESS); apr_xml_doc* doc = 0; stat = apr_xml_parser_done(parser, &doc); LOGUNIT_ASSERT(doc != 0); apr_xml_elem* eventSet = doc->root; LOGUNIT_ASSERT(eventSet != 0); apr_xml_elem* event = eventSet->first_child; LOGUNIT_ASSERT(event != 0); return event; } std::string getAttribute(apr_xml_elem* elem, const char* attrName) { for(apr_xml_attr* attr = elem->attr; attr != NULL; attr = attr->next) { if (strcmp(attr->name, attrName) == 0) { return attr->value; } } return ""; } std::string getText(apr_xml_elem* elem) { std::string dMessage; for(apr_text* t = elem->first_cdata.first; t != NULL; t = t->next) { dMessage.append(t->text); } return dMessage; } /** * Checks a log4j:event element against expectations. * @param element element, may not be null. * @param event event, may not be null. */ void checkEventElement( apr_xml_elem* element, LoggingEventPtr& event) { std::string tagName("event"); LOGUNIT_ASSERT_EQUAL(tagName, (std::string) element->name); LOG4CXX_ENCODE_CHAR(cLoggerName, event->getLoggerName()); LOGUNIT_ASSERT_EQUAL(cLoggerName, getAttribute(element, "logger")); LOG4CXX_ENCODE_CHAR(cLevelName, event->getLevel()->toString()); LOGUNIT_ASSERT_EQUAL(cLevelName, getAttribute(element, "level")); } /** * Checks a log4j:message element against expectations. * @param element element, may not be null. * @param message expected message. */ void checkMessageElement( apr_xml_elem* element, std::string message) { std::string tagName = "message"; LOGUNIT_ASSERT_EQUAL(tagName, (std::string) element->name); LOGUNIT_ASSERT_EQUAL(message, getText(element)); } /** * Checks a log4j:message element against expectations. * @param element element, may not be null. * @param message expected message. */ void checkNDCElement(apr_xml_elem* element, std::string message) { std::string tagName = "NDC"; LOGUNIT_ASSERT_EQUAL(tagName, (std::string) element->name); std::string dMessage = getText(element); LOGUNIT_ASSERT_EQUAL(message, dMessage); } /** * Checks a log4j:properties element against expectations. * @param element element, may not be null. * @param key key. * @param value value. */ void checkPropertiesElement( apr_xml_elem* element, std::string key, std::string value) { std::string tagName = "properties"; std::string dataTag = "data"; int childNodeCount = 0; LOGUNIT_ASSERT_EQUAL(tagName, (std::string) element->name); for(apr_xml_elem* child = element->first_child; child != NULL; child = child->next) { LOGUNIT_ASSERT_EQUAL(dataTag, (std::string) child->name); LOGUNIT_ASSERT_EQUAL(key, getAttribute(child, "name")); LOGUNIT_ASSERT_EQUAL(value, getAttribute(child, "value")); childNodeCount++; } LOGUNIT_ASSERT_EQUAL(1, childNodeCount); } public: /** * Tests formatted results. * @throws Exception if parser can not be constructed or source is not a valid XML document. */ void testFormat() { LogString logger = LOG4CXX_STR("org.apache.log4j.xml.XMLLayoutTest"); LoggingEventPtr event = new LoggingEvent( logger, Level::getInfo(), LOG4CXX_STR("Hello, World"), LOG4CXX_LOCATION); Pool p; XMLLayout layout; LogString result; layout.format(result, event, p); apr_xml_elem* parsedResult = parse(result, p); checkEventElement(parsedResult, event); int childElementCount = 0; for ( apr_xml_elem* node = parsedResult->first_child; node != NULL; node = node->next) { childElementCount++; checkMessageElement(node, "Hello, World"); } LOGUNIT_ASSERT_EQUAL(1, childElementCount); } /** * Tests formatted results with an exception. * @throws Exception if parser can not be constructed or source is not a valid XML document. */ void testFormatWithNDC() { LogString logger = LOG4CXX_STR("org.apache.log4j.xml.XMLLayoutTest"); NDC::push("NDC goes here"); LoggingEventPtr event = new LoggingEvent( logger, Level::getInfo(), LOG4CXX_STR("Hello, World"), LOG4CXX_LOCATION); Pool p; XMLLayout layout; LogString result; layout.format(result, event, p); NDC::pop(); apr_xml_elem* parsedResult = parse(result, p); checkEventElement(parsedResult, event); int childElementCount = 0; for ( apr_xml_elem* node = parsedResult->first_child; node != NULL; node = node->next) { childElementCount++; if (childElementCount == 1) { checkMessageElement(node, "Hello, World"); } else { checkNDCElement(node, "NDC goes here"); } } LOGUNIT_ASSERT_EQUAL(2, childElementCount); } /** * Tests getLocationInfo and setLocationInfo. */ void testGetSetLocationInfo() { XMLLayout layout; LOGUNIT_ASSERT_EQUAL(false, layout.getLocationInfo()); layout.setLocationInfo(true); LOGUNIT_ASSERT_EQUAL(true, layout.getLocationInfo()); layout.setLocationInfo(false); LOGUNIT_ASSERT_EQUAL(false, layout.getLocationInfo()); } /** * Tests activateOptions(). */ void testActivateOptions() { Pool p; XMLLayout layout; layout.activateOptions(p); } /** * Tests problematic characters in multiple fields. * @throws Exception if parser can not be constructed or source is not a valid XML document. */ void testProblemCharacters() { std::string problemName = "com.example.bar<>&\"'"; LogString problemNameLS = LOG4CXX_STR("com.example.bar<>&\"'"); LevelPtr level = new XLevel(6000, problemNameLS, 7); NDC::push(problemName); MDC::clear(); MDC::put(problemName, problemName); LoggingEventPtr event = new LoggingEvent(problemNameLS, level, problemNameLS, LOG4CXX_LOCATION); XMLLayout layout; layout.setProperties(true); Pool p; LogString result; layout.format(result, event, p); MDC::clear(); apr_xml_elem* parsedResult = parse(result, p); checkEventElement(parsedResult, event); int childElementCount = 0; for ( apr_xml_elem* node = parsedResult->first_child; node != NULL; node = node->next) { childElementCount++; switch(childElementCount) { case 1: checkMessageElement(node, problemName); break; case 2: checkNDCElement(node, problemName); break; case 3: checkPropertiesElement(node, problemName.c_str(), problemName.c_str()); break; default: break; } } LOGUNIT_ASSERT_EQUAL(3, childElementCount); } /** * Tests CDATA element within NDC content. See bug 37560. */ void testNDCWithCDATA() { LogString logger = LOG4CXX_STR("com.example.bar"); LevelPtr level = Level::getInfo(); std::string ndcMessage =""; NDC::push(ndcMessage); LoggingEventPtr event = new LoggingEvent( logger, level, LOG4CXX_STR("Hello, World"), LOG4CXX_LOCATION); XMLLayout layout; Pool p; LogString result; layout.format(result, event, p); NDC::clear(); apr_xml_elem* parsedResult = parse(result, p); int ndcCount = 0; for(apr_xml_elem* node = parsedResult->first_child; node != NULL; node = node->next) { if (strcmp(node->name, "NDC") == 0) { ndcCount++; LOGUNIT_ASSERT_EQUAL(ndcMessage, getText(node)); } } LOGUNIT_ASSERT_EQUAL(1, ndcCount); } }; LOGUNIT_TEST_SUITE_REGISTRATION(XMLLayoutTest); apache-log4cxx-0.10.0/src/test/cpp/xml/xlevel.cpp100644 0 0 4241 10774263251 16671 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "xlevel.h" #include using namespace log4cxx; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_LEVEL(XLevel) XLevel::XLevel(int level1, const LogString& name1, int syslogEquivalent1) : Level(level1, name1, syslogEquivalent1) { } LevelPtr XLevel::getTrace() { static const LevelPtr trace(new XLevel(XLevel::TRACE_INT, LOG4CXX_STR("TRACE"), 7)); return trace; } LevelPtr XLevel::getLethal() { static const LevelPtr lethal(new XLevel(XLevel::LETHAL_INT, LOG4CXX_STR("LETHAL"), 0)); return lethal; } LevelPtr XLevel::toLevelLS(const LogString& sArg) { return toLevelLS(sArg, getTrace()); } LevelPtr XLevel::toLevel(int val) { return toLevel(val, getTrace()); } LevelPtr XLevel::toLevel(int val, const LevelPtr& defaultLevel) { switch(val) { case TRACE_INT: return getTrace(); case LETHAL_INT: return getLethal(); default: return defaultLevel; } } LevelPtr XLevel::toLevelLS(const LogString& sArg, const LevelPtr& defaultLevel) { if (sArg.empty()) { return defaultLevel; } if (StringHelper::equalsIgnoreCase(sArg, LOG4CXX_STR("TRACE"), LOG4CXX_STR("trace"))) { return getTrace(); } if (StringHelper::equalsIgnoreCase(sArg, LOG4CXX_STR("LETHAL"), LOG4CXX_STR("lethal"))) { return getLethal(); } return Level::toLevel(sArg, defaultLevel); } apache-log4cxx-0.10.0/src/test/cpp/xml/xmllayouttestcase.cpp100644 0 0 30435 10774263251 21210 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "../logunit.h" #include #include #include #include #include "../util/transformer.h" #include "../util/compare.h" #include "../util/xmltimestampfilter.h" #include "../util/xmllineattributefilter.h" #include "../util/xmlthreadfilter.h" #include "../util/filenamefilter.h" #include #include #include "../testchar.h" #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::xml; #if defined(__LOG4CXX_FUNC__) #undef __LOG4CXX_FUNC__ #define __LOG4CXX_FUNC__ "X::X()" #else #error __LOG4CXX_FUNC__ expected to be defined #endif class X { public: X() { LoggerPtr logger = Logger::getLogger(LOG4CXX_TEST_STR("org.apache.log4j.xml.XMLLayoutTestCase$X")); LOG4CXX_INFO(logger, LOG4CXX_TEST_STR("in X() constructor")); } }; LOGUNIT_CLASS(XMLLayoutTestCase) { LOGUNIT_TEST_SUITE(XMLLayoutTestCase); LOGUNIT_TEST(basic); LOGUNIT_TEST(locationInfo); LOGUNIT_TEST(testCDATA); LOGUNIT_TEST(testNull); LOGUNIT_TEST(testMDC); LOGUNIT_TEST(testMDCEscaped); LOGUNIT_TEST_SUITE_END(); LoggerPtr root; LoggerPtr logger; public: void setUp() { root = Logger::getRootLogger(); root->setLevel(Level::getTrace()); logger = Logger::getLogger(LOG4CXX_TEST_STR("org.apache.log4j.xml.XMLLayoutTestCase")); logger->setLevel(Level::getTrace()); } void tearDown() { logger->getLoggerRepository()->resetConfiguration(); } void basic() { const LogString tempFileName(LOG4CXX_STR("output/temp.xmlLayout.1")); const File filteredFile("output/filtered.xmlLayout.1"); XMLLayoutPtr xmlLayout = new XMLLayout(); AppenderPtr appender(new FileAppender(xmlLayout, tempFileName, false)); root->addAppender(appender); common(); XMLTimestampFilter xmlTimestampFilter; XMLThreadFilter xmlThreadFilter; std::vector filters; filters.push_back(&xmlThreadFilter); filters.push_back(&xmlTimestampFilter); try { Transformer::transform(tempFileName, filteredFile, filters); } catch(UnexpectedFormatException& e) { std::cout << "UnexpectedFormatException :" << e.what() << std::endl; throw; } LOGUNIT_ASSERT(Compare::compare(filteredFile, LOG4CXX_FILE("witness/xmlLayout.1"))); } void locationInfo() { const LogString tempFileName(LOG4CXX_STR("output/temp.xmlLayout.2")); const File filteredFile("output/filtered.xmlLayout.2"); XMLLayoutPtr xmlLayout = new XMLLayout(); xmlLayout->setLocationInfo(true); root->addAppender(new FileAppender(xmlLayout, tempFileName, false)); common(); XMLTimestampFilter xmlTimestampFilter; XMLThreadFilter xmlThreadFilter; FilenameFilter xmlFilenameFilter(__FILE__, "XMLLayoutTestCase.java"); Filter line2XX("[23][0-9][0-9]", "X"); Filter line5X("5[0-9]", "X"); std::vector filters; filters.push_back(&xmlFilenameFilter); filters.push_back(&xmlThreadFilter); filters.push_back(&xmlTimestampFilter); filters.push_back(&line2XX); filters.push_back(&line5X); try { Transformer::transform(tempFileName, filteredFile, filters); } catch(UnexpectedFormatException& e) { std::cout << "UnexpectedFormatException :" << e.what() << std::endl; throw; } LOGUNIT_ASSERT(Compare::compare(filteredFile, LOG4CXX_FILE("witness/xmlLayout.2"))); } #undef __LOG4CXX_FUNC__ #define __LOG4CXX_FUNC__ "void XMLLayoutTestCase::testCDATA()" void testCDATA() { const LogString tempFileName(LOG4CXX_STR("output/temp.xmlLayout.3")); const File filteredFile("output/filtered.xmlLayout.3"); XMLLayoutPtr xmlLayout = new XMLLayout(); xmlLayout->setLocationInfo(true); FileAppenderPtr appender(new FileAppender(xmlLayout, tempFileName, false)); root->addAppender(appender); LOG4CXX_TRACE(logger, LOG4CXX_TEST_STR("Message with embedded hi]]>.")); LOG4CXX_DEBUG(logger, LOG4CXX_TEST_STR("Message with embedded hi]]>.")); XMLTimestampFilter xmlTimestampFilter; XMLThreadFilter xmlThreadFilter; FilenameFilter xmlFilenameFilter(__FILE__, "XMLLayoutTestCase.java"); Filter line1xx("1[0-9][0-9]", "X"); std::vector filters; filters.push_back(&xmlFilenameFilter); filters.push_back(&xmlThreadFilter); filters.push_back(&xmlTimestampFilter); filters.push_back(&line1xx); try { Transformer::transform(tempFileName, filteredFile, filters); } catch(UnexpectedFormatException& e) { std::cout << "UnexpectedFormatException :" << e.what() << std::endl; throw; } LOGUNIT_ASSERT(Compare::compare(filteredFile, LOG4CXX_FILE("witness/xmlLayout.3"))); } void testNull() { const LogString tempFileName(LOG4CXX_STR("output/temp.xmlLayout.null")); const File filteredFile("output/filtered.xmlLayout.null"); XMLLayoutPtr xmlLayout = new XMLLayout(); FileAppenderPtr appender(new FileAppender(xmlLayout, tempFileName, false)); root->addAppender(appender); LOG4CXX_DEBUG(logger, LOG4CXX_TEST_STR("hi")); LOG4CXX_DEBUG(logger, (char*) 0); LOG4CXX_DEBUG(logger, "hi"); XMLTimestampFilter xmlTimestampFilter; XMLThreadFilter xmlThreadFilter; std::vector filters; filters.push_back(&xmlThreadFilter); filters.push_back(&xmlTimestampFilter); try { Transformer::transform(tempFileName, filteredFile, filters); } catch(UnexpectedFormatException& e) { std::cout << "UnexpectedFormatException :" << e.what() << std::endl; throw; } LOGUNIT_ASSERT(Compare::compare(filteredFile, LOG4CXX_FILE("witness/xmlLayout.null"))); } void testMDC() { const LogString tempFileName(LOG4CXX_STR("output/temp.xmlLayout.mdc.1")); const File filteredFile("output/filtered.xmlLayout.mdc.1"); XMLLayoutPtr xmlLayout = new XMLLayout(); xmlLayout->setProperties(true); FileAppenderPtr appender(new FileAppender(xmlLayout, tempFileName, false)); root->addAppender(appender); MDC::clear(); MDC::put(LOG4CXX_TEST_STR("key1"), LOG4CXX_TEST_STR("val1")); MDC::put(LOG4CXX_TEST_STR("key2"), LOG4CXX_TEST_STR("val2")); LOG4CXX_DEBUG(logger, LOG4CXX_TEST_STR("Hello")); MDC::clear(); XMLTimestampFilter xmlTimestampFilter; XMLThreadFilter xmlThreadFilter; std::vector filters; filters.push_back(&xmlThreadFilter); filters.push_back(&xmlTimestampFilter); try { Transformer::transform(tempFileName, filteredFile, filters); } catch(UnexpectedFormatException& e) { std::cout << "UnexpectedFormatException :" << e.what() << std::endl; throw; } LOGUNIT_ASSERT(Compare::compare(filteredFile, LOG4CXX_FILE("witness/xmlLayout.mdc.1"))); } // not incuded in the tests for the moment ! void testMDCEscaped() { const LogString tempFileName(LOG4CXX_STR("output/temp.xmlLayout.mdc.2")); const File filteredFile("output/filtered.xmlLayout.mdc.2"); XMLLayoutPtr xmlLayout = new XMLLayout(); xmlLayout->setProperties(true); FileAppenderPtr appender(new FileAppender(xmlLayout, tempFileName, false)); root->addAppender(appender); MDC::clear(); MDC::put(LOG4CXX_TEST_STR("blahAttribute"), LOG4CXX_TEST_STR("")); MDC::put(LOG4CXX_TEST_STR(""), LOG4CXX_TEST_STR("blahValue")); LOG4CXX_DEBUG(logger, LOG4CXX_TEST_STR("Hello")); MDC::clear(); XMLTimestampFilter xmlTimestampFilter; XMLThreadFilter xmlThreadFilter; std::vector filters; filters.push_back(&xmlThreadFilter); filters.push_back(&xmlTimestampFilter); try { Transformer::transform(tempFileName, filteredFile, filters); } catch(UnexpectedFormatException& e) { std::cout << "UnexpectedFormatException :" << e.what() << std::endl; throw; } LOGUNIT_ASSERT(Compare::compare(filteredFile, LOG4CXX_FILE("witness/xmlLayout.mdc.2"))); } #undef __LOG4CXX_FUNC__ #define __LOG4CXX_FUNC__ "void XMLLayoutTestCase::common()" void common() { int i = 0; X x; std::string msg("Message "); LOG4CXX_TRACE(logger, msg << i); LOG4CXX_TRACE(root, msg << i); i++; LOG4CXX_DEBUG(logger, msg << i); LOG4CXX_DEBUG(root, msg << i); i++; LOG4CXX_INFO(logger, msg << i); LOG4CXX_INFO(root, msg << i); i++; LOG4CXX_WARN(logger, msg << i); LOG4CXX_WARN(root, msg << i); i++; LOG4CXX_ERROR(logger, msg << i); LOG4CXX_ERROR(root, msg << i); i++; LOG4CXX_FATAL(logger, msg << i); LOG4CXX_FATAL(root, msg << i); i++; LOG4CXX_DEBUG(logger, "Message " << i); LOG4CXX_DEBUG(root, "Message " << i); i++; LOG4CXX_ERROR(logger, "Message " << i); LOG4CXX_ERROR(root, "Message " << i); } }; LOGUNIT_TEST_SUITE_REGISTRATION(XMLLayoutTestCase); apache-log4cxx-0.10.0/src/test/cpp/xml/domtestcase.cpp100644 0 0 20550 10774263251 17726 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include "../logunit.h" #include "../util/compare.h" #include "xlevel.h" #include "../util/controlfilter.h" #include "../util/iso8601filter.h" #include "../util/threadfilter.h" #include "../util/transformer.h" #include #include #include #include #include #include "../testchar.h" using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::xml; #define TEST1_1A_PAT \ "(DEBUG|INFO |WARN |ERROR|FATAL) \\w*\\.\\w* - Message [0-9]" #define TEST1_1B_PAT "(DEBUG|INFO |WARN |ERROR|FATAL) root - Message [0-9]" #define TEST1_2_PAT "^[0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} [0-9]\\{2\\}:[0-9]\\{2\\}:[0-9]\\{2\\},[0-9]\\{3\\} " \ "\\[0x[0-9A-F]*]\\ (DEBUG|INFO|WARN|ERROR|FATAL) .* - Message [0-9]" LOGUNIT_CLASS(DOMTestCase) { LOGUNIT_TEST_SUITE(DOMTestCase); LOGUNIT_TEST(test1); #if defined(_WIN32) LOGUNIT_TEST(test2); #endif LOGUNIT_TEST(test3); LOGUNIT_TEST(test4); LOGUNIT_TEST_SUITE_END(); LoggerPtr root; LoggerPtr logger; static const File TEMP_A1; static const File TEMP_A2; static const File FILTERED_A1; static const File FILTERED_A2; static const File TEMP_A1_2; static const File TEMP_A2_2; static const File FILTERED_A1_2; static const File FILTERED_A2_2; public: void setUp() { root = Logger::getRootLogger(); logger = Logger::getLogger(LOG4CXX_TEST_STR("org.apache.log4j.xml.DOMTestCase")); } void tearDown() { root->getLoggerRepository()->resetConfiguration(); } void test1() { DOMConfigurator::configure(LOG4CXX_TEST_STR("input/xml/DOMTestCase1.xml")); common(); ControlFilter cf1; cf1 << TEST1_1A_PAT << TEST1_1B_PAT; ControlFilter cf2; cf2 << TEST1_2_PAT; ThreadFilter threadFilter; ISO8601Filter iso8601Filter; std::vector filters1; filters1.push_back(&cf1); std::vector filters2; filters2.push_back(&cf2); filters2.push_back(&threadFilter); filters2.push_back(&iso8601Filter); try { Transformer::transform(TEMP_A1, FILTERED_A1, filters1); Transformer::transform(TEMP_A2, FILTERED_A2, filters2); } catch(UnexpectedFormatException& e) { std::cout << "UnexpectedFormatException :" << e.what() << std::endl; throw; } const File witness1(LOG4CXX_TEST_STR("witness/dom.A1.1")); const File witness2(LOG4CXX_TEST_STR("witness/dom.A2.1")); // TODO: A1 doesn't contain duplicate entries // // LOGUNIT_ASSERT(Compare::compare(FILTERED_A1, witness1)); LOGUNIT_ASSERT(Compare::compare(FILTERED_A2, witness2)); } // // Same test but backslashes instead of forward // void test2() { DOMConfigurator::configure(LOG4CXX_TEST_STR("input\\xml\\DOMTestCase2.xml")); common(); ThreadFilter threadFilter; ISO8601Filter iso8601Filter; std::vector filters1; std::vector filters2; filters2.push_back(&threadFilter); filters2.push_back(&iso8601Filter); try { Transformer::transform(TEMP_A1_2, FILTERED_A1_2, filters1); Transformer::transform(TEMP_A2_2, FILTERED_A2_2, filters2); } catch(UnexpectedFormatException& e) { std::cout << "UnexpectedFormatException :" << e.what() << std::endl; throw; } const File witness1(LOG4CXX_TEST_STR("witness/dom.A1.2")); const File witness2(LOG4CXX_TEST_STR("witness/dom.A2.2")); // TODO: A1 doesn't contain duplicate entries // // LOGUNIT_ASSERT(Compare::compare(FILTERED_A1, witness1)); LOGUNIT_ASSERT(Compare::compare(FILTERED_A2, witness2)); } void common() { int i = 0; LOG4CXX_DEBUG(logger, "Message " << i); LOG4CXX_DEBUG(root, "Message " << i); i++; LOG4CXX_INFO(logger, "Message " << i); LOG4CXX_INFO(root, "Message " << i); i++; LOG4CXX_WARN(logger, "Message " << i); LOG4CXX_WARN(root, "Message " << i); i++; LOG4CXX_ERROR(logger, "Message " << i); LOG4CXX_ERROR(root, "Message " << i); i++; LOG4CXX_FATAL(logger, "Message " << i); LOG4CXX_FATAL(root, "Message " << i); } /** * Creates a output file that ends with a superscript 3. * Output file is checked by build.xml after completion. */ void test3() { DOMConfigurator::configure(LOG4CXX_TEST_STR("input/xml/DOMTestCase3.xml")); LOG4CXX_INFO(logger, "File name is expected to end with a superscript 3"); #if LOG4CXX_LOGCHAR_IS_UTF8 const logchar fname[] = { 0x6F, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2F, 0x64, 0x6F, 0x6D, 0xC2, 0xB3, 0 }; #else const logchar fname[] = { 0x6F, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2F, 0x64, 0x6F, 0x6D, 0xB3, 0 }; #endif File file; file.setPath(fname); Pool p; bool exists = file.exists(p); LOGUNIT_ASSERT(exists); } /** * Creates a output file that ends with a ideographic 4. * Output file is checked by build.xml after completion. */ void test4() { DOMConfigurator::configure(LOG4CXX_TEST_STR("input/xml/DOMTestCase4.xml")); LOG4CXX_INFO(logger, "File name is expected to end with an ideographic 4"); #if LOG4CXX_LOGCHAR_IS_UTF8 const logchar fname[] = { 0x6F, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2F, 0x64, 0x6F, 0x6D, 0xE3, 0x86, 0x95, 0 }; #else const logchar fname[] = { 0x6F, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2F, 0x64, 0x6F, 0x6D, 0x3195, 0 }; #endif File file; file.setPath(fname); Pool p; bool exists = file.exists(p); LOGUNIT_ASSERT(exists); } }; LOGUNIT_TEST_SUITE_REGISTRATION(DOMTestCase); const File DOMTestCase::TEMP_A1(LOG4CXX_TEST_STR("output/temp.A1")); const File DOMTestCase::TEMP_A2(LOG4CXX_TEST_STR("output/temp.A2")); const File DOMTestCase::FILTERED_A1(LOG4CXX_TEST_STR("output/filtered.A1")); const File DOMTestCase::FILTERED_A2(LOG4CXX_TEST_STR("output/filtered.A2")); const File DOMTestCase::TEMP_A1_2(LOG4CXX_TEST_STR("output/temp.A1.2")); const File DOMTestCase::TEMP_A2_2(LOG4CXX_TEST_STR("output/temp.A2.2")); const File DOMTestCase::FILTERED_A1_2(LOG4CXX_TEST_STR("output/filtered.A1.2")); const File DOMTestCase::FILTERED_A2_2(LOG4CXX_TEST_STR("output/filtered.A2.2")); apache-log4cxx-0.10.0/src/test/cpp/customlogger/xloggertestcase.cpp100644 0 0 5005 10774263273 22512 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #define LOG4CXX_TEST 1 #include #include "../logunit.h" #include "xlogger.h" #include #include "../util/transformer.h" #include "../util/compare.h" #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::xml; #define LOG4CXX_TEST_STR(x) L##x /** Tests handling of custom loggers. */ LOGUNIT_CLASS(XLoggerTestCase) { LOGUNIT_TEST_SUITE(XLoggerTestCase); LOGUNIT_TEST(test1); LOGUNIT_TEST(test2); LOGUNIT_TEST_SUITE_END(); XLoggerPtr logger; public: void setUp() { logger = XLogger::getLogger( LOG4CXX_STR("org.apache.log4j.customLogger.XLoggerTestCase")); } void tearDown() { logger->getLoggerRepository()->resetConfiguration(); } void test1() { common("1"); } void test2() { common("2"); } void common(const char* number) { std::string fn("input/xml/customLogger"); fn.append(number); fn.append(".xml"); DOMConfigurator::configure(fn); int i = 0; LOG4CXX_LOG(logger, log4cxx::XLevel::getTrace(), "Message " << i); i++; LOG4CXX_DEBUG(logger, "Message " << i); i++; LOG4CXX_WARN(logger, "Message " << i); i++; LOG4CXX_ERROR(logger, "Message " << i); i++; LOG4CXX_FATAL(logger, "Message " << i); i++; LOG4CXX_DEBUG(logger, "Message " << i); const File OUTPUT("output/temp"); std::string witness("witness/customLogger."); witness.append(number); const File WITNESS(witness); LOGUNIT_ASSERT(Compare::compare(OUTPUT, WITNESS)); } }; LOGUNIT_TEST_SUITE_REGISTRATION(XLoggerTestCase); apache-log4cxx-0.10.0/src/test/cpp/customlogger/xlogger.cpp100644 0 0 5647 10774263273 20772 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include "xlogger.h" #include #include #include #include using namespace log4cxx; using namespace log4cxx::spi; IMPLEMENT_LOG4CXX_OBJECT(XLogger) IMPLEMENT_LOG4CXX_OBJECT(XFactory) XFactoryPtr XLogger::factory = new XFactory(); void XLogger::lethal(const LogString& message, const LocationInfo& locationInfo) { if (repository->isDisabled(XLevel::LETHAL_INT)) { return; } if (XLevel::getLethal()->isGreaterOrEqual(this->getEffectiveLevel())) { forcedLog(XLevel::getLethal(), message, locationInfo); } } void XLogger::lethal(const LogString& message) { if (repository->isDisabled(XLevel::LETHAL_INT)) { return; } if (XLevel::getLethal()->isGreaterOrEqual(this->getEffectiveLevel())) { forcedLog(XLevel::getLethal(), message, LocationInfo::getLocationUnavailable()); } } LoggerPtr XLogger::getLogger(const LogString& name) { return LogManager::getLogger(name, factory); } LoggerPtr XLogger::getLogger(const helpers::Class& clazz) { return XLogger::getLogger(clazz.getName()); } void XLogger::trace(const LogString& message, const LocationInfo& locationInfo) { if (repository->isDisabled(XLevel::TRACE_INT)) { return; } if (XLevel::getTrace()->isGreaterOrEqual(this->getEffectiveLevel())) { forcedLog(XLevel::getTrace(), message, locationInfo); } } void XLogger::trace(const LogString& message) { if (repository->isDisabled(XLevel::TRACE_INT)) { return; } if (XLevel::getTrace()->isGreaterOrEqual(this->getEffectiveLevel())) { forcedLog(XLevel::getTrace(), message, LocationInfo::getLocationUnavailable()); } } XFactory::XFactory() { } LoggerPtr XFactory::makeNewLoggerInstance(log4cxx::helpers::Pool& pool, const LogString& name) const { return new XLogger(pool, name); } apache-log4cxx-0.10.0/src/test/cpp/customlogger/xlogger.h100644 0 0 10044 10774263273 20442 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include "../xml/xlevel.h" #include namespace log4cxx { namespace spi { namespace location { class LocationInfo; } } // Any sub-class of Logger must also have its own implementation of // LoggerFactory. class XFactory : public virtual spi::LoggerFactory, public virtual helpers::ObjectImpl { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(XFactory) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(XFactory) LOG4CXX_CAST_ENTRY(spi::LoggerFactory) END_LOG4CXX_CAST_MAP() XFactory(); virtual LoggerPtr makeNewLoggerInstance( log4cxx::helpers::Pool& pool, const LogString& name) const; }; typedef helpers::ObjectPtrT XFactoryPtr; /** A simple example showing Logger sub-classing. It shows the minimum steps necessary to implement one's {@link LoggerFactory}. Note that sub-classes follow the hierarchy even if its loggers belong to different classes. */ class XLogger : public Logger { // It's enough to instantiate a factory once and for all. static XFactoryPtr factory; LogString suffix; public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(XLogger) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(XLogger) LOG4CXX_CAST_ENTRY_CHAIN(Logger) END_LOG4CXX_CAST_MAP() /** Just calls the parent constuctor. */ XLogger(log4cxx::helpers::Pool& pool, const LogString& name1) : Logger(pool, name1) {} /** Nothing to activate. */ void activateOptions() {} /** We introduce a new printing method in order to support {@link XLevel#LETHAL}. */ void lethal(const LogString& message, const log4cxx::spi::LocationInfo& location); /** We introduce a new printing method in order to support {@link XLevel#LETHAL}. */ void lethal(const LogString& message); static LoggerPtr getLogger(const LogString& name); static LoggerPtr getLogger(const helpers::Class& clazz); LogString getSuffix() const { return suffix; } void setSuffix(const LogString& suffix1) { this->suffix = suffix1; } /** We introduce a new printing method that takes the TRACE level. */ void trace(const LogString& message, const log4cxx::spi::LocationInfo& location); /** We introduce a new printing method that takes the TRACE level. */ void trace(const LogString& message); }; typedef helpers::ObjectPtrT XLoggerPtr; } apache-log4cxx-0.10.0/src/test/cpp/util/relativetimefilter.cpp100644 0 0 1721 10774263274 21454 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "relativetimefilter.h" using namespace log4cxx; using namespace log4cxx::helpers; RelativeTimeFilter::RelativeTimeFilter() : Filter(RELATIVE_TIME_PAT, "") {} apache-log4cxx-0.10.0/src/test/cpp/util/xmltimestampfilter.h100644 0 0 2113 10774263274 21147 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_TESTS_UTIL_XML_TIMESTAMP_FILTER_H #define _LOG4CXX_TESTS_UTIL_XML_TIMESTAMP_FILTER_H #include "filter.h" namespace log4cxx { class XMLTimestampFilter : public Filter { public: XMLTimestampFilter(); }; } #endif //_LOG4CXX_TESTS_UTIL_XML_TIMESTAMP_FILTER_H apache-log4cxx-0.10.0/src/test/cpp/util/xmlthreadfilter.h100644 0 0 2074 10774263274 20421 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_TESTS_UTIL_XML_THREAD_FILTER_H #define _LOG4CXX_TESTS_UTIL_XML_THREAD_FILTER_H #include "filter.h" namespace log4cxx { class XMLThreadFilter : public Filter { public: XMLThreadFilter(); }; } #endif //_LOG4CXX_TESTS_UTIL_XML_THREAD_FILTER_H apache-log4cxx-0.10.0/src/test/cpp/util/binarycompare.h100644 0 0 2233 10774263274 20053 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include namespace log4cxx { namespace util { class BinaryCompare { private: /** * Class can not be constructed. */ BinaryCompare(); public: static void compare(const char* filename1, const char* filename2); }; } } apache-log4cxx-0.10.0/src/test/cpp/util/transformer.cpp100644 0 0 15404 10774263274 20141 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "transformer.h" #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; #if !defined(APR_FOPEN_READ) #define APR_FOPEN_READ APR_READ #define APR_FOPEN_CREATE APR_CREATE #define APR_FOPEN_WRITE APR_WRITE #define APR_FOPEN_TRUNCATE APR_TRUNCATE #define APR_FOPEN_APPEND APR_APPEND #endif void Transformer::transform(const File& in, const File& out, const std::vector& filters) { log4cxx::Filter::PatternList patterns; for(std::vector::const_iterator iter = filters.begin(); iter != filters.end(); iter++) { const log4cxx::Filter::PatternList& thesePatterns = (*iter)->getPatterns(); for (log4cxx::Filter::PatternList::const_iterator pattern = thesePatterns.begin(); pattern != thesePatterns.end(); pattern++) { patterns.push_back(*pattern); } } transform(in, out, patterns); } void Transformer::transform(const File& in, const File& out, const Filter& filter) { transform(in, out, filter.getPatterns()); } void Transformer::copyFile(const File& in, const File& out) { Pool p; apr_pool_t* pool = p.getAPRPool(); // // fairly naive file copy code // // apr_file_t* child_out; apr_int32_t flags = APR_FOPEN_WRITE | APR_FOPEN_CREATE | APR_FOPEN_TRUNCATE; apr_status_t stat = out.open(&child_out, flags, APR_OS_DEFAULT, p); assert(stat == APR_SUCCESS); apr_file_t* in_file; stat = in.open(&in_file, APR_FOPEN_READ, APR_OS_DEFAULT, p); assert(stat == APR_SUCCESS); apr_size_t bufsize = 32000; void* buf = apr_palloc(pool, bufsize); apr_size_t bytesRead = bufsize; while(stat == 0 && bytesRead == bufsize) { stat = apr_file_read(in_file, buf, &bytesRead); if (stat == 0 && bytesRead > 0) { stat = apr_file_write(child_out, buf, &bytesRead); assert(stat == APR_SUCCESS); } } stat = apr_file_close(child_out); assert(stat == APR_SUCCESS); } void Transformer::createSedCommandFile(const std::string& regexName, const log4cxx::Filter::PatternList& patterns, apr_pool_t* pool) { apr_file_t* regexFile; apr_status_t stat = apr_file_open(®exFile, regexName.c_str(), APR_FOPEN_WRITE | APR_FOPEN_CREATE | APR_FOPEN_TRUNCATE, APR_OS_DEFAULT, pool); assert(stat == APR_SUCCESS); std::string tmp; for (log4cxx::Filter::PatternList::const_iterator iter = patterns.begin(); iter != patterns.end(); iter++) { tmp = "sQ"; tmp.append(iter->first); tmp.append(1, 'Q'); tmp.append(iter->second); tmp.append("Qg\n"); apr_file_puts(tmp.c_str(), regexFile); } apr_file_close(regexFile); } void Transformer::transform(const File& in, const File& out, const log4cxx::Filter::PatternList& patterns) { // // if no patterns just copy the file // if (patterns.size() == 0) { copyFile(in, out); } else { Pool p; apr_pool_t* pool = p.getAPRPool(); // // write the regex's to a temporary file since they // may get mangled if passed as parameters // std::string regexName; Transcoder::encode(in.getPath(), regexName); regexName.append(".sed"); createSedCommandFile(regexName, patterns, pool); // // prepare to launch sed // // apr_procattr_t* attr = NULL; apr_status_t stat = apr_procattr_create(&attr, pool); assert(stat == APR_SUCCESS); stat = apr_procattr_io_set(attr, APR_NO_PIPE, APR_FULL_BLOCK, APR_FULL_BLOCK); assert(stat == APR_SUCCESS); // // find the program on the path // stat = apr_procattr_cmdtype_set(attr, APR_PROGRAM_PATH); assert(stat == APR_SUCCESS); // // build the argument list // using Q as regex separator on s command // const char** args = (const char**) apr_palloc(pool, 5 * sizeof(*args)); int i = 0; // // not well documented // but the first arg is a duplicate of the executable name // args[i++] = "sed"; std::string regexArg("-f"); regexArg.append(regexName); args[i++] = apr_pstrdup(pool, regexArg.c_str()); // // specify the input file args[i++] = Transcoder::encode(in.getPath(), p); args[i] = NULL; // // set the output stream to the filtered file // apr_file_t* child_out; apr_int32_t flags = APR_FOPEN_READ | APR_FOPEN_WRITE | APR_FOPEN_CREATE | APR_FOPEN_TRUNCATE; stat = out.open(&child_out, flags, APR_OS_DEFAULT, p); assert(stat == APR_SUCCESS); stat = apr_procattr_child_out_set(attr, child_out, NULL); assert(stat == APR_SUCCESS); // // redirect the child's error stream to this processes' error stream // apr_file_t* child_err; stat = apr_file_open_stderr(&child_err, pool); assert(stat == 0); stat = apr_procattr_child_err_set(attr, child_err, NULL); assert(stat == APR_SUCCESS); apr_proc_t pid; stat = apr_proc_create(&pid,"sed", args, NULL, attr, pool); if (stat != APR_SUCCESS) { puts("Error invoking sed, sed must be on the path in order to run unit tests"); } assert(stat == APR_SUCCESS); apr_proc_wait(&pid, NULL, NULL, APR_WAIT); stat = apr_file_close(child_out); assert(stat == APR_SUCCESS); } } apache-log4cxx-0.10.0/src/test/cpp/util/serializationtesthelper.cpp100644 0 0 5364 10774263274 22540 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "serializationtesthelper.h" #include #include #include #include #include #include "apr_pools.h" using namespace log4cxx; using namespace log4cxx::util; using namespace log4cxx::helpers; using namespace log4cxx::spi; bool SerializationTestHelper::compare( const char* witness, const LoggingEventPtr& event, size_t endCompare) { ByteArrayOutputStreamPtr memOut = new ByteArrayOutputStream(); Pool p; ObjectOutputStream objOut(memOut, p); event->write(objOut, p); objOut.close(p); return compare(witness, memOut->toByteArray(), endCompare, p); } /** * Asserts the serialized form of an object. * @param witness file name of expected serialization. * @param actual byte array of actual serialization. * @param skip positions to skip comparison. * @param endCompare position to stop comparison. * @throws IOException thrown on IO or serialization exception. */ bool SerializationTestHelper::compare( const char* witness, const std::vector& actual, size_t endCompare, Pool& p) { File witnessFile(witness); char* expected = p.pstralloc(actual.size()); FileInputStreamPtr is(new FileInputStream(witnessFile)); ByteBuffer readBuffer(expected, actual.size()); int bytesRead = is->read(readBuffer); is->close(); if(bytesRead < endCompare) { puts("Witness file is shorter than expected"); return false; } int endScan = actual.size(); if (endScan > endCompare) { endScan = endCompare; } for (int i = 0; i < endScan; i++) { if (((unsigned char) expected[i]) != actual[i]) { printf("Difference at offset %d, expected %x, actual %x\n", i, expected[i], actual[i]); return false; } } return true; } apache-log4cxx-0.10.0/src/test/cpp/util/absolutetimefilter.cpp100644 0 0 1721 10774263274 21457 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "absolutetimefilter.h" using namespace log4cxx; using namespace log4cxx::helpers; AbsoluteTimeFilter::AbsoluteTimeFilter() : Filter(ABSOLUTE_TIME_PAT, "") {} apache-log4cxx-0.10.0/src/test/cpp/util/linenumberfilter.cpp100644 0 0 2052 10774263274 21120 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "linenumberfilter.h" using namespace log4cxx; using namespace log4cxx::helpers; LineNumberFilter::LineNumberFilter() { patterns.push_back( PatternReplacement(" [^ ]*[\\\\]", " ")); patterns.push_back( PatternReplacement("([0-9]*)", "(X)")); } apache-log4cxx-0.10.0/src/test/cpp/util/xmllineattributefilter.h100644 0 0 2142 10774263274 22021 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_TESTS_UTIL_XML_LINE_ATTRIBUTE_FILTER_H #define _LOG4CXX_TESTS_UTIL_XML_LINE_ATTRIBUTE_FILTER_H #include "filter.h" namespace log4cxx { class XMLLineAttributeFilter : public Filter { public: XMLLineAttributeFilter(); }; } #endif //_LOG4CXX_TESTS_UTIL_XML_LINE_ATTRIBUTE_FILTER_H apache-log4cxx-0.10.0/src/test/cpp/util/xmlfilenamefilter.h100644 0 0 2177 10774263274 20736 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_TESTS_UTIL_XML_FILENAME_FILTER_H #define _LOG4CXX_TESTS_UTIL_XML_FILENAME_FILTER_H #include "filter.h" namespace log4cxx { class XMLFilenameFilter : public Filter { public: XMLFilenameFilter(const std::string& actual, const std::string& expected); }; } #endif //_LOG4CXX_TESTS_UTIL_XML_FILENAME_FILTER_H apache-log4cxx-0.10.0/src/test/cpp/util/xmltimestampfilter.cpp100644 0 0 1772 10774263274 21514 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "xmltimestampfilter.h" using namespace log4cxx; using namespace log4cxx::helpers; XMLTimestampFilter::XMLTimestampFilter() : Filter("[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]*", "XXX") {} apache-log4cxx-0.10.0/src/test/cpp/util/iso8601filter.cpp100644 0 0 1670 10774263274 20076 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "iso8601filter.h" using namespace log4cxx; using namespace log4cxx::helpers; ISO8601Filter::ISO8601Filter() : Filter(ISO8601_PAT, "") {} apache-log4cxx-0.10.0/src/test/cpp/util/threadfilter.h100644 0 0 2052 10774263274 17674 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_TESTS_UTIL_THREAD_FILTER_H #define _LOG4CXX_TESTS_UTIL_THREAD_FILTER_H #include "filter.h" namespace log4cxx { class ThreadFilter : public Filter { public: ThreadFilter(); }; } #endif //_LOG4CXX_TESTS_UTIL_THREAD_FILTER_H apache-log4cxx-0.10.0/src/test/cpp/util/utilfilter.cpp100644 0 0 2165 10774263274 17742 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "filter.h" #include using namespace log4cxx; using namespace log4cxx::helpers; Filter::Filter() {} Filter::Filter(const std::string& match, const std::string& replacement) { patterns.push_back( PatternReplacement(match, replacement)); } Filter::~Filter() {} apache-log4cxx-0.10.0/src/test/cpp/util/controlfilter.cpp100644 0 0 1762 10774263274 20447 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "controlfilter.h" using namespace log4cxx; using namespace log4cxx::helpers; ControlFilter::ControlFilter() { } ControlFilter& ControlFilter::operator<<(const std::string&) { return *this; } apache-log4cxx-0.10.0/src/test/cpp/util/absolutedateandtimefilter.cpp100644 0 0 1760 10774263274 23003 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "absolutedateandtimefilter.h" using namespace log4cxx; using namespace log4cxx::helpers; AbsoluteDateAndTimeFilter::AbsoluteDateAndTimeFilter() : Filter(ABSOLUTE_DATE_AND_TIME_PAT, "") {} apache-log4cxx-0.10.0/src/test/cpp/util/absolutedateandtimefilter.h100644 0 0 2131 10774263274 22441 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_TESTS_UTIL_ABS_DATE_TIME_FILTER_H #define _LOG4CXX_TESTS_UTIL_ABS_DATE_TIME_FILTER_H #include "filter.h" namespace log4cxx { class AbsoluteDateAndTimeFilter : public Filter { public: AbsoluteDateAndTimeFilter(); }; } #endif //_LOG4CXX_TESTS_UTIL_ABS_DATE_TIME_FILTER_H apache-log4cxx-0.10.0/src/test/cpp/util/binarycompare.cpp100644 0 0 5373 10774263274 20416 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "binarycompare.h" #include #include #include "../logunit.h" #include #include using namespace log4cxx; using namespace log4cxx::util; using namespace log4cxx::helpers; void BinaryCompare::compare(const char* filename1, const char* filename2) { Pool p; apr_pool_t* pool = p.getAPRPool(); apr_file_t* file1; apr_int32_t flags = APR_FOPEN_READ; apr_fileperms_t perm = APR_OS_DEFAULT; apr_status_t stat1 = apr_file_open(&file1, filename1, flags, perm, pool); if (stat1 != APR_SUCCESS) { LOGUNIT_FAIL(std::string("Unable to open ") + filename1); } apr_file_t* file2; apr_status_t stat2 = apr_file_open(&file2, filename2, flags, perm, pool); if (stat2 != APR_SUCCESS) { LOGUNIT_FAIL(std::string("Unable to open ") + filename2); } enum { BUFSIZE = 1024 }; char* contents1 = (char*) apr_palloc(pool, BUFSIZE); char* contents2 = (char*) apr_palloc(pool, BUFSIZE); memset(contents1, 0, BUFSIZE); memset(contents2, 0, BUFSIZE); apr_size_t bytesRead1 = BUFSIZE; apr_size_t bytesRead2 = BUFSIZE; stat1 = apr_file_read(file1, contents1, &bytesRead1); if (stat1 != APR_SUCCESS) { LOGUNIT_FAIL(std::string("Unable to read ") + filename1); } stat2 = apr_file_read(file2, contents2, &bytesRead2); if (stat2 != APR_SUCCESS) { LOGUNIT_FAIL(std::string("Unable to read ") + filename2); } for (int i = 0; i < BUFSIZE; i++) { if (contents1[i] != contents2[i]) { std::string msg("Contents differ at position "); msg += apr_itoa(pool, i); msg += ": ["; msg += filename1; msg += "] has "; msg += apr_itoa(pool, contents1[i]); msg += ", ["; msg += filename2; msg += "] has "; msg += apr_itoa(pool, contents2[i]); msg += "."; LOGUNIT_FAIL(msg); } } } apache-log4cxx-0.10.0/src/test/cpp/util/compare.h100644 0 0 2647 10774263274 16657 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include namespace log4cxx { class File; namespace helpers { class Pool; } class Compare { public: static bool compare(const File& file1, const File& file2); private: /// Prints file on the console. static void outputFile(const File& file, const LogString& contents, log4cxx::helpers::Pool& pool); static void emit(const LogString &line); static bool getline(LogString& buf, LogString& line); }; } apache-log4cxx-0.10.0/src/test/cpp/util/filenamefilter.h100644 0 0 2261 10774263274 20207 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_TESTS_UTIL_FILENAME_FILTER_H #define _LOG4CXX_TESTS_UTIL_FILENAME_FILTER_H #include "filter.h" namespace log4cxx { class FilenameFilter : public Filter { public: FilenameFilter(const std::string& actual, const std::string& expected); static const std::string getMatch(const std::string& actual); }; } #endif //_LOG4CXX_TESTS_UTIL_FILENAME_FILTER_H apache-log4cxx-0.10.0/src/test/cpp/util/xmlthreadfilter.cpp100644 0 0 1743 10774263274 20756 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "xmlthreadfilter.h" using namespace log4cxx; using namespace log4cxx::helpers; XMLThreadFilter::XMLThreadFilter() : Filter("thread=\\\"[0-9A-Fa-fXx]*", "thread=\\\"main") { } apache-log4cxx-0.10.0/src/test/cpp/util/xmllineattributefilter.cpp100644 0 0 2021 10774263274 22350 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "xmllineattributefilter.h" using namespace log4cxx; using namespace log4cxx::helpers; XMLLineAttributeFilter::XMLLineAttributeFilter() { patterns.push_back( PatternReplacement("line=\\(.+\\)[0-9]+", "line=\\\\1X")); } apache-log4cxx-0.10.0/src/test/cpp/util/relativetimefilter.h100644 0 0 2074 10774263274 21123 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_TESTS_UTIL_REL_TIME_FILTER_H #define _LOG4CXX_TESTS_UTIL_REL_TIME_FILTER_H #include "filter.h" namespace log4cxx { class RelativeTimeFilter : public Filter { public: RelativeTimeFilter(); }; } #endif //_LOG4CXX_TESTS_UTIL_REL_TIME_FILTER_H apache-log4cxx-0.10.0/src/test/cpp/util/xmlfilenamefilter.cpp100644 0 0 2272 10774263274 21265 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "xmlfilenamefilter.h" using namespace log4cxx; using namespace log4cxx::helpers; XMLFilenameFilter::XMLFilenameFilter(const std::string& /*actual*/, const std::string& expected) { std::string pattern(" file=\\(.\\).*"); pattern += expected; std::string replacement(" file=\\\\1"); replacement += expected; // patterns.push_back( PatternReplacement(pattern, replacement) ); } apache-log4cxx-0.10.0/src/test/cpp/util/transformer.h100644 0 0 3666 10774263274 17575 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_TESTS_UTIL_TRANSFORMER_H #define _LOG4CXX_TESTS_UTIL_TRANSFORMER_H #include "filter.h" #include extern "C" { struct apr_pool_t; } namespace log4cxx { class File; class Transformer { public: static void transform(const File& in, const File& out, const std::vector& filters); static void transform(const File& in, const File& out, const Filter& filter); static void transform(const File& in, const File& out, const std::vector< log4cxx::Filter::PatternReplacement >& patterns); private: static void copyFile(const File& in, const File& out); static void createSedCommandFile(const std::string& regexName, const log4cxx::Filter::PatternList& patterns, apr_pool_t* pool); }; } #endif //_LOG4CXX_TESTS_UTIL_TRANSFORMER_H apache-log4cxx-0.10.0/src/test/cpp/util/absolutetimefilter.h100644 0 0 2074 10774263274 21126 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_TESTS_UTIL_ABS_TIME_FILTER_H #define _LOG4CXX_TESTS_UTIL_ABS_TIME_FILTER_H #include "filter.h" namespace log4cxx { class AbsoluteTimeFilter : public Filter { public: AbsoluteTimeFilter(); }; } #endif //_LOG4CXX_TESTS_UTIL_ABS_TIME_FILTER_H apache-log4cxx-0.10.0/src/test/cpp/util/linenumberfilter.h100644 0 0 2101 10774263274 20560 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_TESTS_UTIL_LINE_NUMBER_FILTER_H #define _LOG4CXX_TESTS_UTIL_LINE_NUMBER_FILTER_H #include "filter.h" namespace log4cxx { class LineNumberFilter : public Filter { public: LineNumberFilter(); }; } #endif //_LOG4CXX_TESTS_UTIL_LINE_NUMBER_FILTER_H apache-log4cxx-0.10.0/src/test/cpp/util/threadfilter.cpp100644 0 0 1706 10774263274 20234 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "threadfilter.h" using namespace log4cxx; using namespace log4cxx::helpers; ThreadFilter::ThreadFilter() : Filter("\\[[0-9A-Fa-fXx]*]", "\\[main]") {} apache-log4cxx-0.10.0/src/test/cpp/util/serializationtesthelper.h100644 0 0 3224 10774263274 22176 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_TESTS_UTIL_SERIALIZATIONTESTHELPER_H #define _LOG4CXX_TESTS_UTIL_SERIALIZATIONTESTHELPER_H #include namespace log4cxx { namespace util { class SerializationTestHelper { public: static bool compare(const char* filename, const log4cxx::spi::LoggingEventPtr& event, size_t stopCompare); static bool compare(const char* filename, const std::vector& array, size_t stopCompare, log4cxx::helpers::Pool& p); private: SerializationTestHelper(); SerializationTestHelper(const SerializationTestHelper&); SerializationTestHelper& operator=(SerializationTestHelper&); }; } } #endif apache-log4cxx-0.10.0/src/test/cpp/util/filenamefilter.cpp100644 0 0 2566 10774263274 20552 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "filenamefilter.h" using namespace log4cxx; using namespace log4cxx::helpers; FilenameFilter::FilenameFilter(const std::string& actual, const std::string& expected) { std::string pattern(actual); size_t backslash = pattern.rfind('\\', pattern.length() - 1); while (backslash != std::string::npos) { pattern.replace(backslash, 1, "\\\\", 2); if (backslash == 0) { backslash = std::string::npos; } else { backslash = pattern.rfind('\\', backslash - 1); } } patterns.push_back( PatternReplacement(pattern, expected) ); } apache-log4cxx-0.10.0/src/test/cpp/util/iso8601filter.h100644 0 0 2062 10774263274 17537 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_TESTS_UTIL_ISO_8601_FILTER_H #define _LOG4CXX_TESTS_UTIL_ISO_8601_FILTER_H #include "filter.h" namespace log4cxx { class ISO8601Filter : public Filter { public: ISO8601Filter(); }; } #endif //_LOG4CXX_TESTS_UTIL_ISO_8601_FILTER_H apache-log4cxx-0.10.0/src/test/cpp/util/compare.cpp100644 0 0 11550 10774263274 17223 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "compare.h" #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; bool Compare::compare(const File& file1, const File& file2) { Pool pool; InputStreamPtr fileIn1 = new FileInputStream(file1); InputStreamReaderPtr reader1 = new InputStreamReader(fileIn1); LogString in1(reader1->read(pool)); Pool pool2; InputStreamPtr fileIn2 = new FileInputStream(file2); InputStreamReaderPtr reader2 = new InputStreamReader(fileIn2); LogString in2(reader2->read(pool2)); LogString back1(in1); LogString back2(in2); LogString s1; LogString s2; int lineCounter = 0; while (getline(in1, s1)) { lineCounter++; if(!getline(in2, s2)) { s2.erase(s2.begin(), s2.end()); } if (s1 != s2) { LogString msg(LOG4CXX_STR("Files [")); msg += file1.getPath(); msg += LOG4CXX_STR("] and ["); msg += file2.getPath(); msg += LOG4CXX_STR("] differ on line "); StringHelper::toString(lineCounter, pool, msg); msg += LOG4CXX_EOL; msg += LOG4CXX_STR("One reads: ["); msg += s1; msg += LOG4CXX_STR("]."); msg += LOG4CXX_EOL; msg += LOG4CXX_STR("Other reads:["); msg += s2; msg += LOG4CXX_STR("]."); msg += LOG4CXX_EOL; emit(msg); outputFile(file1, back1, pool); outputFile(file2, back2, pool); return false; } } // the second file is longer if (getline(in2, s2)) { LogString msg(LOG4CXX_STR("File [")); msg += file2.getPath(); msg += LOG4CXX_STR("] longer than file ["); msg += file1.getPath(); msg += LOG4CXX_STR("]."); msg += LOG4CXX_EOL; emit(msg); outputFile(file1, back1, pool); outputFile(file2, back2, pool); return false; } return true; } void Compare::outputFile(const File& file, const LogString& contents, log4cxx::helpers::Pool& pool) { int lineCounter = 0; emit(LOG4CXX_STR("--------------------------------")); emit(LOG4CXX_EOL); LogString msg(LOG4CXX_STR("Contents of ")); msg += file.getPath(); msg += LOG4CXX_STR(":"); msg += LOG4CXX_EOL; emit(msg); LogString in1(contents); LogString s1; while (getline(in1, s1)) { lineCounter++; LogString line; StringHelper::toString(lineCounter, pool, line); emit(line); if (lineCounter < 10) { emit(LOG4CXX_STR(" : ")); } else if (lineCounter < 100) { emit(LOG4CXX_STR(" : ")); } else if (lineCounter < 1000) { emit(LOG4CXX_STR(" : ")); } else { emit(LOG4CXX_STR(": ")); } emit(s1); emit(LOG4CXX_EOL); } } void Compare::emit(const LogString& s1) { SystemOutWriter::write(s1); } bool Compare::getline(LogString& in, LogString& line) { if (in.empty()) { return false; } size_t nl = in.find(0x0A); if (nl == std::string::npos) { line = in; in.erase(in.begin(), in.end()); } else { // // if the file has CR-LF then // drop the carriage return alse // if(nl > 0 && in[nl -1] == 0x0D) { line.assign(in, 0, nl - 1); } else { line.assign(in, 0, nl); } in.erase(in.begin(), in.begin() + nl + 1); } return true; } apache-log4cxx-0.10.0/src/test/cpp/util/filter.h100644 0 0 4332 10774263274 16507 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_TESTS_UTIL_FILTER_H #define _LOG4CXX_TESTS_UTIL_FILTER_H #if defined(_MSC_VER) #pragma warning (push) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #define BASIC_PAT "\\[0x[0-9A-F]*] (FATAL|ERROR|WARN|INFO|DEBUG)" #define ISO8601_PAT "[0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} [0-9]\\{2\\}:[0-9]\\{2\\}:[0-9]\\{2\\},[0-9]\\{3\\}" #define ABSOLUTE_DATE_AND_TIME_PAT \ "[0-9]\\{1,2\\} .* 200[0-9] [0-9]\\{2\\}:[0-9]\\{2\\}:[0-9]\\{2\\},[0-9]\\{3\\}" #define ABSOLUTE_TIME_PAT "[0-2][0-9]:[0-9][0-9]:[0-9][0-9],[0-9][0-9][0-9]" #define RELATIVE_TIME_PAT "^[0-9]+" namespace log4cxx { class UnexpectedFormatException : public std::exception { }; class Filter { public: Filter(const std::string& match, const std::string& replacement); Filter(); virtual ~Filter(); typedef std::pair PatternReplacement; typedef std::vector PatternList; const PatternList& getPatterns() const{ return patterns; } private: Filter(const Filter&); Filter& operator=(const Filter&); protected: PatternList patterns; }; } #if defined(_MSC_VER) #pragma warning (pop) #endif #endif //_LOG4CXX_TESTS_UTIL_FILTER_H apache-log4cxx-0.10.0/src/test/cpp/util/controlfilter.h100644 0 0 2205 10774263274 20105 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_TESTS_UTIL_CONTROL_FILTER_H #define _LOG4CXX_TESTS_UTIL_CONTROL_FILTER_H #include "filter.h" #include namespace log4cxx { class ControlFilter : public Filter { public: ControlFilter(); ControlFilter& operator<<(const std::string& allowedPattern); }; } #endif //_LOG4CXX_TESTS_UTIL_CONTROL_FILTER_H apache-log4cxx-0.10.0/src/test/cpp/fileappendertestcase.h100644 0 0 2231 10774263274 20433 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include "writerappendertestcase.h" /** An abstract set of tests for inclusion in concrete appender test case */ class FileAppenderAbstractTestCase : public WriterAppenderTestCase { public: log4cxx::WriterAppender* createWriterAppender() const; virtual log4cxx::FileAppender* createFileAppender() const = 0; }; apache-log4cxx-0.10.0/src/test/cpp/fileappendertest.cpp100644 0 0 5052 10774263274 20136 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include "logunit.h" using namespace log4cxx; using namespace log4cxx::helpers; /** * * FileAppender tests. */ LOGUNIT_CLASS(FileAppenderTest) { LOGUNIT_TEST_SUITE(FileAppenderTest); LOGUNIT_TEST(testDirectoryCreation); LOGUNIT_TEST(testgetSetThreshold); LOGUNIT_TEST(testIsAsSevereAsThreshold); LOGUNIT_TEST_SUITE_END(); public: /** * Tests that any necessary directories are attempted to * be created if they don't exist. See bug 9150. * */ void testDirectoryCreation() { File newFile(LOG4CXX_STR("output/newdir/temp.log")); Pool p; newFile.deleteFile(p); File newDir(LOG4CXX_STR("output/newdir")); newDir.deleteFile(p); FileAppenderPtr wa(new FileAppender()); wa->setFile(LOG4CXX_STR("output/newdir/temp.log")); wa->setLayout(new PatternLayout(LOG4CXX_STR("%m%n"))); wa->activateOptions(p); LOGUNIT_ASSERT(File(LOG4CXX_STR("output/newdir/temp.log")).exists(p)); } /** * Tests getThreshold and setThreshold. */ void testgetSetThreshold() { FileAppenderPtr appender = new FileAppender(); LevelPtr debug = Level::getDebug(); // // different from log4j where threshold is null. // LOGUNIT_ASSERT_EQUAL(Level::getAll(), appender->getThreshold()); appender->setThreshold(debug); LOGUNIT_ASSERT_EQUAL(debug, appender->getThreshold()); } /** * Tests isAsSevereAsThreshold. */ void testIsAsSevereAsThreshold() { FileAppenderPtr appender = new FileAppender(); LevelPtr debug = Level::getDebug(); LOGUNIT_ASSERT(appender->isAsSevereAsThreshold(debug)); } }; LOGUNIT_TEST_SUITE_REGISTRATION(FileAppenderTest); apache-log4cxx-0.10.0/src/test/cpp/patternlayouttest.cpp100644 0 0 47045 10774263274 20443 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include "util/compare.h" #include "util/transformer.h" #include "util/absolutedateandtimefilter.h" #include "util/iso8601filter.h" #include "util/absolutetimefilter.h" #include "util/relativetimefilter.h" #include "util/controlfilter.h" #include "util/threadfilter.h" #include "util/linenumberfilter.h" #include "util/filenamefilter.h" #include #include #include #include #include #include "testchar.h" #include "logunit.h" #include #include #define REGEX_STR(x) x #define PAT0 REGEX_STR("\\[[0-9A-FXx]*]\\ (DEBUG|INFO|WARN|ERROR|FATAL) .* - Message [0-9]\\{1,2\\}") #define PAT1 ISO8601_PAT REGEX_STR(" ") PAT0 #define PAT2 ABSOLUTE_DATE_AND_TIME_PAT REGEX_STR(" ") PAT0 #define PAT3 ABSOLUTE_TIME_PAT REGEX_STR(" ") PAT0 #define PAT4 RELATIVE_TIME_PAT REGEX_STR(" ") PAT0 #define PAT5 REGEX_STR("\\[[0-9A-FXx]*]\\ (DEBUG|INFO|WARN|ERROR|FATAL) .* : Message [0-9]\\{1,2\\}") #define PAT6 REGEX_STR("\\[[0-9A-FXx]*]\\ (DEBUG|INFO |WARN |ERROR|FATAL) .*patternlayouttest.cpp\\([0-9]\\{1,4\\}\\): Message [0-9]\\{1,3\\}") #define PAT11a REGEX_STR("^(DEBUG|INFO |WARN |ERROR|FATAL) \\[[0-9A-FXx]*]\\ log4j.PatternLayoutTest: Message [0-9]\\{1,2\\}") #define PAT11b REGEX_STR("^(DEBUG|INFO |WARN |ERROR|FATAL) \\[[0-9A-FXx]*]\\ root: Message [0-9]\\{1,2\\}") #define PAT12 REGEX_STR("^\\[[0-9A-FXx]*]\\ (DEBUG|INFO |WARN |ERROR|FATAL) ")\ REGEX_STR(".*patternlayouttest.cpp([0-9]\\{1,4\\}): ")\ REGEX_STR("Message [0-9]\\{1,2\\}") #define PAT_MDC_1 REGEX_STR("") using namespace log4cxx; using namespace log4cxx::helpers; LOGUNIT_CLASS(PatternLayoutTest) { LOGUNIT_TEST_SUITE(PatternLayoutTest); LOGUNIT_TEST(test1); LOGUNIT_TEST(test2); LOGUNIT_TEST(test3); LOGUNIT_TEST(test4); LOGUNIT_TEST(test5); LOGUNIT_TEST(test6); LOGUNIT_TEST(test7); LOGUNIT_TEST(test8); LOGUNIT_TEST(test9); LOGUNIT_TEST(test10); LOGUNIT_TEST(test11); LOGUNIT_TEST(test12); LOGUNIT_TEST(testMDC1); LOGUNIT_TEST(testMDC2); LOGUNIT_TEST_SUITE_END(); LoggerPtr root; LoggerPtr logger; public: void setUp() { root = Logger::getRootLogger(); MDC::clear(); logger = Logger::getLogger(LOG4CXX_TEST_STR("java.org.apache.log4j.PatternLayoutTest")); } void tearDown() { MDC::clear(); root->getLoggerRepository()->resetConfiguration(); } void test1() { PropertyConfigurator::configure(LOG4CXX_FILE("input/patternLayout1.properties")); common(); LOGUNIT_ASSERT(Compare::compare(TEMP, LOG4CXX_FILE("witness/patternLayout.1"))); } void test2() { PropertyConfigurator::configure(LOG4CXX_FILE("input/patternLayout2.properties")); common(); ControlFilter filter1; filter1 << PAT1; ISO8601Filter filter2; ThreadFilter filter3; std::vector filters; filters.push_back(&filter1); filters.push_back(&filter2); filters.push_back(&filter3); try { Transformer::transform(TEMP, FILTERED, filters); } catch(UnexpectedFormatException& e) { std::cout << "UnexpectedFormatException :" << e.what() << std::endl; throw; } LOGUNIT_ASSERT(Compare::compare(FILTERED, LOG4CXX_FILE("witness/patternLayout.2"))); } void test3() { PropertyConfigurator::configure(LOG4CXX_FILE("input/patternLayout3.properties")); common(); ControlFilter filter1; filter1 << PAT1; ISO8601Filter filter2; ThreadFilter filter3; std::vector filters; filters.push_back(&filter1); filters.push_back(&filter2); filters.push_back(&filter3); try { Transformer::transform(TEMP, FILTERED, filters); } catch(UnexpectedFormatException& e) { std::cout << "UnexpectedFormatException :" << e.what() << std::endl; throw; } LOGUNIT_ASSERT(Compare::compare(FILTERED, LOG4CXX_FILE("witness/patternLayout.3"))); } // Output format: // 06 avr. 2002 18:30:58,937 [12345] DEBUG atternLayoutTest - Message 0 void test4() { PropertyConfigurator::configure(LOG4CXX_FILE("input/patternLayout4.properties")); common(); ControlFilter filter1; filter1 << PAT2; AbsoluteDateAndTimeFilter filter2; ThreadFilter filter3; std::vector filters; filters.push_back(&filter1); filters.push_back(&filter2); filters.push_back(&filter3); try { Transformer::transform(TEMP, FILTERED, filters); } catch(UnexpectedFormatException& e) { std::cout << "UnexpectedFormatException :" << e.what() << std::endl; throw; } LOGUNIT_ASSERT(Compare::compare(FILTERED, LOG4CXX_FILE("witness/patternLayout.4"))); } void test5() { PropertyConfigurator::configure(LOG4CXX_FILE("input/patternLayout5.properties")); common(); ControlFilter filter1; filter1 << PAT2; AbsoluteDateAndTimeFilter filter2; ThreadFilter filter3; std::vector filters; filters.push_back(&filter1); filters.push_back(&filter2); filters.push_back(&filter3); try { Transformer::transform(TEMP, FILTERED, filters); } catch(UnexpectedFormatException& e) { std::cout << "UnexpectedFormatException :" << e.what() << std::endl; throw; } LOGUNIT_ASSERT(Compare::compare(FILTERED, LOG4CXX_FILE("witness/patternLayout.5"))); } void test6() { PropertyConfigurator::configure(LOG4CXX_FILE("input/patternLayout6.properties")); common(); ControlFilter filter1; filter1 << PAT3; AbsoluteTimeFilter filter2; ThreadFilter filter3; std::vector filters; filters.push_back(&filter1); filters.push_back(&filter2); filters.push_back(&filter3); try { Transformer::transform(TEMP, FILTERED, filters); } catch(UnexpectedFormatException& e) { std::cout << "UnexpectedFormatException :" << e.what() << std::endl; throw; } LOGUNIT_ASSERT(Compare::compare(FILTERED, LOG4CXX_FILE("witness/patternLayout.6"))); } void test7() { PropertyConfigurator::configure(LOG4CXX_FILE("input/patternLayout7.properties")); common(); ControlFilter filter1; filter1 << PAT3; AbsoluteTimeFilter filter2; ThreadFilter filter3; std::vector filters; filters.push_back(&filter1); filters.push_back(&filter2); filters.push_back(&filter3); try { Transformer::transform(TEMP, FILTERED, filters); } catch(UnexpectedFormatException& e) { std::cout << "UnexpectedFormatException :" << e.what() << std::endl; throw; } LOGUNIT_ASSERT(Compare::compare(FILTERED, LOG4CXX_FILE("witness/patternLayout.7"))); } void test8() { PropertyConfigurator::configure(LOG4CXX_FILE("input/patternLayout8.properties")); common(); ControlFilter filter1; filter1 << PAT4; // // combo of relative time and thread identifier // (the \\\\1 preserve a leading space) Filter filter2(".*]", "[main]"); std::vector filters; filters.push_back(&filter1); filters.push_back(&filter2); try { Transformer::transform(TEMP, FILTERED, filters); } catch(UnexpectedFormatException& e) { std::cout << "UnexpectedFormatException :" << e.what() << std::endl; throw; } LOGUNIT_ASSERT(Compare::compare(FILTERED, LOG4CXX_FILE("witness/patternLayout.8"))); } void test9() { PropertyConfigurator::configure(LOG4CXX_FILE("input/patternLayout9.properties")); common(); ControlFilter filter1; filter1 << PAT5; ThreadFilter filter2; std::vector filters; filters.push_back(&filter1); filters.push_back(&filter2); try { Transformer::transform(TEMP, FILTERED, filters); } catch(UnexpectedFormatException& e) { std::cout << "UnexpectedFormatException :" << e.what() << std::endl; throw; } LOGUNIT_ASSERT(Compare::compare(FILTERED, LOG4CXX_FILE("witness/patternLayout.9"))); } void test10() { PropertyConfigurator::configure(LOG4CXX_FILE("input/patternLayout10.properties")); common(); ControlFilter filter1; filter1 << PAT6; ThreadFilter filter2; LineNumberFilter filter3; FilenameFilter filenameFilter(__FILE__, "patternlayouttest.cpp"); std::vector filters; filters.push_back(&filenameFilter); filters.push_back(&filter1); filters.push_back(&filter2); filters.push_back(&filter3); try { Transformer::transform(TEMP, FILTERED, filters); } catch(UnexpectedFormatException& e) { std::cout << "UnexpectedFormatException :" << e.what() << std::endl; throw; } LOGUNIT_ASSERT(Compare::compare(FILTERED, LOG4CXX_FILE("witness/patternLayout.10"))); } void test11() { PropertyConfigurator::configure(LOG4CXX_FILE("input/patternLayout11.properties")); common(); ControlFilter filter1; filter1 << PAT11a << PAT11b; ThreadFilter filter2; std::vector filters; filters.push_back(&filter1); filters.push_back(&filter2); try { Transformer::transform(TEMP, FILTERED, filters); } catch(UnexpectedFormatException& e) { std::cout << "UnexpectedFormatException :" << e.what() << std::endl; throw; } LOGUNIT_ASSERT(Compare::compare(FILTERED, LOG4CXX_FILE("witness/patternLayout.11"))); } void test12() { PropertyConfigurator::configure(LOG4CXX_FILE("input/patternLayout12.properties")); common(); ControlFilter filter1; filter1 << PAT12; ThreadFilter filter2; LineNumberFilter filter3; FilenameFilter filenameFilter(__FILE__, "patternlayouttest.cpp"); std::vector filters; filters.push_back(&filenameFilter); filters.push_back(&filter1); filters.push_back(&filter2); filters.push_back(&filter3); try { Transformer::transform(TEMP, FILTERED, filters); } catch(UnexpectedFormatException& e) { std::cout << "UnexpectedFormatException :" << e.what() << std::endl; throw; } LOGUNIT_ASSERT(Compare::compare(FILTERED, LOG4CXX_FILE("witness/patternLayout.12"))); } void testMDC1() { PropertyConfigurator::configure(LOG4CXX_FILE("input/patternLayout.mdc.1.properties")); MDC::put(LOG4CXX_TEST_STR("key1"), LOG4CXX_TEST_STR("va11")); MDC::put(LOG4CXX_TEST_STR("key2"), LOG4CXX_TEST_STR("va12")); logger->debug(LOG4CXX_TEST_STR("Hello World")); MDC::clear(); LOGUNIT_ASSERT(Compare::compare(TEMP, LOG4CXX_FILE("witness/patternLayout.mdc.1"))); } void testMDC2() { LogString OUTPUT_FILE = LOG4CXX_STR("output/patternLayout.mdc.2"); File WITNESS_FILE = LOG4CXX_FILE("witness/patternLayout.mdc.2"); LogString mdcMsgPattern1 = LOG4CXX_STR("%m : %X%n"); LogString mdcMsgPattern2 = LOG4CXX_STR("%m : %X{key1}%n"); LogString mdcMsgPattern3 = LOG4CXX_STR("%m : %X{key2}%n"); LogString mdcMsgPattern4 = LOG4CXX_STR("%m : %X{key3}%n"); LogString mdcMsgPattern5 = LOG4CXX_STR("%m : %X{key1},%X{key2},%X{key3}%n"); // set up appender PatternLayoutPtr layout = new PatternLayout(LOG4CXX_STR("%m%n")); AppenderPtr appender = new FileAppender(layout, OUTPUT_FILE, false); // set appender on root and set level to debug root->addAppender(appender); root->setLevel(Level::getDebug()); // output starting message root->debug(LOG4CXX_TEST_STR("starting mdc pattern test")); layout->setConversionPattern(mdcMsgPattern1); log4cxx::helpers::Pool pool; layout->activateOptions(pool); root->debug(LOG4CXX_TEST_STR("empty mdc, no key specified in pattern")); layout->setConversionPattern(mdcMsgPattern2); layout->activateOptions(pool); root->debug(LOG4CXX_TEST_STR("empty mdc, key1 in pattern")); layout->setConversionPattern(mdcMsgPattern3); layout->activateOptions(pool); root->debug(LOG4CXX_TEST_STR("empty mdc, key2 in pattern")); layout->setConversionPattern(mdcMsgPattern4); layout->activateOptions(pool); root->debug(LOG4CXX_TEST_STR("empty mdc, key3 in pattern")); layout->setConversionPattern(mdcMsgPattern5); layout->activateOptions(pool); root->debug(LOG4CXX_TEST_STR("empty mdc, key1, key2, and key3 in pattern")); MDC::put(LOG4CXX_TEST_STR("key1"), LOG4CXX_TEST_STR("value1")); MDC::put(LOG4CXX_TEST_STR("key2"), LOG4CXX_TEST_STR("value2")); layout->setConversionPattern(mdcMsgPattern1); layout->activateOptions(pool); root->debug(LOG4CXX_TEST_STR("filled mdc, no key specified in pattern")); layout->setConversionPattern(mdcMsgPattern2); layout->activateOptions(pool); root->debug(LOG4CXX_TEST_STR("filled mdc, key1 in pattern")); layout->setConversionPattern(mdcMsgPattern3); layout->activateOptions(pool); root->debug(LOG4CXX_TEST_STR("filled mdc, key2 in pattern")); layout->setConversionPattern(mdcMsgPattern4); layout->activateOptions(pool); root->debug(LOG4CXX_TEST_STR("filled mdc, key3 in pattern")); layout->setConversionPattern(mdcMsgPattern5); layout->activateOptions(pool); root->debug(LOG4CXX_TEST_STR("filled mdc, key1, key2, and key3 in pattern")); MDC::remove(LOG4CXX_TEST_STR("key1")); MDC::remove(LOG4CXX_TEST_STR("key2")); layout->setConversionPattern(LOG4CXX_STR("%m%n")); layout->activateOptions(pool); root->debug(LOG4CXX_TEST_STR("finished mdc pattern test")); LOGUNIT_ASSERT(Compare::compare(OUTPUT_FILE, WITNESS_FILE)); } std::string createMessage(Pool& pool, int i) { std::string msg("Message "); msg.append(pool.itoa(i)); return msg; } void common() { int i = -1; Pool pool; LOG4CXX_DEBUG(logger, createMessage(pool, ++i)); LOG4CXX_DEBUG(root, createMessage(pool, i)); LOG4CXX_INFO(logger, createMessage(pool, ++i)); LOG4CXX_INFO(root, createMessage(pool, i)); LOG4CXX_WARN(logger, createMessage(pool, ++i)); LOG4CXX_WARN(root, createMessage(pool, i)); LOG4CXX_ERROR(logger, createMessage(pool, ++i)); LOG4CXX_ERROR(root, createMessage(pool, i)); LOG4CXX_FATAL(logger, createMessage(pool, ++i)); LOG4CXX_FATAL(root, createMessage(pool, i)); } private: static const LogString FILTERED; static const LogString TEMP; }; const LogString PatternLayoutTest::TEMP(LOG4CXX_STR("output/temp")); const LogString PatternLayoutTest::FILTERED(LOG4CXX_STR("output/filtered")); LOGUNIT_TEST_SUITE_REGISTRATION(PatternLayoutTest); apache-log4cxx-0.10.0/src/test/cpp/leveltestcase.cpp100644 0 0 6675 10774263274 17457 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include "testchar.h" #include "logunit.h" #if LOG4CXX_CFSTRING_API #include #endif using namespace log4cxx; LOGUNIT_CLASS(LevelTestCase) { LOGUNIT_TEST_SUITE(LevelTestCase); LOGUNIT_TEST(testToLevelFatal); LOGUNIT_TEST(testTraceInt); LOGUNIT_TEST(testTrace); LOGUNIT_TEST(testIntToTrace); LOGUNIT_TEST(testStringToTrace); #if LOG4CXX_WCHAR_T_API LOGUNIT_TEST(testWideStringToTrace); #endif #if LOG4CXX_UNICHAR_API LOGUNIT_TEST(testUniCharStringToTrace); #endif #if LOG4CXX_CFSTRING_API LOGUNIT_TEST(testCFStringToTrace); #endif LOGUNIT_TEST_SUITE_END(); public: void testToLevelFatal() { LevelPtr level(Level::toLevel(LOG4CXX_TEST_STR("fATal"))); LOGUNIT_ASSERT_EQUAL((int) Level::FATAL_INT, level->toInt()); } /** * Tests Level::TRACE_INT. */ void testTraceInt() { LOGUNIT_ASSERT_EQUAL(5000, (int) Level::TRACE_INT); } /** * Tests Level.TRACE. */ void testTrace() { LOGUNIT_ASSERT(Level::getTrace()->toString() == LOG4CXX_STR("TRACE")); LOGUNIT_ASSERT_EQUAL(5000, Level::getTrace()->toInt()); LOGUNIT_ASSERT_EQUAL(7, Level::getTrace()->getSyslogEquivalent()); } /** * Tests Level.toLevel(Level.TRACE_INT). */ void testIntToTrace() { LevelPtr trace(Level::toLevel(5000)); LOGUNIT_ASSERT(trace->toString() == LOG4CXX_STR("TRACE")); } /** * Tests Level.toLevel("TRACE"); */ void testStringToTrace() { LevelPtr trace(Level::toLevel("TRACE")); LOGUNIT_ASSERT(trace->toString() == LOG4CXX_STR("TRACE")); } #if LOG4CXX_WCHAR_T_API /** * Tests Level.toLevel(L"TRACE"); */ void testWideStringToTrace() { LevelPtr trace(Level::toLevel(L"TRACE")); LOGUNIT_ASSERT(trace->toString() == LOG4CXX_STR("TRACE")); } #endif #if LOG4CXX_UNICHAR_API /** * Tests Level.toLevel("TRACE"); */ void testUniCharStringToTrace() { const log4cxx::UniChar name[] = { 'T', 'R', 'A', 'C', 'E', 0 }; LevelPtr trace(Level::toLevel(name)); LOGUNIT_ASSERT(trace->toString() == LOG4CXX_STR("TRACE")); } #endif #if LOG4CXX_CFSTRING_API /** * Tests Level.toLevel(CFSTR("TRACE")); */ void testCFStringToTrace() { LevelPtr trace(Level::toLevel(CFSTR("TRACE"))); LOGUNIT_ASSERT(trace->toString() == LOG4CXX_STR("TRACE")); } #endif }; LOGUNIT_TEST_SUITE_REGISTRATION(LevelTestCase); apache-log4cxx-0.10.0/src/test/cpp/minimumtestcase.cpp100644 0 0 21141 10774263274 20024 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "logunit.h" #include #include #include #include #include #include "util/compare.h" #include "util/transformer.h" #include "util/linenumberfilter.h" #include "util/controlfilter.h" #include "util/absolutedateandtimefilter.h" #include "util/threadfilter.h" #include #include #include #include #include "testchar.h" #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; #define TTCC_PAT \ ABSOLUTE_DATE_AND_TIME_PAT \ " \\[0x[0-9A-F]*]\\ (DEBUG|INFO|WARN|ERROR|FATAL) .* - Message [0-9]\\{1,2\\}" #define TTCC2_PAT \ ABSOLUTE_DATE_AND_TIME_PAT \ " \\[0x[0-9A-F]*]\\ (DEBUG|INFO|WARN|ERROR|FATAL) .* - " \ "Messages should bear numbers 0 through 23\\." LOGUNIT_CLASS(MinimumTestCase) { LOGUNIT_TEST_SUITE(MinimumTestCase); LOGUNIT_TEST(simple); LOGUNIT_TEST(ttcc); LOGUNIT_TEST_SUITE_END(); public: void setUp() { root = Logger::getRootLogger(); root->removeAllAppenders(); } void tearDown() { root->getLoggerRepository()->resetConfiguration(); } void simple() { LayoutPtr layout = new SimpleLayout(); AppenderPtr appender = new FileAppender(layout, LOG4CXX_STR("output/simple"), false); root->addAppender(appender); common(); LOGUNIT_ASSERT(Compare::compare(LOG4CXX_FILE("output/simple"), LOG4CXX_FILE("witness/simple"))); } void ttcc() { LayoutPtr layout = new TTCCLayout(LOG4CXX_STR("DATE")); AppenderPtr appender = new FileAppender(layout, LOG4CXX_STR("output/ttcc"), false); root->addAppender(appender); common(); ControlFilter filter1; filter1 << TTCC_PAT << TTCC2_PAT; AbsoluteDateAndTimeFilter filter2; ThreadFilter filter3; std::vector filters; filters.push_back(&filter1); filters.push_back(&filter2); filters.push_back(&filter3); try { const File output("output/ttcc"); Transformer::transform(output, FILTERED, filters); } catch(std::exception& e) { std::cout << "UnexpectedFormatException :" << e.what() << std::endl; throw; } const File witness("witness/ttcc"); LOGUNIT_ASSERT(Compare::compare(FILTERED, witness)); } std::string createMessage(int i, Pool& pool) { std::string msg("Message "); msg.append(pool.itoa(i)); return msg; } void common() { int i = 0; // In the lines below, the logger names are chosen as an aid in // remembering their level values. In general, the logger names // have no bearing to level values. LoggerPtr ERRlogger = Logger::getLogger(LOG4CXX_TEST_STR("ERR")); ERRlogger->setLevel(Level::getError()); LoggerPtr INF = Logger::getLogger(LOG4CXX_TEST_STR("INF")); INF->setLevel(Level::getInfo()); LoggerPtr INF_ERR = Logger::getLogger(LOG4CXX_TEST_STR("INF.ERR")); INF_ERR->setLevel(Level::getError()); LoggerPtr DEB = Logger::getLogger(LOG4CXX_TEST_STR("DEB")); DEB->setLevel(Level::getDebug()); // Note: categories with undefined level LoggerPtr INF_UNDEF = Logger::getLogger(LOG4CXX_TEST_STR("INF.UNDEF")); LoggerPtr INF_ERR_UNDEF = Logger::getLogger(LOG4CXX_TEST_STR("INF.ERR.UNDEF")); LoggerPtr UNDEF = Logger::getLogger(LOG4CXX_TEST_STR("UNDEF")); std::string msg("Message "); Pool pool; // These should all log.---------------------------- LOG4CXX_FATAL(ERRlogger, createMessage(i, pool)); i++; //0 LOG4CXX_ERROR(ERRlogger, createMessage(i, pool)); i++; LOG4CXX_FATAL(INF, createMessage(i, pool)); i++; // 2 LOG4CXX_ERROR(INF, createMessage(i, pool)); i++; LOG4CXX_WARN(INF, createMessage(i, pool)); i++; LOG4CXX_INFO(INF, createMessage(i, pool)); i++; LOG4CXX_FATAL(INF_UNDEF, createMessage(i, pool)); i++; //6 LOG4CXX_ERROR(INF_UNDEF, createMessage(i, pool)); i++; LOG4CXX_WARN(INF_UNDEF, createMessage(i, pool)); i++; LOG4CXX_INFO(INF_UNDEF, createMessage(i, pool)); i++; LOG4CXX_FATAL(INF_ERR, createMessage(i, pool)); i++; // 10 LOG4CXX_ERROR(INF_ERR, createMessage(i, pool)); i++; LOG4CXX_FATAL(INF_ERR_UNDEF, createMessage(i, pool)); i++; LOG4CXX_ERROR(INF_ERR_UNDEF, createMessage(i, pool)); i++; LOG4CXX_FATAL(DEB, createMessage(i, pool)); i++; //14 LOG4CXX_ERROR(DEB, createMessage(i, pool)); i++; LOG4CXX_WARN(DEB, createMessage(i, pool)); i++; LOG4CXX_INFO(DEB, createMessage(i, pool)); i++; LOG4CXX_DEBUG(DEB, createMessage(i, pool)); i++; // defaultLevel=DEBUG LOG4CXX_FATAL(UNDEF, createMessage(i, pool)); i++; // 19 LOG4CXX_ERROR(UNDEF, createMessage(i, pool)); i++; LOG4CXX_WARN(UNDEF, createMessage(i, pool)); i++; LOG4CXX_INFO(UNDEF, createMessage(i, pool)); i++; LOG4CXX_DEBUG(UNDEF, createMessage(i, pool)); i++; // ------------------------------------------------- // The following should not log LOG4CXX_WARN(ERRlogger, createMessage(i, pool)); i++; LOG4CXX_INFO(ERRlogger, createMessage(i, pool)); i++; LOG4CXX_DEBUG(ERRlogger, createMessage(i, pool)); i++; LOG4CXX_DEBUG(INF, createMessage(i, pool)); i++; LOG4CXX_DEBUG(INF_UNDEF, createMessage(i, pool)); i++; LOG4CXX_WARN(INF_ERR, createMessage(i, pool)); i++; LOG4CXX_INFO(INF_ERR, createMessage(i, pool)); i++; LOG4CXX_DEBUG(INF_ERR, createMessage(i, pool)); i++; LOG4CXX_WARN(INF_ERR_UNDEF, createMessage(i, pool)); i++; LOG4CXX_INFO(INF_ERR_UNDEF, createMessage(i, pool)); i++; LOG4CXX_DEBUG(INF_ERR_UNDEF, createMessage(i, pool)); i++; // ------------------------------------------------- LOG4CXX_INFO(INF, LOG4CXX_TEST_STR("Messages should bear numbers 0 through 23.")); } LoggerPtr root; LoggerPtr logger; private: static const File FILTERED; }; const File MinimumTestCase::FILTERED("output/filtered"); LOGUNIT_TEST_SUITE_REGISTRATION(MinimumTestCase); apache-log4cxx-0.10.0/src/test/cpp/appenderskeletontestcase.h100644 0 0 2207 10774263274 21343 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include "logunit.h" /** An abstract set of tests for inclusion in concrete appender test case */ LOGUNIT_CLASS(AppenderSkeletonTestCase) { public: virtual log4cxx::AppenderSkeleton* createAppenderSkeleton() const = 0; void testDefaultThreshold(); void testSetOptionThreshold(); }; apache-log4cxx-0.10.0/src/test/cpp/propertyconfiguratortest.cpp100644 0 0 7771 10774263274 22021 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include "vectorappender.h" #include "logunit.h" using namespace log4cxx; using namespace log4cxx::helpers; LOGUNIT_CLASS(PropertyConfiguratorTest) { LOGUNIT_TEST_SUITE(PropertyConfiguratorTest); LOGUNIT_TEST(testInherited); LOGUNIT_TEST(testNull); LOGUNIT_TEST(testAppenderThreshold); LOGUNIT_TEST_SUITE_END(); public: void testInherited() { Properties props; props.put(LOG4CXX_STR("log4j.rootLogger"),LOG4CXX_STR("DEBUG,VECTOR1")); props.put(LOG4CXX_STR("log4j.logger.org.apache.log4j.PropertyConfiguratorTest"), LOG4CXX_STR("inherited,VECTOR2")); props.put(LOG4CXX_STR("log4j.appender.VECTOR1"), LOG4CXX_STR("org.apache.log4j.VectorAppender")); props.put(LOG4CXX_STR("log4j.appender.VECTOR2"), LOG4CXX_STR("org.apache.log4j.VectorAppender")); PropertyConfigurator::configure(props); LoggerPtr logger = Logger::getLogger("org.apache.log4j.PropertyConfiguratorTest"); LOGUNIT_ASSERT_EQUAL((int) Level::DEBUG_INT, logger->getEffectiveLevel()->toInt()); Logger::getRootLogger()->setLevel(Level::getError()); LOGUNIT_ASSERT_EQUAL((int) Level::ERROR_INT, logger->getEffectiveLevel()->toInt()); LogManager::resetConfiguration(); } void testNull() { Properties props; props.put(LOG4CXX_STR("log4j.rootLogger"),LOG4CXX_STR("DEBUG,VECTOR1")); props.put(LOG4CXX_STR("log4j.logger.org.apache.log4j.PropertyConfiguratorTest"), LOG4CXX_STR("NuLL,VECTOR2")); props.put(LOG4CXX_STR("log4j.appender.VECTOR1"), LOG4CXX_STR("org.apache.log4j.VectorAppender")); props.put(LOG4CXX_STR("log4j.appender.VECTOR2"), LOG4CXX_STR("org.apache.log4j.VectorAppender")); PropertyConfigurator::configure(props); LoggerPtr logger = Logger::getLogger("org.apache.log4j.PropertyConfiguratorTest"); LOGUNIT_ASSERT_EQUAL((int) Level::DEBUG_INT, logger->getEffectiveLevel()->toInt()); Logger::getRootLogger()->setLevel(Level::getError()); LOGUNIT_ASSERT_EQUAL((int) Level::ERROR_INT, logger->getEffectiveLevel()->toInt()); LogManager::resetConfiguration(); } void testAppenderThreshold() { Properties props; props.put(LOG4CXX_STR("log4j.rootLogger"), LOG4CXX_STR("ALL,VECTOR1")); props.put(LOG4CXX_STR("log4j.appender.VECTOR1"), LOG4CXX_STR("org.apache.log4j.VectorAppender")); props.put(LOG4CXX_STR("log4j.appender.VECTOR1.threshold"), LOG4CXX_STR("WARN")); PropertyConfigurator::configure(props); LoggerPtr root(Logger::getRootLogger()); VectorAppenderPtr appender(root->getAppender(LOG4CXX_STR("VECTOR1"))); LOGUNIT_ASSERT_EQUAL((int) Level::WARN_INT, appender->getThreshold()->toInt()); LOG4CXX_INFO(root, "Info message"); LOG4CXX_WARN(root, "Warn message"); LOG4CXX_WARN(root, "Error message"); LOGUNIT_ASSERT_EQUAL((size_t) 2, appender->vector.size()); LogManager::resetConfiguration(); } }; LOGUNIT_TEST_SUITE_REGISTRATION(PropertyConfiguratorTest); apache-log4cxx-0.10.0/src/test/cpp/vectorappender.cpp100644 0 0 2462 10774263274 17623 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "vectorappender.h" #include using namespace log4cxx; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(VectorAppender) void VectorAppender::append(const spi::LoggingEventPtr& event, Pool& /*p*/) { try { Thread::sleep(100); } catch (Exception&) { } vector.push_back(event); } void VectorAppender::close() { if (this->closed) { return; } this->closed = true; } apache-log4cxx-0.10.0/src/test/cpp/filetestcase.cpp100644 0 0 14051 10774263274 17272 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include "logunit.h" #include "insertwide.h" #include #include #include #include #include #include #include #include #if LOG4CXX_CFSTRING_API #include #endif using namespace log4cxx; using namespace log4cxx::helpers; LOGUNIT_CLASS(FileTestCase) { LOGUNIT_TEST_SUITE(FileTestCase); LOGUNIT_TEST(defaultConstructor); LOGUNIT_TEST(defaultExists); LOGUNIT_TEST(defaultRead); LOGUNIT_TEST(propertyRead); LOGUNIT_TEST(propertyExists); LOGUNIT_TEST(fileWrite1); #if LOG4CXX_WCHAR_T_API LOGUNIT_TEST(wcharConstructor); #endif #if LOG4CXX_UNICHAR_API LOGUNIT_TEST(unicharConstructor); #endif #if LOG4CXX_CFSTRING_API LOGUNIT_TEST(cfstringConstructor); #endif LOGUNIT_TEST(copyConstructor); LOGUNIT_TEST(assignment); LOGUNIT_TEST(deleteBackslashedFileName); LOGUNIT_TEST_SUITE_END(); public: void defaultConstructor() { File defFile; LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR(""), defFile.getPath()); } void defaultExists() { File defFile; Pool pool; bool exists = defFile.exists(pool); LOGUNIT_ASSERT_EQUAL(false, exists); } // check default constructor. read() throws an exception // if no file name was given. void defaultRead() { File defFile; Pool pool; try { InputStreamPtr defInput = new FileInputStream(defFile); InputStreamReaderPtr inputReader = new InputStreamReader(defInput); LogString contents(inputReader->read(pool)); LOGUNIT_ASSERT(false); } catch(IOException &ex) { } } #if LOG4CXX_WCHAR_T_API void wcharConstructor() { File propFile(L"input/patternLayout1.properties"); Pool pool; bool exists = propFile.exists(pool); LOGUNIT_ASSERT_EQUAL(true, exists); } #endif #if LOG4CXX_UNICHAR_API void unicharConstructor() { const log4cxx::UniChar filename[] = { 'i', 'n', 'p', 'u', 't', '/', 'p', 'a', 't', 't', 'e', 'r', 'n', 'L', 'a', 'y', 'o', 'u', 't', '1', '.', 'p', 'r', 'o', 'p', 'e', 'r', 't', 'i', 'e', 's', 0 }; File propFile(filename); Pool pool; bool exists = propFile.exists(pool); LOGUNIT_ASSERT_EQUAL(true, exists); } #endif #if LOG4CXX_CFSTRING_API void cfstringConstructor() { File propFile(CFSTR("input/patternLayout.properties")); Pool pool; bool exists = propFile.exists(pool); LOGUNIT_ASSERT_EQUAL(true, exists); } #endif void copyConstructor() { File propFile("input/patternLayout1.properties"); File copy(propFile); Pool pool; bool exists = copy.exists(pool); LOGUNIT_ASSERT_EQUAL(true, exists); } void assignment() { File propFile("input/patternLayout1.properties"); File copy = propFile; Pool pool; bool exists = copy.exists(pool); LOGUNIT_ASSERT_EQUAL(true, exists); } void propertyRead() { File propFile("input/patternLayout1.properties"); Pool pool; InputStreamPtr propStream = new FileInputStream(propFile); InputStreamReaderPtr propReader = new InputStreamReader(propStream); LogString props(propReader->read(pool)); LogString line1(LOG4CXX_STR("# Licensed to the Apache Software Foundation (ASF) under one or more")); LOGUNIT_ASSERT_EQUAL(line1, props.substr(0, line1.length())); } void propertyExists() { File propFile("input/patternLayout1.properties"); Pool pool; bool exists = propFile.exists(pool); LOGUNIT_ASSERT_EQUAL(true, exists); } void fileWrite1() { OutputStreamPtr fos = new FileOutputStream(LOG4CXX_STR("output/fileWrite1.txt")); OutputStreamWriterPtr osw = new OutputStreamWriter(fos); Pool pool; LogString greeting(LOG4CXX_STR("Hello, World")); greeting.append(LOG4CXX_EOL); osw->write(greeting, pool); InputStreamPtr is = new FileInputStream(LOG4CXX_STR("output/fileWrite1.txt")); InputStreamReaderPtr isr = new InputStreamReader(is); LogString reply = isr->read(pool); LOGUNIT_ASSERT_EQUAL(greeting, reply); } /** * Tests conversion of backslash containing file names. * Would cause infinite loop due to bug LOGCXX-105. */ void deleteBackslashedFileName() { File file("output\\bogus.txt"); Pool pool; /*bool deleted = */file.deleteFile(pool); } }; LOGUNIT_TEST_SUITE_REGISTRATION(FileTestCase); apache-log4cxx-0.10.0/src/test/cpp/logunit.cpp100644 0 0 14731 10774263274 16305 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include "logunit.h" #include #include #include #include void initialize() { setlocale(LC_CTYPE, ""); const char* ctype = setlocale(LC_CTYPE, 0); if (ctype == 0) { puts("LC_CTYPE: NULL"); } else { printf("LC_CTYPE: %s\n", ctype); } apr_initialize(); } extern const char** testlist; static bool suite_sort(const LogUnit::SuiteList::value_type& lhs, const LogUnit::SuiteList::value_type& rhs) { return lhs.first < rhs.first; } abts_suite* abts_run_suites(abts_suite* suite) { LogUnit::SuiteList sorted(LogUnit::getAllSuites()); #if !defined(_MSC_VER) std::sort(sorted.begin(), sorted.end(), suite_sort); #endif for(LogUnit::SuiteList::const_iterator iter = sorted.begin(); iter != sorted.end(); iter++) { // // if there is an explicit testlist or if the suite is not by default disabled // pump suite through filter if(testlist || !iter->second->isDisabled()) { suite = iter->second->run(suite); } } apr_terminate(); return suite; } using namespace LogUnit; using namespace std; TestException::TestException() {} TestException::TestException(const TestException& src) : std::exception(src) { } TestException& TestException::operator=(const TestException& src) { exception::operator=(src); return *this; } AssertException::AssertException(std::string message, int line) : msg(message), lineno(line) {} AssertException::AssertException(bool expected, const char* actualExpr, int line) : msg(actualExpr), lineno(line) { if (expected) { msg.append(" was expected to be true, was false."); } else { msg.append(" was expected to be true, was false."); } } AssertException::AssertException(const AssertException& src) : std::exception(src), msg(src.msg), lineno(src.lineno) { } AssertException::~AssertException() throw() { } AssertException& AssertException::operator=(const AssertException& src) { exception::operator=(src); msg = src.msg; lineno = src.lineno; return *this; } std::string AssertException::getMessage() const { return msg; } int AssertException::getLine() const { return lineno; } TestFixture::TestFixture() : tc(0) {} TestFixture::~TestFixture() {} void TestFixture::setCase(abts_case* tc) { this->tc = tc; } void TestFixture::setUp() {} void TestFixture::tearDown() {} void TestFixture::assertEquals(const char* expected, const char* actual, const char* expectedExpr, const char* actualExpr, int lineno) { abts_str_equal(tc, expected, actual, lineno); if ((expected == 0 || actual != 0) || (expected != 0 || actual == 0) || (expected != 0 && strcmp(expected, actual) != 0)) { throw TestException(); } } void TestFixture::assertEquals(const std::string expected, const std::string actual, const char* expectedExpr, const char* actualExpr, int lineno) { abts_str_equal(tc, expected.c_str(), actual.c_str(), lineno); if (expected != actual) { throw TestException(); } } template static void transcode(std::string& dst, const S& src) { for(typename S::const_iterator iter = src.begin(); iter != src.end(); iter++) { if (*iter <= 0x7F) { dst.append(1, (char) *iter); } else { dst.append(1, '?'); } } } #if LOG4CXX_LOGCHAR_IS_WCHAR || LOG4CXX_WCHAR_T_API void TestFixture::assertEquals(const std::wstring expected, const std::wstring actual, const char* expectedExpr, const char* actualExpr, int lineno) { if (expected != actual) { std::string exp, act; transcode(exp, expected); transcode(act, actual); abts_str_equal(tc, exp.c_str(), act.c_str(), lineno); throw TestException(); } } #endif #if LOG4CXX_LOGCHAR_IS_UNICHAR || LOG4CXX_UNICHAR_API || LOG4CXX_CFSTRING_API void TestFixture::assertEquals(const std::basic_string expected, const std::basic_string actual, const char* expectedExpr, const char* actualExpr, int lineno) { if (expected != actual) { std::string exp, act; transcode(exp, expected); transcode(act, actual); abts_str_equal(tc, exp.c_str(), act.c_str(), lineno); throw TestException(); } } #endif void TestFixture::assertEquals(const int expected, const int actual, int lineno) { abts_int_equal(tc, expected, actual, lineno); if (expected != actual) { throw TestException(); } } LogUnit::TestSuite::TestSuite(const char* fname) : filename(fname), disabled(false) { #if defined(_WIN32) for(size_t i = filename.find('\\'); i != std::string::npos; i = filename.find('\\', i+1)) { filename.replace(i, 1, 1, '/'); } #endif } void LogUnit::TestSuite::addTest(const char*, test_func func) { test_funcs.push_back(func); } std::string LogUnit::TestSuite::getName() const { return filename; } void LogUnit::TestSuite::setDisabled(bool newVal) { disabled = newVal; } bool LogUnit::TestSuite::isDisabled() const { return disabled; } abts_suite* TestSuite::run(abts_suite* suite) const { suite = abts_add_suite(suite, filename.c_str()); for(TestList::const_iterator iter = test_funcs.begin(); iter != test_funcs.end(); iter++) { abts_run_test(suite, *iter, NULL); } return suite; } LogUnit::SuiteList& LogUnit::getAllSuites() { static LogUnit::SuiteList allSuites; return allSuites; } apache-log4cxx-0.10.0/src/test/cpp/loggertestcase.cpp100644 0 0 41377 10774263274 17645 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include #include #include #include "insertwide.h" #include "testchar.h" #include "logunit.h" #include #include "vectorappender.h" using namespace log4cxx; using namespace log4cxx::spi; using namespace log4cxx::helpers; class CountingAppender; typedef helpers::ObjectPtrT CountingAppenderPtr; class CountingAppender : public AppenderSkeleton { public: int counter; CountingAppender() : counter(0) {} void close() {} void append(const spi::LoggingEventPtr& /*event*/, Pool& /*p*/) { counter++; } bool requiresLayout() const { return true; } }; LOGUNIT_CLASS(LoggerTestCase) { LOGUNIT_TEST_SUITE(LoggerTestCase); LOGUNIT_TEST(testAppender1); LOGUNIT_TEST(testAppender2); LOGUNIT_TEST(testAdditivity1); LOGUNIT_TEST(testAdditivity2); LOGUNIT_TEST(testAdditivity3); LOGUNIT_TEST(testDisable1); // LOGUNIT_TEST(testRB1); // LOGUNIT_TEST(testRB2); //TODO restore // LOGUNIT_TEST(testRB3); LOGUNIT_TEST(testExists); LOGUNIT_TEST(testHierarchy1); LOGUNIT_TEST(testTrace); LOGUNIT_TEST(testIsTraceEnabled); LOGUNIT_TEST_SUITE_END(); public: void setUp() { } void tearDown() { BasicConfigurator::resetConfiguration(); a1 = 0; a2 = 0; logger = 0; } /** Add an appender and see if it can be retrieved. */ void testAppender1() { logger = Logger::getLogger(LOG4CXX_TEST_STR("test")); a1 = new FileAppender(); a1->setName(LOG4CXX_STR("testAppender1")); logger->addAppender(a1); AppenderList list = logger->getAllAppenders(); AppenderPtr aHat = list.front(); LOGUNIT_ASSERT_EQUAL(a1, aHat); } /** Add an appender X, Y, remove X and check if Y is the only remaining appender. */ void testAppender2() { a1 = new FileAppender(); a1->setName(LOG4CXX_STR("testAppender2.1")); a2 = new FileAppender(); a2->setName(LOG4CXX_STR("testAppender2.2")); logger = Logger::getLogger(LOG4CXX_TEST_STR("test")); logger->addAppender(a1); logger->addAppender(a2); logger->removeAppender((LogString) LOG4CXX_STR("testAppender2.1")); AppenderList list = logger->getAllAppenders(); AppenderPtr aHat = list.front(); LOGUNIT_ASSERT_EQUAL(a2, aHat); LOGUNIT_ASSERT(list.size() == 1); } /** Test if LoggerPtr a.b inherits its appender from a. */ void testAdditivity1() { LoggerPtr a = Logger::getLogger(LOG4CXX_TEST_STR("a")); LoggerPtr ab = Logger::getLogger(LOG4CXX_TEST_STR("a.b")); CountingAppenderPtr ca = new CountingAppender(); a->addAppender(ca); LOGUNIT_ASSERT_EQUAL(ca->counter, 0); ab->debug(MSG); LOGUNIT_ASSERT_EQUAL(ca->counter, 1); ab->info(MSG); LOGUNIT_ASSERT_EQUAL(ca->counter, 2); ab->warn(MSG); LOGUNIT_ASSERT_EQUAL(ca->counter, 3); ab->error(MSG); LOGUNIT_ASSERT_EQUAL(ca->counter, 4); } /** Test multiple additivity. */ void testAdditivity2() { LoggerPtr a = Logger::getLogger(LOG4CXX_TEST_STR("a")); LoggerPtr ab = Logger::getLogger(LOG4CXX_TEST_STR("a.b")); LoggerPtr abc = Logger::getLogger(LOG4CXX_TEST_STR("a.b.c")); LoggerPtr x = Logger::getLogger(LOG4CXX_TEST_STR("x")); CountingAppenderPtr ca1 = new CountingAppender(); CountingAppenderPtr ca2 = new CountingAppender(); a->addAppender(ca1); abc->addAppender(ca2); LOGUNIT_ASSERT_EQUAL(ca1->counter, 0); LOGUNIT_ASSERT_EQUAL(ca2->counter, 0); ab->debug(MSG); LOGUNIT_ASSERT_EQUAL(ca1->counter, 1); LOGUNIT_ASSERT_EQUAL(ca2->counter, 0); abc->debug(MSG); LOGUNIT_ASSERT_EQUAL(ca1->counter, 2); LOGUNIT_ASSERT_EQUAL(ca2->counter, 1); x->debug(MSG); LOGUNIT_ASSERT_EQUAL(ca1->counter, 2); LOGUNIT_ASSERT_EQUAL(ca2->counter, 1); } /** Test additivity flag. */ void testAdditivity3() { LoggerPtr root = Logger::getRootLogger(); LoggerPtr a = Logger::getLogger(LOG4CXX_TEST_STR("a")); LoggerPtr ab = Logger::getLogger(LOG4CXX_TEST_STR("a.b")); LoggerPtr abc = Logger::getLogger(LOG4CXX_TEST_STR("a.b.c")); LoggerPtr x = Logger::getLogger(LOG4CXX_TEST_STR("x")); CountingAppenderPtr caRoot = new CountingAppender(); CountingAppenderPtr caA = new CountingAppender(); CountingAppenderPtr caABC = new CountingAppender(); root->addAppender(caRoot); a->addAppender(caA); abc->addAppender(caABC); LOGUNIT_ASSERT_EQUAL(caRoot->counter, 0); LOGUNIT_ASSERT_EQUAL(caA->counter, 0); LOGUNIT_ASSERT_EQUAL(caABC->counter, 0); ab->setAdditivity(false); a->debug(MSG); LOGUNIT_ASSERT_EQUAL(caRoot->counter, 1); LOGUNIT_ASSERT_EQUAL(caA->counter, 1); LOGUNIT_ASSERT_EQUAL(caABC->counter, 0); ab->debug(MSG); LOGUNIT_ASSERT_EQUAL(caRoot->counter, 1); LOGUNIT_ASSERT_EQUAL(caA->counter, 1); LOGUNIT_ASSERT_EQUAL(caABC->counter, 0); abc->debug(MSG); LOGUNIT_ASSERT_EQUAL(caRoot->counter, 1); LOGUNIT_ASSERT_EQUAL(caA->counter, 1); LOGUNIT_ASSERT_EQUAL(caABC->counter, 1); } void testDisable1() { CountingAppenderPtr caRoot = new CountingAppender(); LoggerPtr root = Logger::getRootLogger(); root->addAppender(caRoot); LoggerRepositoryPtr h = LogManager::getLoggerRepository(); //h.disableDebug(); h->setThreshold(Level::getInfo()); LOGUNIT_ASSERT_EQUAL(caRoot->counter, 0); root->debug(MSG); LOGUNIT_ASSERT_EQUAL(caRoot->counter, 0); root->info(MSG); LOGUNIT_ASSERT_EQUAL(caRoot->counter, 1); root->log(Level::getWarn(), MSG); LOGUNIT_ASSERT_EQUAL(caRoot->counter, 2); root->warn(MSG); LOGUNIT_ASSERT_EQUAL(caRoot->counter, 3); //h.disableInfo(); h->setThreshold(Level::getWarn()); root->debug(MSG); LOGUNIT_ASSERT_EQUAL(caRoot->counter, 3); root->info(MSG); LOGUNIT_ASSERT_EQUAL(caRoot->counter, 3); root->log(Level::getWarn(), MSG); LOGUNIT_ASSERT_EQUAL(caRoot->counter, 4); root->error(MSG); LOGUNIT_ASSERT_EQUAL(caRoot->counter, 5); root->log(Level::getError(), MSG); LOGUNIT_ASSERT_EQUAL(caRoot->counter, 6); //h.disableAll(); h->setThreshold(Level::getOff()); root->debug(MSG); LOGUNIT_ASSERT_EQUAL(caRoot->counter, 6); root->info(MSG); LOGUNIT_ASSERT_EQUAL(caRoot->counter, 6); root->log(Level::getWarn(), MSG); LOGUNIT_ASSERT_EQUAL(caRoot->counter, 6); root->error(MSG); LOGUNIT_ASSERT_EQUAL(caRoot->counter, 6); root->log(Level::getFatal(), MSG); LOGUNIT_ASSERT_EQUAL(caRoot->counter, 6); root->log(Level::getFatal(), MSG); LOGUNIT_ASSERT_EQUAL(caRoot->counter, 6); //h.disable(Level::getFatalLevel()); h->setThreshold(Level::getOff()); root->debug(MSG); LOGUNIT_ASSERT_EQUAL(caRoot->counter, 6); root->info(MSG); LOGUNIT_ASSERT_EQUAL(caRoot->counter, 6); root->log(Level::getWarn(), MSG); LOGUNIT_ASSERT_EQUAL(caRoot->counter, 6); root->error(MSG); LOGUNIT_ASSERT_EQUAL(caRoot->counter, 6); root->log(Level::getWarn(), MSG); LOGUNIT_ASSERT_EQUAL(caRoot->counter, 6); root->log(Level::getFatal(), MSG); LOGUNIT_ASSERT_EQUAL(caRoot->counter, 6); } ResourceBundlePtr getBundle(const LogString& lang, const LogString& region) { Locale l(lang, region); ResourceBundlePtr bundle( PropertyResourceBundle::getBundle(LOG4CXX_STR("L7D"),l)); LOGUNIT_ASSERT(bundle != 0); return bundle; } void testRB1() { ResourceBundlePtr rbUS(getBundle(LOG4CXX_STR("en"), LOG4CXX_STR("US"))); ResourceBundlePtr rbFR(getBundle(LOG4CXX_STR("fr"), LOG4CXX_STR("FR"))); ResourceBundlePtr rbCH(getBundle(LOG4CXX_STR("fr"), LOG4CXX_STR("CH"))); LoggerPtr root = Logger::getRootLogger(); root->setResourceBundle(rbUS); ResourceBundlePtr t = root->getResourceBundle(); LOGUNIT_ASSERT(t == rbUS); LoggerPtr x = Logger::getLogger(LOG4CXX_TEST_STR("x")); LoggerPtr x_y = Logger::getLogger(LOG4CXX_TEST_STR("x.y")); LoggerPtr x_y_z = Logger::getLogger(LOG4CXX_TEST_STR("x.y.z")); t = x->getResourceBundle(); LOGUNIT_ASSERT(t == rbUS); t = x_y->getResourceBundle(); LOGUNIT_ASSERT(t == rbUS); t = x_y_z->getResourceBundle(); LOGUNIT_ASSERT(t == rbUS); } void testRB2() { LoggerPtr root = Logger::getRootLogger(); ResourceBundlePtr rbUS(getBundle(LOG4CXX_STR("en"), LOG4CXX_STR("US"))); ResourceBundlePtr rbFR(getBundle(LOG4CXX_STR("fr"), LOG4CXX_STR("FR"))); ResourceBundlePtr rbCH(getBundle(LOG4CXX_STR("fr"), LOG4CXX_STR("CH"))); root->setResourceBundle(rbUS); ResourceBundlePtr t = root->getResourceBundle(); LOGUNIT_ASSERT(t == rbUS); LoggerPtr x = Logger::getLogger(LOG4CXX_TEST_STR("x")); LoggerPtr x_y = Logger::getLogger(LOG4CXX_TEST_STR("x.y")); LoggerPtr x_y_z = Logger::getLogger(LOG4CXX_TEST_STR("x.y.z")); x_y->setResourceBundle(rbFR); t = x->getResourceBundle(); LOGUNIT_ASSERT(t == rbUS); t = x_y->getResourceBundle(); LOGUNIT_ASSERT(t == rbFR); t = x_y_z->getResourceBundle(); LOGUNIT_ASSERT(t == rbFR); } void testRB3() { ResourceBundlePtr rbUS(getBundle(LOG4CXX_STR("en"), LOG4CXX_STR("US"))); ResourceBundlePtr rbFR(getBundle(LOG4CXX_STR("fr"), LOG4CXX_STR("FR"))); ResourceBundlePtr rbCH(getBundle(LOG4CXX_STR("fr"), LOG4CXX_STR("CH"))); LoggerPtr root = Logger::getRootLogger(); root->setResourceBundle(rbUS); ResourceBundlePtr t = root->getResourceBundle(); LOGUNIT_ASSERT(t == rbUS); LoggerPtr x = Logger::getLogger(LOG4CXX_TEST_STR("x")); LoggerPtr x_y = Logger::getLogger(LOG4CXX_TEST_STR("x.y")); LoggerPtr x_y_z = Logger::getLogger(LOG4CXX_TEST_STR("x.y.z")); x_y->setResourceBundle(rbFR); x_y_z->setResourceBundle(rbCH); t = x->getResourceBundle(); LOGUNIT_ASSERT(t == rbUS); t = x_y->getResourceBundle(); LOGUNIT_ASSERT(t == rbFR); t = x_y_z->getResourceBundle(); LOGUNIT_ASSERT(t == rbCH); } void testExists() { LoggerPtr a = Logger::getLogger(LOG4CXX_TEST_STR("a")); LoggerPtr a_b = Logger::getLogger(LOG4CXX_TEST_STR("a.b")); LoggerPtr a_b_c = Logger::getLogger(LOG4CXX_TEST_STR("a.b.c")); LoggerPtr t; t = LogManager::exists(LOG4CXX_TEST_STR("xx")); LOGUNIT_ASSERT(t == 0); t = LogManager::exists(LOG4CXX_TEST_STR("a")); LOGUNIT_ASSERT_EQUAL(a, t); t = LogManager::exists(LOG4CXX_TEST_STR("a.b")); LOGUNIT_ASSERT_EQUAL(a_b, t); t = LogManager::exists(LOG4CXX_TEST_STR("a.b.c")); LOGUNIT_ASSERT_EQUAL(a_b_c, t); } void testHierarchy1() { LoggerRepositoryPtr h = new Hierarchy(); LoggerPtr root(h->getRootLogger()); root->setLevel(Level::getError()); LoggerPtr a0 = h->getLogger(LOG4CXX_STR("a")); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("a"), a0->getName()); LOGUNIT_ASSERT(a0->getLevel() == 0); LOGUNIT_ASSERT(Level::getError() == a0->getEffectiveLevel()); LoggerPtr a11 = h->getLogger(LOG4CXX_STR("a")); LOGUNIT_ASSERT_EQUAL(a0, a11); } void compileTestForLOGCXX202() const { // // prior to fix, these line would compile. // (*logger).info("Hello, World."); ((Logger*) logger)->info("Hello, World."); // // this one would not. // logger->info("Hello, World."); } /** * Tests logger.trace(Object). * */ void testTrace() { VectorAppenderPtr appender = new VectorAppender(); LoggerPtr root = Logger::getRootLogger(); root->addAppender(appender); root->setLevel(Level::getInfo()); LoggerPtr tracer = Logger::getLogger("com.example.Tracer"); tracer->setLevel(Level::getTrace()); LOG4CXX_TRACE(tracer, "Message 1"); LOG4CXX_TRACE(root, "Discarded Message"); LOG4CXX_TRACE(root, "Discarded Message"); std::vector msgs(appender->vector); LOGUNIT_ASSERT_EQUAL((size_t) 1, msgs.size()); LoggingEventPtr event = msgs[0]; LOGUNIT_ASSERT_EQUAL((int) Level::TRACE_INT, event->getLevel()->toInt()); LOGUNIT_ASSERT_EQUAL(LogString(LOG4CXX_STR("Message 1")), event->getMessage()); } /** * Tests isTraceEnabled. * */ void testIsTraceEnabled() { VectorAppenderPtr appender = new VectorAppender(); LoggerPtr root = Logger::getRootLogger(); root->addAppender(appender); root->setLevel(Level::getInfo()); LoggerPtr tracer = Logger::getLogger("com.example.Tracer"); tracer->setLevel(Level::getTrace()); LOGUNIT_ASSERT_EQUAL(true, tracer->isTraceEnabled()); LOGUNIT_ASSERT_EQUAL(false, root->isTraceEnabled()); } protected: static LogString MSG; LoggerPtr logger; AppenderPtr a1; AppenderPtr a2; }; LogString LoggerTestCase::MSG(LOG4CXX_STR("M")); LOGUNIT_TEST_SUITE_REGISTRATION(LoggerTestCase); apache-log4cxx-0.10.0/src/test/cpp/l7dtestcase.cpp100644 0 0 7336 10774263274 17031 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include "util/compare.h" #include #include #include "testchar.h" #include "logunit.h" #include typedef std::basic_ostringstream StringBuffer; using namespace log4cxx; using namespace log4cxx::helpers; LOGUNIT_CLASS(L7dTestCase) { LOGUNIT_TEST_SUITE(L7dTestCase); LOGUNIT_TEST(test1); LOGUNIT_TEST_SUITE_END(); LoggerPtr root; ResourceBundlePtr bundles[3]; public: void setUp() { Locale localeUS(LOG4CXX_STR("en"), LOG4CXX_STR("US")); bundles[0] = ResourceBundle::getBundle(LOG4CXX_STR("L7D"), localeUS); LOGUNIT_ASSERT(bundles[0] != 0); Locale localeFR(LOG4CXX_STR("fr"), LOG4CXX_STR("FR")); bundles[1] = ResourceBundle::getBundle(LOG4CXX_STR("L7D"), localeFR); LOGUNIT_ASSERT(bundles[1] != 0); Locale localeCH(LOG4CXX_STR("fr"), LOG4CXX_STR("CH")); bundles[2] = ResourceBundle::getBundle(LOG4CXX_STR("L7D"), localeCH); LOGUNIT_ASSERT(bundles[2] != 0); root = Logger::getRootLogger(); } void tearDown() { root->getLoggerRepository()->resetConfiguration(); } void test1() { PropertyConfigurator::configure(LOG4CXX_FILE("input/l7d1.properties")); log4cxx::helpers::Pool pool; for (int i = 0; i < 3; i++) { root->setResourceBundle(bundles[i]); LOG4CXX_L7DLOG(root, Level::getDebug(), LOG4CXX_TEST_STR("bogus1")); LOG4CXX_L7DLOG(root, Level::getInfo(), LOG4CXX_TEST_STR("test")); LOG4CXX_L7DLOG(root, Level::getWarn(), LOG4CXX_TEST_STR("hello_world")); StringBuffer os; os << (i + 1); LOG4CXX_L7DLOG2(root, Level::getDebug(), LOG4CXX_TEST_STR("msg1"), os.str().c_str(), LOG4CXX_TEST_STR("log4j")); LOG4CXX_L7DLOG2(root, Level::getError(), LOG4CXX_TEST_STR("bogusMsg"), os.str().c_str(), LOG4CXX_TEST_STR("log4j")); LOG4CXX_L7DLOG2(root, Level::getError(), LOG4CXX_TEST_STR("msg1"), os.str().c_str(), LOG4CXX_TEST_STR("log4j")); LOG4CXX_L7DLOG(root, Level::getInfo(), LOG4CXX_TEST_STR("bogus2")); } LOGUNIT_ASSERT(Compare::compare(LOG4CXX_FILE("output/temp"), LOG4CXX_FILE("witness/l7d.1"))); } }; LOGUNIT_TEST_SUITE_REGISTRATION(L7dTestCase); apache-log4cxx-0.10.0/src/test/cpp/testchar.h100644 0 0 2223 10774263274 16057 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if !defined(_LOG4CXX_TESTCHAR_H) #define _LOG4CXX_TESTCHAR_H // // This macro and typedef lets many tests // check either the wchar_t or char based methods. // #if LOG4CXX_WCHAR_T_API && defined(LOG4CXX_TEST_WCHAR) #define LOG4CXX_TEST_STR(str) L ## str typedef wchar_t testchar; #else #define LOG4CXX_TEST_STR(str) str typedef char testchar; #endif #endif apache-log4cxx-0.10.0/src/test/cpp/encodingtest.cpp100644 0 0 11705 10774263274 17310 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include "logunit.h" // // If there is no support for wchar_t logging then // there is not a consistent way to get the test characters logged // #if LOG4CXX_WCHAR_T_API #include #include #include #include "util/binarycompare.h" #include #include using namespace log4cxx; using namespace log4cxx::util; using namespace log4cxx::helpers; /** * Tests support for encoding specification. * * */ LOGUNIT_CLASS(EncodingTest) { LOGUNIT_TEST_SUITE(EncodingTest); LOGUNIT_TEST(testASCII); LOGUNIT_TEST(testLatin1); LOGUNIT_TEST(testUtf8); LOGUNIT_TEST(testUtf16); LOGUNIT_TEST(testUtf16LE); LOGUNIT_TEST(testUtf16BE); LOGUNIT_TEST_SUITE_END(); public: /** * Resets configuration after each test. */ void tearDown() { Logger::getRootLogger()->getLoggerRepository()->resetConfiguration(); } /** * Test us-ascii encoding. */ void testASCII() { LoggerPtr root(Logger::getRootLogger()); configure(root, LOG4CXX_STR("output/ascii.log"), LOG4CXX_STR("US-ASCII")); common(root); BinaryCompare::compare("output/ascii.log", "witness/encoding/ascii.log"); } /** * Test iso-8859-1 encoding. */ void testLatin1() { LoggerPtr root(Logger::getRootLogger()); configure(root, LOG4CXX_STR("output/latin1.log"), LOG4CXX_STR("iso-8859-1")); common(root); BinaryCompare::compare("output/latin1.log", "witness/encoding/latin1.log"); } /** * Test utf-8 encoding. */ void testUtf8() { LoggerPtr root(Logger::getRootLogger()); configure(root, LOG4CXX_STR("output/UTF-8.log"), LOG4CXX_STR("UTF-8")); common(root); BinaryCompare::compare("output/UTF-8.log", "witness/encoding/UTF-8.log"); } /** * Test utf-16 encoding. */ void testUtf16() { LoggerPtr root(Logger::getRootLogger()); configure(root, LOG4CXX_STR("output/UTF-16.log"), LOG4CXX_STR("UTF-16")); common(root); BinaryCompare::compare("output/UTF-16.log", "witness/encoding/UTF-16.log"); } /** * Test utf-16be encoding. */ void testUtf16BE() { LoggerPtr root(Logger::getRootLogger()); configure(root, LOG4CXX_STR("output/UTF-16BE.log"), LOG4CXX_STR("UTF-16BE")); common(root); BinaryCompare::compare("output/UTF-16BE.log", "witness/encoding/UTF-16BE.log"); } /** * Test utf16-le encoding. */ void testUtf16LE() { LoggerPtr root(Logger::getRootLogger()); configure(root, LOG4CXX_STR("output/UTF-16LE.log"), LOG4CXX_STR("UTF-16LE")); common(root); BinaryCompare::compare("output/UTF-16LE.log", "witness/encoding/UTF-16LE.log"); } /** * Configure logging. * @param logger logger * @param filename logging file name * @param encoding encoding */ private: void configure(LoggerPtr& logger, const LogString& filename, const LogString& encoding) { PatternLayoutPtr layout(new PatternLayout()); layout->setConversionPattern(LOG4CXX_STR("%p - %m\n")); Pool p; layout->activateOptions(p); FileAppenderPtr appender(new FileAppender()); appender->setFile(filename); appender->setEncoding(encoding); appender->setAppend(false); appender->setLayout(layout); appender->activateOptions(p); logger->addAppender(appender); logger->setLevel(Level::getInfo()); } /** * Common logging requests. * @param logger logger */ void common(LoggerPtr& logger) { logger->info("Hello, World"); // pi can be encoded in iso-8859-1 const wchar_t pi[] = { 0x00B9, 0 }; logger->info(pi); // arbitrary, hopefully meaningless, characters from // Latin, Arabic, Armenian, Bengali, CJK and Cyrillic const wchar_t greeting[] = { L'A', 0x0605, 0x0530, 0x986, 0x4E03, 0x400, 0 }; logger->info(greeting); } }; LOGUNIT_TEST_SUITE_REGISTRATION(EncodingTest); #endif apache-log4cxx-0.10.0/src/test/cpp/abts.h100644 0 0 6464 10774263274 15206 0ustar 0 0 /* Copyright 2000-2004 Ryan Bloom * * 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. */ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #ifdef WIN32 #include #else #include #endif #ifndef ABTS_H #define ABTS_H #ifndef FALSE #define FALSE 0 #endif #ifndef TRUE #define TRUE 1 #endif struct sub_suite { const char *name; int num_test; int failed; int not_run; int not_impl; struct sub_suite *next; }; typedef struct sub_suite sub_suite; struct abts_suite { sub_suite *head; sub_suite *tail; }; typedef struct abts_suite abts_suite; struct abts_case { int failed; sub_suite *suite; }; typedef struct abts_case abts_case; typedef void (*test_func)(abts_case *tc, void *data); #define ADD_SUITE(suite) abts_add_suite(suite, __FILE__); abts_suite *abts_add_suite(abts_suite *suite, const char *suite_name); void abts_run_test(abts_suite *ts, test_func f, void *value); void abts_log_message(const char *fmt, ...); void abts_int_equal(abts_case *tc, const int expected, const int actual, int lineno); void abts_int_nequal(abts_case *tc, const int expected, const int actual, int lineno); void abts_str_equal(abts_case *tc, const char *expected, const char *actual, int lineno); void abts_str_nequal(abts_case *tc, const char *expected, const char *actual, size_t n, int lineno); void abts_ptr_notnull(abts_case *tc, const void *ptr, int lineno); void abts_ptr_equal(abts_case *tc, const void *expected, const void *actual, int lineno); void abts_true(abts_case *tc, int condition, int lineno); void abts_fail(abts_case *tc, const char *message, int lineno); void abts_not_impl(abts_case *tc, const char *message, int lineno); void abts_assert(abts_case *tc, const char *message, int condition, int lineno); void abts_size_equal(abts_case *tc, size_t expected, size_t actual, int lineno); /* Convenience macros. Ryan hates these! */ #define ABTS_INT_EQUAL(a, b, c) abts_int_equal(a, b, c, __LINE__) #define ABTS_INT_NEQUAL(a, b, c) abts_int_nequal(a, b, c, __LINE__) #define ABTS_STR_EQUAL(a, b, c) abts_str_equal(a, b, c, __LINE__) #define ABTS_STR_NEQUAL(a, b, c, d) abts_str_nequal(a, b, c, d, __LINE__) #define ABTS_PTR_NOTNULL(a, b) abts_ptr_notnull(a, b, __LINE__) #define ABTS_PTR_EQUAL(a, b, c) abts_ptr_equal(a, b, c, __LINE__) #define ABTS_TRUE(a, b) abts_true(a, b, __LINE__); #define ABTS_FAIL(a, b) abts_fail(a, b, __LINE__); #define ABTS_NOT_IMPL(a, b) abts_not_impl(a, b, __LINE__); #define ABTS_ASSERT(a, b, c) abts_assert(a, b, c, __LINE__); #define ABTS_SIZE_EQUAL(a, b, c) abts_size_equal(a, b, c, __LINE__) abts_suite *run_tests(abts_suite *suite); abts_suite *run_tests1(abts_suite *suite); #endif #ifdef __cplusplus } #endif apache-log4cxx-0.10.0/src/test/cpp/ndctestcase.cpp100644 0 0 6276 10774263274 17111 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include "insertwide.h" #include "logunit.h" #include "util/compare.h" using namespace log4cxx; LOGUNIT_CLASS(NDCTestCase) { static File TEMP; static LoggerPtr logger; LOGUNIT_TEST_SUITE(NDCTestCase); LOGUNIT_TEST(testPushPop); LOGUNIT_TEST(test1); LOGUNIT_TEST(testInherit); LOGUNIT_TEST_SUITE_END(); public: void setUp() { } void tearDown() { logger->getLoggerRepository()->resetConfiguration(); } /** * Push and pop a value from the NDC */ void testPushPop() { NDC::push("trivial context"); LogString actual(NDC::pop()); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("trivial context"), actual); } void test1() { PropertyConfigurator::configure(File("input/ndc/NDC1.properties")); common(); LOGUNIT_ASSERT(Compare::compare(TEMP, File("witness/ndc/NDC.1"))); } static void common() { commonLog(); NDC::push("n1"); commonLog(); NDC::push("n2"); NDC::push("n3"); commonLog(); NDC::pop(); commonLog(); NDC::clear(); commonLog(); } static void commonLog() { LOG4CXX_DEBUG(logger, "m1"); LOG4CXX_INFO(logger, "m2"); LOG4CXX_WARN(logger, "m3"); LOG4CXX_ERROR(logger, "m4"); LOG4CXX_FATAL(logger, "m5"); } void testInherit() { NDC::push("hello"); NDC::push("world"); NDC::Stack* clone = NDC::cloneStack(); NDC::clear(); NDC::push("discard"); NDC::inherit(clone); LogString expected1(LOG4CXX_STR("world")); LOGUNIT_ASSERT_EQUAL(expected1, NDC::pop()); LogString expected2(LOG4CXX_STR("hello")); LOGUNIT_ASSERT_EQUAL(expected2, NDC::pop()); LogString expected3; LOGUNIT_ASSERT_EQUAL(expected3, NDC::pop()); } }; File NDCTestCase::TEMP("output/temp"); LoggerPtr NDCTestCase::logger(Logger::getLogger("org.apache.log4j.NDCTestCase")); LOGUNIT_TEST_SUITE_REGISTRATION(NDCTestCase); apache-log4cxx-0.10.0/src/test/cpp/hierarchythresholdtestcase.cpp100644 0 0 7664 10774263274 22242 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include "util/compare.h" #include "xml/xlevel.h" #include "logunit.h" #include "testchar.h" #include using namespace log4cxx; /** Test the configuration of the hierarchy-wide threshold. */ LOGUNIT_CLASS(HierarchyThresholdTestCase) { LOGUNIT_TEST_SUITE(HierarchyThresholdTestCase); LOGUNIT_TEST(test1); LOGUNIT_TEST(test2); LOGUNIT_TEST(test3); LOGUNIT_TEST(test4); LOGUNIT_TEST(test5); LOGUNIT_TEST(test6); LOGUNIT_TEST(test7); LOGUNIT_TEST(test8); LOGUNIT_TEST_SUITE_END(); public: void setUp() { } void tearDown() { logger->getLoggerRepository()->resetConfiguration(); } void test1() { PropertyConfigurator::configure(LOG4CXX_FILE("input/hierarchyThreshold1.properties")); common(); LOGUNIT_ASSERT(Compare::compare(TEMP, LOG4CXX_FILE("witness/hierarchyThreshold.1"))); } void test2() { PropertyConfigurator::configure(LOG4CXX_FILE("input/hierarchyThreshold2.properties")); common(); LOGUNIT_ASSERT(Compare::compare(TEMP, LOG4CXX_FILE("witness/hierarchyThreshold.2"))); } void test3() { PropertyConfigurator::configure(LOG4CXX_FILE("input/hierarchyThreshold3.properties")); common(); LOGUNIT_ASSERT(Compare::compare(TEMP, LOG4CXX_FILE("witness/hierarchyThreshold.3"))); } void test4() { PropertyConfigurator::configure(LOG4CXX_FILE("input/hierarchyThreshold4.properties")); common(); LOGUNIT_ASSERT(Compare::compare(TEMP, LOG4CXX_FILE("witness/hierarchyThreshold.4"))); } void test5() { PropertyConfigurator::configure(LOG4CXX_FILE("input/hierarchyThreshold5.properties")); common(); LOGUNIT_ASSERT(Compare::compare(TEMP, LOG4CXX_FILE("witness/hierarchyThreshold.5"))); } void test6() { PropertyConfigurator::configure(LOG4CXX_FILE("input/hierarchyThreshold6.properties")); common(); LOGUNIT_ASSERT(Compare::compare(TEMP, LOG4CXX_FILE("witness/hierarchyThreshold.6"))); } void test7() { PropertyConfigurator::configure(LOG4CXX_FILE("input/hierarchyThreshold7.properties")); common(); LOGUNIT_ASSERT(Compare::compare(TEMP, LOG4CXX_FILE("witness/hierarchyThreshold.7"))); } void test8() { PropertyConfigurator::configure(LOG4CXX_FILE("input/hierarchyThreshold8.properties")); common(); LOGUNIT_ASSERT(Compare::compare(TEMP, LOG4CXX_FILE("witness/hierarchyThreshold.8"))); } static void common() { logger->log(XLevel::getTrace(), LOG4CXX_TEST_STR("m0")); logger->debug(LOG4CXX_TEST_STR("m1")); logger->info(LOG4CXX_TEST_STR("m2")); logger->warn(LOG4CXX_TEST_STR("m3")); logger->error(LOG4CXX_TEST_STR("m4")); logger->fatal(LOG4CXX_TEST_STR("m5")); } private: static File TEMP; static LoggerPtr logger; }; File HierarchyThresholdTestCase::TEMP(LOG4CXX_FILE("output/temp")); LoggerPtr HierarchyThresholdTestCase::logger = Logger::getLogger(LOG4CXX_TEST_STR("HierarchyThresholdTestCase")); LOGUNIT_TEST_SUITE_REGISTRATION(HierarchyThresholdTestCase); apache-log4cxx-0.10.0/src/test/cpp/fileappendertestcase.cpp100644 0 0 10513 10774263274 21010 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "fileappendertestcase.h" #include #include #include "insertwide.h" using namespace log4cxx; using namespace log4cxx::helpers; WriterAppender* FileAppenderAbstractTestCase::createWriterAppender() const { return createFileAppender(); } /** Unit tests of log4cxx::FileAppender */ class FileAppenderTestCase : public FileAppenderAbstractTestCase { LOGUNIT_TEST_SUITE(FileAppenderTestCase); // // tests inherited from AppenderSkeletonTestCase // LOGUNIT_TEST(testDefaultThreshold); LOGUNIT_TEST(testSetOptionThreshold); // tests defined here LOGUNIT_TEST(testSetDoubleBackslashes); LOGUNIT_TEST(testStripDuplicateBackslashes); LOGUNIT_TEST_SUITE_END(); public: FileAppender* createFileAppender() const { return new log4cxx::FileAppender(); } void testSetDoubleBackslashes() { FileAppender appender; appender.setOption(LOG4CXX_STR("FILE"), LOG4CXX_STR("output\\\\temp")); const File& file = appender.getFile(); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("output\\temp"), file.getPath()); } /** * Tests that double backslashes in filespecs are stripped * on calls to setOption. * */ void testStripDoubleBackslashes() { FileAppender appender; appender.setOption(LOG4CXX_STR("FILE"), LOG4CXX_STR("output\\\\temp")); const File& file = appender.getFile(); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("output\\temp"), file.getPath()); } /** * Tests stripDuplicateBackslashes * * */ void testStripDuplicateBackslashes() { LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("\\foo\\bar\\foo"), FileAppender::stripDuplicateBackslashes(LOG4CXX_STR("\\foo\\bar\\foo"))); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("\\foo\\bar\\foo\\"), FileAppender::stripDuplicateBackslashes(LOG4CXX_STR("\\\\foo\\\\bar\\\\foo\\\\"))); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("\\foo\\bar\\foo\\"), FileAppender::stripDuplicateBackslashes(LOG4CXX_STR("\\foo\\bar\\foo\\"))); // // UNC's should either start with two backslashes and contain additional singles // or four back slashes and addition doubles LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("\\\\foo\\bar\\foo"), FileAppender::stripDuplicateBackslashes(LOG4CXX_STR("\\\\\\\\foo\\\\bar\\\\foo"))); LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("\\\\foo\\bar\\foo"), FileAppender::stripDuplicateBackslashes(LOG4CXX_STR("\\\\foo\\bar\\foo"))); // // it it starts with doubles but has no other path component // then it is a file path LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("\\foo.log"), FileAppender::stripDuplicateBackslashes(LOG4CXX_STR("\\\\foo.log"))); // // it it starts with quads but has no other path component // then it is a UNC LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("\\\\foo.log"), FileAppender::stripDuplicateBackslashes(LOG4CXX_STR("\\\\\\\\foo.log"))); } }; LOGUNIT_TEST_SUITE_REGISTRATION(FileAppenderTestCase); apache-log4cxx-0.10.0/src/test/cpp/writerappendertestcase.h100644 0 0 2241 10774263274 21031 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include "appenderskeletontestcase.h" /** An abstract set of tests for inclusion in concrete appender test case */ class WriterAppenderTestCase : public AppenderSkeletonTestCase { public: log4cxx::AppenderSkeleton* createAppenderSkeleton() const; virtual log4cxx::WriterAppender* createWriterAppender() const = 0; }; apache-log4cxx-0.10.0/src/test/cpp/rollingfileappendertestcase.cpp100644 0 0 3042 10774263274 22356 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include "fileappendertestcase.h" using namespace log4cxx; using namespace log4cxx::helpers; /** Unit tests of log4cxx::RollingFileAppender */ class RollingFileAppenderTestCase : public FileAppenderAbstractTestCase { LOGUNIT_TEST_SUITE(RollingFileAppenderTestCase); // // tests inherited from AppenderSkeletonTestCase // LOGUNIT_TEST(testDefaultThreshold); LOGUNIT_TEST(testSetOptionThreshold); LOGUNIT_TEST_SUITE_END(); public: FileAppender* createFileAppender() const { return new log4cxx::rolling::RollingFileAppender(); } }; LOGUNIT_TEST_SUITE_REGISTRATION(RollingFileAppenderTestCase); apache-log4cxx-0.10.0/src/test/cpp/appenderskeletontestcase.cpp100644 0 0 3050 10774263274 21673 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "appenderskeletontestcase.h" #include "logunit.h" #include #include using namespace log4cxx; using namespace log4cxx::helpers; void AppenderSkeletonTestCase::testDefaultThreshold() { ObjectPtrT appender(createAppenderSkeleton()); LevelPtr threshold(appender->getThreshold()); LOGUNIT_ASSERT_EQUAL(Level::getAll()->toInt(), threshold->toInt()); } void AppenderSkeletonTestCase::testSetOptionThreshold() { ObjectPtrT appender(createAppenderSkeleton()); appender->setOption(LOG4CXX_STR("threshold"), LOG4CXX_STR("debug")); LevelPtr threshold(appender->getThreshold()); LOGUNIT_ASSERT_EQUAL(Level::getDebug()->toInt(), threshold->toInt()); } apache-log4cxx-0.10.0/src/test/cpp/consoleappendertestcase.cpp100644 0 0 3025 10774263274 21513 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include "logunit.h" #include "writerappendertestcase.h" using namespace log4cxx; using namespace log4cxx::helpers; /** Unit tests of log4cxx::nt::NTEventLogAppender */ class ConsoleAppenderTestCase : public WriterAppenderTestCase { LOGUNIT_TEST_SUITE(ConsoleAppenderTestCase); // // tests inherited from AppenderSkeletonTestCase // LOGUNIT_TEST(testDefaultThreshold); LOGUNIT_TEST(testSetOptionThreshold); LOGUNIT_TEST_SUITE_END(); public: WriterAppender* createWriterAppender() const { return new log4cxx::ConsoleAppender(); } }; LOGUNIT_TEST_SUITE_REGISTRATION(ConsoleAppenderTestCase); apache-log4cxx-0.10.0/src/test/cpp/hierarchytest.cpp100644 0 0 3673 10774263274 17465 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include "logunit.h" #include "insertwide.h" using namespace log4cxx; /** * Tests hierarchy. * */ LOGUNIT_CLASS(HierarchyTest) { LOGUNIT_TEST_SUITE(HierarchyTest); LOGUNIT_TEST(testGetParent); LOGUNIT_TEST_SUITE_END(); public: /** * Tests getParent. */ void testGetParent() { // // Note: test inspired by LOGCXX-118. // LoggerPtr logger1(Logger::getLogger("HierarchyTest_testGetParent.logger1")); LOGUNIT_ASSERT_EQUAL(LogString(LOG4CXX_STR("root")), logger1->getParent()->getName()); LoggerPtr logger2(Logger::getLogger("HierarchyTest_testGetParent.logger2")); LOGUNIT_ASSERT_EQUAL(LogString(LOG4CXX_STR("root")), logger1->getParent()->getName()); LoggerPtr logger3(Logger::getLogger("HierarchyTest_testGetParent")); LOGUNIT_ASSERT_EQUAL(LogString(LOG4CXX_STR("HierarchyTest_testGetParent")), logger1->getParent()->getName()); LOGUNIT_ASSERT_EQUAL(LogString(LOG4CXX_STR("HierarchyTest_testGetParent")), logger2->getParent()->getName()); } }; LOGUNIT_TEST_SUITE_REGISTRATION(HierarchyTest); apache-log4cxx-0.10.0/src/test/cpp/abts_tests.h100644 0 0 1635 10774263274 16423 0ustar 0 0 /* Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef APR_TEST_INCLUDES #define APR_TEST_INCLUDES #include "abts.h" #include "testutil.h" #endif /* APR_TEST_INCLUDES */ apache-log4cxx-0.10.0/src/test/cpp/vectorappender.h100644 0 0 3766 10774263274 17300 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include namespace log4cxx { /** An appender that appends logging events to a vector. */ class VectorAppender : public AppenderSkeleton { public: DECLARE_LOG4CXX_OBJECT(VectorAppender) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(VectorAppender) LOG4CXX_CAST_ENTRY_CHAIN(AppenderSkeleton) END_LOG4CXX_CAST_MAP() std::vector vector; /** This method is called by the AppenderSkeleton#doAppend method. */ void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p); const std::vector& getVector() const { return vector; } void close(); bool isClosed() const { return closed; } bool requiresLayout() const { return false; } }; typedef helpers::ObjectPtrT VectorAppenderPtr; } apache-log4cxx-0.10.0/src/test/cpp/insertwide.h100644 0 0 2362 10774263274 16423 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if !defined(LOG4CXX_TEST_INSERT_WIDE) #define LOG4CXX_TEST_INSERT_WIDE 1 #include #include #if LOG4CXX_WCHAR_T_API std::ostream& operator<<(std::ostream& os, const std::wstring& str); #endif #if LOG4CXX_LOGCHAR_IS_UNICHAR || LOG4CXX_UNICHAR_API || LOG4CXX_CFSTRING_API std::ostream& operator<<(std::ostream& os, const std::basic_string& str); #endif #endif apache-log4cxx-0.10.0/src/test/cpp/testutil.h100644 0 0 1704 10774263274 16122 0ustar 0 0 /* Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "abts.h" #ifndef APR_TEST_UTIL #define APR_TEST_UTIL void initialize(void); abts_suite* abts_run_suites(abts_suite*); #endif /* APR_TEST_INCLUDES */ apache-log4cxx-0.10.0/src/test/cpp/logunit.h100644 0 0 20004 10774263274 15740 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if !defined(_LOG4CXX_LOGUNIT_H) #define _LOG4CXX_LOGUNIT_H #if defined(_MSC_VER) #pragma warning (push) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include "abts.h" #include #include #include #include #include namespace LogUnit { class TestException : public std::exception { public: TestException(); TestException(const TestException&); TestException& operator=(const TestException&); }; class AssertException : public std::exception { public: AssertException(std::string msg, int lineno); AssertException(bool expected, const char* actualExpr, int lineno); AssertException(const AssertException&); AssertException& operator=(const AssertException&); virtual ~AssertException() throw(); std::string getMessage() const; int getLine() const; private: std::string msg; int lineno; }; class TestFixture { public: TestFixture(); virtual ~TestFixture(); void setCase(abts_case* tc); virtual void setUp(); virtual void tearDown(); void assertEquals(const int expected, const int actual, int lineno); void assertEquals(const std::string expected, const std::string actual, const char* expectedExpr, const char* actualExpr, int lineno); void assertEquals(const char* expected, const char* actual, const char* expectedExpr, const char* actualExpr, int lineno); #if LOG4CXX_LOGCHAR_IS_WCHAR || LOG4CXX_WCHAR_T_API void assertEquals(const std::wstring expected, const std::wstring actual, const char* expectedExpr, const char* actualExpr, int lineno); #endif #if LOG4CXX_LOGCHAR_IS_UNICHAR || LOG4CXX_UNICHAR_API || LOG4CXX_CFSTRING_API void assertEquals(const std::basic_string expected, const std::basic_string actual, const char* expectedExpr, const char* actualExpr, int lineno); #endif template void assertEquals(const T& expected, const T& actual, const char* expectedExpr, const char* actualExpr, int lineno) { if (expected != actual) { std::string msg(expectedExpr); msg.append(" != "); msg.append(actualExpr); abts_fail(tc, msg.c_str(), lineno); } } private: TestFixture(const TestFixture&); TestFixture& operator=(const TestFixture&); abts_case* tc; }; template void runTest(abts_case* tc, void (T::*func)()) { T ti; ti.setCase(tc); ti.setUp(); try { (ti.*func)(); } catch(TestException&) { } catch(AssertException& fx) { abts_fail(tc, fx.getMessage().c_str(), fx.getLine()); } catch(...) { abts_fail(tc, "Unexpected exception", -1); } ti.tearDown(); } template void runTestWithException(abts_case* tc, void (T::*func)()) { T ti; ti.setCase(tc); ti.setUp(); try { (ti.*func)(); } catch(TestException&) { } catch(AssertException& fx) { abts_fail(tc, fx.getMessage().c_str(), fx.getLine()); } catch(X&) { } catch(...) { abts_fail(tc, "Unexpected exception", -1); } ti.tearDown(); } class TestSuite { public: TestSuite(const char* filename); void addTest(const char* testName, test_func func); abts_suite* run(abts_suite* suite) const; std::string getName() const; void setDisabled(bool newVal); bool isDisabled() const; private: TestSuite(const TestSuite&); TestSuite& operator=(const TestSuite&); typedef std::vector TestList; TestList test_funcs; std::string filename; bool disabled; }; typedef std::vector< std::pair > SuiteList; SuiteList& getAllSuites(); template class RegisterSuite { public: RegisterSuite() { T::populateSuite(); TestSuite* suite = T::getSuite(); LogUnit::getAllSuites().push_back(SuiteList::value_type(suite->getName(), suite)); } }; template class RegisterDisabledSuite { public: RegisterDisabledSuite() { T::populateSuite(); TestSuite* suite = T::getSuite(); suite->setDisabled(true); LogUnit::getAllSuites().push_back(SuiteList::value_type(suite->getName(), suite)); } }; } #define LOGUNIT_CLASS(x) class x : public LogUnit::TestFixture #define LOGUNIT_TEST_SUITE(TF) \ public: \ static LogUnit::TestSuite* getSuite() { \ static LogUnit::TestSuite suite(__FILE__); \ return &suite; \ } \ private: \ class RegisterSuite { \ public: \ typedef TF ThisFixture; #define LOGUNIT_TEST(testName) \ class testName ## Registration { \ public: \ testName ## Registration() { \ ThisFixture::getSuite()->addTest(#testName, &testName ## Registration :: run); \ } \ static void run(abts_case* tc, void*) { \ LogUnit::runTest(tc, &ThisFixture::testName); \ } \ } register ## testName; #define LOGUNIT_TEST_EXCEPTION(testName, Exception) \ class testName ## Registration { \ public: \ testName ## Registration() { \ ThisFixture::getSuite()->addTest(#testName, &testName ## Registration :: run); \ } \ static void run(abts_case* tc, void*) { \ LogUnit::runTestWithException(tc, &ThisFixture::testName); \ } \ } register ## testName; #define LOGUNIT_TEST_SUITE_END() \ }; \ public: \ static void populateSuite() { \ static RegisterSuite registration; \ } #define LOGUNIT_TEST_SUITE_REGISTRATION(TF) \ static LogUnit::RegisterSuite registration; #define LOGUNIT_TEST_SUITE_REGISTRATION_DISABLED(TF) \ static LogUnit::RegisterDisabledSuite registration; #define LOGUNIT_ASSERT(x) { if (!(x)) throw LogUnit::AssertException(true, #x, __LINE__); } #define LOGUNIT_ASSERT_EQUAL(expected, actual) assertEquals(expected, actual, #expected, #actual, __LINE__) #define LOGUNIT_FAIL(msg) throw LogUnit::AssertException(msg, __LINE__) #if defined(_MSC_VER) #pragma warning (pop) #endif #endif apache-log4cxx-0.10.0/src/test/cpp/Makefile.in100644 0 0 525435 10774264477 16223 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ noinst_PROGRAMS = testsuite$(EXEEXT) subdir = src/test/cpp DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = PROGRAMS = $(noinst_PROGRAMS) am__objects_1 = xlogger.$(OBJEXT) xloggertestcase.$(OBJEXT) am__objects_2 = testcase1.$(OBJEXT) testcase2.$(OBJEXT) \ testcase3.$(OBJEXT) testcase4.$(OBJEXT) am__objects_3 = absolutetimedateformattestcase.$(OBJEXT) \ cacheddateformattestcase.$(OBJEXT) \ charsetdecodertestcase.$(OBJEXT) \ charsetencodertestcase.$(OBJEXT) \ cyclicbuffertestcase.$(OBJEXT) \ datetimedateformattestcase.$(OBJEXT) \ inetaddresstestcase.$(OBJEXT) \ iso8601dateformattestcase.$(OBJEXT) localechanger.$(OBJEXT) \ messagebuffertest.$(OBJEXT) optionconvertertestcase.$(OBJEXT) \ propertiestestcase.$(OBJEXT) \ relativetimedateformattestcase.$(OBJEXT) \ stringtokenizertestcase.$(OBJEXT) \ stringhelpertestcase.$(OBJEXT) syslogwritertest.$(OBJEXT) \ timezonetestcase.$(OBJEXT) transcodertestcase.$(OBJEXT) am__objects_4 = smtpappendertestcase.$(OBJEXT) \ socketappendertestcase.$(OBJEXT) \ sockethubappendertestcase.$(OBJEXT) \ socketservertestcase.$(OBJEXT) \ syslogappendertestcase.$(OBJEXT) \ telnetappendertestcase.$(OBJEXT) \ xmlsocketappendertestcase.$(OBJEXT) am__objects_5 = num343patternconverter.$(OBJEXT) \ patternparsertestcase.$(OBJEXT) am__objects_6 = filenamepatterntestcase.$(OBJEXT) \ filterbasedrollingtest.$(OBJEXT) manualrollingtest.$(OBJEXT) \ obsoletedailyrollingfileappendertest.$(OBJEXT) \ obsoleterollingfileappendertest.$(OBJEXT) \ sizebasedrollingtest.$(OBJEXT) timebasedrollingtest.$(OBJEXT) am__objects_7 = absolutetimefilter.$(OBJEXT) \ absolutedateandtimefilter.$(OBJEXT) binarycompare.$(OBJEXT) \ compare.$(OBJEXT) controlfilter.$(OBJEXT) \ filenamefilter.$(OBJEXT) utilfilter.$(OBJEXT) \ iso8601filter.$(OBJEXT) linenumberfilter.$(OBJEXT) \ relativetimefilter.$(OBJEXT) serializationtesthelper.$(OBJEXT) \ threadfilter.$(OBJEXT) transformer.$(OBJEXT) \ xmlfilenamefilter.$(OBJEXT) xmllineattributefilter.$(OBJEXT) \ xmltimestampfilter.$(OBJEXT) xmlthreadfilter.$(OBJEXT) am__objects_8 = errorhandlertestcase.$(OBJEXT) \ levelmatchfiltertestcase.$(OBJEXT) \ levelrangefiltertestcase.$(OBJEXT) am__objects_9 = odbcappendertestcase.$(OBJEXT) am__objects_10 = customleveltestcase.$(OBJEXT) domtestcase.$(OBJEXT) \ xlevel.$(OBJEXT) xmllayouttestcase.$(OBJEXT) \ xmllayouttest.$(OBJEXT) am__objects_11 = nteventlogappendertestcase.$(OBJEXT) am_testsuite_OBJECTS = $(am__objects_1) $(am__objects_2) \ $(am__objects_3) $(am__objects_4) $(am__objects_5) \ $(am__objects_6) $(am__objects_7) $(am__objects_8) \ $(am__objects_9) $(am__objects_10) $(am__objects_11) \ abts.$(OBJEXT) asyncappendertestcase.$(OBJEXT) \ encodingtest.$(OBJEXT) filetestcase.$(OBJEXT) \ hierarchytest.$(OBJEXT) hierarchythresholdtestcase.$(OBJEXT) \ l7dtestcase.$(OBJEXT) leveltestcase.$(OBJEXT) \ logunit.$(OBJEXT) loggertestcase.$(OBJEXT) \ minimumtestcase.$(OBJEXT) patternlayouttest.$(OBJEXT) \ vectorappender.$(OBJEXT) appenderskeletontestcase.$(OBJEXT) \ consoleappendertestcase.$(OBJEXT) \ fileappendertestcase.$(OBJEXT) \ rollingfileappendertestcase.$(OBJEXT) streamtestcase.$(OBJEXT) \ writerappendertestcase.$(OBJEXT) ndctestcase.$(OBJEXT) \ propertyconfiguratortest.$(OBJEXT) testsuite_OBJECTS = $(am_testsuite_OBJECTS) DEFAULT_INCLUDES = -I. -I$(srcdir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(testsuite_SOURCES) DIST_SOURCES = $(testsuite_SOURCES) HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # noinst_HEADERS = \ $(top_srcdir)/src/test/cpp/customlogger/*.h \ $(top_srcdir)/src/test/cpp/helpers/*.h \ $(top_srcdir)/src/test/cpp/net/*.h \ $(top_srcdir)/src/test/cpp/pattern/*.h \ $(top_srcdir)/src/test/cpp/util/*.h \ $(top_srcdir)/src/test/cpp/xml/*.h \ $(top_srcdir)/src/test/cpp/*.h INCLUDES = -I$(top_srcdir)/src/main/include -I$(top_builddir)/src/main/include customlogger_tests = \ customlogger/xlogger.cpp\ customlogger/xloggertestcase.cpp defaultinit_tests = \ defaultinit/testcase1.cpp\ defaultinit/testcase2.cpp\ defaultinit/testcase3.cpp\ defaultinit/testcase4.cpp helpers = \ helpers/absolutetimedateformattestcase.cpp \ helpers/cacheddateformattestcase.cpp \ helpers/charsetdecodertestcase.cpp \ helpers/charsetencodertestcase.cpp \ helpers/cyclicbuffertestcase.cpp\ helpers/datetimedateformattestcase.cpp \ helpers/inetaddresstestcase.cpp \ helpers/iso8601dateformattestcase.cpp \ helpers/localechanger.cpp\ helpers/messagebuffertest.cpp \ helpers/optionconvertertestcase.cpp \ helpers/propertiestestcase.cpp \ helpers/relativetimedateformattestcase.cpp \ helpers/stringtokenizertestcase.cpp \ helpers/stringhelpertestcase.cpp \ helpers/syslogwritertest.cpp \ helpers/timezonetestcase.cpp \ helpers/transcodertestcase.cpp net_tests = \ net/smtpappendertestcase.cpp \ net/socketappendertestcase.cpp \ net/sockethubappendertestcase.cpp \ net/socketservertestcase.cpp \ net/syslogappendertestcase.cpp \ net/telnetappendertestcase.cpp \ net/xmlsocketappendertestcase.cpp pattern_tests = \ pattern/num343patternconverter.cpp \ pattern/patternparsertestcase.cpp rolling_tests = \ rolling/filenamepatterntestcase.cpp \ rolling/filterbasedrollingtest.cpp \ rolling/manualrollingtest.cpp \ rolling/obsoletedailyrollingfileappendertest.cpp \ rolling/obsoleterollingfileappendertest.cpp \ rolling/sizebasedrollingtest.cpp \ rolling/timebasedrollingtest.cpp util = \ util/absolutetimefilter.cpp\ util/absolutedateandtimefilter.cpp\ util/binarycompare.cpp\ util/compare.cpp\ util/controlfilter.cpp\ util/filenamefilter.cpp \ util/utilfilter.cpp\ util/iso8601filter.cpp\ util/linenumberfilter.cpp\ util/relativetimefilter.cpp\ util/serializationtesthelper.cpp \ util/threadfilter.cpp\ util/transformer.cpp\ util/xmlfilenamefilter.cpp \ util/xmllineattributefilter.cpp\ util/xmltimestampfilter.cpp \ util/xmlthreadfilter.cpp varia_tests = \ varia/errorhandlertestcase.cpp \ varia/levelmatchfiltertestcase.cpp \ varia/levelrangefiltertestcase.cpp db_tests = \ db/odbcappendertestcase.cpp xml_tests = \ xml/customleveltestcase.cpp \ xml/domtestcase.cpp \ xml/xlevel.cpp \ xml/xmllayouttestcase.cpp \ xml/xmllayouttest.cpp nt_tests = \ nt/nteventlogappendertestcase.cpp testsuite_SOURCES = \ $(customlogger_tests) \ $(defaultinit_tests) \ $(helpers) \ $(net_tests) \ $(pattern_tests) \ $(rolling_tests) \ $(util) \ $(varia_tests) \ $(db_tests) \ $(xml_tests) \ $(nt_tests) \ abts.cpp \ asyncappendertestcase.cpp\ encodingtest.cpp\ filetestcase.cpp \ hierarchytest.cpp\ hierarchythresholdtestcase.cpp\ l7dtestcase.cpp\ leveltestcase.cpp \ logunit.cpp \ loggertestcase.cpp\ minimumtestcase.cpp\ patternlayouttest.cpp\ vectorappender.cpp\ appenderskeletontestcase.cpp\ consoleappendertestcase.cpp\ fileappendertestcase.cpp\ rollingfileappendertestcase.cpp\ streamtestcase.cpp\ writerappendertestcase.cpp \ ndctestcase.cpp \ propertyconfiguratortest.cpp testsuite_LDADD = \ $(top_builddir)/src/main/cpp/liblog4cxx.la testsuite_DEPENDENCIES = \ $(top_builddir)/src/main/cpp/liblog4cxx.la all: all-am .SUFFIXES: .SUFFIXES: .cpp .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/test/cpp/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/test/cpp/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done testsuite$(EXEEXT): $(testsuite_OBJECTS) $(testsuite_DEPENDENCIES) @rm -f testsuite$(EXEEXT) $(CXXLINK) $(testsuite_LDFLAGS) $(testsuite_OBJECTS) $(testsuite_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/absolutedateandtimefilter.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/absolutetimedateformattestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/absolutetimefilter.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/abts.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/appenderskeletontestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asyncappendertestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/binarycompare.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cacheddateformattestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/charsetdecodertestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/charsetencodertestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/compare.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/consoleappendertestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/controlfilter.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/customleveltestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cyclicbuffertestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/datetimedateformattestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/domtestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/encodingtest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/errorhandlertestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fileappendertestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filenamefilter.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filenamepatterntestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filetestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filterbasedrollingtest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hierarchytest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hierarchythresholdtestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inetaddresstestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso8601dateformattestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso8601filter.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/l7dtestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/levelmatchfiltertestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/levelrangefiltertestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/leveltestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linenumberfilter.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localechanger.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loggertestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/logunit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/manualrollingtest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/messagebuffertest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/minimumtestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ndctestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nteventlogappendertestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/num343patternconverter.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/obsoletedailyrollingfileappendertest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/obsoleterollingfileappendertest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/odbcappendertestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/optionconvertertestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/patternlayouttest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/patternparsertestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/propertiestestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/propertyconfiguratortest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/relativetimedateformattestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/relativetimefilter.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rollingfileappendertestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/serializationtesthelper.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sizebasedrollingtest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtpappendertestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/socketappendertestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sockethubappendertestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/socketservertestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/streamtestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stringhelpertestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stringtokenizertestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/syslogappendertestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/syslogwritertest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/telnetappendertestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testcase1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testcase2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testcase3.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testcase4.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threadfilter.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timebasedrollingtest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timezonetestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/transcodertestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/transformer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utilfilter.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vectorappender.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/writerappendertestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xlevel.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xlogger.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xloggertestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmlfilenamefilter.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmllayouttest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmllayouttestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmllineattributefilter.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmlsocketappendertestcase.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmlthreadfilter.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmltimestampfilter.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< xlogger.o: customlogger/xlogger.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xlogger.o -MD -MP -MF "$(DEPDIR)/xlogger.Tpo" -c -o xlogger.o `test -f 'customlogger/xlogger.cpp' || echo '$(srcdir)/'`customlogger/xlogger.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/xlogger.Tpo" "$(DEPDIR)/xlogger.Po"; else rm -f "$(DEPDIR)/xlogger.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='customlogger/xlogger.cpp' object='xlogger.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xlogger.o `test -f 'customlogger/xlogger.cpp' || echo '$(srcdir)/'`customlogger/xlogger.cpp xlogger.obj: customlogger/xlogger.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xlogger.obj -MD -MP -MF "$(DEPDIR)/xlogger.Tpo" -c -o xlogger.obj `if test -f 'customlogger/xlogger.cpp'; then $(CYGPATH_W) 'customlogger/xlogger.cpp'; else $(CYGPATH_W) '$(srcdir)/customlogger/xlogger.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/xlogger.Tpo" "$(DEPDIR)/xlogger.Po"; else rm -f "$(DEPDIR)/xlogger.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='customlogger/xlogger.cpp' object='xlogger.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xlogger.obj `if test -f 'customlogger/xlogger.cpp'; then $(CYGPATH_W) 'customlogger/xlogger.cpp'; else $(CYGPATH_W) '$(srcdir)/customlogger/xlogger.cpp'; fi` xloggertestcase.o: customlogger/xloggertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xloggertestcase.o -MD -MP -MF "$(DEPDIR)/xloggertestcase.Tpo" -c -o xloggertestcase.o `test -f 'customlogger/xloggertestcase.cpp' || echo '$(srcdir)/'`customlogger/xloggertestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/xloggertestcase.Tpo" "$(DEPDIR)/xloggertestcase.Po"; else rm -f "$(DEPDIR)/xloggertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='customlogger/xloggertestcase.cpp' object='xloggertestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xloggertestcase.o `test -f 'customlogger/xloggertestcase.cpp' || echo '$(srcdir)/'`customlogger/xloggertestcase.cpp xloggertestcase.obj: customlogger/xloggertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xloggertestcase.obj -MD -MP -MF "$(DEPDIR)/xloggertestcase.Tpo" -c -o xloggertestcase.obj `if test -f 'customlogger/xloggertestcase.cpp'; then $(CYGPATH_W) 'customlogger/xloggertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/customlogger/xloggertestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/xloggertestcase.Tpo" "$(DEPDIR)/xloggertestcase.Po"; else rm -f "$(DEPDIR)/xloggertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='customlogger/xloggertestcase.cpp' object='xloggertestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xloggertestcase.obj `if test -f 'customlogger/xloggertestcase.cpp'; then $(CYGPATH_W) 'customlogger/xloggertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/customlogger/xloggertestcase.cpp'; fi` testcase1.o: defaultinit/testcase1.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testcase1.o -MD -MP -MF "$(DEPDIR)/testcase1.Tpo" -c -o testcase1.o `test -f 'defaultinit/testcase1.cpp' || echo '$(srcdir)/'`defaultinit/testcase1.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/testcase1.Tpo" "$(DEPDIR)/testcase1.Po"; else rm -f "$(DEPDIR)/testcase1.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='defaultinit/testcase1.cpp' object='testcase1.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testcase1.o `test -f 'defaultinit/testcase1.cpp' || echo '$(srcdir)/'`defaultinit/testcase1.cpp testcase1.obj: defaultinit/testcase1.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testcase1.obj -MD -MP -MF "$(DEPDIR)/testcase1.Tpo" -c -o testcase1.obj `if test -f 'defaultinit/testcase1.cpp'; then $(CYGPATH_W) 'defaultinit/testcase1.cpp'; else $(CYGPATH_W) '$(srcdir)/defaultinit/testcase1.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/testcase1.Tpo" "$(DEPDIR)/testcase1.Po"; else rm -f "$(DEPDIR)/testcase1.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='defaultinit/testcase1.cpp' object='testcase1.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testcase1.obj `if test -f 'defaultinit/testcase1.cpp'; then $(CYGPATH_W) 'defaultinit/testcase1.cpp'; else $(CYGPATH_W) '$(srcdir)/defaultinit/testcase1.cpp'; fi` testcase2.o: defaultinit/testcase2.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testcase2.o -MD -MP -MF "$(DEPDIR)/testcase2.Tpo" -c -o testcase2.o `test -f 'defaultinit/testcase2.cpp' || echo '$(srcdir)/'`defaultinit/testcase2.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/testcase2.Tpo" "$(DEPDIR)/testcase2.Po"; else rm -f "$(DEPDIR)/testcase2.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='defaultinit/testcase2.cpp' object='testcase2.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testcase2.o `test -f 'defaultinit/testcase2.cpp' || echo '$(srcdir)/'`defaultinit/testcase2.cpp testcase2.obj: defaultinit/testcase2.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testcase2.obj -MD -MP -MF "$(DEPDIR)/testcase2.Tpo" -c -o testcase2.obj `if test -f 'defaultinit/testcase2.cpp'; then $(CYGPATH_W) 'defaultinit/testcase2.cpp'; else $(CYGPATH_W) '$(srcdir)/defaultinit/testcase2.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/testcase2.Tpo" "$(DEPDIR)/testcase2.Po"; else rm -f "$(DEPDIR)/testcase2.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='defaultinit/testcase2.cpp' object='testcase2.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testcase2.obj `if test -f 'defaultinit/testcase2.cpp'; then $(CYGPATH_W) 'defaultinit/testcase2.cpp'; else $(CYGPATH_W) '$(srcdir)/defaultinit/testcase2.cpp'; fi` testcase3.o: defaultinit/testcase3.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testcase3.o -MD -MP -MF "$(DEPDIR)/testcase3.Tpo" -c -o testcase3.o `test -f 'defaultinit/testcase3.cpp' || echo '$(srcdir)/'`defaultinit/testcase3.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/testcase3.Tpo" "$(DEPDIR)/testcase3.Po"; else rm -f "$(DEPDIR)/testcase3.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='defaultinit/testcase3.cpp' object='testcase3.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testcase3.o `test -f 'defaultinit/testcase3.cpp' || echo '$(srcdir)/'`defaultinit/testcase3.cpp testcase3.obj: defaultinit/testcase3.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testcase3.obj -MD -MP -MF "$(DEPDIR)/testcase3.Tpo" -c -o testcase3.obj `if test -f 'defaultinit/testcase3.cpp'; then $(CYGPATH_W) 'defaultinit/testcase3.cpp'; else $(CYGPATH_W) '$(srcdir)/defaultinit/testcase3.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/testcase3.Tpo" "$(DEPDIR)/testcase3.Po"; else rm -f "$(DEPDIR)/testcase3.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='defaultinit/testcase3.cpp' object='testcase3.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testcase3.obj `if test -f 'defaultinit/testcase3.cpp'; then $(CYGPATH_W) 'defaultinit/testcase3.cpp'; else $(CYGPATH_W) '$(srcdir)/defaultinit/testcase3.cpp'; fi` testcase4.o: defaultinit/testcase4.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testcase4.o -MD -MP -MF "$(DEPDIR)/testcase4.Tpo" -c -o testcase4.o `test -f 'defaultinit/testcase4.cpp' || echo '$(srcdir)/'`defaultinit/testcase4.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/testcase4.Tpo" "$(DEPDIR)/testcase4.Po"; else rm -f "$(DEPDIR)/testcase4.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='defaultinit/testcase4.cpp' object='testcase4.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testcase4.o `test -f 'defaultinit/testcase4.cpp' || echo '$(srcdir)/'`defaultinit/testcase4.cpp testcase4.obj: defaultinit/testcase4.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT testcase4.obj -MD -MP -MF "$(DEPDIR)/testcase4.Tpo" -c -o testcase4.obj `if test -f 'defaultinit/testcase4.cpp'; then $(CYGPATH_W) 'defaultinit/testcase4.cpp'; else $(CYGPATH_W) '$(srcdir)/defaultinit/testcase4.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/testcase4.Tpo" "$(DEPDIR)/testcase4.Po"; else rm -f "$(DEPDIR)/testcase4.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='defaultinit/testcase4.cpp' object='testcase4.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o testcase4.obj `if test -f 'defaultinit/testcase4.cpp'; then $(CYGPATH_W) 'defaultinit/testcase4.cpp'; else $(CYGPATH_W) '$(srcdir)/defaultinit/testcase4.cpp'; fi` absolutetimedateformattestcase.o: helpers/absolutetimedateformattestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT absolutetimedateformattestcase.o -MD -MP -MF "$(DEPDIR)/absolutetimedateformattestcase.Tpo" -c -o absolutetimedateformattestcase.o `test -f 'helpers/absolutetimedateformattestcase.cpp' || echo '$(srcdir)/'`helpers/absolutetimedateformattestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/absolutetimedateformattestcase.Tpo" "$(DEPDIR)/absolutetimedateformattestcase.Po"; else rm -f "$(DEPDIR)/absolutetimedateformattestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/absolutetimedateformattestcase.cpp' object='absolutetimedateformattestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o absolutetimedateformattestcase.o `test -f 'helpers/absolutetimedateformattestcase.cpp' || echo '$(srcdir)/'`helpers/absolutetimedateformattestcase.cpp absolutetimedateformattestcase.obj: helpers/absolutetimedateformattestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT absolutetimedateformattestcase.obj -MD -MP -MF "$(DEPDIR)/absolutetimedateformattestcase.Tpo" -c -o absolutetimedateformattestcase.obj `if test -f 'helpers/absolutetimedateformattestcase.cpp'; then $(CYGPATH_W) 'helpers/absolutetimedateformattestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/absolutetimedateformattestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/absolutetimedateformattestcase.Tpo" "$(DEPDIR)/absolutetimedateformattestcase.Po"; else rm -f "$(DEPDIR)/absolutetimedateformattestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/absolutetimedateformattestcase.cpp' object='absolutetimedateformattestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o absolutetimedateformattestcase.obj `if test -f 'helpers/absolutetimedateformattestcase.cpp'; then $(CYGPATH_W) 'helpers/absolutetimedateformattestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/absolutetimedateformattestcase.cpp'; fi` cacheddateformattestcase.o: helpers/cacheddateformattestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT cacheddateformattestcase.o -MD -MP -MF "$(DEPDIR)/cacheddateformattestcase.Tpo" -c -o cacheddateformattestcase.o `test -f 'helpers/cacheddateformattestcase.cpp' || echo '$(srcdir)/'`helpers/cacheddateformattestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/cacheddateformattestcase.Tpo" "$(DEPDIR)/cacheddateformattestcase.Po"; else rm -f "$(DEPDIR)/cacheddateformattestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/cacheddateformattestcase.cpp' object='cacheddateformattestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o cacheddateformattestcase.o `test -f 'helpers/cacheddateformattestcase.cpp' || echo '$(srcdir)/'`helpers/cacheddateformattestcase.cpp cacheddateformattestcase.obj: helpers/cacheddateformattestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT cacheddateformattestcase.obj -MD -MP -MF "$(DEPDIR)/cacheddateformattestcase.Tpo" -c -o cacheddateformattestcase.obj `if test -f 'helpers/cacheddateformattestcase.cpp'; then $(CYGPATH_W) 'helpers/cacheddateformattestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/cacheddateformattestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/cacheddateformattestcase.Tpo" "$(DEPDIR)/cacheddateformattestcase.Po"; else rm -f "$(DEPDIR)/cacheddateformattestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/cacheddateformattestcase.cpp' object='cacheddateformattestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o cacheddateformattestcase.obj `if test -f 'helpers/cacheddateformattestcase.cpp'; then $(CYGPATH_W) 'helpers/cacheddateformattestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/cacheddateformattestcase.cpp'; fi` charsetdecodertestcase.o: helpers/charsetdecodertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT charsetdecodertestcase.o -MD -MP -MF "$(DEPDIR)/charsetdecodertestcase.Tpo" -c -o charsetdecodertestcase.o `test -f 'helpers/charsetdecodertestcase.cpp' || echo '$(srcdir)/'`helpers/charsetdecodertestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/charsetdecodertestcase.Tpo" "$(DEPDIR)/charsetdecodertestcase.Po"; else rm -f "$(DEPDIR)/charsetdecodertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/charsetdecodertestcase.cpp' object='charsetdecodertestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o charsetdecodertestcase.o `test -f 'helpers/charsetdecodertestcase.cpp' || echo '$(srcdir)/'`helpers/charsetdecodertestcase.cpp charsetdecodertestcase.obj: helpers/charsetdecodertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT charsetdecodertestcase.obj -MD -MP -MF "$(DEPDIR)/charsetdecodertestcase.Tpo" -c -o charsetdecodertestcase.obj `if test -f 'helpers/charsetdecodertestcase.cpp'; then $(CYGPATH_W) 'helpers/charsetdecodertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/charsetdecodertestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/charsetdecodertestcase.Tpo" "$(DEPDIR)/charsetdecodertestcase.Po"; else rm -f "$(DEPDIR)/charsetdecodertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/charsetdecodertestcase.cpp' object='charsetdecodertestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o charsetdecodertestcase.obj `if test -f 'helpers/charsetdecodertestcase.cpp'; then $(CYGPATH_W) 'helpers/charsetdecodertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/charsetdecodertestcase.cpp'; fi` charsetencodertestcase.o: helpers/charsetencodertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT charsetencodertestcase.o -MD -MP -MF "$(DEPDIR)/charsetencodertestcase.Tpo" -c -o charsetencodertestcase.o `test -f 'helpers/charsetencodertestcase.cpp' || echo '$(srcdir)/'`helpers/charsetencodertestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/charsetencodertestcase.Tpo" "$(DEPDIR)/charsetencodertestcase.Po"; else rm -f "$(DEPDIR)/charsetencodertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/charsetencodertestcase.cpp' object='charsetencodertestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o charsetencodertestcase.o `test -f 'helpers/charsetencodertestcase.cpp' || echo '$(srcdir)/'`helpers/charsetencodertestcase.cpp charsetencodertestcase.obj: helpers/charsetencodertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT charsetencodertestcase.obj -MD -MP -MF "$(DEPDIR)/charsetencodertestcase.Tpo" -c -o charsetencodertestcase.obj `if test -f 'helpers/charsetencodertestcase.cpp'; then $(CYGPATH_W) 'helpers/charsetencodertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/charsetencodertestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/charsetencodertestcase.Tpo" "$(DEPDIR)/charsetencodertestcase.Po"; else rm -f "$(DEPDIR)/charsetencodertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/charsetencodertestcase.cpp' object='charsetencodertestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o charsetencodertestcase.obj `if test -f 'helpers/charsetencodertestcase.cpp'; then $(CYGPATH_W) 'helpers/charsetencodertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/charsetencodertestcase.cpp'; fi` cyclicbuffertestcase.o: helpers/cyclicbuffertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT cyclicbuffertestcase.o -MD -MP -MF "$(DEPDIR)/cyclicbuffertestcase.Tpo" -c -o cyclicbuffertestcase.o `test -f 'helpers/cyclicbuffertestcase.cpp' || echo '$(srcdir)/'`helpers/cyclicbuffertestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/cyclicbuffertestcase.Tpo" "$(DEPDIR)/cyclicbuffertestcase.Po"; else rm -f "$(DEPDIR)/cyclicbuffertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/cyclicbuffertestcase.cpp' object='cyclicbuffertestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o cyclicbuffertestcase.o `test -f 'helpers/cyclicbuffertestcase.cpp' || echo '$(srcdir)/'`helpers/cyclicbuffertestcase.cpp cyclicbuffertestcase.obj: helpers/cyclicbuffertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT cyclicbuffertestcase.obj -MD -MP -MF "$(DEPDIR)/cyclicbuffertestcase.Tpo" -c -o cyclicbuffertestcase.obj `if test -f 'helpers/cyclicbuffertestcase.cpp'; then $(CYGPATH_W) 'helpers/cyclicbuffertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/cyclicbuffertestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/cyclicbuffertestcase.Tpo" "$(DEPDIR)/cyclicbuffertestcase.Po"; else rm -f "$(DEPDIR)/cyclicbuffertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/cyclicbuffertestcase.cpp' object='cyclicbuffertestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o cyclicbuffertestcase.obj `if test -f 'helpers/cyclicbuffertestcase.cpp'; then $(CYGPATH_W) 'helpers/cyclicbuffertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/cyclicbuffertestcase.cpp'; fi` datetimedateformattestcase.o: helpers/datetimedateformattestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT datetimedateformattestcase.o -MD -MP -MF "$(DEPDIR)/datetimedateformattestcase.Tpo" -c -o datetimedateformattestcase.o `test -f 'helpers/datetimedateformattestcase.cpp' || echo '$(srcdir)/'`helpers/datetimedateformattestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/datetimedateformattestcase.Tpo" "$(DEPDIR)/datetimedateformattestcase.Po"; else rm -f "$(DEPDIR)/datetimedateformattestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/datetimedateformattestcase.cpp' object='datetimedateformattestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o datetimedateformattestcase.o `test -f 'helpers/datetimedateformattestcase.cpp' || echo '$(srcdir)/'`helpers/datetimedateformattestcase.cpp datetimedateformattestcase.obj: helpers/datetimedateformattestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT datetimedateformattestcase.obj -MD -MP -MF "$(DEPDIR)/datetimedateformattestcase.Tpo" -c -o datetimedateformattestcase.obj `if test -f 'helpers/datetimedateformattestcase.cpp'; then $(CYGPATH_W) 'helpers/datetimedateformattestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/datetimedateformattestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/datetimedateformattestcase.Tpo" "$(DEPDIR)/datetimedateformattestcase.Po"; else rm -f "$(DEPDIR)/datetimedateformattestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/datetimedateformattestcase.cpp' object='datetimedateformattestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o datetimedateformattestcase.obj `if test -f 'helpers/datetimedateformattestcase.cpp'; then $(CYGPATH_W) 'helpers/datetimedateformattestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/datetimedateformattestcase.cpp'; fi` inetaddresstestcase.o: helpers/inetaddresstestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT inetaddresstestcase.o -MD -MP -MF "$(DEPDIR)/inetaddresstestcase.Tpo" -c -o inetaddresstestcase.o `test -f 'helpers/inetaddresstestcase.cpp' || echo '$(srcdir)/'`helpers/inetaddresstestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/inetaddresstestcase.Tpo" "$(DEPDIR)/inetaddresstestcase.Po"; else rm -f "$(DEPDIR)/inetaddresstestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/inetaddresstestcase.cpp' object='inetaddresstestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o inetaddresstestcase.o `test -f 'helpers/inetaddresstestcase.cpp' || echo '$(srcdir)/'`helpers/inetaddresstestcase.cpp inetaddresstestcase.obj: helpers/inetaddresstestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT inetaddresstestcase.obj -MD -MP -MF "$(DEPDIR)/inetaddresstestcase.Tpo" -c -o inetaddresstestcase.obj `if test -f 'helpers/inetaddresstestcase.cpp'; then $(CYGPATH_W) 'helpers/inetaddresstestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/inetaddresstestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/inetaddresstestcase.Tpo" "$(DEPDIR)/inetaddresstestcase.Po"; else rm -f "$(DEPDIR)/inetaddresstestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/inetaddresstestcase.cpp' object='inetaddresstestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o inetaddresstestcase.obj `if test -f 'helpers/inetaddresstestcase.cpp'; then $(CYGPATH_W) 'helpers/inetaddresstestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/inetaddresstestcase.cpp'; fi` iso8601dateformattestcase.o: helpers/iso8601dateformattestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT iso8601dateformattestcase.o -MD -MP -MF "$(DEPDIR)/iso8601dateformattestcase.Tpo" -c -o iso8601dateformattestcase.o `test -f 'helpers/iso8601dateformattestcase.cpp' || echo '$(srcdir)/'`helpers/iso8601dateformattestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/iso8601dateformattestcase.Tpo" "$(DEPDIR)/iso8601dateformattestcase.Po"; else rm -f "$(DEPDIR)/iso8601dateformattestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/iso8601dateformattestcase.cpp' object='iso8601dateformattestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o iso8601dateformattestcase.o `test -f 'helpers/iso8601dateformattestcase.cpp' || echo '$(srcdir)/'`helpers/iso8601dateformattestcase.cpp iso8601dateformattestcase.obj: helpers/iso8601dateformattestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT iso8601dateformattestcase.obj -MD -MP -MF "$(DEPDIR)/iso8601dateformattestcase.Tpo" -c -o iso8601dateformattestcase.obj `if test -f 'helpers/iso8601dateformattestcase.cpp'; then $(CYGPATH_W) 'helpers/iso8601dateformattestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/iso8601dateformattestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/iso8601dateformattestcase.Tpo" "$(DEPDIR)/iso8601dateformattestcase.Po"; else rm -f "$(DEPDIR)/iso8601dateformattestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/iso8601dateformattestcase.cpp' object='iso8601dateformattestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o iso8601dateformattestcase.obj `if test -f 'helpers/iso8601dateformattestcase.cpp'; then $(CYGPATH_W) 'helpers/iso8601dateformattestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/iso8601dateformattestcase.cpp'; fi` localechanger.o: helpers/localechanger.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT localechanger.o -MD -MP -MF "$(DEPDIR)/localechanger.Tpo" -c -o localechanger.o `test -f 'helpers/localechanger.cpp' || echo '$(srcdir)/'`helpers/localechanger.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/localechanger.Tpo" "$(DEPDIR)/localechanger.Po"; else rm -f "$(DEPDIR)/localechanger.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/localechanger.cpp' object='localechanger.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o localechanger.o `test -f 'helpers/localechanger.cpp' || echo '$(srcdir)/'`helpers/localechanger.cpp localechanger.obj: helpers/localechanger.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT localechanger.obj -MD -MP -MF "$(DEPDIR)/localechanger.Tpo" -c -o localechanger.obj `if test -f 'helpers/localechanger.cpp'; then $(CYGPATH_W) 'helpers/localechanger.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/localechanger.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/localechanger.Tpo" "$(DEPDIR)/localechanger.Po"; else rm -f "$(DEPDIR)/localechanger.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/localechanger.cpp' object='localechanger.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o localechanger.obj `if test -f 'helpers/localechanger.cpp'; then $(CYGPATH_W) 'helpers/localechanger.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/localechanger.cpp'; fi` messagebuffertest.o: helpers/messagebuffertest.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT messagebuffertest.o -MD -MP -MF "$(DEPDIR)/messagebuffertest.Tpo" -c -o messagebuffertest.o `test -f 'helpers/messagebuffertest.cpp' || echo '$(srcdir)/'`helpers/messagebuffertest.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/messagebuffertest.Tpo" "$(DEPDIR)/messagebuffertest.Po"; else rm -f "$(DEPDIR)/messagebuffertest.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/messagebuffertest.cpp' object='messagebuffertest.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o messagebuffertest.o `test -f 'helpers/messagebuffertest.cpp' || echo '$(srcdir)/'`helpers/messagebuffertest.cpp messagebuffertest.obj: helpers/messagebuffertest.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT messagebuffertest.obj -MD -MP -MF "$(DEPDIR)/messagebuffertest.Tpo" -c -o messagebuffertest.obj `if test -f 'helpers/messagebuffertest.cpp'; then $(CYGPATH_W) 'helpers/messagebuffertest.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/messagebuffertest.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/messagebuffertest.Tpo" "$(DEPDIR)/messagebuffertest.Po"; else rm -f "$(DEPDIR)/messagebuffertest.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/messagebuffertest.cpp' object='messagebuffertest.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o messagebuffertest.obj `if test -f 'helpers/messagebuffertest.cpp'; then $(CYGPATH_W) 'helpers/messagebuffertest.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/messagebuffertest.cpp'; fi` optionconvertertestcase.o: helpers/optionconvertertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT optionconvertertestcase.o -MD -MP -MF "$(DEPDIR)/optionconvertertestcase.Tpo" -c -o optionconvertertestcase.o `test -f 'helpers/optionconvertertestcase.cpp' || echo '$(srcdir)/'`helpers/optionconvertertestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/optionconvertertestcase.Tpo" "$(DEPDIR)/optionconvertertestcase.Po"; else rm -f "$(DEPDIR)/optionconvertertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/optionconvertertestcase.cpp' object='optionconvertertestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o optionconvertertestcase.o `test -f 'helpers/optionconvertertestcase.cpp' || echo '$(srcdir)/'`helpers/optionconvertertestcase.cpp optionconvertertestcase.obj: helpers/optionconvertertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT optionconvertertestcase.obj -MD -MP -MF "$(DEPDIR)/optionconvertertestcase.Tpo" -c -o optionconvertertestcase.obj `if test -f 'helpers/optionconvertertestcase.cpp'; then $(CYGPATH_W) 'helpers/optionconvertertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/optionconvertertestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/optionconvertertestcase.Tpo" "$(DEPDIR)/optionconvertertestcase.Po"; else rm -f "$(DEPDIR)/optionconvertertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/optionconvertertestcase.cpp' object='optionconvertertestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o optionconvertertestcase.obj `if test -f 'helpers/optionconvertertestcase.cpp'; then $(CYGPATH_W) 'helpers/optionconvertertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/optionconvertertestcase.cpp'; fi` propertiestestcase.o: helpers/propertiestestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT propertiestestcase.o -MD -MP -MF "$(DEPDIR)/propertiestestcase.Tpo" -c -o propertiestestcase.o `test -f 'helpers/propertiestestcase.cpp' || echo '$(srcdir)/'`helpers/propertiestestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/propertiestestcase.Tpo" "$(DEPDIR)/propertiestestcase.Po"; else rm -f "$(DEPDIR)/propertiestestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/propertiestestcase.cpp' object='propertiestestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o propertiestestcase.o `test -f 'helpers/propertiestestcase.cpp' || echo '$(srcdir)/'`helpers/propertiestestcase.cpp propertiestestcase.obj: helpers/propertiestestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT propertiestestcase.obj -MD -MP -MF "$(DEPDIR)/propertiestestcase.Tpo" -c -o propertiestestcase.obj `if test -f 'helpers/propertiestestcase.cpp'; then $(CYGPATH_W) 'helpers/propertiestestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/propertiestestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/propertiestestcase.Tpo" "$(DEPDIR)/propertiestestcase.Po"; else rm -f "$(DEPDIR)/propertiestestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/propertiestestcase.cpp' object='propertiestestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o propertiestestcase.obj `if test -f 'helpers/propertiestestcase.cpp'; then $(CYGPATH_W) 'helpers/propertiestestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/propertiestestcase.cpp'; fi` relativetimedateformattestcase.o: helpers/relativetimedateformattestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT relativetimedateformattestcase.o -MD -MP -MF "$(DEPDIR)/relativetimedateformattestcase.Tpo" -c -o relativetimedateformattestcase.o `test -f 'helpers/relativetimedateformattestcase.cpp' || echo '$(srcdir)/'`helpers/relativetimedateformattestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/relativetimedateformattestcase.Tpo" "$(DEPDIR)/relativetimedateformattestcase.Po"; else rm -f "$(DEPDIR)/relativetimedateformattestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/relativetimedateformattestcase.cpp' object='relativetimedateformattestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o relativetimedateformattestcase.o `test -f 'helpers/relativetimedateformattestcase.cpp' || echo '$(srcdir)/'`helpers/relativetimedateformattestcase.cpp relativetimedateformattestcase.obj: helpers/relativetimedateformattestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT relativetimedateformattestcase.obj -MD -MP -MF "$(DEPDIR)/relativetimedateformattestcase.Tpo" -c -o relativetimedateformattestcase.obj `if test -f 'helpers/relativetimedateformattestcase.cpp'; then $(CYGPATH_W) 'helpers/relativetimedateformattestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/relativetimedateformattestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/relativetimedateformattestcase.Tpo" "$(DEPDIR)/relativetimedateformattestcase.Po"; else rm -f "$(DEPDIR)/relativetimedateformattestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/relativetimedateformattestcase.cpp' object='relativetimedateformattestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o relativetimedateformattestcase.obj `if test -f 'helpers/relativetimedateformattestcase.cpp'; then $(CYGPATH_W) 'helpers/relativetimedateformattestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/relativetimedateformattestcase.cpp'; fi` stringtokenizertestcase.o: helpers/stringtokenizertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT stringtokenizertestcase.o -MD -MP -MF "$(DEPDIR)/stringtokenizertestcase.Tpo" -c -o stringtokenizertestcase.o `test -f 'helpers/stringtokenizertestcase.cpp' || echo '$(srcdir)/'`helpers/stringtokenizertestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/stringtokenizertestcase.Tpo" "$(DEPDIR)/stringtokenizertestcase.Po"; else rm -f "$(DEPDIR)/stringtokenizertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/stringtokenizertestcase.cpp' object='stringtokenizertestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o stringtokenizertestcase.o `test -f 'helpers/stringtokenizertestcase.cpp' || echo '$(srcdir)/'`helpers/stringtokenizertestcase.cpp stringtokenizertestcase.obj: helpers/stringtokenizertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT stringtokenizertestcase.obj -MD -MP -MF "$(DEPDIR)/stringtokenizertestcase.Tpo" -c -o stringtokenizertestcase.obj `if test -f 'helpers/stringtokenizertestcase.cpp'; then $(CYGPATH_W) 'helpers/stringtokenizertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/stringtokenizertestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/stringtokenizertestcase.Tpo" "$(DEPDIR)/stringtokenizertestcase.Po"; else rm -f "$(DEPDIR)/stringtokenizertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/stringtokenizertestcase.cpp' object='stringtokenizertestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o stringtokenizertestcase.obj `if test -f 'helpers/stringtokenizertestcase.cpp'; then $(CYGPATH_W) 'helpers/stringtokenizertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/stringtokenizertestcase.cpp'; fi` stringhelpertestcase.o: helpers/stringhelpertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT stringhelpertestcase.o -MD -MP -MF "$(DEPDIR)/stringhelpertestcase.Tpo" -c -o stringhelpertestcase.o `test -f 'helpers/stringhelpertestcase.cpp' || echo '$(srcdir)/'`helpers/stringhelpertestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/stringhelpertestcase.Tpo" "$(DEPDIR)/stringhelpertestcase.Po"; else rm -f "$(DEPDIR)/stringhelpertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/stringhelpertestcase.cpp' object='stringhelpertestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o stringhelpertestcase.o `test -f 'helpers/stringhelpertestcase.cpp' || echo '$(srcdir)/'`helpers/stringhelpertestcase.cpp stringhelpertestcase.obj: helpers/stringhelpertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT stringhelpertestcase.obj -MD -MP -MF "$(DEPDIR)/stringhelpertestcase.Tpo" -c -o stringhelpertestcase.obj `if test -f 'helpers/stringhelpertestcase.cpp'; then $(CYGPATH_W) 'helpers/stringhelpertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/stringhelpertestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/stringhelpertestcase.Tpo" "$(DEPDIR)/stringhelpertestcase.Po"; else rm -f "$(DEPDIR)/stringhelpertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/stringhelpertestcase.cpp' object='stringhelpertestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o stringhelpertestcase.obj `if test -f 'helpers/stringhelpertestcase.cpp'; then $(CYGPATH_W) 'helpers/stringhelpertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/stringhelpertestcase.cpp'; fi` syslogwritertest.o: helpers/syslogwritertest.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT syslogwritertest.o -MD -MP -MF "$(DEPDIR)/syslogwritertest.Tpo" -c -o syslogwritertest.o `test -f 'helpers/syslogwritertest.cpp' || echo '$(srcdir)/'`helpers/syslogwritertest.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/syslogwritertest.Tpo" "$(DEPDIR)/syslogwritertest.Po"; else rm -f "$(DEPDIR)/syslogwritertest.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/syslogwritertest.cpp' object='syslogwritertest.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o syslogwritertest.o `test -f 'helpers/syslogwritertest.cpp' || echo '$(srcdir)/'`helpers/syslogwritertest.cpp syslogwritertest.obj: helpers/syslogwritertest.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT syslogwritertest.obj -MD -MP -MF "$(DEPDIR)/syslogwritertest.Tpo" -c -o syslogwritertest.obj `if test -f 'helpers/syslogwritertest.cpp'; then $(CYGPATH_W) 'helpers/syslogwritertest.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/syslogwritertest.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/syslogwritertest.Tpo" "$(DEPDIR)/syslogwritertest.Po"; else rm -f "$(DEPDIR)/syslogwritertest.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/syslogwritertest.cpp' object='syslogwritertest.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o syslogwritertest.obj `if test -f 'helpers/syslogwritertest.cpp'; then $(CYGPATH_W) 'helpers/syslogwritertest.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/syslogwritertest.cpp'; fi` timezonetestcase.o: helpers/timezonetestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT timezonetestcase.o -MD -MP -MF "$(DEPDIR)/timezonetestcase.Tpo" -c -o timezonetestcase.o `test -f 'helpers/timezonetestcase.cpp' || echo '$(srcdir)/'`helpers/timezonetestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/timezonetestcase.Tpo" "$(DEPDIR)/timezonetestcase.Po"; else rm -f "$(DEPDIR)/timezonetestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/timezonetestcase.cpp' object='timezonetestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o timezonetestcase.o `test -f 'helpers/timezonetestcase.cpp' || echo '$(srcdir)/'`helpers/timezonetestcase.cpp timezonetestcase.obj: helpers/timezonetestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT timezonetestcase.obj -MD -MP -MF "$(DEPDIR)/timezonetestcase.Tpo" -c -o timezonetestcase.obj `if test -f 'helpers/timezonetestcase.cpp'; then $(CYGPATH_W) 'helpers/timezonetestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/timezonetestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/timezonetestcase.Tpo" "$(DEPDIR)/timezonetestcase.Po"; else rm -f "$(DEPDIR)/timezonetestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/timezonetestcase.cpp' object='timezonetestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o timezonetestcase.obj `if test -f 'helpers/timezonetestcase.cpp'; then $(CYGPATH_W) 'helpers/timezonetestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/timezonetestcase.cpp'; fi` transcodertestcase.o: helpers/transcodertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT transcodertestcase.o -MD -MP -MF "$(DEPDIR)/transcodertestcase.Tpo" -c -o transcodertestcase.o `test -f 'helpers/transcodertestcase.cpp' || echo '$(srcdir)/'`helpers/transcodertestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/transcodertestcase.Tpo" "$(DEPDIR)/transcodertestcase.Po"; else rm -f "$(DEPDIR)/transcodertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/transcodertestcase.cpp' object='transcodertestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o transcodertestcase.o `test -f 'helpers/transcodertestcase.cpp' || echo '$(srcdir)/'`helpers/transcodertestcase.cpp transcodertestcase.obj: helpers/transcodertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT transcodertestcase.obj -MD -MP -MF "$(DEPDIR)/transcodertestcase.Tpo" -c -o transcodertestcase.obj `if test -f 'helpers/transcodertestcase.cpp'; then $(CYGPATH_W) 'helpers/transcodertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/transcodertestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/transcodertestcase.Tpo" "$(DEPDIR)/transcodertestcase.Po"; else rm -f "$(DEPDIR)/transcodertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='helpers/transcodertestcase.cpp' object='transcodertestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o transcodertestcase.obj `if test -f 'helpers/transcodertestcase.cpp'; then $(CYGPATH_W) 'helpers/transcodertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/helpers/transcodertestcase.cpp'; fi` smtpappendertestcase.o: net/smtpappendertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT smtpappendertestcase.o -MD -MP -MF "$(DEPDIR)/smtpappendertestcase.Tpo" -c -o smtpappendertestcase.o `test -f 'net/smtpappendertestcase.cpp' || echo '$(srcdir)/'`net/smtpappendertestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/smtpappendertestcase.Tpo" "$(DEPDIR)/smtpappendertestcase.Po"; else rm -f "$(DEPDIR)/smtpappendertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='net/smtpappendertestcase.cpp' object='smtpappendertestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o smtpappendertestcase.o `test -f 'net/smtpappendertestcase.cpp' || echo '$(srcdir)/'`net/smtpappendertestcase.cpp smtpappendertestcase.obj: net/smtpappendertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT smtpappendertestcase.obj -MD -MP -MF "$(DEPDIR)/smtpappendertestcase.Tpo" -c -o smtpappendertestcase.obj `if test -f 'net/smtpappendertestcase.cpp'; then $(CYGPATH_W) 'net/smtpappendertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/net/smtpappendertestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/smtpappendertestcase.Tpo" "$(DEPDIR)/smtpappendertestcase.Po"; else rm -f "$(DEPDIR)/smtpappendertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='net/smtpappendertestcase.cpp' object='smtpappendertestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o smtpappendertestcase.obj `if test -f 'net/smtpappendertestcase.cpp'; then $(CYGPATH_W) 'net/smtpappendertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/net/smtpappendertestcase.cpp'; fi` socketappendertestcase.o: net/socketappendertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT socketappendertestcase.o -MD -MP -MF "$(DEPDIR)/socketappendertestcase.Tpo" -c -o socketappendertestcase.o `test -f 'net/socketappendertestcase.cpp' || echo '$(srcdir)/'`net/socketappendertestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/socketappendertestcase.Tpo" "$(DEPDIR)/socketappendertestcase.Po"; else rm -f "$(DEPDIR)/socketappendertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='net/socketappendertestcase.cpp' object='socketappendertestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o socketappendertestcase.o `test -f 'net/socketappendertestcase.cpp' || echo '$(srcdir)/'`net/socketappendertestcase.cpp socketappendertestcase.obj: net/socketappendertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT socketappendertestcase.obj -MD -MP -MF "$(DEPDIR)/socketappendertestcase.Tpo" -c -o socketappendertestcase.obj `if test -f 'net/socketappendertestcase.cpp'; then $(CYGPATH_W) 'net/socketappendertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/net/socketappendertestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/socketappendertestcase.Tpo" "$(DEPDIR)/socketappendertestcase.Po"; else rm -f "$(DEPDIR)/socketappendertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='net/socketappendertestcase.cpp' object='socketappendertestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o socketappendertestcase.obj `if test -f 'net/socketappendertestcase.cpp'; then $(CYGPATH_W) 'net/socketappendertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/net/socketappendertestcase.cpp'; fi` sockethubappendertestcase.o: net/sockethubappendertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT sockethubappendertestcase.o -MD -MP -MF "$(DEPDIR)/sockethubappendertestcase.Tpo" -c -o sockethubappendertestcase.o `test -f 'net/sockethubappendertestcase.cpp' || echo '$(srcdir)/'`net/sockethubappendertestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/sockethubappendertestcase.Tpo" "$(DEPDIR)/sockethubappendertestcase.Po"; else rm -f "$(DEPDIR)/sockethubappendertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='net/sockethubappendertestcase.cpp' object='sockethubappendertestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o sockethubappendertestcase.o `test -f 'net/sockethubappendertestcase.cpp' || echo '$(srcdir)/'`net/sockethubappendertestcase.cpp sockethubappendertestcase.obj: net/sockethubappendertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT sockethubappendertestcase.obj -MD -MP -MF "$(DEPDIR)/sockethubappendertestcase.Tpo" -c -o sockethubappendertestcase.obj `if test -f 'net/sockethubappendertestcase.cpp'; then $(CYGPATH_W) 'net/sockethubappendertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/net/sockethubappendertestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/sockethubappendertestcase.Tpo" "$(DEPDIR)/sockethubappendertestcase.Po"; else rm -f "$(DEPDIR)/sockethubappendertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='net/sockethubappendertestcase.cpp' object='sockethubappendertestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o sockethubappendertestcase.obj `if test -f 'net/sockethubappendertestcase.cpp'; then $(CYGPATH_W) 'net/sockethubappendertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/net/sockethubappendertestcase.cpp'; fi` socketservertestcase.o: net/socketservertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT socketservertestcase.o -MD -MP -MF "$(DEPDIR)/socketservertestcase.Tpo" -c -o socketservertestcase.o `test -f 'net/socketservertestcase.cpp' || echo '$(srcdir)/'`net/socketservertestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/socketservertestcase.Tpo" "$(DEPDIR)/socketservertestcase.Po"; else rm -f "$(DEPDIR)/socketservertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='net/socketservertestcase.cpp' object='socketservertestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o socketservertestcase.o `test -f 'net/socketservertestcase.cpp' || echo '$(srcdir)/'`net/socketservertestcase.cpp socketservertestcase.obj: net/socketservertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT socketservertestcase.obj -MD -MP -MF "$(DEPDIR)/socketservertestcase.Tpo" -c -o socketservertestcase.obj `if test -f 'net/socketservertestcase.cpp'; then $(CYGPATH_W) 'net/socketservertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/net/socketservertestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/socketservertestcase.Tpo" "$(DEPDIR)/socketservertestcase.Po"; else rm -f "$(DEPDIR)/socketservertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='net/socketservertestcase.cpp' object='socketservertestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o socketservertestcase.obj `if test -f 'net/socketservertestcase.cpp'; then $(CYGPATH_W) 'net/socketservertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/net/socketservertestcase.cpp'; fi` syslogappendertestcase.o: net/syslogappendertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT syslogappendertestcase.o -MD -MP -MF "$(DEPDIR)/syslogappendertestcase.Tpo" -c -o syslogappendertestcase.o `test -f 'net/syslogappendertestcase.cpp' || echo '$(srcdir)/'`net/syslogappendertestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/syslogappendertestcase.Tpo" "$(DEPDIR)/syslogappendertestcase.Po"; else rm -f "$(DEPDIR)/syslogappendertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='net/syslogappendertestcase.cpp' object='syslogappendertestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o syslogappendertestcase.o `test -f 'net/syslogappendertestcase.cpp' || echo '$(srcdir)/'`net/syslogappendertestcase.cpp syslogappendertestcase.obj: net/syslogappendertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT syslogappendertestcase.obj -MD -MP -MF "$(DEPDIR)/syslogappendertestcase.Tpo" -c -o syslogappendertestcase.obj `if test -f 'net/syslogappendertestcase.cpp'; then $(CYGPATH_W) 'net/syslogappendertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/net/syslogappendertestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/syslogappendertestcase.Tpo" "$(DEPDIR)/syslogappendertestcase.Po"; else rm -f "$(DEPDIR)/syslogappendertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='net/syslogappendertestcase.cpp' object='syslogappendertestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o syslogappendertestcase.obj `if test -f 'net/syslogappendertestcase.cpp'; then $(CYGPATH_W) 'net/syslogappendertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/net/syslogappendertestcase.cpp'; fi` telnetappendertestcase.o: net/telnetappendertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT telnetappendertestcase.o -MD -MP -MF "$(DEPDIR)/telnetappendertestcase.Tpo" -c -o telnetappendertestcase.o `test -f 'net/telnetappendertestcase.cpp' || echo '$(srcdir)/'`net/telnetappendertestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/telnetappendertestcase.Tpo" "$(DEPDIR)/telnetappendertestcase.Po"; else rm -f "$(DEPDIR)/telnetappendertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='net/telnetappendertestcase.cpp' object='telnetappendertestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o telnetappendertestcase.o `test -f 'net/telnetappendertestcase.cpp' || echo '$(srcdir)/'`net/telnetappendertestcase.cpp telnetappendertestcase.obj: net/telnetappendertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT telnetappendertestcase.obj -MD -MP -MF "$(DEPDIR)/telnetappendertestcase.Tpo" -c -o telnetappendertestcase.obj `if test -f 'net/telnetappendertestcase.cpp'; then $(CYGPATH_W) 'net/telnetappendertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/net/telnetappendertestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/telnetappendertestcase.Tpo" "$(DEPDIR)/telnetappendertestcase.Po"; else rm -f "$(DEPDIR)/telnetappendertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='net/telnetappendertestcase.cpp' object='telnetappendertestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o telnetappendertestcase.obj `if test -f 'net/telnetappendertestcase.cpp'; then $(CYGPATH_W) 'net/telnetappendertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/net/telnetappendertestcase.cpp'; fi` xmlsocketappendertestcase.o: net/xmlsocketappendertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xmlsocketappendertestcase.o -MD -MP -MF "$(DEPDIR)/xmlsocketappendertestcase.Tpo" -c -o xmlsocketappendertestcase.o `test -f 'net/xmlsocketappendertestcase.cpp' || echo '$(srcdir)/'`net/xmlsocketappendertestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/xmlsocketappendertestcase.Tpo" "$(DEPDIR)/xmlsocketappendertestcase.Po"; else rm -f "$(DEPDIR)/xmlsocketappendertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='net/xmlsocketappendertestcase.cpp' object='xmlsocketappendertestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xmlsocketappendertestcase.o `test -f 'net/xmlsocketappendertestcase.cpp' || echo '$(srcdir)/'`net/xmlsocketappendertestcase.cpp xmlsocketappendertestcase.obj: net/xmlsocketappendertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xmlsocketappendertestcase.obj -MD -MP -MF "$(DEPDIR)/xmlsocketappendertestcase.Tpo" -c -o xmlsocketappendertestcase.obj `if test -f 'net/xmlsocketappendertestcase.cpp'; then $(CYGPATH_W) 'net/xmlsocketappendertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/net/xmlsocketappendertestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/xmlsocketappendertestcase.Tpo" "$(DEPDIR)/xmlsocketappendertestcase.Po"; else rm -f "$(DEPDIR)/xmlsocketappendertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='net/xmlsocketappendertestcase.cpp' object='xmlsocketappendertestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xmlsocketappendertestcase.obj `if test -f 'net/xmlsocketappendertestcase.cpp'; then $(CYGPATH_W) 'net/xmlsocketappendertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/net/xmlsocketappendertestcase.cpp'; fi` num343patternconverter.o: pattern/num343patternconverter.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT num343patternconverter.o -MD -MP -MF "$(DEPDIR)/num343patternconverter.Tpo" -c -o num343patternconverter.o `test -f 'pattern/num343patternconverter.cpp' || echo '$(srcdir)/'`pattern/num343patternconverter.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/num343patternconverter.Tpo" "$(DEPDIR)/num343patternconverter.Po"; else rm -f "$(DEPDIR)/num343patternconverter.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='pattern/num343patternconverter.cpp' object='num343patternconverter.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o num343patternconverter.o `test -f 'pattern/num343patternconverter.cpp' || echo '$(srcdir)/'`pattern/num343patternconverter.cpp num343patternconverter.obj: pattern/num343patternconverter.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT num343patternconverter.obj -MD -MP -MF "$(DEPDIR)/num343patternconverter.Tpo" -c -o num343patternconverter.obj `if test -f 'pattern/num343patternconverter.cpp'; then $(CYGPATH_W) 'pattern/num343patternconverter.cpp'; else $(CYGPATH_W) '$(srcdir)/pattern/num343patternconverter.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/num343patternconverter.Tpo" "$(DEPDIR)/num343patternconverter.Po"; else rm -f "$(DEPDIR)/num343patternconverter.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='pattern/num343patternconverter.cpp' object='num343patternconverter.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o num343patternconverter.obj `if test -f 'pattern/num343patternconverter.cpp'; then $(CYGPATH_W) 'pattern/num343patternconverter.cpp'; else $(CYGPATH_W) '$(srcdir)/pattern/num343patternconverter.cpp'; fi` patternparsertestcase.o: pattern/patternparsertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT patternparsertestcase.o -MD -MP -MF "$(DEPDIR)/patternparsertestcase.Tpo" -c -o patternparsertestcase.o `test -f 'pattern/patternparsertestcase.cpp' || echo '$(srcdir)/'`pattern/patternparsertestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/patternparsertestcase.Tpo" "$(DEPDIR)/patternparsertestcase.Po"; else rm -f "$(DEPDIR)/patternparsertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='pattern/patternparsertestcase.cpp' object='patternparsertestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o patternparsertestcase.o `test -f 'pattern/patternparsertestcase.cpp' || echo '$(srcdir)/'`pattern/patternparsertestcase.cpp patternparsertestcase.obj: pattern/patternparsertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT patternparsertestcase.obj -MD -MP -MF "$(DEPDIR)/patternparsertestcase.Tpo" -c -o patternparsertestcase.obj `if test -f 'pattern/patternparsertestcase.cpp'; then $(CYGPATH_W) 'pattern/patternparsertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/pattern/patternparsertestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/patternparsertestcase.Tpo" "$(DEPDIR)/patternparsertestcase.Po"; else rm -f "$(DEPDIR)/patternparsertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='pattern/patternparsertestcase.cpp' object='patternparsertestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o patternparsertestcase.obj `if test -f 'pattern/patternparsertestcase.cpp'; then $(CYGPATH_W) 'pattern/patternparsertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/pattern/patternparsertestcase.cpp'; fi` filenamepatterntestcase.o: rolling/filenamepatterntestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT filenamepatterntestcase.o -MD -MP -MF "$(DEPDIR)/filenamepatterntestcase.Tpo" -c -o filenamepatterntestcase.o `test -f 'rolling/filenamepatterntestcase.cpp' || echo '$(srcdir)/'`rolling/filenamepatterntestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/filenamepatterntestcase.Tpo" "$(DEPDIR)/filenamepatterntestcase.Po"; else rm -f "$(DEPDIR)/filenamepatterntestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='rolling/filenamepatterntestcase.cpp' object='filenamepatterntestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o filenamepatterntestcase.o `test -f 'rolling/filenamepatterntestcase.cpp' || echo '$(srcdir)/'`rolling/filenamepatterntestcase.cpp filenamepatterntestcase.obj: rolling/filenamepatterntestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT filenamepatterntestcase.obj -MD -MP -MF "$(DEPDIR)/filenamepatterntestcase.Tpo" -c -o filenamepatterntestcase.obj `if test -f 'rolling/filenamepatterntestcase.cpp'; then $(CYGPATH_W) 'rolling/filenamepatterntestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/rolling/filenamepatterntestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/filenamepatterntestcase.Tpo" "$(DEPDIR)/filenamepatterntestcase.Po"; else rm -f "$(DEPDIR)/filenamepatterntestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='rolling/filenamepatterntestcase.cpp' object='filenamepatterntestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o filenamepatterntestcase.obj `if test -f 'rolling/filenamepatterntestcase.cpp'; then $(CYGPATH_W) 'rolling/filenamepatterntestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/rolling/filenamepatterntestcase.cpp'; fi` filterbasedrollingtest.o: rolling/filterbasedrollingtest.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT filterbasedrollingtest.o -MD -MP -MF "$(DEPDIR)/filterbasedrollingtest.Tpo" -c -o filterbasedrollingtest.o `test -f 'rolling/filterbasedrollingtest.cpp' || echo '$(srcdir)/'`rolling/filterbasedrollingtest.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/filterbasedrollingtest.Tpo" "$(DEPDIR)/filterbasedrollingtest.Po"; else rm -f "$(DEPDIR)/filterbasedrollingtest.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='rolling/filterbasedrollingtest.cpp' object='filterbasedrollingtest.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o filterbasedrollingtest.o `test -f 'rolling/filterbasedrollingtest.cpp' || echo '$(srcdir)/'`rolling/filterbasedrollingtest.cpp filterbasedrollingtest.obj: rolling/filterbasedrollingtest.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT filterbasedrollingtest.obj -MD -MP -MF "$(DEPDIR)/filterbasedrollingtest.Tpo" -c -o filterbasedrollingtest.obj `if test -f 'rolling/filterbasedrollingtest.cpp'; then $(CYGPATH_W) 'rolling/filterbasedrollingtest.cpp'; else $(CYGPATH_W) '$(srcdir)/rolling/filterbasedrollingtest.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/filterbasedrollingtest.Tpo" "$(DEPDIR)/filterbasedrollingtest.Po"; else rm -f "$(DEPDIR)/filterbasedrollingtest.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='rolling/filterbasedrollingtest.cpp' object='filterbasedrollingtest.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o filterbasedrollingtest.obj `if test -f 'rolling/filterbasedrollingtest.cpp'; then $(CYGPATH_W) 'rolling/filterbasedrollingtest.cpp'; else $(CYGPATH_W) '$(srcdir)/rolling/filterbasedrollingtest.cpp'; fi` manualrollingtest.o: rolling/manualrollingtest.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT manualrollingtest.o -MD -MP -MF "$(DEPDIR)/manualrollingtest.Tpo" -c -o manualrollingtest.o `test -f 'rolling/manualrollingtest.cpp' || echo '$(srcdir)/'`rolling/manualrollingtest.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/manualrollingtest.Tpo" "$(DEPDIR)/manualrollingtest.Po"; else rm -f "$(DEPDIR)/manualrollingtest.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='rolling/manualrollingtest.cpp' object='manualrollingtest.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o manualrollingtest.o `test -f 'rolling/manualrollingtest.cpp' || echo '$(srcdir)/'`rolling/manualrollingtest.cpp manualrollingtest.obj: rolling/manualrollingtest.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT manualrollingtest.obj -MD -MP -MF "$(DEPDIR)/manualrollingtest.Tpo" -c -o manualrollingtest.obj `if test -f 'rolling/manualrollingtest.cpp'; then $(CYGPATH_W) 'rolling/manualrollingtest.cpp'; else $(CYGPATH_W) '$(srcdir)/rolling/manualrollingtest.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/manualrollingtest.Tpo" "$(DEPDIR)/manualrollingtest.Po"; else rm -f "$(DEPDIR)/manualrollingtest.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='rolling/manualrollingtest.cpp' object='manualrollingtest.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o manualrollingtest.obj `if test -f 'rolling/manualrollingtest.cpp'; then $(CYGPATH_W) 'rolling/manualrollingtest.cpp'; else $(CYGPATH_W) '$(srcdir)/rolling/manualrollingtest.cpp'; fi` obsoletedailyrollingfileappendertest.o: rolling/obsoletedailyrollingfileappendertest.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT obsoletedailyrollingfileappendertest.o -MD -MP -MF "$(DEPDIR)/obsoletedailyrollingfileappendertest.Tpo" -c -o obsoletedailyrollingfileappendertest.o `test -f 'rolling/obsoletedailyrollingfileappendertest.cpp' || echo '$(srcdir)/'`rolling/obsoletedailyrollingfileappendertest.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/obsoletedailyrollingfileappendertest.Tpo" "$(DEPDIR)/obsoletedailyrollingfileappendertest.Po"; else rm -f "$(DEPDIR)/obsoletedailyrollingfileappendertest.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='rolling/obsoletedailyrollingfileappendertest.cpp' object='obsoletedailyrollingfileappendertest.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o obsoletedailyrollingfileappendertest.o `test -f 'rolling/obsoletedailyrollingfileappendertest.cpp' || echo '$(srcdir)/'`rolling/obsoletedailyrollingfileappendertest.cpp obsoletedailyrollingfileappendertest.obj: rolling/obsoletedailyrollingfileappendertest.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT obsoletedailyrollingfileappendertest.obj -MD -MP -MF "$(DEPDIR)/obsoletedailyrollingfileappendertest.Tpo" -c -o obsoletedailyrollingfileappendertest.obj `if test -f 'rolling/obsoletedailyrollingfileappendertest.cpp'; then $(CYGPATH_W) 'rolling/obsoletedailyrollingfileappendertest.cpp'; else $(CYGPATH_W) '$(srcdir)/rolling/obsoletedailyrollingfileappendertest.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/obsoletedailyrollingfileappendertest.Tpo" "$(DEPDIR)/obsoletedailyrollingfileappendertest.Po"; else rm -f "$(DEPDIR)/obsoletedailyrollingfileappendertest.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='rolling/obsoletedailyrollingfileappendertest.cpp' object='obsoletedailyrollingfileappendertest.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o obsoletedailyrollingfileappendertest.obj `if test -f 'rolling/obsoletedailyrollingfileappendertest.cpp'; then $(CYGPATH_W) 'rolling/obsoletedailyrollingfileappendertest.cpp'; else $(CYGPATH_W) '$(srcdir)/rolling/obsoletedailyrollingfileappendertest.cpp'; fi` obsoleterollingfileappendertest.o: rolling/obsoleterollingfileappendertest.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT obsoleterollingfileappendertest.o -MD -MP -MF "$(DEPDIR)/obsoleterollingfileappendertest.Tpo" -c -o obsoleterollingfileappendertest.o `test -f 'rolling/obsoleterollingfileappendertest.cpp' || echo '$(srcdir)/'`rolling/obsoleterollingfileappendertest.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/obsoleterollingfileappendertest.Tpo" "$(DEPDIR)/obsoleterollingfileappendertest.Po"; else rm -f "$(DEPDIR)/obsoleterollingfileappendertest.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='rolling/obsoleterollingfileappendertest.cpp' object='obsoleterollingfileappendertest.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o obsoleterollingfileappendertest.o `test -f 'rolling/obsoleterollingfileappendertest.cpp' || echo '$(srcdir)/'`rolling/obsoleterollingfileappendertest.cpp obsoleterollingfileappendertest.obj: rolling/obsoleterollingfileappendertest.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT obsoleterollingfileappendertest.obj -MD -MP -MF "$(DEPDIR)/obsoleterollingfileappendertest.Tpo" -c -o obsoleterollingfileappendertest.obj `if test -f 'rolling/obsoleterollingfileappendertest.cpp'; then $(CYGPATH_W) 'rolling/obsoleterollingfileappendertest.cpp'; else $(CYGPATH_W) '$(srcdir)/rolling/obsoleterollingfileappendertest.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/obsoleterollingfileappendertest.Tpo" "$(DEPDIR)/obsoleterollingfileappendertest.Po"; else rm -f "$(DEPDIR)/obsoleterollingfileappendertest.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='rolling/obsoleterollingfileappendertest.cpp' object='obsoleterollingfileappendertest.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o obsoleterollingfileappendertest.obj `if test -f 'rolling/obsoleterollingfileappendertest.cpp'; then $(CYGPATH_W) 'rolling/obsoleterollingfileappendertest.cpp'; else $(CYGPATH_W) '$(srcdir)/rolling/obsoleterollingfileappendertest.cpp'; fi` sizebasedrollingtest.o: rolling/sizebasedrollingtest.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT sizebasedrollingtest.o -MD -MP -MF "$(DEPDIR)/sizebasedrollingtest.Tpo" -c -o sizebasedrollingtest.o `test -f 'rolling/sizebasedrollingtest.cpp' || echo '$(srcdir)/'`rolling/sizebasedrollingtest.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/sizebasedrollingtest.Tpo" "$(DEPDIR)/sizebasedrollingtest.Po"; else rm -f "$(DEPDIR)/sizebasedrollingtest.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='rolling/sizebasedrollingtest.cpp' object='sizebasedrollingtest.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o sizebasedrollingtest.o `test -f 'rolling/sizebasedrollingtest.cpp' || echo '$(srcdir)/'`rolling/sizebasedrollingtest.cpp sizebasedrollingtest.obj: rolling/sizebasedrollingtest.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT sizebasedrollingtest.obj -MD -MP -MF "$(DEPDIR)/sizebasedrollingtest.Tpo" -c -o sizebasedrollingtest.obj `if test -f 'rolling/sizebasedrollingtest.cpp'; then $(CYGPATH_W) 'rolling/sizebasedrollingtest.cpp'; else $(CYGPATH_W) '$(srcdir)/rolling/sizebasedrollingtest.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/sizebasedrollingtest.Tpo" "$(DEPDIR)/sizebasedrollingtest.Po"; else rm -f "$(DEPDIR)/sizebasedrollingtest.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='rolling/sizebasedrollingtest.cpp' object='sizebasedrollingtest.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o sizebasedrollingtest.obj `if test -f 'rolling/sizebasedrollingtest.cpp'; then $(CYGPATH_W) 'rolling/sizebasedrollingtest.cpp'; else $(CYGPATH_W) '$(srcdir)/rolling/sizebasedrollingtest.cpp'; fi` timebasedrollingtest.o: rolling/timebasedrollingtest.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT timebasedrollingtest.o -MD -MP -MF "$(DEPDIR)/timebasedrollingtest.Tpo" -c -o timebasedrollingtest.o `test -f 'rolling/timebasedrollingtest.cpp' || echo '$(srcdir)/'`rolling/timebasedrollingtest.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/timebasedrollingtest.Tpo" "$(DEPDIR)/timebasedrollingtest.Po"; else rm -f "$(DEPDIR)/timebasedrollingtest.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='rolling/timebasedrollingtest.cpp' object='timebasedrollingtest.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o timebasedrollingtest.o `test -f 'rolling/timebasedrollingtest.cpp' || echo '$(srcdir)/'`rolling/timebasedrollingtest.cpp timebasedrollingtest.obj: rolling/timebasedrollingtest.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT timebasedrollingtest.obj -MD -MP -MF "$(DEPDIR)/timebasedrollingtest.Tpo" -c -o timebasedrollingtest.obj `if test -f 'rolling/timebasedrollingtest.cpp'; then $(CYGPATH_W) 'rolling/timebasedrollingtest.cpp'; else $(CYGPATH_W) '$(srcdir)/rolling/timebasedrollingtest.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/timebasedrollingtest.Tpo" "$(DEPDIR)/timebasedrollingtest.Po"; else rm -f "$(DEPDIR)/timebasedrollingtest.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='rolling/timebasedrollingtest.cpp' object='timebasedrollingtest.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o timebasedrollingtest.obj `if test -f 'rolling/timebasedrollingtest.cpp'; then $(CYGPATH_W) 'rolling/timebasedrollingtest.cpp'; else $(CYGPATH_W) '$(srcdir)/rolling/timebasedrollingtest.cpp'; fi` absolutetimefilter.o: util/absolutetimefilter.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT absolutetimefilter.o -MD -MP -MF "$(DEPDIR)/absolutetimefilter.Tpo" -c -o absolutetimefilter.o `test -f 'util/absolutetimefilter.cpp' || echo '$(srcdir)/'`util/absolutetimefilter.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/absolutetimefilter.Tpo" "$(DEPDIR)/absolutetimefilter.Po"; else rm -f "$(DEPDIR)/absolutetimefilter.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/absolutetimefilter.cpp' object='absolutetimefilter.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o absolutetimefilter.o `test -f 'util/absolutetimefilter.cpp' || echo '$(srcdir)/'`util/absolutetimefilter.cpp absolutetimefilter.obj: util/absolutetimefilter.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT absolutetimefilter.obj -MD -MP -MF "$(DEPDIR)/absolutetimefilter.Tpo" -c -o absolutetimefilter.obj `if test -f 'util/absolutetimefilter.cpp'; then $(CYGPATH_W) 'util/absolutetimefilter.cpp'; else $(CYGPATH_W) '$(srcdir)/util/absolutetimefilter.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/absolutetimefilter.Tpo" "$(DEPDIR)/absolutetimefilter.Po"; else rm -f "$(DEPDIR)/absolutetimefilter.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/absolutetimefilter.cpp' object='absolutetimefilter.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o absolutetimefilter.obj `if test -f 'util/absolutetimefilter.cpp'; then $(CYGPATH_W) 'util/absolutetimefilter.cpp'; else $(CYGPATH_W) '$(srcdir)/util/absolutetimefilter.cpp'; fi` absolutedateandtimefilter.o: util/absolutedateandtimefilter.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT absolutedateandtimefilter.o -MD -MP -MF "$(DEPDIR)/absolutedateandtimefilter.Tpo" -c -o absolutedateandtimefilter.o `test -f 'util/absolutedateandtimefilter.cpp' || echo '$(srcdir)/'`util/absolutedateandtimefilter.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/absolutedateandtimefilter.Tpo" "$(DEPDIR)/absolutedateandtimefilter.Po"; else rm -f "$(DEPDIR)/absolutedateandtimefilter.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/absolutedateandtimefilter.cpp' object='absolutedateandtimefilter.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o absolutedateandtimefilter.o `test -f 'util/absolutedateandtimefilter.cpp' || echo '$(srcdir)/'`util/absolutedateandtimefilter.cpp absolutedateandtimefilter.obj: util/absolutedateandtimefilter.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT absolutedateandtimefilter.obj -MD -MP -MF "$(DEPDIR)/absolutedateandtimefilter.Tpo" -c -o absolutedateandtimefilter.obj `if test -f 'util/absolutedateandtimefilter.cpp'; then $(CYGPATH_W) 'util/absolutedateandtimefilter.cpp'; else $(CYGPATH_W) '$(srcdir)/util/absolutedateandtimefilter.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/absolutedateandtimefilter.Tpo" "$(DEPDIR)/absolutedateandtimefilter.Po"; else rm -f "$(DEPDIR)/absolutedateandtimefilter.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/absolutedateandtimefilter.cpp' object='absolutedateandtimefilter.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o absolutedateandtimefilter.obj `if test -f 'util/absolutedateandtimefilter.cpp'; then $(CYGPATH_W) 'util/absolutedateandtimefilter.cpp'; else $(CYGPATH_W) '$(srcdir)/util/absolutedateandtimefilter.cpp'; fi` binarycompare.o: util/binarycompare.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT binarycompare.o -MD -MP -MF "$(DEPDIR)/binarycompare.Tpo" -c -o binarycompare.o `test -f 'util/binarycompare.cpp' || echo '$(srcdir)/'`util/binarycompare.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/binarycompare.Tpo" "$(DEPDIR)/binarycompare.Po"; else rm -f "$(DEPDIR)/binarycompare.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/binarycompare.cpp' object='binarycompare.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o binarycompare.o `test -f 'util/binarycompare.cpp' || echo '$(srcdir)/'`util/binarycompare.cpp binarycompare.obj: util/binarycompare.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT binarycompare.obj -MD -MP -MF "$(DEPDIR)/binarycompare.Tpo" -c -o binarycompare.obj `if test -f 'util/binarycompare.cpp'; then $(CYGPATH_W) 'util/binarycompare.cpp'; else $(CYGPATH_W) '$(srcdir)/util/binarycompare.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/binarycompare.Tpo" "$(DEPDIR)/binarycompare.Po"; else rm -f "$(DEPDIR)/binarycompare.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/binarycompare.cpp' object='binarycompare.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o binarycompare.obj `if test -f 'util/binarycompare.cpp'; then $(CYGPATH_W) 'util/binarycompare.cpp'; else $(CYGPATH_W) '$(srcdir)/util/binarycompare.cpp'; fi` compare.o: util/compare.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT compare.o -MD -MP -MF "$(DEPDIR)/compare.Tpo" -c -o compare.o `test -f 'util/compare.cpp' || echo '$(srcdir)/'`util/compare.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/compare.Tpo" "$(DEPDIR)/compare.Po"; else rm -f "$(DEPDIR)/compare.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/compare.cpp' object='compare.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o compare.o `test -f 'util/compare.cpp' || echo '$(srcdir)/'`util/compare.cpp compare.obj: util/compare.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT compare.obj -MD -MP -MF "$(DEPDIR)/compare.Tpo" -c -o compare.obj `if test -f 'util/compare.cpp'; then $(CYGPATH_W) 'util/compare.cpp'; else $(CYGPATH_W) '$(srcdir)/util/compare.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/compare.Tpo" "$(DEPDIR)/compare.Po"; else rm -f "$(DEPDIR)/compare.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/compare.cpp' object='compare.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o compare.obj `if test -f 'util/compare.cpp'; then $(CYGPATH_W) 'util/compare.cpp'; else $(CYGPATH_W) '$(srcdir)/util/compare.cpp'; fi` controlfilter.o: util/controlfilter.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT controlfilter.o -MD -MP -MF "$(DEPDIR)/controlfilter.Tpo" -c -o controlfilter.o `test -f 'util/controlfilter.cpp' || echo '$(srcdir)/'`util/controlfilter.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/controlfilter.Tpo" "$(DEPDIR)/controlfilter.Po"; else rm -f "$(DEPDIR)/controlfilter.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/controlfilter.cpp' object='controlfilter.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o controlfilter.o `test -f 'util/controlfilter.cpp' || echo '$(srcdir)/'`util/controlfilter.cpp controlfilter.obj: util/controlfilter.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT controlfilter.obj -MD -MP -MF "$(DEPDIR)/controlfilter.Tpo" -c -o controlfilter.obj `if test -f 'util/controlfilter.cpp'; then $(CYGPATH_W) 'util/controlfilter.cpp'; else $(CYGPATH_W) '$(srcdir)/util/controlfilter.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/controlfilter.Tpo" "$(DEPDIR)/controlfilter.Po"; else rm -f "$(DEPDIR)/controlfilter.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/controlfilter.cpp' object='controlfilter.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o controlfilter.obj `if test -f 'util/controlfilter.cpp'; then $(CYGPATH_W) 'util/controlfilter.cpp'; else $(CYGPATH_W) '$(srcdir)/util/controlfilter.cpp'; fi` filenamefilter.o: util/filenamefilter.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT filenamefilter.o -MD -MP -MF "$(DEPDIR)/filenamefilter.Tpo" -c -o filenamefilter.o `test -f 'util/filenamefilter.cpp' || echo '$(srcdir)/'`util/filenamefilter.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/filenamefilter.Tpo" "$(DEPDIR)/filenamefilter.Po"; else rm -f "$(DEPDIR)/filenamefilter.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/filenamefilter.cpp' object='filenamefilter.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o filenamefilter.o `test -f 'util/filenamefilter.cpp' || echo '$(srcdir)/'`util/filenamefilter.cpp filenamefilter.obj: util/filenamefilter.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT filenamefilter.obj -MD -MP -MF "$(DEPDIR)/filenamefilter.Tpo" -c -o filenamefilter.obj `if test -f 'util/filenamefilter.cpp'; then $(CYGPATH_W) 'util/filenamefilter.cpp'; else $(CYGPATH_W) '$(srcdir)/util/filenamefilter.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/filenamefilter.Tpo" "$(DEPDIR)/filenamefilter.Po"; else rm -f "$(DEPDIR)/filenamefilter.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/filenamefilter.cpp' object='filenamefilter.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o filenamefilter.obj `if test -f 'util/filenamefilter.cpp'; then $(CYGPATH_W) 'util/filenamefilter.cpp'; else $(CYGPATH_W) '$(srcdir)/util/filenamefilter.cpp'; fi` utilfilter.o: util/utilfilter.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT utilfilter.o -MD -MP -MF "$(DEPDIR)/utilfilter.Tpo" -c -o utilfilter.o `test -f 'util/utilfilter.cpp' || echo '$(srcdir)/'`util/utilfilter.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/utilfilter.Tpo" "$(DEPDIR)/utilfilter.Po"; else rm -f "$(DEPDIR)/utilfilter.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/utilfilter.cpp' object='utilfilter.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o utilfilter.o `test -f 'util/utilfilter.cpp' || echo '$(srcdir)/'`util/utilfilter.cpp utilfilter.obj: util/utilfilter.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT utilfilter.obj -MD -MP -MF "$(DEPDIR)/utilfilter.Tpo" -c -o utilfilter.obj `if test -f 'util/utilfilter.cpp'; then $(CYGPATH_W) 'util/utilfilter.cpp'; else $(CYGPATH_W) '$(srcdir)/util/utilfilter.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/utilfilter.Tpo" "$(DEPDIR)/utilfilter.Po"; else rm -f "$(DEPDIR)/utilfilter.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/utilfilter.cpp' object='utilfilter.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o utilfilter.obj `if test -f 'util/utilfilter.cpp'; then $(CYGPATH_W) 'util/utilfilter.cpp'; else $(CYGPATH_W) '$(srcdir)/util/utilfilter.cpp'; fi` iso8601filter.o: util/iso8601filter.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT iso8601filter.o -MD -MP -MF "$(DEPDIR)/iso8601filter.Tpo" -c -o iso8601filter.o `test -f 'util/iso8601filter.cpp' || echo '$(srcdir)/'`util/iso8601filter.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/iso8601filter.Tpo" "$(DEPDIR)/iso8601filter.Po"; else rm -f "$(DEPDIR)/iso8601filter.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/iso8601filter.cpp' object='iso8601filter.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o iso8601filter.o `test -f 'util/iso8601filter.cpp' || echo '$(srcdir)/'`util/iso8601filter.cpp iso8601filter.obj: util/iso8601filter.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT iso8601filter.obj -MD -MP -MF "$(DEPDIR)/iso8601filter.Tpo" -c -o iso8601filter.obj `if test -f 'util/iso8601filter.cpp'; then $(CYGPATH_W) 'util/iso8601filter.cpp'; else $(CYGPATH_W) '$(srcdir)/util/iso8601filter.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/iso8601filter.Tpo" "$(DEPDIR)/iso8601filter.Po"; else rm -f "$(DEPDIR)/iso8601filter.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/iso8601filter.cpp' object='iso8601filter.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o iso8601filter.obj `if test -f 'util/iso8601filter.cpp'; then $(CYGPATH_W) 'util/iso8601filter.cpp'; else $(CYGPATH_W) '$(srcdir)/util/iso8601filter.cpp'; fi` linenumberfilter.o: util/linenumberfilter.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT linenumberfilter.o -MD -MP -MF "$(DEPDIR)/linenumberfilter.Tpo" -c -o linenumberfilter.o `test -f 'util/linenumberfilter.cpp' || echo '$(srcdir)/'`util/linenumberfilter.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/linenumberfilter.Tpo" "$(DEPDIR)/linenumberfilter.Po"; else rm -f "$(DEPDIR)/linenumberfilter.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/linenumberfilter.cpp' object='linenumberfilter.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o linenumberfilter.o `test -f 'util/linenumberfilter.cpp' || echo '$(srcdir)/'`util/linenumberfilter.cpp linenumberfilter.obj: util/linenumberfilter.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT linenumberfilter.obj -MD -MP -MF "$(DEPDIR)/linenumberfilter.Tpo" -c -o linenumberfilter.obj `if test -f 'util/linenumberfilter.cpp'; then $(CYGPATH_W) 'util/linenumberfilter.cpp'; else $(CYGPATH_W) '$(srcdir)/util/linenumberfilter.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/linenumberfilter.Tpo" "$(DEPDIR)/linenumberfilter.Po"; else rm -f "$(DEPDIR)/linenumberfilter.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/linenumberfilter.cpp' object='linenumberfilter.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o linenumberfilter.obj `if test -f 'util/linenumberfilter.cpp'; then $(CYGPATH_W) 'util/linenumberfilter.cpp'; else $(CYGPATH_W) '$(srcdir)/util/linenumberfilter.cpp'; fi` relativetimefilter.o: util/relativetimefilter.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT relativetimefilter.o -MD -MP -MF "$(DEPDIR)/relativetimefilter.Tpo" -c -o relativetimefilter.o `test -f 'util/relativetimefilter.cpp' || echo '$(srcdir)/'`util/relativetimefilter.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/relativetimefilter.Tpo" "$(DEPDIR)/relativetimefilter.Po"; else rm -f "$(DEPDIR)/relativetimefilter.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/relativetimefilter.cpp' object='relativetimefilter.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o relativetimefilter.o `test -f 'util/relativetimefilter.cpp' || echo '$(srcdir)/'`util/relativetimefilter.cpp relativetimefilter.obj: util/relativetimefilter.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT relativetimefilter.obj -MD -MP -MF "$(DEPDIR)/relativetimefilter.Tpo" -c -o relativetimefilter.obj `if test -f 'util/relativetimefilter.cpp'; then $(CYGPATH_W) 'util/relativetimefilter.cpp'; else $(CYGPATH_W) '$(srcdir)/util/relativetimefilter.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/relativetimefilter.Tpo" "$(DEPDIR)/relativetimefilter.Po"; else rm -f "$(DEPDIR)/relativetimefilter.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/relativetimefilter.cpp' object='relativetimefilter.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o relativetimefilter.obj `if test -f 'util/relativetimefilter.cpp'; then $(CYGPATH_W) 'util/relativetimefilter.cpp'; else $(CYGPATH_W) '$(srcdir)/util/relativetimefilter.cpp'; fi` serializationtesthelper.o: util/serializationtesthelper.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT serializationtesthelper.o -MD -MP -MF "$(DEPDIR)/serializationtesthelper.Tpo" -c -o serializationtesthelper.o `test -f 'util/serializationtesthelper.cpp' || echo '$(srcdir)/'`util/serializationtesthelper.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/serializationtesthelper.Tpo" "$(DEPDIR)/serializationtesthelper.Po"; else rm -f "$(DEPDIR)/serializationtesthelper.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/serializationtesthelper.cpp' object='serializationtesthelper.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o serializationtesthelper.o `test -f 'util/serializationtesthelper.cpp' || echo '$(srcdir)/'`util/serializationtesthelper.cpp serializationtesthelper.obj: util/serializationtesthelper.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT serializationtesthelper.obj -MD -MP -MF "$(DEPDIR)/serializationtesthelper.Tpo" -c -o serializationtesthelper.obj `if test -f 'util/serializationtesthelper.cpp'; then $(CYGPATH_W) 'util/serializationtesthelper.cpp'; else $(CYGPATH_W) '$(srcdir)/util/serializationtesthelper.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/serializationtesthelper.Tpo" "$(DEPDIR)/serializationtesthelper.Po"; else rm -f "$(DEPDIR)/serializationtesthelper.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/serializationtesthelper.cpp' object='serializationtesthelper.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o serializationtesthelper.obj `if test -f 'util/serializationtesthelper.cpp'; then $(CYGPATH_W) 'util/serializationtesthelper.cpp'; else $(CYGPATH_W) '$(srcdir)/util/serializationtesthelper.cpp'; fi` threadfilter.o: util/threadfilter.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT threadfilter.o -MD -MP -MF "$(DEPDIR)/threadfilter.Tpo" -c -o threadfilter.o `test -f 'util/threadfilter.cpp' || echo '$(srcdir)/'`util/threadfilter.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/threadfilter.Tpo" "$(DEPDIR)/threadfilter.Po"; else rm -f "$(DEPDIR)/threadfilter.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/threadfilter.cpp' object='threadfilter.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o threadfilter.o `test -f 'util/threadfilter.cpp' || echo '$(srcdir)/'`util/threadfilter.cpp threadfilter.obj: util/threadfilter.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT threadfilter.obj -MD -MP -MF "$(DEPDIR)/threadfilter.Tpo" -c -o threadfilter.obj `if test -f 'util/threadfilter.cpp'; then $(CYGPATH_W) 'util/threadfilter.cpp'; else $(CYGPATH_W) '$(srcdir)/util/threadfilter.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/threadfilter.Tpo" "$(DEPDIR)/threadfilter.Po"; else rm -f "$(DEPDIR)/threadfilter.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/threadfilter.cpp' object='threadfilter.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o threadfilter.obj `if test -f 'util/threadfilter.cpp'; then $(CYGPATH_W) 'util/threadfilter.cpp'; else $(CYGPATH_W) '$(srcdir)/util/threadfilter.cpp'; fi` transformer.o: util/transformer.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT transformer.o -MD -MP -MF "$(DEPDIR)/transformer.Tpo" -c -o transformer.o `test -f 'util/transformer.cpp' || echo '$(srcdir)/'`util/transformer.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/transformer.Tpo" "$(DEPDIR)/transformer.Po"; else rm -f "$(DEPDIR)/transformer.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/transformer.cpp' object='transformer.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o transformer.o `test -f 'util/transformer.cpp' || echo '$(srcdir)/'`util/transformer.cpp transformer.obj: util/transformer.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT transformer.obj -MD -MP -MF "$(DEPDIR)/transformer.Tpo" -c -o transformer.obj `if test -f 'util/transformer.cpp'; then $(CYGPATH_W) 'util/transformer.cpp'; else $(CYGPATH_W) '$(srcdir)/util/transformer.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/transformer.Tpo" "$(DEPDIR)/transformer.Po"; else rm -f "$(DEPDIR)/transformer.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/transformer.cpp' object='transformer.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o transformer.obj `if test -f 'util/transformer.cpp'; then $(CYGPATH_W) 'util/transformer.cpp'; else $(CYGPATH_W) '$(srcdir)/util/transformer.cpp'; fi` xmlfilenamefilter.o: util/xmlfilenamefilter.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xmlfilenamefilter.o -MD -MP -MF "$(DEPDIR)/xmlfilenamefilter.Tpo" -c -o xmlfilenamefilter.o `test -f 'util/xmlfilenamefilter.cpp' || echo '$(srcdir)/'`util/xmlfilenamefilter.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/xmlfilenamefilter.Tpo" "$(DEPDIR)/xmlfilenamefilter.Po"; else rm -f "$(DEPDIR)/xmlfilenamefilter.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/xmlfilenamefilter.cpp' object='xmlfilenamefilter.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xmlfilenamefilter.o `test -f 'util/xmlfilenamefilter.cpp' || echo '$(srcdir)/'`util/xmlfilenamefilter.cpp xmlfilenamefilter.obj: util/xmlfilenamefilter.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xmlfilenamefilter.obj -MD -MP -MF "$(DEPDIR)/xmlfilenamefilter.Tpo" -c -o xmlfilenamefilter.obj `if test -f 'util/xmlfilenamefilter.cpp'; then $(CYGPATH_W) 'util/xmlfilenamefilter.cpp'; else $(CYGPATH_W) '$(srcdir)/util/xmlfilenamefilter.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/xmlfilenamefilter.Tpo" "$(DEPDIR)/xmlfilenamefilter.Po"; else rm -f "$(DEPDIR)/xmlfilenamefilter.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/xmlfilenamefilter.cpp' object='xmlfilenamefilter.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xmlfilenamefilter.obj `if test -f 'util/xmlfilenamefilter.cpp'; then $(CYGPATH_W) 'util/xmlfilenamefilter.cpp'; else $(CYGPATH_W) '$(srcdir)/util/xmlfilenamefilter.cpp'; fi` xmllineattributefilter.o: util/xmllineattributefilter.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xmllineattributefilter.o -MD -MP -MF "$(DEPDIR)/xmllineattributefilter.Tpo" -c -o xmllineattributefilter.o `test -f 'util/xmllineattributefilter.cpp' || echo '$(srcdir)/'`util/xmllineattributefilter.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/xmllineattributefilter.Tpo" "$(DEPDIR)/xmllineattributefilter.Po"; else rm -f "$(DEPDIR)/xmllineattributefilter.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/xmllineattributefilter.cpp' object='xmllineattributefilter.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xmllineattributefilter.o `test -f 'util/xmllineattributefilter.cpp' || echo '$(srcdir)/'`util/xmllineattributefilter.cpp xmllineattributefilter.obj: util/xmllineattributefilter.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xmllineattributefilter.obj -MD -MP -MF "$(DEPDIR)/xmllineattributefilter.Tpo" -c -o xmllineattributefilter.obj `if test -f 'util/xmllineattributefilter.cpp'; then $(CYGPATH_W) 'util/xmllineattributefilter.cpp'; else $(CYGPATH_W) '$(srcdir)/util/xmllineattributefilter.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/xmllineattributefilter.Tpo" "$(DEPDIR)/xmllineattributefilter.Po"; else rm -f "$(DEPDIR)/xmllineattributefilter.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/xmllineattributefilter.cpp' object='xmllineattributefilter.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xmllineattributefilter.obj `if test -f 'util/xmllineattributefilter.cpp'; then $(CYGPATH_W) 'util/xmllineattributefilter.cpp'; else $(CYGPATH_W) '$(srcdir)/util/xmllineattributefilter.cpp'; fi` xmltimestampfilter.o: util/xmltimestampfilter.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xmltimestampfilter.o -MD -MP -MF "$(DEPDIR)/xmltimestampfilter.Tpo" -c -o xmltimestampfilter.o `test -f 'util/xmltimestampfilter.cpp' || echo '$(srcdir)/'`util/xmltimestampfilter.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/xmltimestampfilter.Tpo" "$(DEPDIR)/xmltimestampfilter.Po"; else rm -f "$(DEPDIR)/xmltimestampfilter.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/xmltimestampfilter.cpp' object='xmltimestampfilter.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xmltimestampfilter.o `test -f 'util/xmltimestampfilter.cpp' || echo '$(srcdir)/'`util/xmltimestampfilter.cpp xmltimestampfilter.obj: util/xmltimestampfilter.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xmltimestampfilter.obj -MD -MP -MF "$(DEPDIR)/xmltimestampfilter.Tpo" -c -o xmltimestampfilter.obj `if test -f 'util/xmltimestampfilter.cpp'; then $(CYGPATH_W) 'util/xmltimestampfilter.cpp'; else $(CYGPATH_W) '$(srcdir)/util/xmltimestampfilter.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/xmltimestampfilter.Tpo" "$(DEPDIR)/xmltimestampfilter.Po"; else rm -f "$(DEPDIR)/xmltimestampfilter.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/xmltimestampfilter.cpp' object='xmltimestampfilter.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xmltimestampfilter.obj `if test -f 'util/xmltimestampfilter.cpp'; then $(CYGPATH_W) 'util/xmltimestampfilter.cpp'; else $(CYGPATH_W) '$(srcdir)/util/xmltimestampfilter.cpp'; fi` xmlthreadfilter.o: util/xmlthreadfilter.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xmlthreadfilter.o -MD -MP -MF "$(DEPDIR)/xmlthreadfilter.Tpo" -c -o xmlthreadfilter.o `test -f 'util/xmlthreadfilter.cpp' || echo '$(srcdir)/'`util/xmlthreadfilter.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/xmlthreadfilter.Tpo" "$(DEPDIR)/xmlthreadfilter.Po"; else rm -f "$(DEPDIR)/xmlthreadfilter.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/xmlthreadfilter.cpp' object='xmlthreadfilter.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xmlthreadfilter.o `test -f 'util/xmlthreadfilter.cpp' || echo '$(srcdir)/'`util/xmlthreadfilter.cpp xmlthreadfilter.obj: util/xmlthreadfilter.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xmlthreadfilter.obj -MD -MP -MF "$(DEPDIR)/xmlthreadfilter.Tpo" -c -o xmlthreadfilter.obj `if test -f 'util/xmlthreadfilter.cpp'; then $(CYGPATH_W) 'util/xmlthreadfilter.cpp'; else $(CYGPATH_W) '$(srcdir)/util/xmlthreadfilter.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/xmlthreadfilter.Tpo" "$(DEPDIR)/xmlthreadfilter.Po"; else rm -f "$(DEPDIR)/xmlthreadfilter.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util/xmlthreadfilter.cpp' object='xmlthreadfilter.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xmlthreadfilter.obj `if test -f 'util/xmlthreadfilter.cpp'; then $(CYGPATH_W) 'util/xmlthreadfilter.cpp'; else $(CYGPATH_W) '$(srcdir)/util/xmlthreadfilter.cpp'; fi` errorhandlertestcase.o: varia/errorhandlertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT errorhandlertestcase.o -MD -MP -MF "$(DEPDIR)/errorhandlertestcase.Tpo" -c -o errorhandlertestcase.o `test -f 'varia/errorhandlertestcase.cpp' || echo '$(srcdir)/'`varia/errorhandlertestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/errorhandlertestcase.Tpo" "$(DEPDIR)/errorhandlertestcase.Po"; else rm -f "$(DEPDIR)/errorhandlertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='varia/errorhandlertestcase.cpp' object='errorhandlertestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o errorhandlertestcase.o `test -f 'varia/errorhandlertestcase.cpp' || echo '$(srcdir)/'`varia/errorhandlertestcase.cpp errorhandlertestcase.obj: varia/errorhandlertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT errorhandlertestcase.obj -MD -MP -MF "$(DEPDIR)/errorhandlertestcase.Tpo" -c -o errorhandlertestcase.obj `if test -f 'varia/errorhandlertestcase.cpp'; then $(CYGPATH_W) 'varia/errorhandlertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/varia/errorhandlertestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/errorhandlertestcase.Tpo" "$(DEPDIR)/errorhandlertestcase.Po"; else rm -f "$(DEPDIR)/errorhandlertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='varia/errorhandlertestcase.cpp' object='errorhandlertestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o errorhandlertestcase.obj `if test -f 'varia/errorhandlertestcase.cpp'; then $(CYGPATH_W) 'varia/errorhandlertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/varia/errorhandlertestcase.cpp'; fi` levelmatchfiltertestcase.o: varia/levelmatchfiltertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT levelmatchfiltertestcase.o -MD -MP -MF "$(DEPDIR)/levelmatchfiltertestcase.Tpo" -c -o levelmatchfiltertestcase.o `test -f 'varia/levelmatchfiltertestcase.cpp' || echo '$(srcdir)/'`varia/levelmatchfiltertestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/levelmatchfiltertestcase.Tpo" "$(DEPDIR)/levelmatchfiltertestcase.Po"; else rm -f "$(DEPDIR)/levelmatchfiltertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='varia/levelmatchfiltertestcase.cpp' object='levelmatchfiltertestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o levelmatchfiltertestcase.o `test -f 'varia/levelmatchfiltertestcase.cpp' || echo '$(srcdir)/'`varia/levelmatchfiltertestcase.cpp levelmatchfiltertestcase.obj: varia/levelmatchfiltertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT levelmatchfiltertestcase.obj -MD -MP -MF "$(DEPDIR)/levelmatchfiltertestcase.Tpo" -c -o levelmatchfiltertestcase.obj `if test -f 'varia/levelmatchfiltertestcase.cpp'; then $(CYGPATH_W) 'varia/levelmatchfiltertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/varia/levelmatchfiltertestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/levelmatchfiltertestcase.Tpo" "$(DEPDIR)/levelmatchfiltertestcase.Po"; else rm -f "$(DEPDIR)/levelmatchfiltertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='varia/levelmatchfiltertestcase.cpp' object='levelmatchfiltertestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o levelmatchfiltertestcase.obj `if test -f 'varia/levelmatchfiltertestcase.cpp'; then $(CYGPATH_W) 'varia/levelmatchfiltertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/varia/levelmatchfiltertestcase.cpp'; fi` levelrangefiltertestcase.o: varia/levelrangefiltertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT levelrangefiltertestcase.o -MD -MP -MF "$(DEPDIR)/levelrangefiltertestcase.Tpo" -c -o levelrangefiltertestcase.o `test -f 'varia/levelrangefiltertestcase.cpp' || echo '$(srcdir)/'`varia/levelrangefiltertestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/levelrangefiltertestcase.Tpo" "$(DEPDIR)/levelrangefiltertestcase.Po"; else rm -f "$(DEPDIR)/levelrangefiltertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='varia/levelrangefiltertestcase.cpp' object='levelrangefiltertestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o levelrangefiltertestcase.o `test -f 'varia/levelrangefiltertestcase.cpp' || echo '$(srcdir)/'`varia/levelrangefiltertestcase.cpp levelrangefiltertestcase.obj: varia/levelrangefiltertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT levelrangefiltertestcase.obj -MD -MP -MF "$(DEPDIR)/levelrangefiltertestcase.Tpo" -c -o levelrangefiltertestcase.obj `if test -f 'varia/levelrangefiltertestcase.cpp'; then $(CYGPATH_W) 'varia/levelrangefiltertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/varia/levelrangefiltertestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/levelrangefiltertestcase.Tpo" "$(DEPDIR)/levelrangefiltertestcase.Po"; else rm -f "$(DEPDIR)/levelrangefiltertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='varia/levelrangefiltertestcase.cpp' object='levelrangefiltertestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o levelrangefiltertestcase.obj `if test -f 'varia/levelrangefiltertestcase.cpp'; then $(CYGPATH_W) 'varia/levelrangefiltertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/varia/levelrangefiltertestcase.cpp'; fi` odbcappendertestcase.o: db/odbcappendertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT odbcappendertestcase.o -MD -MP -MF "$(DEPDIR)/odbcappendertestcase.Tpo" -c -o odbcappendertestcase.o `test -f 'db/odbcappendertestcase.cpp' || echo '$(srcdir)/'`db/odbcappendertestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/odbcappendertestcase.Tpo" "$(DEPDIR)/odbcappendertestcase.Po"; else rm -f "$(DEPDIR)/odbcappendertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='db/odbcappendertestcase.cpp' object='odbcappendertestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o odbcappendertestcase.o `test -f 'db/odbcappendertestcase.cpp' || echo '$(srcdir)/'`db/odbcappendertestcase.cpp odbcappendertestcase.obj: db/odbcappendertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT odbcappendertestcase.obj -MD -MP -MF "$(DEPDIR)/odbcappendertestcase.Tpo" -c -o odbcappendertestcase.obj `if test -f 'db/odbcappendertestcase.cpp'; then $(CYGPATH_W) 'db/odbcappendertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/db/odbcappendertestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/odbcappendertestcase.Tpo" "$(DEPDIR)/odbcappendertestcase.Po"; else rm -f "$(DEPDIR)/odbcappendertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='db/odbcappendertestcase.cpp' object='odbcappendertestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o odbcappendertestcase.obj `if test -f 'db/odbcappendertestcase.cpp'; then $(CYGPATH_W) 'db/odbcappendertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/db/odbcappendertestcase.cpp'; fi` customleveltestcase.o: xml/customleveltestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT customleveltestcase.o -MD -MP -MF "$(DEPDIR)/customleveltestcase.Tpo" -c -o customleveltestcase.o `test -f 'xml/customleveltestcase.cpp' || echo '$(srcdir)/'`xml/customleveltestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/customleveltestcase.Tpo" "$(DEPDIR)/customleveltestcase.Po"; else rm -f "$(DEPDIR)/customleveltestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='xml/customleveltestcase.cpp' object='customleveltestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o customleveltestcase.o `test -f 'xml/customleveltestcase.cpp' || echo '$(srcdir)/'`xml/customleveltestcase.cpp customleveltestcase.obj: xml/customleveltestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT customleveltestcase.obj -MD -MP -MF "$(DEPDIR)/customleveltestcase.Tpo" -c -o customleveltestcase.obj `if test -f 'xml/customleveltestcase.cpp'; then $(CYGPATH_W) 'xml/customleveltestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/xml/customleveltestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/customleveltestcase.Tpo" "$(DEPDIR)/customleveltestcase.Po"; else rm -f "$(DEPDIR)/customleveltestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='xml/customleveltestcase.cpp' object='customleveltestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o customleveltestcase.obj `if test -f 'xml/customleveltestcase.cpp'; then $(CYGPATH_W) 'xml/customleveltestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/xml/customleveltestcase.cpp'; fi` domtestcase.o: xml/domtestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT domtestcase.o -MD -MP -MF "$(DEPDIR)/domtestcase.Tpo" -c -o domtestcase.o `test -f 'xml/domtestcase.cpp' || echo '$(srcdir)/'`xml/domtestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/domtestcase.Tpo" "$(DEPDIR)/domtestcase.Po"; else rm -f "$(DEPDIR)/domtestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='xml/domtestcase.cpp' object='domtestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o domtestcase.o `test -f 'xml/domtestcase.cpp' || echo '$(srcdir)/'`xml/domtestcase.cpp domtestcase.obj: xml/domtestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT domtestcase.obj -MD -MP -MF "$(DEPDIR)/domtestcase.Tpo" -c -o domtestcase.obj `if test -f 'xml/domtestcase.cpp'; then $(CYGPATH_W) 'xml/domtestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/xml/domtestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/domtestcase.Tpo" "$(DEPDIR)/domtestcase.Po"; else rm -f "$(DEPDIR)/domtestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='xml/domtestcase.cpp' object='domtestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o domtestcase.obj `if test -f 'xml/domtestcase.cpp'; then $(CYGPATH_W) 'xml/domtestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/xml/domtestcase.cpp'; fi` xlevel.o: xml/xlevel.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xlevel.o -MD -MP -MF "$(DEPDIR)/xlevel.Tpo" -c -o xlevel.o `test -f 'xml/xlevel.cpp' || echo '$(srcdir)/'`xml/xlevel.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/xlevel.Tpo" "$(DEPDIR)/xlevel.Po"; else rm -f "$(DEPDIR)/xlevel.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='xml/xlevel.cpp' object='xlevel.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xlevel.o `test -f 'xml/xlevel.cpp' || echo '$(srcdir)/'`xml/xlevel.cpp xlevel.obj: xml/xlevel.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xlevel.obj -MD -MP -MF "$(DEPDIR)/xlevel.Tpo" -c -o xlevel.obj `if test -f 'xml/xlevel.cpp'; then $(CYGPATH_W) 'xml/xlevel.cpp'; else $(CYGPATH_W) '$(srcdir)/xml/xlevel.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/xlevel.Tpo" "$(DEPDIR)/xlevel.Po"; else rm -f "$(DEPDIR)/xlevel.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='xml/xlevel.cpp' object='xlevel.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xlevel.obj `if test -f 'xml/xlevel.cpp'; then $(CYGPATH_W) 'xml/xlevel.cpp'; else $(CYGPATH_W) '$(srcdir)/xml/xlevel.cpp'; fi` xmllayouttestcase.o: xml/xmllayouttestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xmllayouttestcase.o -MD -MP -MF "$(DEPDIR)/xmllayouttestcase.Tpo" -c -o xmllayouttestcase.o `test -f 'xml/xmllayouttestcase.cpp' || echo '$(srcdir)/'`xml/xmllayouttestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/xmllayouttestcase.Tpo" "$(DEPDIR)/xmllayouttestcase.Po"; else rm -f "$(DEPDIR)/xmllayouttestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='xml/xmllayouttestcase.cpp' object='xmllayouttestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xmllayouttestcase.o `test -f 'xml/xmllayouttestcase.cpp' || echo '$(srcdir)/'`xml/xmllayouttestcase.cpp xmllayouttestcase.obj: xml/xmllayouttestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xmllayouttestcase.obj -MD -MP -MF "$(DEPDIR)/xmllayouttestcase.Tpo" -c -o xmllayouttestcase.obj `if test -f 'xml/xmllayouttestcase.cpp'; then $(CYGPATH_W) 'xml/xmllayouttestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/xml/xmllayouttestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/xmllayouttestcase.Tpo" "$(DEPDIR)/xmllayouttestcase.Po"; else rm -f "$(DEPDIR)/xmllayouttestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='xml/xmllayouttestcase.cpp' object='xmllayouttestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xmllayouttestcase.obj `if test -f 'xml/xmllayouttestcase.cpp'; then $(CYGPATH_W) 'xml/xmllayouttestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/xml/xmllayouttestcase.cpp'; fi` xmllayouttest.o: xml/xmllayouttest.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xmllayouttest.o -MD -MP -MF "$(DEPDIR)/xmllayouttest.Tpo" -c -o xmllayouttest.o `test -f 'xml/xmllayouttest.cpp' || echo '$(srcdir)/'`xml/xmllayouttest.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/xmllayouttest.Tpo" "$(DEPDIR)/xmllayouttest.Po"; else rm -f "$(DEPDIR)/xmllayouttest.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='xml/xmllayouttest.cpp' object='xmllayouttest.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xmllayouttest.o `test -f 'xml/xmllayouttest.cpp' || echo '$(srcdir)/'`xml/xmllayouttest.cpp xmllayouttest.obj: xml/xmllayouttest.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xmllayouttest.obj -MD -MP -MF "$(DEPDIR)/xmllayouttest.Tpo" -c -o xmllayouttest.obj `if test -f 'xml/xmllayouttest.cpp'; then $(CYGPATH_W) 'xml/xmllayouttest.cpp'; else $(CYGPATH_W) '$(srcdir)/xml/xmllayouttest.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/xmllayouttest.Tpo" "$(DEPDIR)/xmllayouttest.Po"; else rm -f "$(DEPDIR)/xmllayouttest.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='xml/xmllayouttest.cpp' object='xmllayouttest.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xmllayouttest.obj `if test -f 'xml/xmllayouttest.cpp'; then $(CYGPATH_W) 'xml/xmllayouttest.cpp'; else $(CYGPATH_W) '$(srcdir)/xml/xmllayouttest.cpp'; fi` nteventlogappendertestcase.o: nt/nteventlogappendertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT nteventlogappendertestcase.o -MD -MP -MF "$(DEPDIR)/nteventlogappendertestcase.Tpo" -c -o nteventlogappendertestcase.o `test -f 'nt/nteventlogappendertestcase.cpp' || echo '$(srcdir)/'`nt/nteventlogappendertestcase.cpp; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/nteventlogappendertestcase.Tpo" "$(DEPDIR)/nteventlogappendertestcase.Po"; else rm -f "$(DEPDIR)/nteventlogappendertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='nt/nteventlogappendertestcase.cpp' object='nteventlogappendertestcase.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o nteventlogappendertestcase.o `test -f 'nt/nteventlogappendertestcase.cpp' || echo '$(srcdir)/'`nt/nteventlogappendertestcase.cpp nteventlogappendertestcase.obj: nt/nteventlogappendertestcase.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT nteventlogappendertestcase.obj -MD -MP -MF "$(DEPDIR)/nteventlogappendertestcase.Tpo" -c -o nteventlogappendertestcase.obj `if test -f 'nt/nteventlogappendertestcase.cpp'; then $(CYGPATH_W) 'nt/nteventlogappendertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/nt/nteventlogappendertestcase.cpp'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/nteventlogappendertestcase.Tpo" "$(DEPDIR)/nteventlogappendertestcase.Po"; else rm -f "$(DEPDIR)/nteventlogappendertestcase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='nt/nteventlogappendertestcase.cpp' object='nteventlogappendertestcase.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o nteventlogappendertestcase.obj `if test -f 'nt/nteventlogappendertestcase.cpp'; then $(CYGPATH_W) 'nt/nteventlogappendertestcase.cpp'; else $(CYGPATH_W) '$(srcdir)/nt/nteventlogappendertestcase.cpp'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(mkdir_p) $(distdir)/../../../src/test/cpp $(distdir)/../../../src/test/cpp/customlogger $(distdir)/../../../src/test/cpp/helpers $(distdir)/../../../src/test/cpp/net $(distdir)/../../../src/test/cpp/pattern $(distdir)/../../../src/test/cpp/util $(distdir)/../../../src/test/cpp/xml @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstPROGRAMS ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-info-am check: testsuite # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/test/cpp/streamtestcase.cpp100644 0 0 60657 10774263274 17663 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include "vectorappender.h" #include #include #include #include "insertwide.h" #include "logunit.h" #include #if LOG4CXX_CFSTRING_API #include #endif using namespace log4cxx; using namespace log4cxx::helpers; using namespace std; class ExceptionOnInsert { public: ExceptionOnInsert() { } }; // // define an insertion operation that will throw an // exception to test that evaluation was short // circuited // template ::std::basic_ostream& operator<<( ::std::basic_ostream&, const ExceptionOnInsert&) { throw std::exception(); } /** Unit tests for the optional stream-like interface for log4cxx */ LOGUNIT_CLASS(StreamTestCase) { LOGUNIT_TEST_SUITE(StreamTestCase); LOGUNIT_TEST(testSimple); LOGUNIT_TEST(testMultiple); LOGUNIT_TEST(testShortCircuit); LOGUNIT_TEST_EXCEPTION(testInsertException, std::exception); LOGUNIT_TEST(testScientific); LOGUNIT_TEST(testPrecision); LOGUNIT_TEST(testWidth); #if LOG4CXX_WCHAR_T_API LOGUNIT_TEST(testWide); LOGUNIT_TEST(testWideAppend); LOGUNIT_TEST(testWideWidth); #endif LOGUNIT_TEST(testBaseFlags); LOGUNIT_TEST(testBasePrecisionAndWidth); LOGUNIT_TEST(testLogStreamSimple); LOGUNIT_TEST(testLogStreamMultiple); LOGUNIT_TEST(testLogStreamShortCircuit); LOGUNIT_TEST_EXCEPTION(testLogStreamInsertException, std::exception); LOGUNIT_TEST(testLogStreamScientific); LOGUNIT_TEST(testLogStreamPrecision); LOGUNIT_TEST(testLogStreamWidth); LOGUNIT_TEST(testLogStreamDelegate); LOGUNIT_TEST(testLogStreamFormattingPersists); LOGUNIT_TEST(testSetWidthInsert); #if LOG4CXX_WCHAR_T_API LOGUNIT_TEST(testWLogStreamSimple); LOGUNIT_TEST(testWLogStreamMultiple); LOGUNIT_TEST(testWLogStreamShortCircuit); LOGUNIT_TEST_EXCEPTION(testWLogStreamInsertException, std::exception); LOGUNIT_TEST(testWLogStreamScientific); LOGUNIT_TEST(testWLogStreamPrecision); LOGUNIT_TEST(testWLogStreamWidth); LOGUNIT_TEST(testWLogStreamDelegate); LOGUNIT_TEST(testWLogStreamFormattingPersists); LOGUNIT_TEST(testWSetWidthInsert); #endif #if LOG4CXX_UNICHAR_API LOGUNIT_TEST(testUniChar); LOGUNIT_TEST(testUniCharAppend); // LOGUNIT_TEST(testUniCharWidth); LOGUNIT_TEST(testULogStreamSimple); LOGUNIT_TEST(testULogStreamMultiple); LOGUNIT_TEST(testULogStreamShortCircuit); LOGUNIT_TEST_EXCEPTION(testULogStreamInsertException, std::exception); // LOGUNIT_TEST(testULogStreamScientific); // LOGUNIT_TEST(testULogStreamPrecision); // LOGUNIT_TEST(testULogStreamWidth); LOGUNIT_TEST(testULogStreamDelegate); // LOGUNIT_TEST(testULogStreamFormattingPersists); // LOGUNIT_TEST(testUSetWidthInsert); #endif #if LOG4CXX_CFSTRING_API LOGUNIT_TEST(testCFString); LOGUNIT_TEST(testCFStringAppend); LOGUNIT_TEST(testULogStreamCFString); LOGUNIT_TEST(testULogStreamCFString2); #endif LOGUNIT_TEST_SUITE_END(); VectorAppenderPtr vectorAppender; public: void setUp() { LoggerPtr root(Logger::getRootLogger()); LayoutPtr layout(new SimpleLayout()); vectorAppender = new VectorAppender(); root->addAppender(vectorAppender); } void tearDown() { LogManager::shutdown(); } void testSimple() { LoggerPtr root(Logger::getRootLogger()); LOG4CXX_INFO(root, "This is a test"); LOGUNIT_ASSERT_EQUAL((size_t) 1, vectorAppender->getVector().size()); } void testMultiple() { LoggerPtr root(Logger::getRootLogger()); LOG4CXX_INFO(root, "This is a test" << ": Details to follow"); LOGUNIT_ASSERT_EQUAL((size_t) 1, vectorAppender->getVector().size()); } void testShortCircuit() { LoggerPtr logger(Logger::getLogger("StreamTestCase.shortCircuit")); logger->setLevel(Level::getInfo()); ExceptionOnInsert someObj; LOG4CXX_DEBUG(logger, someObj); LOGUNIT_ASSERT_EQUAL((size_t) 0, vectorAppender->getVector().size()); } void testInsertException() { LoggerPtr logger(Logger::getLogger("StreamTestCase.insertException")); ExceptionOnInsert someObj; LOG4CXX_INFO(logger, someObj); } void testScientific() { LoggerPtr root(Logger::getRootLogger()); LOG4CXX_INFO(root, std::scientific << 0.000001115); spi::LoggingEventPtr event(vectorAppender->getVector()[0]); LogString msg(event->getMessage()); LOGUNIT_ASSERT(msg.find(LOG4CXX_STR("e-")) != LogString::npos || msg.find(LOG4CXX_STR("E-")) != LogString::npos); } void testPrecision() { LoggerPtr root(Logger::getRootLogger()); LOG4CXX_INFO(root, std::setprecision(4) << 1.000001); spi::LoggingEventPtr event(vectorAppender->getVector()[0]); LogString msg(event->getMessage()); LOGUNIT_ASSERT(msg.find(LOG4CXX_STR("1.00000")) == LogString::npos); } void testWidth() { LoggerPtr root(Logger::getRootLogger()); LOG4CXX_INFO(root, '[' << std::fixed << std::setprecision(2) << std::setw(7) << std::right << std::setfill('_') << 10.0 << ']'); spi::LoggingEventPtr event(vectorAppender->getVector()[0]); LogString msg(event->getMessage()); LOGUNIT_ASSERT_EQUAL(LogString(LOG4CXX_STR("[__10.00]")), msg); } void testBaseFlags() { logstream base1(Logger::getRootLogger(), Level::getInfo()); logstream base2(Logger::getRootLogger(), Level::getInfo()); base1 << std::boolalpha; base2 << std::noboolalpha; std::ostringstream os1a, os1b, os2a, os2b; os1a << std::boolalpha; int fillchar; if (base1.set_stream_state(os1b, fillchar)) { os1b.fill(fillchar); } LOGUNIT_ASSERT_EQUAL(os1a.flags(), os1b.flags()); os2a << std::noboolalpha; if (base2.set_stream_state(os2b, fillchar)) { os2b.fill(fillchar); } LOGUNIT_ASSERT_EQUAL(os2a.flags(), os2b.flags()); } void testBasePrecisionAndWidth() { logstream base(Logger::getRootLogger(), Level::getInfo()); base.precision(2); base.width(5); std::ostringstream os1, os2; os1.precision(2); os1.width(5); os1 << 3.1415926; int fillchar; if (base.set_stream_state(os2, fillchar)) { os2.fill(fillchar); } os2 << 3.1415926; string expected(os1.str()); string actual(os2.str()); LOGUNIT_ASSERT_EQUAL(expected, actual); } void testLogStreamSimple() { logstream root(Logger::getRootLogger(), Level::getInfo()); root << "This is a test" << LOG4CXX_ENDMSG; LOGUNIT_ASSERT_EQUAL((size_t) 1, vectorAppender->getVector().size()); } void testLogStreamMultiple() { logstream root(Logger::getRootLogger(), Level::getInfo()); root << "This is a test" << ": Details to follow" << LOG4CXX_ENDMSG; LOGUNIT_ASSERT_EQUAL((size_t) 1, vectorAppender->getVector().size()); } void testLogStreamShortCircuit() { LoggerPtr logger(Logger::getLogger("StreamTestCase.shortCircuit")); logger->setLevel(Level::getInfo()); logstream os(logger, Level::getDebug()); ExceptionOnInsert someObj; os << someObj << LOG4CXX_ENDMSG; LOGUNIT_ASSERT_EQUAL((size_t) 0, vectorAppender->getVector().size()); } void testLogStreamInsertException() { LoggerPtr logger(Logger::getLogger("StreamTestCase.insertException")); ExceptionOnInsert someObj; logstream os(logger, Level::getInfo()); os << someObj << LOG4CXX_ENDMSG; } void testLogStreamScientific() { LoggerPtr root(Logger::getRootLogger()); logstream os(root, Level::getInfo()); os << std::scientific << 0.000001115 << LOG4CXX_ENDMSG; spi::LoggingEventPtr event(vectorAppender->getVector()[0]); LogString msg(event->getMessage()); LOGUNIT_ASSERT(msg.find(LOG4CXX_STR("e-")) != LogString::npos || msg.find(LOG4CXX_STR("E-")) != LogString::npos); } void testLogStreamPrecision() { LoggerPtr root(Logger::getRootLogger()); logstream os(root, Level::getInfo()); os << std::setprecision(4) << 1.000001 << LOG4CXX_ENDMSG; spi::LoggingEventPtr event(vectorAppender->getVector()[0]); LogString msg(event->getMessage()); LOGUNIT_ASSERT(msg.find(LOG4CXX_STR("1.00000")) == LogString::npos); } void testLogStreamWidth() { LoggerPtr root(Logger::getRootLogger()); logstream os(root, Level::getInfo()); os << '[' << std::fixed << std::setprecision(2) << std::setw(7) << std::right << std::setfill('_') << 10.0 << ']' << LOG4CXX_ENDMSG; spi::LoggingEventPtr event(vectorAppender->getVector()[0]); LogString msg(event->getMessage()); LOGUNIT_ASSERT_EQUAL(LogString(LOG4CXX_STR("[__10.00]")), msg); } void report(std::ostream& os) { os << "This just in: \n"; os << "Use logstream in places that expect a std::ostream.\n"; } void testLogStreamDelegate() { logstream root(Logger::getRootLogger(), Level::getInfo()); report(root); root << LOG4CXX_ENDMSG; LOGUNIT_ASSERT_EQUAL((size_t) 1, vectorAppender->getVector().size()); } void testLogStreamFormattingPersists() { LoggerPtr root(Logger::getRootLogger()); root->setLevel(Level::getInfo()); logstream os(root, Level::getDebug()); os << std::hex << 20 << LOG4CXX_ENDMSG; os << Level::getInfo() << 16 << LOG4CXX_ENDMSG; spi::LoggingEventPtr event(vectorAppender->getVector()[0]); LogString msg(event->getMessage()); LOGUNIT_ASSERT_EQUAL(LogString(LOG4CXX_STR("10")), msg); } void testSetWidthInsert() { LoggerPtr root(Logger::getRootLogger()); root->setLevel(Level::getInfo()); logstream os(root, Level::getInfo()); os << std::setw(5); LOGUNIT_ASSERT_EQUAL(5, os.width()); } #if LOG4CXX_WCHAR_T_API void testWide() { LoggerPtr root(Logger::getRootLogger()); LOG4CXX_INFO(root, L"This is a test"); LOGUNIT_ASSERT_EQUAL((size_t) 1, vectorAppender->getVector().size()); } void testWideAppend() { LoggerPtr root(Logger::getRootLogger()); LOG4CXX_INFO(root, L"This is a test" << L": Details to follow"); LOGUNIT_ASSERT_EQUAL((size_t) 1, vectorAppender->getVector().size()); } void testWideWidth() { LoggerPtr root(Logger::getRootLogger()); LOG4CXX_INFO(root, L'[' << std::fixed << std::setprecision(2) << std::setw(7) << std::right << std::setfill(L'_') << 10.0 << L"]"); spi::LoggingEventPtr event(vectorAppender->getVector()[0]); LogString msg(event->getMessage()); LOGUNIT_ASSERT_EQUAL(LogString(LOG4CXX_STR("[__10.00]")), msg); } void testWLogStreamSimple() { wlogstream root(Logger::getRootLogger(), Level::getInfo()); root << L"This is a test" << LOG4CXX_ENDMSG; LOGUNIT_ASSERT_EQUAL((size_t) 1, vectorAppender->getVector().size()); } void testWLogStreamMultiple() { wlogstream root(Logger::getRootLogger(), Level::getInfo()); root << L"This is a test" << L": Details to follow" << LOG4CXX_ENDMSG; LOGUNIT_ASSERT_EQUAL((size_t) 1, vectorAppender->getVector().size()); } void testWLogStreamShortCircuit() { LoggerPtr logger(Logger::getLogger("StreamTestCase.shortCircuit")); logger->setLevel(Level::getInfo()); wlogstream os(logger, Level::getDebug()); ExceptionOnInsert someObj; os << someObj << LOG4CXX_ENDMSG; LOGUNIT_ASSERT_EQUAL((size_t) 0, vectorAppender->getVector().size()); } void testWLogStreamInsertException() { LoggerPtr logger(Logger::getLogger("StreamTestCase.insertException")); ExceptionOnInsert someObj; wlogstream os(logger, Level::getInfo()); os << someObj << LOG4CXX_ENDMSG; } void testWLogStreamScientific() { LoggerPtr root(Logger::getRootLogger()); wlogstream os(root, Level::getInfo()); os << std::scientific << 0.000001115 << LOG4CXX_ENDMSG; spi::LoggingEventPtr event(vectorAppender->getVector()[0]); LogString msg(event->getMessage()); LOGUNIT_ASSERT(msg.find(LOG4CXX_STR("e-")) != LogString::npos || msg.find(LOG4CXX_STR("E-")) != LogString::npos); } void testWLogStreamPrecision() { LoggerPtr root(Logger::getRootLogger()); wlogstream os(root, Level::getInfo()); os << std::setprecision(4) << 1.000001 << LOG4CXX_ENDMSG; spi::LoggingEventPtr event(vectorAppender->getVector()[0]); LogString msg(event->getMessage()); LOGUNIT_ASSERT(msg.find(LOG4CXX_STR("1.00000")) == LogString::npos); } void testWLogStreamWidth() { LoggerPtr root(Logger::getRootLogger()); wlogstream os(root, Level::getInfo()); os << L"[" << std::fixed << std::setprecision(2) << std::setw(7) << std::right << std::setfill(L'_') << 10.0 << L"]" << LOG4CXX_ENDMSG; spi::LoggingEventPtr event(vectorAppender->getVector()[0]); LogString msg(event->getMessage()); LOGUNIT_ASSERT_EQUAL(LogString(LOG4CXX_STR("[__10.00]")), msg); } void wreport(std::basic_ostream& os) { os << L"This just in: \n"; os << L"Use logstream in places that expect a std::ostream.\n"; } void testWLogStreamDelegate() { wlogstream root(Logger::getRootLogger(), Level::getInfo()); wreport(root); root << LOG4CXX_ENDMSG; LOGUNIT_ASSERT_EQUAL((size_t) 1, vectorAppender->getVector().size()); } void testWLogStreamFormattingPersists() { LoggerPtr root(Logger::getRootLogger()); root->setLevel(Level::getInfo()); wlogstream os(root, Level::getDebug()); os << std::hex << 20 << LOG4CXX_ENDMSG; os << Level::getInfo() << 16 << LOG4CXX_ENDMSG; spi::LoggingEventPtr event(vectorAppender->getVector()[0]); LogString msg(event->getMessage()); LOGUNIT_ASSERT_EQUAL(LogString(LOG4CXX_STR("10")), msg); } void testWSetWidthInsert() { LoggerPtr root(Logger::getRootLogger()); root->setLevel(Level::getInfo()); wlogstream os(root, Level::getInfo()); os << std::setw(5); LOGUNIT_ASSERT_EQUAL(5, os.width()); } #endif #if LOG4CXX_UNICHAR_API void testUniChar() { LoggerPtr root(Logger::getRootLogger()); const log4cxx::UniChar msg[] = { 'T', 'h', 'i', 's', ' ', 'i', 's', ' ', 'a', ' ', 't', 'e', 's', 't', 0 }; LOG4CXX_INFO(root, msg); LOGUNIT_ASSERT_EQUAL((size_t) 1, vectorAppender->getVector().size()); } void testUniCharAppend() { LoggerPtr root(Logger::getRootLogger()); const log4cxx::UniChar msg1[] = { 'T', 'h', 'i', 's', ' ', 'i', 's', ' ', 'a', ' ', 't', 'e', 's', 't', 0 }; const log4cxx::UniChar msg2[] = { ':', ' ', 'D', 'e', 't', 'a', 'i', 'l', 's', ' ', 't', 'o', ' ', 'f', 'o', 'l', 'l', 'o', 'w', 0 }; LOG4CXX_INFO(root, msg1 << msg2); LOGUNIT_ASSERT_EQUAL((size_t) 1, vectorAppender->getVector().size()); } void testUniCharWidth() { LoggerPtr root(Logger::getRootLogger()); const log4cxx::UniChar openBracket[] = { '[', 0 }; const log4cxx::UniChar closeBracket[] = { ']', 0 }; LOG4CXX_INFO(root, openBracket << std::fixed << std::setprecision(2) << std::setw(7) << std::right << std::setfill((log4cxx::UniChar) '_') << 10.0 << closeBracket); spi::LoggingEventPtr event(vectorAppender->getVector()[0]); LogString msg(event->getMessage()); LOGUNIT_ASSERT_EQUAL(LogString(LOG4CXX_STR("[__10.00]")), msg); } void testULogStreamSimple() { ulogstream root(Logger::getRootLogger(), Level::getInfo()); const log4cxx::UniChar msg[] = { 'T', 'h', 'i', 's', ' ', 'i', 's', ' ', 'a', ' ', 't', 'e', 's', 't', 0 }; root << msg << LOG4CXX_ENDMSG; LOGUNIT_ASSERT_EQUAL((size_t) 1, vectorAppender->getVector().size()); } void testULogStreamMultiple() { ulogstream root(Logger::getRootLogger(), Level::getInfo()); const log4cxx::UniChar msg1[] = { 'T', 'h', 'i', 's', ' ', 'i', 's', ' ', 'a', ' ', 't', 'e', 's', 't', 0 }; const log4cxx::UniChar msg2[] = { ':', ' ', 'D', 'e', 't', 'a', 'i', 'l', 's', ' ', 't', 'o', ' ', 'f', 'o', 'l', 'l', 'o', 'w', 0 }; root << msg1 << msg2 << LOG4CXX_ENDMSG; LOGUNIT_ASSERT_EQUAL((size_t) 1, vectorAppender->getVector().size()); } void testULogStreamShortCircuit() { LoggerPtr logger(Logger::getLogger("StreamTestCase.shortCircuit")); logger->setLevel(Level::getInfo()); ulogstream os(logger, Level::getDebug()); ExceptionOnInsert someObj; os << someObj << LOG4CXX_ENDMSG; LOGUNIT_ASSERT_EQUAL((size_t) 0, vectorAppender->getVector().size()); } void testULogStreamInsertException() { LoggerPtr logger(Logger::getLogger("StreamTestCase.insertException")); ExceptionOnInsert someObj; ulogstream os(logger, Level::getInfo()); os << someObj << LOG4CXX_ENDMSG; } void testULogStreamScientific() { LoggerPtr root(Logger::getRootLogger()); ulogstream os(root, Level::getInfo()); os << std::scientific << 0.000001115 << LOG4CXX_ENDMSG; LOGUNIT_ASSERT_EQUAL((size_t) 1, vectorAppender->getVector().size()); spi::LoggingEventPtr event(vectorAppender->getVector()[0]); LogString msg(event->getMessage()); LOGUNIT_ASSERT(msg.find(LOG4CXX_STR("e-")) != LogString::npos || msg.find(LOG4CXX_STR("E-")) != LogString::npos); } void testULogStreamPrecision() { LoggerPtr root(Logger::getRootLogger()); ulogstream os(root, Level::getInfo()); os << std::setprecision(4) << 1.000001 << LOG4CXX_ENDMSG; LOGUNIT_ASSERT_EQUAL((size_t) 1, vectorAppender->getVector().size()); spi::LoggingEventPtr event(vectorAppender->getVector()[0]); LogString msg(event->getMessage()); LOGUNIT_ASSERT(msg.find(LOG4CXX_STR("1.00000")) == LogString::npos); } void testULogStreamWidth() { LoggerPtr root(Logger::getRootLogger()); ulogstream os(root, Level::getInfo()); const log4cxx::UniChar openBracket[] = { '[', 0 }; const log4cxx::UniChar closeBracket[] = { ']', 0 }; os << openBracket << std::fixed << std::setprecision(2) << std::setw(7) << std::right << std::setfill((log4cxx::UniChar) '_') << 10.0 << closeBracket << LOG4CXX_ENDMSG; LOGUNIT_ASSERT_EQUAL((size_t) 1, vectorAppender->getVector().size()); spi::LoggingEventPtr event(vectorAppender->getVector()[0]); LogString msg(event->getMessage()); LOGUNIT_ASSERT_EQUAL(LogString(LOG4CXX_STR("[__10.00]")), msg); } void ureport(std::basic_ostream& os) { const log4cxx::UniChar msg1[] = { 'T', 'h', 'i', 's', ' ', 'j', 'u', 's', 't', ' ' , 'i', 'n', ':', ' ' , '\n', 0 }; const log4cxx::UniChar msg2[] = { 'U', 's', 'e', ' ', 'l', 'o', 'g', 's', 't', 'r', 'e', 'a', 'm', '\n', 0 }; os << msg1; os << msg2; } void testULogStreamDelegate() { ulogstream root(Logger::getRootLogger(), Level::getInfo()); ureport(root); root << LOG4CXX_ENDMSG; LOGUNIT_ASSERT_EQUAL((size_t) 1, vectorAppender->getVector().size()); } void testULogStreamFormattingPersists() { LoggerPtr root(Logger::getRootLogger()); root->setLevel(Level::getInfo()); ulogstream os(root, Level::getDebug()); os << std::hex << 20 << LOG4CXX_ENDMSG; os << Level::getInfo() << 16 << LOG4CXX_ENDMSG; LOGUNIT_ASSERT_EQUAL((size_t) 1, vectorAppender->getVector().size()); spi::LoggingEventPtr event(vectorAppender->getVector()[0]); LogString msg(event->getMessage()); LOGUNIT_ASSERT_EQUAL(LogString(LOG4CXX_STR("10")), msg); } void testUSetWidthInsert() { LoggerPtr root(Logger::getRootLogger()); root->setLevel(Level::getInfo()); ulogstream os(root, Level::getInfo()); os << std::setw(5); LOGUNIT_ASSERT_EQUAL(5, os.width()); } #endif #if LOG4CXX_CFSTRING_API void testCFString() { LoggerPtr root(Logger::getRootLogger()); LOG4CXX_INFO(root, CFSTR("This is a test")); LOGUNIT_ASSERT_EQUAL((size_t) 1, vectorAppender->getVector().size()); } void testCFStringAppend() { LoggerPtr root(Logger::getRootLogger()); LOG4CXX_INFO(root, CFSTR("This is a test") << CFSTR(": Details to follow")); LOGUNIT_ASSERT_EQUAL((size_t) 1, vectorAppender->getVector().size()); } void testULogStreamCFString() { ulogstream root(Logger::getRootLogger(), Level::getInfo()); root << CFSTR("This is a test") << LOG4CXX_ENDMSG; LOGUNIT_ASSERT_EQUAL((size_t) 1, vectorAppender->getVector().size()); } void testULogStreamCFString2() { ulogstream root(Logger::getRootLogger(), Level::getInfo()); root << CFSTR("This is a test") << CFSTR(": Details to follow") << LOG4CXX_ENDMSG; LOGUNIT_ASSERT_EQUAL((size_t) 1, vectorAppender->getVector().size()); } #endif }; LOGUNIT_TEST_SUITE_REGISTRATION(StreamTestCase); #if !LOG4CXX_USE_GLOBAL_SCOPE_TEMPLATE // // The following code tests compilation errors // around bug LOGCXX-150 and is not intended to be executed. // Skipped for VC6 since it can't handle having the // templated operator<< in class scope.s namespace foo { class Bar { void fn(); }; std::ostream &operator<<(std::ostream &o, Bar const &b) { return o << "Bar"; } } using namespace foo; namespace { log4cxx::LoggerPtr logger(log4cxx::Logger::getLogger("foo")); log4cxx::logstream lout(logger, log4cxx::Level::getDebug()); } void Bar::fn() { lout << "hi" << LOG4CXX_ENDMSG; } #endif apache-log4cxx-0.10.0/src/test/cpp/Makefile.am100644 0 0 11401 10774263274 16143 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # noinst_HEADERS = \ $(top_srcdir)/src/test/cpp/customlogger/*.h \ $(top_srcdir)/src/test/cpp/helpers/*.h \ $(top_srcdir)/src/test/cpp/net/*.h \ $(top_srcdir)/src/test/cpp/pattern/*.h \ $(top_srcdir)/src/test/cpp/util/*.h \ $(top_srcdir)/src/test/cpp/xml/*.h \ $(top_srcdir)/src/test/cpp/*.h INCLUDES = -I$(top_srcdir)/src/main/include -I$(top_builddir)/src/main/include noinst_PROGRAMS = testsuite customlogger_tests = \ customlogger/xlogger.cpp\ customlogger/xloggertestcase.cpp defaultinit_tests = \ defaultinit/testcase1.cpp\ defaultinit/testcase2.cpp\ defaultinit/testcase3.cpp\ defaultinit/testcase4.cpp helpers = \ helpers/absolutetimedateformattestcase.cpp \ helpers/cacheddateformattestcase.cpp \ helpers/charsetdecodertestcase.cpp \ helpers/charsetencodertestcase.cpp \ helpers/cyclicbuffertestcase.cpp\ helpers/datetimedateformattestcase.cpp \ helpers/inetaddresstestcase.cpp \ helpers/iso8601dateformattestcase.cpp \ helpers/localechanger.cpp\ helpers/messagebuffertest.cpp \ helpers/optionconvertertestcase.cpp \ helpers/propertiestestcase.cpp \ helpers/relativetimedateformattestcase.cpp \ helpers/stringtokenizertestcase.cpp \ helpers/stringhelpertestcase.cpp \ helpers/syslogwritertest.cpp \ helpers/timezonetestcase.cpp \ helpers/transcodertestcase.cpp net_tests = \ net/smtpappendertestcase.cpp \ net/socketappendertestcase.cpp \ net/sockethubappendertestcase.cpp \ net/socketservertestcase.cpp \ net/syslogappendertestcase.cpp \ net/telnetappendertestcase.cpp \ net/xmlsocketappendertestcase.cpp pattern_tests = \ pattern/num343patternconverter.cpp \ pattern/patternparsertestcase.cpp rolling_tests = \ rolling/filenamepatterntestcase.cpp \ rolling/filterbasedrollingtest.cpp \ rolling/manualrollingtest.cpp \ rolling/obsoletedailyrollingfileappendertest.cpp \ rolling/obsoleterollingfileappendertest.cpp \ rolling/sizebasedrollingtest.cpp \ rolling/timebasedrollingtest.cpp util = \ util/absolutetimefilter.cpp\ util/absolutedateandtimefilter.cpp\ util/binarycompare.cpp\ util/compare.cpp\ util/controlfilter.cpp\ util/filenamefilter.cpp \ util/utilfilter.cpp\ util/iso8601filter.cpp\ util/linenumberfilter.cpp\ util/relativetimefilter.cpp\ util/serializationtesthelper.cpp \ util/threadfilter.cpp\ util/transformer.cpp\ util/xmlfilenamefilter.cpp \ util/xmllineattributefilter.cpp\ util/xmltimestampfilter.cpp \ util/xmlthreadfilter.cpp varia_tests = \ varia/errorhandlertestcase.cpp \ varia/levelmatchfiltertestcase.cpp \ varia/levelrangefiltertestcase.cpp db_tests = \ db/odbcappendertestcase.cpp xml_tests = \ xml/customleveltestcase.cpp \ xml/domtestcase.cpp \ xml/xlevel.cpp \ xml/xmllayouttestcase.cpp \ xml/xmllayouttest.cpp nt_tests = \ nt/nteventlogappendertestcase.cpp testsuite_SOURCES = \ $(customlogger_tests) \ $(defaultinit_tests) \ $(helpers) \ $(net_tests) \ $(pattern_tests) \ $(rolling_tests) \ $(util) \ $(varia_tests) \ $(db_tests) \ $(xml_tests) \ $(nt_tests) \ abts.cpp \ asyncappendertestcase.cpp\ encodingtest.cpp\ filetestcase.cpp \ hierarchytest.cpp\ hierarchythresholdtestcase.cpp\ l7dtestcase.cpp\ leveltestcase.cpp \ logunit.cpp \ loggertestcase.cpp\ minimumtestcase.cpp\ patternlayouttest.cpp\ vectorappender.cpp\ appenderskeletontestcase.cpp\ consoleappendertestcase.cpp\ fileappendertestcase.cpp\ rollingfileappendertestcase.cpp\ streamtestcase.cpp\ writerappendertestcase.cpp \ ndctestcase.cpp \ propertyconfiguratortest.cpp testsuite_LDADD = \ $(top_builddir)/src/main/cpp/liblog4cxx.la testsuite_DEPENDENCIES = \ $(top_builddir)/src/main/cpp/liblog4cxx.la check: testsuite apache-log4cxx-0.10.0/src/test/cpp/abts.cpp100644 0 0 24666 10774263274 15565 0ustar 0 0 /* Copyright 2000-2004 Ryan Bloom * * 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. * * Portions of this file were taken from testall.c in the APR test suite, * written by members of the Apache Software Foundation. */ #include "abts.h" #include "abts_tests.h" #include "testutil.h" #define ABTS_STAT_SIZE 6 static char status[ABTS_STAT_SIZE] = {'|', '/', '-', '|', '\\', '-'}; static int curr_char; static int verbose = 0; static int exclude = 0; static int quiet = 0; static int list_tests = 0; const char **testlist = NULL; // defined in logunit.cpp abts_suite* abts_run_suites(abts_suite*); static int find_test_name(const char *testname) { int i; for (i = 0; testlist[i] != NULL; i++) { if (!strcmp(testlist[i], testname)) { return 1; } } return 0; } /* Determine if the test should be run at all */ static int should_test_run(const char *testname) { int found = 0; if (list_tests == 1) { return 0; } if (testlist == NULL) { return 1; } found = find_test_name(testname); if ((found && !exclude) || (!found && exclude)) { return 1; } return 0; } static void reset_status(void) { curr_char = 0; } static void update_status(void) { if (!quiet) { curr_char = (curr_char + 1) % ABTS_STAT_SIZE; fprintf(stdout, "\b%c", status[curr_char]); fflush(stdout); } } static void end_suite(abts_suite *suite) { if (suite != NULL) { sub_suite *last = suite->tail; if (!quiet) { fprintf(stdout, "\b"); fflush(stdout); } if (last->failed == 0) { fprintf(stdout, "SUCCESS\n"); fflush(stdout); } else { fprintf(stdout, "FAILED %d of %d\n", last->failed, last->num_test); fflush(stdout); } } } abts_suite *abts_add_suite(abts_suite *suite, const char *suite_name_full) { sub_suite *subsuite; const char *p; const char *suite_name; curr_char = 0; /* Only end the suite if we actually ran it */ if (suite && suite->tail &&!suite->tail->not_run) { end_suite(suite); } subsuite = (sub_suite*) malloc(sizeof(*subsuite)); subsuite->num_test = 0; subsuite->failed = 0; subsuite->next = NULL; /* suite_name_full may be an absolute path depending on __FILE__ * expansion */ suite_name = strrchr(suite_name_full, '/'); if (suite_name) { suite_name++; } else { suite_name = suite_name_full; } p = strrchr(suite_name, '.'); if (p) { subsuite->name = (const char*) memcpy(calloc(p - suite_name + 1, 1), suite_name, p - suite_name); } else { subsuite->name = suite_name; } if (list_tests) { fprintf(stdout, "%s\n", subsuite->name); } subsuite->not_run = 0; if (suite == NULL) { suite = (abts_suite*) malloc(sizeof(*suite)); suite->head = subsuite; suite->tail = subsuite; } else { suite->tail->next = subsuite; suite->tail = subsuite; } if (!should_test_run(subsuite->name)) { subsuite->not_run = 1; return suite; } reset_status(); fprintf(stdout, "%-20s: ", subsuite->name); update_status(); fflush(stdout); return suite; } void abts_run_test(abts_suite *ts, test_func f, void *value) { abts_case tc; sub_suite *ss; if (!should_test_run(ts->tail->name)) { return; } ss = ts->tail; tc.failed = 0; tc.suite = ss; ss->num_test++; update_status(); f(&tc, value); if (tc.failed) { ss->failed++; } } static int report(abts_suite *suite) { int count = 0; sub_suite *dptr; if (suite && suite->tail &&!suite->tail->not_run) { end_suite(suite); } for (dptr = suite->head; dptr; dptr = dptr->next) { count += dptr->failed; } if (list_tests) { return 0; } if (count == 0) { printf("All tests passed.\n"); return 0; } dptr = suite->head; fprintf(stdout, "%-15s\t\tTotal\tFail\tFailed %%\n", "Failed Tests"); fprintf(stdout, "===================================================\n"); while (dptr != NULL) { if (dptr->failed != 0) { float percent = ((float)dptr->failed / (float)dptr->num_test); fprintf(stdout, "%-15s\t\t%5d\t%4d\t%6.2f%%\n", dptr->name, dptr->num_test, dptr->failed, percent * 100); } dptr = dptr->next; } return 1; } void abts_log_message(const char *fmt, ...) { va_list args; update_status(); if (verbose) { va_start(args, fmt); vfprintf(stderr, fmt, args); va_end(args); fprintf(stderr, "\n"); fflush(stderr); } } void abts_int_equal(abts_case *tc, const int expected, const int actual, int lineno) { update_status(); if (tc->failed) return; if (expected == actual) return; tc->failed = TRUE; if (verbose) { fprintf(stderr, "Line %d: expected <%d>, but saw <%d>\n", lineno, expected, actual); fflush(stderr); } } void abts_int_nequal(abts_case *tc, const int expected, const int actual, int lineno) { update_status(); if (tc->failed) return; if (expected != actual) return; tc->failed = TRUE; if (verbose) { fprintf(stderr, "Line %d: expected <%d>, but saw <%d>\n", lineno, expected, actual); fflush(stderr); } } void abts_size_equal(abts_case *tc, size_t expected, size_t actual, int lineno) { update_status(); if (tc->failed) return; if (expected == actual) return; tc->failed = TRUE; if (verbose) { /* Note that the comparison is type-exact, reporting must be a best-fit */ fprintf(stderr, "Line %d: expected %lu, but saw %lu\n", lineno, (unsigned long)expected, (unsigned long)actual); fflush(stderr); } } void abts_str_equal(abts_case *tc, const char *expected, const char *actual, int lineno) { update_status(); if (tc->failed) return; if (!expected && !actual) return; if (expected && actual) if (!strcmp(expected, actual)) return; tc->failed = TRUE; if (verbose) { fprintf(stderr, "Line %d: expected <%s>, but saw <%s>\n", lineno, expected, actual); fflush(stderr); } } void abts_str_nequal(abts_case *tc, const char *expected, const char *actual, size_t n, int lineno) { update_status(); if (tc->failed) return; if (!strncmp(expected, actual, n)) return; tc->failed = TRUE; if (verbose) { fprintf(stderr, "Line %d: expected <%s>, but saw <%s>\n", lineno, expected, actual); fflush(stderr); } } void abts_ptr_notnull(abts_case *tc, const void *ptr, int lineno) { update_status(); if (tc->failed) return; if (ptr != NULL) return; tc->failed = TRUE; if (verbose) { fprintf(stderr, "Line %d: Expected NULL, but saw <%p>\n", lineno, ptr); fflush(stderr); } } void abts_ptr_equal(abts_case *tc, const void *expected, const void *actual, int lineno) { update_status(); if (tc->failed) return; if (expected == actual) return; tc->failed = TRUE; if (verbose) { fprintf(stderr, "Line %d: expected <%p>, but saw <%p>\n", lineno, expected, actual); fflush(stderr); } } void abts_fail(abts_case *tc, const char *message, int lineno) { update_status(); if (tc->failed) return; tc->failed = TRUE; if (verbose) { fprintf(stderr, "Line %d: %s\n", lineno, message); fflush(stderr); } } void abts_assert(abts_case *tc, const char *message, int condition, int lineno) { update_status(); if (tc->failed) return; if (condition) return; tc->failed = TRUE; if (verbose) { fprintf(stderr, "Line %d: %s\n", lineno, message); fflush(stderr); } } void abts_true(abts_case *tc, int condition, int lineno) { update_status(); if (tc->failed) return; if (condition) return; tc->failed = TRUE; if (verbose) { fprintf(stderr, "Line %d: Condition is false, but expected true\n", lineno); fflush(stderr); } } void abts_not_impl(abts_case *tc, const char *message, int lineno) { update_status(); tc->suite->not_impl++; if (verbose) { fprintf(stderr, "Line %d: %s\n", lineno, message); fflush(stderr); } } int main(int argc, const char *const argv[]) { int i; int rv; int list_provided = 0; abts_suite *suite = NULL; initialize(); #if defined(_MSC_VER) quiet = 1; #else quiet = !isatty(STDOUT_FILENO); #endif for (i = 1; i < argc; i++) { if (!strcmp(argv[i], "-v")) { verbose = 1; continue; } if (!strcmp(argv[i], "-x")) { exclude = 1; continue; } if (!strcmp(argv[i], "-l")) { list_tests = 1; continue; } if (!strcmp(argv[i], "-q")) { quiet = 1; continue; } if (argv[i][0] == '-') { fprintf(stderr, "Invalid option: `%s'\n", argv[i]); exit(1); } list_provided = 1; } if (list_provided) { /* Waste a little space here, because it is easier than counting the * number of tests listed. Besides it is at most three char *. */ testlist = (const char**) calloc(argc + 1, sizeof(char *)); for (i = 1; i < argc; i++) { testlist[i - 1] = argv[i]; } } suite = abts_run_suites(suite); if (suite == 0) { fputs("No tests selected\n", stderr); } else { rv = report(suite); // // clean up suite // sub_suite* next; for(sub_suite* head = suite->head; head != NULL; head = next) { next = head->next; free((void*) head->name); free(head); } free(suite); } return rv; } apache-log4cxx-0.10.0/src/test/cpp/writerappendertestcase.cpp100644 0 0 2101 10774263274 21357 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "writerappendertestcase.h" #include #include using namespace log4cxx; using namespace log4cxx::helpers; AppenderSkeleton* WriterAppenderTestCase::createAppenderSkeleton() const { return createWriterAppender(); } apache-log4cxx-0.10.0/src/test/cpp/asyncappendertestcase.cpp100644 0 0 24626 10774263274 21220 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "logunit.h" #include #include #include #include "vectorappender.h" #include #include "appenderskeletontestcase.h" #include #include #include "testchar.h" #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::spi; class NullPointerAppender : public AppenderSkeleton { public: NullPointerAppender() { } /** * @{inheritDoc} */ void append(const spi::LoggingEventPtr&, log4cxx::helpers::Pool&) { throw NullPointerException(LOG4CXX_STR("Intentional NullPointerException")); } void close() { } bool requiresLayout() const { return false; } }; /** * Vector appender that can be explicitly blocked. */ class BlockableVectorAppender : public VectorAppender { private: Mutex blocker; public: /** * Create new instance. */ BlockableVectorAppender() : blocker(pool) { } /** * {@inheritDoc} */ void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p) { synchronized sync(blocker); VectorAppender::append(event, p); // // if fatal, echo messages for testLoggingInDispatcher // if (event->getLevel() == Level::getInfo()) { LoggerPtr logger = Logger::getLoggerLS(event->getLoggerName()); LOG4CXX_LOGLS(logger, Level::getError(), event->getMessage()); LOG4CXX_LOGLS(logger, Level::getWarn(), event->getMessage()); LOG4CXX_LOGLS(logger, Level::getInfo(), event->getMessage()); LOG4CXX_LOGLS(logger, Level::getDebug(), event->getMessage()); } } Mutex& getBlocker() { return blocker; } }; typedef helpers::ObjectPtrT BlockableVectorAppenderPtr; #if APR_HAS_THREADS /** * Tests of AsyncAppender. */ class AsyncAppenderTestCase : public AppenderSkeletonTestCase { LOGUNIT_TEST_SUITE(AsyncAppenderTestCase); // // tests inherited from AppenderSkeletonTestCase // LOGUNIT_TEST(testDefaultThreshold); LOGUNIT_TEST(testSetOptionThreshold); LOGUNIT_TEST(closeTest); LOGUNIT_TEST(test2); LOGUNIT_TEST(test3); // // TODO: test fails on Linux. //LOGUNIT_TEST(testBadAppender); LOGUNIT_TEST(testLocationInfoTrue); LOGUNIT_TEST(testConfiguration); LOGUNIT_TEST_SUITE_END(); public: void setUp() { AppenderSkeletonTestCase::setUp(); } void tearDown() { LogManager::shutdown(); AppenderSkeletonTestCase::tearDown(); } AppenderSkeleton* createAppenderSkeleton() const { return new AsyncAppender(); } // this test checks whether it is possible to write to a closed AsyncAppender void closeTest() { LoggerPtr root = Logger::getRootLogger(); LayoutPtr layout = new SimpleLayout(); VectorAppenderPtr vectorAppender = new VectorAppender(); AsyncAppenderPtr asyncAppender = new AsyncAppender(); asyncAppender->setName(LOG4CXX_STR("async-CloseTest")); asyncAppender->addAppender(vectorAppender); root->addAppender(asyncAppender); root->debug(LOG4CXX_TEST_STR("m1")); asyncAppender->close(); root->debug(LOG4CXX_TEST_STR("m2")); const std::vector& v = vectorAppender->getVector(); LOGUNIT_ASSERT_EQUAL((size_t) 1, v.size()); } // this test checks whether appenders embedded within an AsyncAppender are also // closed void test2() { LoggerPtr root = Logger::getRootLogger(); LayoutPtr layout = new SimpleLayout(); VectorAppenderPtr vectorAppender = new VectorAppender(); AsyncAppenderPtr asyncAppender = new AsyncAppender(); asyncAppender->setName(LOG4CXX_STR("async-test2")); asyncAppender->addAppender(vectorAppender); root->addAppender(asyncAppender); root->debug(LOG4CXX_TEST_STR("m1")); asyncAppender->close(); root->debug(LOG4CXX_TEST_STR("m2")); const std::vector& v = vectorAppender->getVector(); LOGUNIT_ASSERT_EQUAL((size_t) 1, v.size()); LOGUNIT_ASSERT(vectorAppender->isClosed()); } // this test checks whether appenders embedded within an AsyncAppender are also // closed void test3() { size_t LEN = 200; LoggerPtr root = Logger::getRootLogger(); VectorAppenderPtr vectorAppender = new VectorAppender(); AsyncAppenderPtr asyncAppender = new AsyncAppender(); asyncAppender->setName(LOG4CXX_STR("async-test3")); asyncAppender->addAppender(vectorAppender); root->addAppender(asyncAppender); for (size_t i = 0; i < LEN; i++) { LOG4CXX_DEBUG(root, "message" << i); } asyncAppender->close(); root->debug(LOG4CXX_TEST_STR("m2")); const std::vector& v = vectorAppender->getVector(); LOGUNIT_ASSERT_EQUAL(LEN, v.size()); LOGUNIT_ASSERT_EQUAL(true, vectorAppender->isClosed()); } /** * Tests that a bad appender will switch async back to sync. */ void testBadAppender() { AppenderPtr nullPointerAppender = new NullPointerAppender(); AsyncAppenderPtr asyncAppender = new AsyncAppender(); asyncAppender->addAppender(nullPointerAppender); asyncAppender->setBufferSize(5); Pool p; asyncAppender->activateOptions(p); LoggerPtr root = Logger::getRootLogger(); root->addAppender(asyncAppender); LOG4CXX_INFO(root, "Message"); Thread::sleep(10); try { LOG4CXX_INFO(root, "Message"); LOGUNIT_FAIL("Should have thrown exception"); } catch(NullPointerException& ex) { } } /** * Tests non-blocking behavior. */ void testLocationInfoTrue() { BlockableVectorAppenderPtr blockableAppender = new BlockableVectorAppender(); AsyncAppenderPtr async = new AsyncAppender(); async->addAppender(blockableAppender); async->setBufferSize(5); async->setLocationInfo(true); async->setBlocking(false); Pool p; async->activateOptions(p); LoggerPtr rootLogger = Logger::getRootLogger(); rootLogger->addAppender(async); { synchronized sync(blockableAppender->getBlocker()); for (int i = 0; i < 100; i++) { LOG4CXX_INFO(rootLogger, "Hello, World"); Thread::sleep(1); } LOG4CXX_ERROR(rootLogger, "That's all folks."); } async->close(); const std::vector& events = blockableAppender->getVector(); LOGUNIT_ASSERT(events.size() > 0); LoggingEventPtr initialEvent = events[0]; LoggingEventPtr discardEvent = events[events.size() - 1]; LOGUNIT_ASSERT(initialEvent->getMessage() == LOG4CXX_STR("Hello, World")); LOGUNIT_ASSERT(discardEvent->getMessage().substr(0,10) == LOG4CXX_STR("Discarded ")); LOGUNIT_ASSERT_EQUAL(log4cxx::spi::LocationInfo::getLocationUnavailable().getClassName(), discardEvent->getLocationInformation().getClassName()); } void testConfiguration() { log4cxx::xml::DOMConfigurator::configure("input/xml/asyncAppender1.xml"); AsyncAppenderPtr asyncAppender(Logger::getRootLogger()->getAppender(LOG4CXX_STR("ASYNC"))); LOGUNIT_ASSERT(!(asyncAppender == 0)); LOGUNIT_ASSERT_EQUAL(100, asyncAppender->getBufferSize()); LOGUNIT_ASSERT_EQUAL(false, asyncAppender->getBlocking()); LOGUNIT_ASSERT_EQUAL(true, asyncAppender->getLocationInfo()); AppenderList nestedAppenders(asyncAppender->getAllAppenders()); // TODO: // test seems to work okay, but have not found a working way to // get a reference to the nested vector appender // // LOGUNIT_ASSERT_EQUAL((size_t) 1, nestedAppenders.size()); // VectorAppenderPtr vectorAppender(nestedAppenders[0]); // LOGUNIT_ASSERT(0 != vectorAppender); LoggerPtr root(Logger::getRootLogger()); size_t LEN = 20; for (size_t i = 0; i < LEN; i++) { LOG4CXX_DEBUG(root, "message" << i); } asyncAppender->close(); // const std::vector& v = vectorAppender->getVector(); // LOGUNIT_ASSERT_EQUAL(LEN, v.size()); // LOGUNIT_ASSERT_EQUAL(true, vectorAppender->isClosed()); } }; LOGUNIT_TEST_SUITE_REGISTRATION(AsyncAppenderTestCase); #endif apache-log4cxx-0.10.0/src/test/resources/input/rolling/Makefile.in100644 0 0 25021 10774264477 22222 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/test/resources/input/rolling DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # EXTRA_DIST = *.xml *.properties all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/test/resources/input/rolling/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/test/resources/input/rolling/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: all all-am all-local check check-am clean clean-generic \ clean-libtool distclean distclean-generic distclean-libtool \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-info-am # if we are building in a separate build tree, then copy all necessary files all-local: @if test "$(top_srcdir)" != "$(top_builddir)"; then \ echo "Copying test suite data files ..." ; \ list='$(EXTRA_DIST)'; for file in $$list; do \ cp -p $(srcdir)/$$file . ; \ done \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/test/resources/input/rolling/obsoleteRFA1.properties100644 0 0 2553 10774263274 24500 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # log4j.rootLogger=DEBUG, testAppender log4j.appender.testAppender=org.apache.log4j.RollingFileAppender log4j.appender.testAppender.file=output/obsoleteRFA-test1.log log4j.appender.testAppender.Append=false log4j.appender.testAppender.layout=org.apache.log4j.PatternLayout log4j.appender.testAppender.layout.ConversionPattern=%m\n log4j.appender.testAppender.maxFileSize=100 # Prevent internal log4j DEBUG messages from polluting the output. log4j.logger.org.apache.log4j.PropertyConfigurator=INFO log4j.logger.org.apache.log4j.config.PropertySetter=INFO log4j.logger.org.apache.log4j.FileAppender=INFO apache-log4cxx-0.10.0/src/test/resources/input/rolling/filter1.xml100644 0 0 4164 10774263274 22224 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/input/rolling/obsoleteDRFA1.properties100644 0 0 2604 10774263274 24601 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # log4j.rootLogger=DEBUG, testAppender log4j.appender.testAppender=org.apache.log4j.DailyRollingFileAppender log4j.appender.testAppender.file=output/obsoleteDRFA-test1.log log4j.appender.testAppender.datePattern='.'yyyy-MM-dd_HH_mm_ss log4j.appender.testAppender.Append=false log4j.appender.testAppender.layout=org.apache.log4j.PatternLayout log4j.appender.testAppender.layout.ConversionPattern=%m%n # Prevent internal log4j DEBUG messages from polluting the output. log4j.logger.org.apache.log4j.PropertyConfigurator=INFO log4j.logger.org.apache.log4j.config.PropertySetter=INFO log4j.logger.org.apache.log4j.FileAppender=INFO apache-log4cxx-0.10.0/src/test/resources/input/rolling/obsoleteERFA1.properties100644 0 0 2643 10774263274 24605 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # log4j.rootLogger=DEBUG, testAppender log4j.appender.testAppender=org.apache.log4j.varia.ExternallyRolledFileAppender log4j.appender.testAppender.file=output/obsoleteERFA-test1.log log4j.appender.testAppender.Append=false log4j.appender.testAppender.layout=org.apache.log4j.PatternLayout log4j.appender.testAppender.layout.ConversionPattern=%m\n log4j.appender.testAppender.maxFileSize=10000 log4j.appender.testAppender.port=6700 # Prevent internal log4j DEBUG messages from polluting the output. log4j.logger.org.apache.log4j.PropertyConfigurator=INFO log4j.logger.org.apache.log4j.config.PropertySetter=INFO log4j.logger.org.apache.log4j.FileAppender=INFO apache-log4cxx-0.10.0/src/test/resources/input/rolling/Makefile.am100644 0 0 2122 10774263274 22160 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # EXTRA_DIST = *.xml *.properties # if we are building in a separate build tree, then copy all necessary files all-local: @if test "$(top_srcdir)" != "$(top_builddir)"; then \ echo "Copying test suite data files ..." ; \ list='$(EXTRA_DIST)'; for file in $$list; do \ cp -p $(srcdir)/$$file . ; \ done \ fi apache-log4cxx-0.10.0/src/test/resources/input/rolling/time1.xml100644 0 0 3434 10774263274 21674 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/input/xml/smtpAppender1.xml100644 0 0 3043 10774263315 22522 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/input/xml/fallback1.xml100644 0 0 3446 10774263315 21626 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/input/xml/customLevel1.xml100644 0 0 2540 10774263315 22363 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/input/xml/customLogger1.xml100644 0 0 2616 10774263315 22537 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/input/xml/customLevel2.xml100644 0 0 3124 10774263315 22363 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/input/xml/customLevel3.xml100644 0 0 3225 10774263315 22366 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/input/xml/customLevel4.xml100644 0 0 2574 10774263315 22375 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/input/xml/log4j.dtd100644 0 0 15076 10774263315 21022 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/input/xml/Makefile.in100644 0 0 25002 10774264477 21353 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/test/resources/input/xml DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # EXTRA_DIST = log4j.dtd *.xml all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/test/resources/input/xml/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/test/resources/input/xml/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: all all-am all-local check check-am clean clean-generic \ clean-libtool distclean distclean-generic distclean-libtool \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-info-am # if we are building in a separate build tree, then copy all necessary files all-local: @if test "$(top_srcdir)" != "$(top_builddir)"; then \ echo "Copying test suite data files ..." ; \ list='$(EXTRA_DIST)'; for file in $$list; do \ cp -p $(srcdir)/$$file . ; \ done \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/test/resources/input/xml/customLogger2.xml100644 0 0 3241 10774263315 22533 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/input/xml/DOMTestCase1.xml100644 0 0 3402 10774263315 22132 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/input/xml/DOMTestCase2.xml100644 0 0 3406 10774263315 22137 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/input/xml/DOMTestCase3.xml100644 0 0 2532 10774263315 22137 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/input/xml/DOMTestCase4.xml100644 0 0 2534 10774263315 22142 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/input/xml/defaultInit.xml100644 0 0 2374 10774263315 22255 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/input/xml/Makefile.am100644 0 0 2117 10774263315 21312 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # EXTRA_DIST = log4j.dtd *.xml # if we are building in a separate build tree, then copy all necessary files all-local: @if test "$(top_srcdir)" != "$(top_builddir)"; then \ echo "Copying test suite data files ..." ; \ list='$(EXTRA_DIST)'; for file in $$list; do \ cp -p $(srcdir)/$$file . ; \ done \ fi apache-log4cxx-0.10.0/src/test/resources/input/xml/filters.LevelMatchFilter.test4.0.xml100644 0 0 3010 10774263315 26032 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/input/xml/filters.LevelMatchFilter.test4.1.xml100644 0 0 3007 10774263315 26041 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/input/xml/filters.LevelMatchFilter.test4.2.xml100644 0 0 3007 10774263315 26042 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/input/xml/filters.LevelMatchFilter.test4.3.xml100644 0 0 3010 10774263315 26035 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/input/xml/filters.LevelMatchFilter.test4.4.xml100644 0 0 3010 10774263315 26036 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/input/xml/asyncAppender1.xml100644 0 0 2515 10774263315 22657 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/input/ndc/Makefile.in100644 0 0 24777 10774264477 21341 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/test/resources/input/ndc DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # EXTRA_DIST = *.properties all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/test/resources/input/ndc/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/test/resources/input/ndc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: all all-am all-local check check-am clean clean-generic \ clean-libtool distclean distclean-generic distclean-libtool \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-info-am # if we are building in a separate build tree, then copy all necessary files all-local: @if test "$(top_srcdir)" != "$(top_builddir)"; then \ echo "Copying test suite data files ..." ; \ list='$(EXTRA_DIST)'; for file in $$list; do \ cp -p $(srcdir)/$$file . ; \ done \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/test/resources/input/ndc/NDC1.properties100644 0 0 2464 10774263315 22032 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # log4j.rootCategory=DEBUG, testAppender log4j.appender.testAppender=org.apache.log4j.FileAppender log4j.appender.testAppender.file=output/temp log4j.appender.testAppender.Append=false log4j.appender.testAppender.layout=org.apache.log4j.PatternLayout log4j.appender.testAppender.layout.ConversionPattern=%-5p %x - %m%n # Prevent internal log4j DEBUG messages from polluting the output. log4j.logger.org.apache.log4j.PropertyConfigurator=INFO log4j.logger.org.apache.log4j.config.PropertySetter=INFO log4j.logger.org.apache.log4j.FileAppender=INFO apache-log4cxx-0.10.0/src/test/resources/input/ndc/Makefile.am100644 0 0 2114 10774263315 21253 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # EXTRA_DIST = *.properties # if we are building in a separate build tree, then copy all necessary files all-local: @if test "$(top_srcdir)" != "$(top_builddir)"; then \ echo "Copying test suite data files ..." ; \ list='$(EXTRA_DIST)'; for file in $$list; do \ cp -p $(srcdir)/$$file . ; \ done \ fi apache-log4cxx-0.10.0/src/test/resources/input/patternLayout.mdc.1.properties100644 0 0 2113 10774263315 24344 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # log4j.rootCategory=DEBUG, testAppender log4j.appender.testAppender=org.apache.log4j.FileAppender log4j.appender.testAppender.File=output/temp log4j.appender.testAppender.Append=false log4j.appender.testAppender.layout=org.apache.log4j.PatternLayout log4j.appender.testAppender.layout.ConversionPattern=%-5p - %m %Xapache-log4cxx-0.10.0/src/test/resources/input/patternLayout1.properties100644 0 0 2112 10774263315 23523 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # log4j.rootCategory=DEBUG, testAppender log4j.appender.testAppender=org.apache.log4j.FileAppender log4j.appender.testAppender.file=output/temp log4j.appender.testAppender.Append=false log4j.appender.testAppender.layout=org.apache.log4j.PatternLayout log4j.appender.testAppender.layout.ConversionPattern=%-5p - %m%napache-log4cxx-0.10.0/src/test/resources/input/patternLayout3.properties100644 0 0 2164 10774263315 23534 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # log4j.rootCategory=DEBUG, testAppender log4j.appender.testAppender=org.apache.log4j.FileAppender log4j.appender.testAppender.File=output/layout3 log4j.appender.testAppender.Append=false log4j.appender.testAppender.layout=org.apache.log4j.PatternLayout log4j.appender.testAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] %-5p %.16c - %m%n apache-log4cxx-0.10.0/src/test/resources/input/socketServer1.properties100644 0 0 2171 10774263315 23334 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. log4j.rootLogger=TRACE, A log4j.logger.org.apache.log4j.test.ShortSocketServer=WARN log4j.logger.org.apache.log4j.net.SocketNode=WARN log4j.appender.A=org.apache.log4j.FileAppender log4j.appender.A.file=output/temp log4j.appender.A.Append=false log4j.appender.A.layout=org.apache.log4j.PatternLayout log4j.appender.A.layout.ConversionPattern=%5p %x [%t] %c %m%n apache-log4cxx-0.10.0/src/test/resources/input/patternLayout5.properties100644 0 0 2162 10774263315 23534 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # log4j.rootCategory=DEBUG, testAppender log4j.appender.testAppender=org.apache.log4j.FileAppender log4j.appender.testAppender.File=output/temp log4j.appender.testAppender.Append=false log4j.appender.testAppender.layout=org.apache.log4j.PatternLayout log4j.appender.testAppender.layout.ConversionPattern=%d{dd MMM yyyy HH:mm:ss,SSS} [%t] %-5p %.16c - %m%n apache-log4cxx-0.10.0/src/test/resources/input/socketServer3.properties100644 0 0 2200 10774263315 23327 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. log4j.rootLogger=TRACE, A log4j.Logger.org.apache.log4j.test.ShortSocketServer=WARN log4j.Logger.org.apache.log4j.net.SocketNode=WARN log4j.appender.A=org.apache.log4j.FileAppender log4j.appender.A.file=output/temp log4j.appender.A.Append=false log4j.appender.A.layout=org.apache.log4j.PatternLayout log4j.appender.A.layout.ConversionPattern=%5p %x [%t] %C (%F:%L) %m%n apache-log4cxx-0.10.0/src/test/resources/input/patternLayout7.properties100644 0 0 2146 10774263315 23540 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # log4j.rootCategory=DEBUG, testAppender log4j.appender.testAppender=org.apache.log4j.FileAppender log4j.appender.testAppender.File=output/temp log4j.appender.testAppender.Append=false log4j.appender.testAppender.layout=org.apache.log4j.PatternLayout log4j.appender.testAppender.layout.ConversionPattern=%d{HH:mm:ss,SSS} [%t] %-5p %.16c - %m%n apache-log4cxx-0.10.0/src/test/resources/input/socketServer5.properties100644 0 0 2216 10774263315 23340 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. log4j.rootLogger=TRACE, A log4j.Logger.org.apache.log4j.test.ShortSocketServer=WARN log4j.Logger.org.apache.log4j.net.SocketNode=WARN log4j.appender.A=org.apache.log4j.FileAppender log4j.appender.A.file=output/temp log4j.appender.A.Append=false log4j.appender.A.layout=org.apache.log4j.PatternLayout log4j.appender.A.layout.ConversionPattern=%5p %x %X{key1}%X{key5} [%t] %c{1} - %m%n apache-log4cxx-0.10.0/src/test/resources/input/patternLayout9.properties100644 0 0 2124 10774263315 23536 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # log4j.rootCategory=DEBUG, testAppender log4j.appender.testAppender=org.apache.log4j.FileAppender log4j.appender.testAppender.File=output/temp log4j.appender.testAppender.Append=false log4j.appender.testAppender.layout=org.apache.log4j.PatternLayout log4j.appender.testAppender.layout.ConversionPattern=[%t] %-5p %.16c : %m%napache-log4cxx-0.10.0/src/test/resources/input/socketServer7.properties100644 0 0 2221 10774263315 23336 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. log4j.rootLogger=TRACE, A log4j.Logger.org.apache.log4j.test.ShortSocketServer=WARN log4j.Logger.org.apache.log4j.net.SocketNode=WARN log4j.appender.A=org.apache.log4j.FileAppender log4j.appender.A.file=output/temp log4j.appender.A.Append=false log4j.appender.A.layout=org.apache.log4j.PatternLayout log4j.appender.A.layout.ConversionPattern=%5p %x %X{hostID} %X{key7} [%t] %c{1} - %m%n apache-log4cxx-0.10.0/src/test/resources/input/l7d1.properties100644 0 0 2114 10774263315 21340 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # log4j.rootCategory=INFO, testAppender log4j.appender.testAppender=org.apache.log4j.FileAppender log4j.appender.testAppender.File= output/temp log4j.appender.testAppender.Append=false log4j.appender.testAppender.layout=org.apache.log4j.PatternLayout log4j.appender.testAppender.layout.ConversionPattern=T1 %5p - %m%n apache-log4cxx-0.10.0/src/test/resources/input/hierarchyThreshold2.properties100644 0 0 2027 10774263315 24511 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # log4j.threshold=FATAL log4j.rootLogger=,A log4j.appender.A=org.apache.log4j.FileAppender log4j.appender.A.File=output/temp log4j.appender.A.Append=false log4j.appender.A.layout=org.apache.log4j.PatternLayout log4j.appender.A.layout.ConversionPattern=%p %c = %m%n apache-log4cxx-0.10.0/src/test/resources/input/patternLayout10.properties100644 0 0 2125 10774263315 23607 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # log4j.rootCategory=DEBUG, testAppender log4j.appender.testAppender=org.apache.log4j.FileAppender log4j.appender.testAppender.File= output/temp log4j.appender.testAppender.Append= false log4j.appender.testAppender.layout=org.apache.log4j.PatternLayout log4j.appender.testAppender.layout.ConversionPattern=[%t] %-5p %l: %m%n apache-log4cxx-0.10.0/src/test/resources/input/hierarchyThreshold4.properties100644 0 0 2026 10774263315 24512 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # log4j.threshold=WARN log4j.rootLogger=,A log4j.appender.A=org.apache.log4j.FileAppender log4j.appender.A.File=output/temp log4j.appender.A.Append=false log4j.appender.A.layout=org.apache.log4j.PatternLayout log4j.appender.A.layout.ConversionPattern=%p %c = %m%n apache-log4cxx-0.10.0/src/test/resources/input/patternLayout12.properties100644 0 0 2125 10774263315 23611 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # log4j.rootCategory=DEBUG, testAppender log4j.appender.testAppender=org.apache.log4j.FileAppender log4j.appender.testAppender.File=output/temp log4j.appender.testAppender.Append=false log4j.appender.testAppender.layout=org.apache.log4j.PatternLayout log4j.appender.testAppender.layout.ConversionPattern=[%t] %-5p %F(%L): %m%n apache-log4cxx-0.10.0/src/test/resources/input/Makefile.in100644 0 0 37472 10774264477 20571 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/test/resources/input DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # SUBDIRS = ndc xml rolling EXTRA_DIST = *.properties all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/test/resources/input/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/test/resources/input/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile all-local installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am all-local check \ check-am clean clean-generic clean-libtool clean-recursive \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-recursive distclean-tags distdir \ dvi dvi-am html html-am info info-am install install-am \ install-data install-data-am install-exec install-exec-am \ install-info install-info-am install-man install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-generic \ mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am uninstall-info-am # if we are building in a separate build tree, then copy all necessary files all-local: @if test "$(top_srcdir)" != "$(top_builddir)"; then \ echo "Copying test suite data files ..." ; \ list='$(EXTRA_DIST)'; for file in $$list; do \ cp -p $(srcdir)/$$file . ; \ done \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/test/resources/input/Makefile.am100644 0 0 2146 10774263315 20514 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # SUBDIRS = ndc xml rolling EXTRA_DIST = *.properties # if we are building in a separate build tree, then copy all necessary files all-local: @if test "$(top_srcdir)" != "$(top_builddir)"; then \ echo "Copying test suite data files ..." ; \ list='$(EXTRA_DIST)'; for file in $$list; do \ cp -p $(srcdir)/$$file . ; \ done \ fi apache-log4cxx-0.10.0/src/test/resources/input/hierarchyThreshold6.properties100644 0 0 2027 10774263315 24515 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # log4j.threshold=DEBUG log4j.rootLogger=,A log4j.appender.A=org.apache.log4j.FileAppender log4j.appender.A.File=output/temp log4j.appender.A.Append=false log4j.appender.A.layout=org.apache.log4j.PatternLayout log4j.appender.A.layout.ConversionPattern=%p %c = %m%n apache-log4cxx-0.10.0/src/test/resources/input/hierarchyThreshold8.properties100644 0 0 2030 10774263315 24511 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # log4j.threshold=ALL log4j.rootLogger=ALL,A log4j.appender.A=org.apache.log4j.FileAppender log4j.appender.A.File=output/temp log4j.appender.A.Append=false log4j.appender.A.layout=org.apache.log4j.PatternLayout log4j.appender.A.layout.ConversionPattern=%p %c = %m%n apache-log4cxx-0.10.0/src/test/resources/input/defaultInit3.properties100644 0 0 2037 10774263315 23130 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # log4j.rootCategory=DEBUG, D3 log4j.appender.D3=org.apache.log4j.FileAppender log4j.appender.D3.File=output/temp log4j.appender.D3.Append=false log4j.appender.D3.layout=org.apache.log4j.PatternLayout log4j.appender.D3.layout.ConversionPattern=%d [%t] %-5p %.16c - %m%napache-log4cxx-0.10.0/src/test/resources/input/patternLayout2.properties100644 0 0 2145 10774263315 23532 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # log4j.rootCategory=DEBUG, testAppender log4j.appender.testAppender=org.apache.log4j.FileAppender log4j.appender.testAppender.File=output/temp log4j.appender.testAppender.Append= false log4j.appender.testAppender.layout=org.apache.log4j.PatternLayout log4j.appender.testAppender.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %.16c - %m%n apache-log4cxx-0.10.0/src/test/resources/input/patternLayout4.properties100644 0 0 2140 10774263315 23527 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # log4j.rootCategory=DEBUG, testAppender log4j.appender.testAppender=org.apache.log4j.FileAppender log4j.appender.testAppender.File=output/temp log4j.appender.testAppender.Append=false log4j.appender.testAppender.layout=org.apache.log4j.PatternLayout log4j.appender.testAppender.layout.ConversionPattern=%d{DATE} [%t] %-5p %.16c - %m%napache-log4cxx-0.10.0/src/test/resources/input/socketServer2.properties100644 0 0 2201 10774263315 23327 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. log4j.rootLogger=TRACE, A log4j.logger.org.apache.log4j.test.ShortSocketServer=WARN log4j.logger.org.apache.log4j.net.SocketNode=WARN log4j.appender.A=org.apache.log4j.FileAppender log4j.appender.A.file=output/temp log4j.appender.A.Append=false log4j.appender.A.layout=org.apache.log4j.PatternLayout log4j.appender.A.layout.ConversionPattern=%5p %x [%t] %C (%F:%L) %m%n apache-log4cxx-0.10.0/src/test/resources/input/patternLayout6.properties100644 0 0 2141 10774263315 23532 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # log4j.rootCategory=DEBUG, testAppender log4j.appender.testAppender=org.apache.log4j.FileAppender log4j.appender.testAppender.File=output/temp log4j.appender.testAppender.Append=false log4j.appender.testAppender.layout=org.apache.log4j.PatternLayout log4j.appender.testAppender.layout.ConversionPattern=%d{ABSOLUTE} [%t] %-5p %.16c - %m%napache-log4cxx-0.10.0/src/test/resources/input/socketServer4.properties100644 0 0 2216 10774263315 23337 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. log4j.rootLogger=TRACE, A log4j.Logger.org.apache.log4j.test.ShortSocketServer=WARN log4j.Logger.org.apache.log4j.net.SocketNode=WARN log4j.appender.A=org.apache.log4j.FileAppender log4j.appender.A.file=output/temp log4j.appender.A.Append=false log4j.appender.A.layout=org.apache.log4j.PatternLayout log4j.appender.A.layout.ConversionPattern=%5p %x %X{key1}%X{key4} [%t] %c{1} - %m%n apache-log4cxx-0.10.0/src/test/resources/input/patternLayout8.properties100644 0 0 2127 10774263315 23540 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # log4j.rootCategory=DEBUG, testAppender log4j.appender.testAppender=org.apache.log4j.FileAppender log4j.appender.testAppender.File=output/temp log4j.appender.testAppender.Append=false log4j.appender.testAppender.layout=org.apache.log4j.PatternLayout log4j.appender.testAppender.layout.ConversionPattern=%r [%t] %-5p %.16c - %m%napache-log4cxx-0.10.0/src/test/resources/input/socketServer6.properties100644 0 0 2221 10774263315 23335 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. log4j.rootLogger=TRACE, A log4j.Logger.org.apache.log4j.test.ShortSocketServer=WARN log4j.Logger.org.apache.log4j.net.SocketNode=WARN log4j.appender.A=org.apache.log4j.FileAppender log4j.appender.A.file=output/temp log4j.appender.A.Append=false log4j.appender.A.layout=org.apache.log4j.PatternLayout log4j.appender.A.layout.ConversionPattern=%5p %x %X{hostID} %X{key6} [%t] %c{1} - %m%n apache-log4cxx-0.10.0/src/test/resources/input/socketServer8.properties100644 0 0 2221 10774263315 23337 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. log4j.rootLogger=TRACE, A log4j.Logger.org.apache.log4j.test.ShortSocketServer=WARN log4j.Logger.org.apache.log4j.net.SocketNode=WARN log4j.appender.A=org.apache.log4j.FileAppender log4j.appender.A.file=output/temp log4j.appender.A.Append=false log4j.appender.A.layout=org.apache.log4j.PatternLayout log4j.appender.A.layout.ConversionPattern=%5p %x %X{hostID} %X{key8} [%t] %c{1} - %m%n apache-log4cxx-0.10.0/src/test/resources/input/hierarchyThreshold1.properties100644 0 0 2025 10774263315 24506 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # log4j.threshold=OFF log4j.rootLogger=,A log4j.appender.A=org.apache.log4j.FileAppender log4j.appender.A.File=output/temp log4j.appender.A.Append=false log4j.appender.A.layout=org.apache.log4j.PatternLayout log4j.appender.A.layout.ConversionPattern=%p %c = %m%n apache-log4cxx-0.10.0/src/test/resources/input/patternLayout11.properties100644 0 0 2123 10774263315 23606 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # log4j.rootCategory=DEBUG, testAppender log4j.appender.testAppender=org.apache.log4j.FileAppender log4j.appender.testAppender.File=output/temp log4j.appender.testAppender.Append=false log4j.appender.testAppender.layout=org.apache.log4j.PatternLayout log4j.appender.testAppender.layout.ConversionPattern=%-5p [%t] %c{2}: %m%napache-log4cxx-0.10.0/src/test/resources/input/hierarchyThreshold3.properties100644 0 0 2027 10774263315 24512 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # log4j.threshold=ERROR log4j.rootLogger=,A log4j.appender.A=org.apache.log4j.FileAppender log4j.appender.A.File=output/temp log4j.appender.A.Append=false log4j.appender.A.layout=org.apache.log4j.PatternLayout log4j.appender.A.layout.ConversionPattern=%p %c = %m%n apache-log4cxx-0.10.0/src/test/resources/input/hierarchyThreshold5.properties100644 0 0 2026 10774263315 24513 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # log4j.threshold=INFO log4j.rootLogger=,A log4j.appender.A=org.apache.log4j.FileAppender log4j.appender.A.File=output/temp log4j.appender.A.Append=false log4j.appender.A.layout=org.apache.log4j.PatternLayout log4j.appender.A.layout.ConversionPattern=%p %c = %m%n apache-log4cxx-0.10.0/src/test/resources/input/hierarchyThreshold7.properties100644 0 0 2066 10774263315 24521 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # log4j.threshold=TRACE#org.apache.log4j.xml.XLevel log4j.rootLogger=ALL,A log4j.appender.A=org.apache.log4j.FileAppender log4j.appender.A.File=output/temp log4j.appender.A.Append=false log4j.appender.A.layout=org.apache.log4j.PatternLayout log4j.appender.A.layout.ConversionPattern=%p %c = %m%n apache-log4cxx-0.10.0/src/test/resources/witness/encoding/Makefile.in100644 0 0 25101 10774264500 22661 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/test/resources/witness/encoding DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # EXTRA_DIST = UTF-* \ ascii.log \ latin1.log all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/test/resources/witness/encoding/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/test/resources/witness/encoding/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: all all-am all-local check check-am clean clean-generic \ clean-libtool distclean distclean-generic distclean-libtool \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-info-am # if we are building in a separate build tree, then copy all necessary files all-local: @if test "$(top_srcdir)" != "$(top_builddir)"; then \ echo "Copying test suite data files ..." ; \ list='$(EXTRA_DIST)'; for file in $$list; do \ cp -p $(srcdir)/$$file . ; \ done \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/test/resources/witness/encoding/UTF-16.log100644 0 0 130 10774263315 22137 0ustar 0 0 INFO - Hello, World INFO - INFO - A0 N apache-log4cxx-0.10.0/src/test/resources/witness/encoding/UTF-16LE.log100644 0 0 126 10774263315 22365 0ustar 0 0 INFO - Hello, World INFO - INFO - A0 N apache-log4cxx-0.10.0/src/test/resources/witness/encoding/UTF-8.log100644 0 0 63 10774263315 22045 0ustar 0 0 INFO - Hello, World INFO - ¹ INFO - A؅԰আ七Ѐ apache-log4cxx-0.10.0/src/test/resources/witness/encoding/ascii.log100644 0 0 53 10774263315 22331 0ustar 0 0 INFO - Hello, World INFO - ? INFO - A????? apache-log4cxx-0.10.0/src/test/resources/witness/encoding/latin1.log100644 0 0 53 10774263315 22431 0ustar 0 0 INFO - Hello, World INFO - INFO - A????? apache-log4cxx-0.10.0/src/test/resources/witness/encoding/Makefile.am100644 0 0 2170 10774263315 22634 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # EXTRA_DIST = UTF-* \ ascii.log \ latin1.log # if we are building in a separate build tree, then copy all necessary files all-local: @if test "$(top_srcdir)" != "$(top_builddir)"; then \ echo "Copying test suite data files ..." ; \ list='$(EXTRA_DIST)'; for file in $$list; do \ cp -p $(srcdir)/$$file . ; \ done \ fi apache-log4cxx-0.10.0/src/test/resources/witness/encoding/UTF-16BE.log100644 0 0 126 10774263315 22353 0ustar 0 0 INFO - Hello, World INFO - INFO - A0 N apache-log4cxx-0.10.0/src/test/resources/witness/rolling/sbr-test3.0.gz100644 0 0 104 10774263315 22761 0ustar 0 0 $hAsbr-test3.0H54 ,#82L,38β,O dapache-log4cxx-0.10.0/src/test/resources/witness/rolling/tbr-test1.0100644 0 0 0 10774263315 22274 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/witness/rolling/sbr-test2.0100644 0 0 144 10774263315 22345 0ustar 0 0 Hello--10 Hello--11 Hello--12 Hello--13 Hello--14 Hello--15 Hello--16 Hello--17 Hello--18 Hello--19 apache-log4cxx-0.10.0/src/test/resources/witness/rolling/tbr-test2.0100644 0 0 0 10774263315 22275 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/witness/rolling/tbr-test1.1100644 0 0 102 10774263315 22340 0ustar 0 0 TimeBasedRollingTest - Hello---0 TimeBasedRollingTest - Hello---1 apache-log4cxx-0.10.0/src/test/resources/witness/rolling/sbr-test2.1100644 0 0 144 10774263315 22346 0ustar 0 0 Hello---0 Hello---1 Hello---2 Hello---3 Hello---4 Hello---5 Hello---6 Hello---7 Hello---8 Hello---9 apache-log4cxx-0.10.0/src/test/resources/witness/rolling/tbr-test2.1100644 0 0 102 10774263315 22341 0ustar 0 0 TimeBasedRollingTest - Hello---0 TimeBasedRollingTest - Hello---1 apache-log4cxx-0.10.0/src/test/resources/witness/rolling/tbr-test1.2100644 0 0 102 10774263315 22341 0ustar 0 0 TimeBasedRollingTest - Hello---2 TimeBasedRollingTest - Hello---3 apache-log4cxx-0.10.0/src/test/resources/witness/rolling/tbr-test2.2100644 0 0 102 10774263315 22342 0ustar 0 0 TimeBasedRollingTest - Hello---2 TimeBasedRollingTest - Hello---3 apache-log4cxx-0.10.0/src/test/resources/witness/rolling/tbr-test1.3100644 0 0 41 10774263315 22324 0ustar 0 0 TimeBasedRollingTest - Hello---4 apache-log4cxx-0.10.0/src/test/resources/witness/rolling/tbr-test4.0100644 0 0 0 10774263315 22277 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/witness/rolling/tbr-test2.3100644 0 0 41 10774263315 22325 0ustar 0 0 TimeBasedRollingTest - Hello---4 apache-log4cxx-0.10.0/src/test/resources/witness/rolling/tbr-test4.1100644 0 0 102 10774263315 22343 0ustar 0 0 TimeBasedRollingTest - Hello---0 TimeBasedRollingTest - Hello---1 apache-log4cxx-0.10.0/src/test/resources/witness/rolling/tbr-test5.0100644 0 0 0 10774263315 22300 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/witness/rolling/tbr-test3.3100644 0 0 41 10774263315 22326 0ustar 0 0 TimeBasedRollingTest - Hello---4 apache-log4cxx-0.10.0/src/test/resources/witness/rolling/tbr-test4.2100644 0 0 102 10774263315 22344 0ustar 0 0 TimeBasedRollingTest - Hello---2 TimeBasedRollingTest - Hello---3 apache-log4cxx-0.10.0/src/test/resources/witness/rolling/tbr-test5.1100644 0 0 102 10774263315 22344 0ustar 0 0 TimeBasedRollingTest - Hello---0 TimeBasedRollingTest - Hello---1 apache-log4cxx-0.10.0/src/test/resources/witness/rolling/tbr-test4.3100644 0 0 41 10774263315 22327 0ustar 0 0 TimeBasedRollingTest - Hello---4 apache-log4cxx-0.10.0/src/test/resources/witness/rolling/tbr-test5.2100644 0 0 102 10774263315 22345 0ustar 0 0 TimeBasedRollingTest - Hello---2 TimeBasedRollingTest - Hello---3 apache-log4cxx-0.10.0/src/test/resources/witness/rolling/tbr-test5.3100644 0 0 41 10774263315 22330 0ustar 0 0 TimeBasedRollingTest - Hello---4 apache-log4cxx-0.10.0/src/test/resources/witness/rolling/tbr-test6.3100644 0 0 41 10774263315 22331 0ustar 0 0 TimeBasedRollingTest - Hello---4 apache-log4cxx-0.10.0/src/test/resources/witness/rolling/Makefile.in100644 0 0 25050 10774264500 22544 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/test/resources/witness/rolling DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # EXTRA_DIST = sbr-test* \ tbr-test* all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/test/resources/witness/rolling/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/test/resources/witness/rolling/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: all all-am all-local check check-am clean clean-generic \ clean-libtool distclean distclean-generic distclean-libtool \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-info-am # if we are building in a separate build tree, then copy all necessary files all-local: @if test "$(top_srcdir)" != "$(top_builddir)"; then \ echo "Copying test suite data files ..." ; \ list='$(EXTRA_DIST)'; for file in $$list; do \ cp -p $(srcdir)/$$file . ; \ done \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/test/resources/witness/rolling/sbr-test3.1.gz100644 0 0 104 10774263315 22762 0ustar 0 0 (hAsbr-test3.1H5 ,#82L,38β,`bdapache-log4cxx-0.10.0/src/test/resources/witness/rolling/sbr-test2.log100644 0 0 62 10774263315 22746 0ustar 0 0 Hello--20 Hello--21 Hello--22 Hello--23 Hello--24 apache-log4cxx-0.10.0/src/test/resources/witness/rolling/sbr-test3.log100644 0 0 62 10774263315 22747 0ustar 0 0 Hello--20 Hello--21 Hello--22 Hello--23 Hello--24 apache-log4cxx-0.10.0/src/test/resources/witness/rolling/sbr-test4.log100644 0 0 372 10774263315 22774 0ustar 0 0 Hello---0 Hello---1 Hello---2 Hello---3 Hello---4 Hello---5 Hello---6 Hello---7 Hello---8 Hello---9 Hello--10 Hello--11 Hello--12 Hello--13 Hello--14 Hello--15 Hello--16 Hello--17 Hello--18 Hello--19 Hello--20 Hello--21 Hello--22 Hello--23 Hello--24 apache-log4cxx-0.10.0/src/test/resources/witness/rolling/Makefile.am100644 0 0 2142 10774263315 22513 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # EXTRA_DIST = sbr-test* \ tbr-test* # if we are building in a separate build tree, then copy all necessary files all-local: @if test "$(top_srcdir)" != "$(top_builddir)"; then \ echo "Copying test suite data files ..." ; \ list='$(EXTRA_DIST)'; for file in $$list; do \ cp -p $(srcdir)/$$file . ; \ done \ fi apache-log4cxx-0.10.0/src/test/resources/witness/serialization/exception.bin100644 0 0 3463 10774263315 24365 0ustar 0 0 sr!org.apache.log4j.spi.LoggingEvent#t ? ZmdcCopyLookupRequiredZndcLookupRequiredJ timeStampL categoryNametLjava/lang/String;L locationInfot#Lorg/apache/log4j/spi/LocationInfo;LmdcCopytLjava/util/Hashtable;Lndcq~LrenderedMessageq~L threadNameq~L throwableInfot+Lorg/apache/log4j/spi/ThrowableInformation;xp&trootpppt Hello, world.tmainsr)org.apache.log4j.spi.ThrowableInformationrQ[rept[Ljava/lang/String;xpur[Ljava.lang.String;V{Gxpt java.lang.Exception: Don't panictb at org.apache.log4j.spi.LoggingEventTest.testSerializationWithException(LoggingEventTest.java:70)t? at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)tQ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)tY at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)t4 at java.lang.reflect.Method.invoke(Method.java:324)t7 at junit.framework.TestCase.runTest(TestCase.java:154)t7 at junit.framework.TestCase.runBare(TestCase.java:127)t= at junit.framework.TestResult$1.protect(TestResult.java:106)t@ at junit.framework.TestResult.runProtected(TestResult.java:124)t7 at junit.framework.TestResult.run(TestResult.java:109)t3 at junit.framework.TestCase.run(TestCase.java:118)t9 at junit.framework.TestSuite.runTest(TestSuite.java:208)t5 at junit.framework.TestSuite.run(TestSuite.java:203)t9 at junit.framework.TestSuite.runTest(TestSuite.java:208)t5 at junit.framework.TestSuite.run(TestSuite.java:203)t^ at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:289)ta at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:656)t_ at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:558)wN pxapache-log4cxx-0.10.0/src/test/resources/witness/serialization/location.bin100644 0 0 721 10774263315 24151 0ustar 0 0 sr!org.apache.log4j.spi.LoggingEvent#t ? ZmdcCopyLookupRequiredZndcLookupRequiredJ timeStampL categoryNametLjava/lang/String;L locationInfot#Lorg/apache/log4j/spi/LocationInfo;LmdcCopytLjava/util/Hashtable;Lndcq~LrenderedMessageq~L threadNameq~L throwableInfot+Lorg/apache/log4j/spi/ThrowableInformation;xp&trootsr!org.apache.log4j.spi.LocationInfo홻J|LfullInfoq~xppppt Hello, world.tmainpwN pxapache-log4cxx-0.10.0/src/test/resources/witness/serialization/simple.bin100644 0 0 617 10774263315 23636 0ustar 0 0 sr!org.apache.log4j.spi.LoggingEvent#t ? ZmdcCopyLookupRequiredZndcLookupRequiredJ timeStampL categoryNametLjava/lang/String;L locationInfot#Lorg/apache/log4j/spi/LocationInfo;LmdcCopytLjava/util/Hashtable;Lndcq~LrenderedMessageq~L threadNameq~L throwableInfot+Lorg/apache/log4j/spi/ThrowableInformation;xp& trootpppt Hello, world.tmainpwN pxapache-log4cxx-0.10.0/src/test/resources/witness/serialization/info.bin100644 0 0 74 10774263315 23255 0ustar 0 0 srorg.apache.log4j.Level0s6xpwN INFOxapache-log4cxx-0.10.0/src/test/resources/witness/serialization/mdc.bin100644 0 0 774 10774263315 23114 0ustar 0 0 sr!org.apache.log4j.spi.LoggingEvent#t ? ZmdcCopyLookupRequiredZndcLookupRequiredJ timeStampL categoryNametLjava/lang/String;L locationInfot#Lorg/apache/log4j/spi/LocationInfo;LmdcCopytLjava/util/Hashtable;Lndcq~LrenderedMessageq~L threadNameq~L throwableInfot+Lorg/apache/log4j/spi/ThrowableInformation;xp&!trootpsrjava.util.Hashtable%!JF loadFactorI thresholdxp?@wtmdckeytmdcvaluextndc testt Hello, world.tmainpwN pxapache-log4cxx-0.10.0/src/test/resources/witness/serialization/ndc.bin100644 0 0 631 10774263315 23105 0ustar 0 0 sr!org.apache.log4j.spi.LoggingEvent#t ? ZmdcCopyLookupRequiredZndcLookupRequiredJ timeStampL categoryNametLjava/lang/String;L locationInfot#Lorg/apache/log4j/spi/LocationInfo;LmdcCopytLjava/util/Hashtable;Lndcq~LrenderedMessageq~L threadNameq~L throwableInfot+Lorg/apache/log4j/spi/ThrowableInformation;xp&!5trootpptndc testt Hello, world.tmainpwN pxapache-log4cxx-0.10.0/src/test/resources/witness/ndc/Makefile.am100644 0 0 2105 10774263315 21610 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # EXTRA_DIST = NDC.* # if we are building in a separate build tree, then copy all necessary files all-local: @if test "$(top_srcdir)" != "$(top_builddir)"; then \ echo "Copying test suite data files ..." ; \ list='$(EXTRA_DIST)'; for file in $$list; do \ cp -p $(srcdir)/$$file . ; \ done \ fi apache-log4cxx-0.10.0/src/test/resources/witness/ndc/NDC.1100644 0 0 637 10774263315 20232 0ustar 0 0 DEBUG null - m1 INFO null - m2 WARN null - m3 ERROR null - m4 FATAL null - m5 DEBUG n1 - m1 INFO n1 - m2 WARN n1 - m3 ERROR n1 - m4 FATAL n1 - m5 DEBUG n1 n2 n3 - m1 INFO n1 n2 n3 - m2 WARN n1 n2 n3 - m3 ERROR n1 n2 n3 - m4 FATAL n1 n2 n3 - m5 DEBUG n1 n2 - m1 INFO n1 n2 - m2 WARN n1 n2 - m3 ERROR n1 n2 - m4 FATAL n1 n2 - m5 DEBUG null - m1 INFO null - m2 WARN null - m3 ERROR null - m4 FATAL null - m5 apache-log4cxx-0.10.0/src/test/resources/witness/ndc/Makefile.in100644 0 0 24776 10774264500 21660 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/test/resources/witness/ndc DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # EXTRA_DIST = NDC.* all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/test/resources/witness/ndc/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/test/resources/witness/ndc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: all all-am all-local check check-am clean clean-generic \ clean-libtool distclean distclean-generic distclean-libtool \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-info-am # if we are building in a separate build tree, then copy all necessary files all-local: @if test "$(top_srcdir)" != "$(top_builddir)"; then \ echo "Copying test suite data files ..." ; \ list='$(EXTRA_DIST)'; for file in $$list; do \ cp -p $(srcdir)/$$file . ; \ done \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/test/resources/witness/xmlLayout.1100644 0 0 5225 10774263315 21076 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/witness/dom.A1.2100644 0 0 707 10774263315 20100 0ustar 0 0 DEBUG xml.DOMTestCase - Message 0 DEBUG xml.DOMTestCase - Message 0 DEBUG root - Message 0 INFO xml.DOMTestCase - Message 1 INFO xml.DOMTestCase - Message 1 INFO root - Message 1 WARN xml.DOMTestCase - Message 2 WARN xml.DOMTestCase - Message 2 WARN root - Message 2 ERROR xml.DOMTestCase - Message 3 ERROR xml.DOMTestCase - Message 3 ERROR root - Message 3 FATAL xml.DOMTestCase - Message 4 FATAL xml.DOMTestCase - Message 4 FATAL root - Message 4 apache-log4cxx-0.10.0/src/test/resources/witness/dom.A2.1100644 0 0 676 10774263315 20105 0ustar 0 0 [main] DEBUG org.apache.log4j.xml.DOMTestCase - Message 0 [main] DEBUG root - Message 0 [main] INFO org.apache.log4j.xml.DOMTestCase - Message 1 [main] INFO root - Message 1 [main] WARN org.apache.log4j.xml.DOMTestCase - Message 2 [main] WARN root - Message 2 [main] ERROR org.apache.log4j.xml.DOMTestCase - Message 3 [main] ERROR root - Message 3 [main] FATAL org.apache.log4j.xml.DOMTestCase - Message 4 [main] FATAL root - Message 4 apache-log4cxx-0.10.0/src/test/resources/witness/dom.A2.2100644 0 0 676 10774263315 20106 0ustar 0 0 [main] DEBUG org.apache.log4j.xml.DOMTestCase - Message 0 [main] DEBUG root - Message 0 [main] INFO org.apache.log4j.xml.DOMTestCase - Message 1 [main] INFO root - Message 1 [main] WARN org.apache.log4j.xml.DOMTestCase - Message 2 [main] WARN root - Message 2 [main] ERROR org.apache.log4j.xml.DOMTestCase - Message 3 [main] ERROR root - Message 3 [main] FATAL org.apache.log4j.xml.DOMTestCase - Message 4 [main] FATAL root - Message 4 apache-log4cxx-0.10.0/src/test/resources/witness/ttcc100644 0 0 1522 10774263315 17672 0ustar 0 0 [main] FATAL ERR - Message 0 [main] ERROR ERR - Message 1 [main] FATAL INF - Message 2 [main] ERROR INF - Message 3 [main] WARN INF - Message 4 [main] INFO INF - Message 5 [main] FATAL INF.UNDEF - Message 6 [main] ERROR INF.UNDEF - Message 7 [main] WARN INF.UNDEF - Message 8 [main] INFO INF.UNDEF - Message 9 [main] FATAL INF.ERR - Message 10 [main] ERROR INF.ERR - Message 11 [main] FATAL INF.ERR.UNDEF - Message 12 [main] ERROR INF.ERR.UNDEF - Message 13 [main] FATAL DEB - Message 14 [main] ERROR DEB - Message 15 [main] WARN DEB - Message 16 [main] INFO DEB - Message 17 [main] DEBUG DEB - Message 18 [main] FATAL UNDEF - Message 19 [main] ERROR UNDEF - Message 20 [main] WARN UNDEF - Message 21 [main] INFO UNDEF - Message 22 [main] DEBUG UNDEF - Message 23 [main] INFO INF - Messages should bear numbers 0 through 23. apache-log4cxx-0.10.0/src/test/resources/witness/patternLayout.6100644 0 0 561 10774263315 21736 0ustar 0 0 [main] DEBUG atternLayoutTest - Message 0 [main] DEBUG root - Message 0 [main] INFO atternLayoutTest - Message 1 [main] INFO root - Message 1 [main] WARN atternLayoutTest - Message 2 [main] WARN root - Message 2 [main] ERROR atternLayoutTest - Message 3 [main] ERROR root - Message 3 [main] FATAL atternLayoutTest - Message 4 [main] FATAL root - Message 4apache-log4cxx-0.10.0/src/test/resources/witness/socketServer.2100644 0 0 3746 10774263315 21566 0ustar 0 0 TRACE T2 [main] SocketServerTestCase (socketservertestcase.cpp:XXX) Message 1 TRACE T2 [main] SocketServerTestCase (socketservertestcase.cpp:XXX) Message 2 DEBUG T2 [main] SocketServerTestCase (socketservertestcase.cpp:XXX) Message 3 DEBUG T2 [main] SocketServerTestCase (socketservertestcase.cpp:XXX) Message 4 INFO T2 [main] SocketServerTestCase (socketservertestcase.cpp:XXX) Message 5 WARN T2 [main] SocketServerTestCase (socketservertestcase.cpp:XXX) Message 6 FATAL T2 [main] SocketServerTestCase (socketservertestcase.cpp:XXX) Message 7 DEBUG T2 [main] SocketServerTestCase (socketservertestcase.cpp:XXX) Message 8 java.lang.Exception: Just testing at org.apache.log4j.net.SocketServerTestCase.common(SocketServerTestCase.java:XXX) at org.apache.log4j.net.SocketServerTestCase.test2(SocketServerTestCase.java:XXX) at junit.framework.TestCase.runTest(TestCase.java:XXX) at junit.framework.TestCase.runBare(TestCase.java:XXX) at junit.framework.TestResult$1.protect(TestResult.java:XXX) at junit.framework.TestResult.runProtected(TestResult.java:XXX) at junit.framework.TestResult.run(TestResult.java:XXX) at junit.framework.TestCase.run(TestCase.java:XXX) at junit.framework.TestSuite.runTest(TestSuite.java:XXX) at junit.framework.TestSuite.run(TestSuite.java:XXX) ERROR T2 [main] SocketServerTestCase (socketservertestcase.cpp:XXX) Message 9 java.lang.Exception: Just testing at org.apache.log4j.net.SocketServerTestCase.common(SocketServerTestCase.java:XXX) at org.apache.log4j.net.SocketServerTestCase.test2(SocketServerTestCase.java:XXX) at junit.framework.TestCase.runTest(TestCase.java:XXX) at junit.framework.TestCase.runBare(TestCase.java:XXX) at junit.framework.TestResult$1.protect(TestResult.java:XXX) at junit.framework.TestResult.runProtected(TestResult.java:XXX) at junit.framework.TestResult.run(TestResult.java:XXX) at junit.framework.TestCase.run(TestCase.java:XXX) at junit.framework.TestSuite.runTest(TestSuite.java:XXX) at junit.framework.TestSuite.run(TestSuite.java:XXX) apache-log4cxx-0.10.0/src/test/resources/witness/l7d.1100644 0 0 1573 10774263315 17570 0ustar 0 0 T1 INFO - This is the English, US test. T1 WARN - Hello world. T1 ERROR - No resource is associated with key "bogusMsg". T1 ERROR - bogusMsg T1 ERROR - This is test number 1 with string argument log4j. T1 ERROR - No resource is associated with key "bogus2". T1 INFO - bogus2 T1 INFO - Ceci est le test en francais pour la France. T1 WARN - Bonjour la France. T1 ERROR - No resource is associated with key "bogusMsg". T1 ERROR - bogusMsg T1 ERROR - Ceci est le test numero 2 contenant l'argument log4j. T1 ERROR - No resource is associated with key "bogus2". T1 INFO - bogus2 T1 INFO - Ceci est le test en francais pour la p'tite Suisse. T1 WARN - Bonjour la France. T1 ERROR - No resource is associated with key "bogusMsg". T1 ERROR - bogusMsg T1 ERROR - Ceci est le test numero 3 contenant l'argument log4j. T1 ERROR - No resource is associated with key "bogus2". T1 INFO - bogus2 apache-log4cxx-0.10.0/src/test/resources/witness/patternLayout.7100644 0 0 561 10774263315 21737 0ustar 0 0 [main] DEBUG atternLayoutTest - Message 0 [main] DEBUG root - Message 0 [main] INFO atternLayoutTest - Message 1 [main] INFO root - Message 1 [main] WARN atternLayoutTest - Message 2 [main] WARN root - Message 2 [main] ERROR atternLayoutTest - Message 3 [main] ERROR root - Message 3 [main] FATAL atternLayoutTest - Message 4 [main] FATAL root - Message 4apache-log4cxx-0.10.0/src/test/resources/witness/socketServer.3100644 0 0 3746 10774263315 21567 0ustar 0 0 TRACE T3 [main] SocketServerTestCase (socketservertestcase.cpp:XXX) Message 1 TRACE T3 [main] SocketServerTestCase (socketservertestcase.cpp:XXX) Message 2 DEBUG T3 [main] SocketServerTestCase (socketservertestcase.cpp:XXX) Message 3 DEBUG T3 [main] SocketServerTestCase (socketservertestcase.cpp:XXX) Message 4 INFO T3 [main] SocketServerTestCase (socketservertestcase.cpp:XXX) Message 5 WARN T3 [main] SocketServerTestCase (socketservertestcase.cpp:XXX) Message 6 FATAL T3 [main] SocketServerTestCase (socketservertestcase.cpp:XXX) Message 7 DEBUG T3 [main] SocketServerTestCase (socketservertestcase.cpp:XXX) Message 8 java.lang.Exception: Just testing at org.apache.log4j.net.SocketServerTestCase.common(SocketServerTestCase.java:XXX) at org.apache.log4j.net.SocketServerTestCase.test3(SocketServerTestCase.java:XXX) at junit.framework.TestCase.runTest(TestCase.java:XXX) at junit.framework.TestCase.runBare(TestCase.java:XXX) at junit.framework.TestResult$1.protect(TestResult.java:XXX) at junit.framework.TestResult.runProtected(TestResult.java:XXX) at junit.framework.TestResult.run(TestResult.java:XXX) at junit.framework.TestCase.run(TestCase.java:XXX) at junit.framework.TestSuite.runTest(TestSuite.java:XXX) at junit.framework.TestSuite.run(TestSuite.java:XXX) ERROR T3 [main] SocketServerTestCase (socketservertestcase.cpp:XXX) Message 9 java.lang.Exception: Just testing at org.apache.log4j.net.SocketServerTestCase.common(SocketServerTestCase.java:XXX) at org.apache.log4j.net.SocketServerTestCase.test3(SocketServerTestCase.java:XXX) at junit.framework.TestCase.runTest(TestCase.java:XXX) at junit.framework.TestCase.runBare(TestCase.java:XXX) at junit.framework.TestResult$1.protect(TestResult.java:XXX) at junit.framework.TestResult.runProtected(TestResult.java:XXX) at junit.framework.TestResult.run(TestResult.java:XXX) at junit.framework.TestCase.run(TestCase.java:XXX) at junit.framework.TestSuite.runTest(TestSuite.java:XXX) at junit.framework.TestSuite.run(TestSuite.java:XXX) apache-log4cxx-0.10.0/src/test/resources/witness/patternLayout.8100644 0 0 547 10774263315 21744 0ustar 0 0 [main] DEBUG atternLayoutTest - Message 0 [main] DEBUG root - Message 0 [main] INFO atternLayoutTest - Message 1 [main] INFO root - Message 1 [main] WARN atternLayoutTest - Message 2 [main] WARN root - Message 2 [main] ERROR atternLayoutTest - Message 3 [main] ERROR root - Message 3 [main] FATAL atternLayoutTest - Message 4 [main] FATAL root - Message 4apache-log4cxx-0.10.0/src/test/resources/witness/socketServer.4100644 0 0 3470 10774263315 21562 0ustar 0 0 TRACE some T4 MDC-TEST4 [main] SocketServerTestCase - Message 1 TRACE some T4 MDC-TEST4 [main] root - Message 2 DEBUG some T4 MDC-TEST4 [main] SocketServerTestCase - Message 3 DEBUG some T4 MDC-TEST4 [main] root - Message 4 INFO some T4 MDC-TEST4 [main] SocketServerTestCase - Message 5 WARN some T4 MDC-TEST4 [main] SocketServerTestCase - Message 6 FATAL some T4 MDC-TEST4 [main] SocketServerTestCase - Message 7 DEBUG some T4 MDC-TEST4 [main] SocketServerTestCase - Message 8 java.lang.Exception: Just testing at org.apache.log4j.net.SocketServerTestCase.common(SocketServerTestCase.java:XXX) at org.apache.log4j.net.SocketServerTestCase.test4(SocketServerTestCase.java:XXX) at junit.framework.TestCase.runTest(TestCase.java:XXX) at junit.framework.TestCase.runBare(TestCase.java:XXX) at junit.framework.TestResult$1.protect(TestResult.java:XXX) at junit.framework.TestResult.runProtected(TestResult.java:XXX) at junit.framework.TestResult.run(TestResult.java:XXX) at junit.framework.TestCase.run(TestCase.java:XXX) at junit.framework.TestSuite.runTest(TestSuite.java:XXX) at junit.framework.TestSuite.run(TestSuite.java:XXX) ERROR some T4 MDC-TEST4 [main] root - Message 9 java.lang.Exception: Just testing at org.apache.log4j.net.SocketServerTestCase.common(SocketServerTestCase.java:XXX) at org.apache.log4j.net.SocketServerTestCase.test4(SocketServerTestCase.java:XXX) at junit.framework.TestCase.runTest(TestCase.java:XXX) at junit.framework.TestCase.runBare(TestCase.java:XXX) at junit.framework.TestResult$1.protect(TestResult.java:XXX) at junit.framework.TestResult.runProtected(TestResult.java:XXX) at junit.framework.TestResult.run(TestResult.java:XXX) at junit.framework.TestCase.run(TestCase.java:XXX) at junit.framework.TestSuite.runTest(TestSuite.java:XXX) at junit.framework.TestSuite.run(TestSuite.java:XXX) apache-log4cxx-0.10.0/src/test/resources/witness/patternLayout.9100644 0 0 547 10774263315 21745 0ustar 0 0 [main] DEBUG atternLayoutTest : Message 0 [main] DEBUG root : Message 0 [main] INFO atternLayoutTest : Message 1 [main] INFO root : Message 1 [main] WARN atternLayoutTest : Message 2 [main] WARN root : Message 2 [main] ERROR atternLayoutTest : Message 3 [main] ERROR root : Message 3 [main] FATAL atternLayoutTest : Message 4 [main] FATAL root : Message 4apache-log4cxx-0.10.0/src/test/resources/witness/socketServer.5100644 0 0 3501 10774263315 21556 0ustar 0 0 TRACE some5 T5 MDC-TEST5 [main] SocketServerTestCase - Message 1 TRACE some5 T5 MDC-TEST5 [main] root - Message 2 DEBUG some5 T5 MDC-TEST5 [main] SocketServerTestCase - Message 3 DEBUG some5 T5 MDC-TEST5 [main] root - Message 4 INFO some5 T5 MDC-TEST5 [main] SocketServerTestCase - Message 5 WARN some5 T5 MDC-TEST5 [main] SocketServerTestCase - Message 6 FATAL some5 T5 MDC-TEST5 [main] SocketServerTestCase - Message 7 DEBUG some5 T5 MDC-TEST5 [main] SocketServerTestCase - Message 8 java.lang.Exception: Just testing at org.apache.log4j.net.SocketServerTestCase.common(SocketServerTestCase.java:XXX) at org.apache.log4j.net.SocketServerTestCase.test5(SocketServerTestCase.java:XXX) at junit.framework.TestCase.runTest(TestCase.java:XXX) at junit.framework.TestCase.runBare(TestCase.java:XXX) at junit.framework.TestResult$1.protect(TestResult.java:XXX) at junit.framework.TestResult.runProtected(TestResult.java:XXX) at junit.framework.TestResult.run(TestResult.java:XXX) at junit.framework.TestCase.run(TestCase.java:XXX) at junit.framework.TestSuite.runTest(TestSuite.java:XXX) at junit.framework.TestSuite.run(TestSuite.java:XXX) ERROR some5 T5 MDC-TEST5 [main] root - Message 9 java.lang.Exception: Just testing at org.apache.log4j.net.SocketServerTestCase.common(SocketServerTestCase.java:XXX) at org.apache.log4j.net.SocketServerTestCase.test5(SocketServerTestCase.java:XXX) at junit.framework.TestCase.runTest(TestCase.java:XXX) at junit.framework.TestCase.runBare(TestCase.java:XXX) at junit.framework.TestResult$1.protect(TestResult.java:XXX) at junit.framework.TestResult.runProtected(TestResult.java:XXX) at junit.framework.TestResult.run(TestResult.java:XXX) at junit.framework.TestCase.run(TestCase.java:XXX) at junit.framework.TestSuite.runTest(TestSuite.java:XXX) at junit.framework.TestSuite.run(TestSuite.java:XXX) apache-log4cxx-0.10.0/src/test/resources/witness/socketServer.6100644 0 0 3666 10774263315 21573 0ustar 0 0 TRACE some6 T6 client-test6 MDC-TEST6 [main] SocketServerTestCase - Message 1 TRACE some6 T6 client-test6 MDC-TEST6 [main] root - Message 2 DEBUG some6 T6 client-test6 MDC-TEST6 [main] SocketServerTestCase - Message 3 DEBUG some6 T6 client-test6 MDC-TEST6 [main] root - Message 4 INFO some6 T6 client-test6 MDC-TEST6 [main] SocketServerTestCase - Message 5 WARN some6 T6 client-test6 MDC-TEST6 [main] SocketServerTestCase - Message 6 FATAL some6 T6 client-test6 MDC-TEST6 [main] SocketServerTestCase - Message 7 DEBUG some6 T6 client-test6 MDC-TEST6 [main] SocketServerTestCase - Message 8 java.lang.Exception: Just testing at org.apache.log4j.net.SocketServerTestCase.common(SocketServerTestCase.java:XXX) at org.apache.log4j.net.SocketServerTestCase.test6(SocketServerTestCase.java:XXX) at junit.framework.TestCase.runTest(TestCase.java:XXX) at junit.framework.TestCase.runBare(TestCase.java:XXX) at junit.framework.TestResult$1.protect(TestResult.java:XXX) at junit.framework.TestResult.runProtected(TestResult.java:XXX) at junit.framework.TestResult.run(TestResult.java:XXX) at junit.framework.TestCase.run(TestCase.java:XXX) at junit.framework.TestSuite.runTest(TestSuite.java:XXX) at junit.framework.TestSuite.run(TestSuite.java:XXX) ERROR some6 T6 client-test6 MDC-TEST6 [main] root - Message 9 java.lang.Exception: Just testing at org.apache.log4j.net.SocketServerTestCase.common(SocketServerTestCase.java:XXX) at org.apache.log4j.net.SocketServerTestCase.test6(SocketServerTestCase.java:XXX) at junit.framework.TestCase.runTest(TestCase.java:XXX) at junit.framework.TestCase.runBare(TestCase.java:XXX) at junit.framework.TestResult$1.protect(TestResult.java:XXX) at junit.framework.TestResult.runProtected(TestResult.java:XXX) at junit.framework.TestResult.run(TestResult.java:XXX) at junit.framework.TestCase.run(TestCase.java:XXX) at junit.framework.TestSuite.runTest(TestSuite.java:XXX) at junit.framework.TestSuite.run(TestSuite.java:XXX) apache-log4cxx-0.10.0/src/test/resources/witness/socketServer.7100644 0 0 3666 10774263315 21574 0ustar 0 0 TRACE some7 T7 client-test7 MDC-TEST7 [main] SocketServerTestCase - Message 1 TRACE some7 T7 client-test7 MDC-TEST7 [main] root - Message 2 DEBUG some7 T7 client-test7 MDC-TEST7 [main] SocketServerTestCase - Message 3 DEBUG some7 T7 client-test7 MDC-TEST7 [main] root - Message 4 INFO some7 T7 client-test7 MDC-TEST7 [main] SocketServerTestCase - Message 5 WARN some7 T7 client-test7 MDC-TEST7 [main] SocketServerTestCase - Message 6 FATAL some7 T7 client-test7 MDC-TEST7 [main] SocketServerTestCase - Message 7 DEBUG some7 T7 client-test7 MDC-TEST7 [main] SocketServerTestCase - Message 8 java.lang.Exception: Just testing at org.apache.log4j.net.SocketServerTestCase.common(SocketServerTestCase.java:XXX) at org.apache.log4j.net.SocketServerTestCase.test7(SocketServerTestCase.java:XXX) at junit.framework.TestCase.runTest(TestCase.java:XXX) at junit.framework.TestCase.runBare(TestCase.java:XXX) at junit.framework.TestResult$1.protect(TestResult.java:XXX) at junit.framework.TestResult.runProtected(TestResult.java:XXX) at junit.framework.TestResult.run(TestResult.java:XXX) at junit.framework.TestCase.run(TestCase.java:XXX) at junit.framework.TestSuite.runTest(TestSuite.java:XXX) at junit.framework.TestSuite.run(TestSuite.java:XXX) ERROR some7 T7 client-test7 MDC-TEST7 [main] root - Message 9 java.lang.Exception: Just testing at org.apache.log4j.net.SocketServerTestCase.common(SocketServerTestCase.java:XXX) at org.apache.log4j.net.SocketServerTestCase.test7(SocketServerTestCase.java:XXX) at junit.framework.TestCase.runTest(TestCase.java:XXX) at junit.framework.TestCase.runBare(TestCase.java:XXX) at junit.framework.TestResult$1.protect(TestResult.java:XXX) at junit.framework.TestResult.runProtected(TestResult.java:XXX) at junit.framework.TestResult.run(TestResult.java:XXX) at junit.framework.TestCase.run(TestCase.java:XXX) at junit.framework.TestSuite.runTest(TestSuite.java:XXX) at junit.framework.TestSuite.run(TestSuite.java:XXX) apache-log4cxx-0.10.0/src/test/resources/witness/simple100644 0 0 750 10774263315 20210 0ustar 0 0 FATAL - Message 0 ERROR - Message 1 FATAL - Message 2 ERROR - Message 3 WARN - Message 4 INFO - Message 5 FATAL - Message 6 ERROR - Message 7 WARN - Message 8 INFO - Message 9 FATAL - Message 10 ERROR - Message 11 FATAL - Message 12 ERROR - Message 13 FATAL - Message 14 ERROR - Message 15 WARN - Message 16 INFO - Message 17 DEBUG - Message 18 FATAL - Message 19 ERROR - Message 20 WARN - Message 21 INFO - Message 22 DEBUG - Message 23 INFO - Messages should bear numbers 0 through 23. apache-log4cxx-0.10.0/src/test/resources/witness/socketServer.8100644 0 0 3743 10774263315 21571 0ustar 0 0 TRACE some8 T8 shortSocketServer MDC-TEST8 [main] SocketServerTestCase - Message 1 TRACE some8 T8 shortSocketServer MDC-TEST8 [main] root - Message 2 DEBUG some8 T8 shortSocketServer MDC-TEST8 [main] SocketServerTestCase - Message 3 DEBUG some8 T8 shortSocketServer MDC-TEST8 [main] root - Message 4 INFO some8 T8 shortSocketServer MDC-TEST8 [main] SocketServerTestCase - Message 5 WARN some8 T8 shortSocketServer MDC-TEST8 [main] SocketServerTestCase - Message 6 FATAL some8 T8 shortSocketServer MDC-TEST8 [main] SocketServerTestCase - Message 7 DEBUG some8 T8 shortSocketServer MDC-TEST8 [main] SocketServerTestCase - Message 8 java.lang.Exception: Just testing at org.apache.log4j.net.SocketServerTestCase.common(SocketServerTestCase.java:XXX) at org.apache.log4j.net.SocketServerTestCase.test8(SocketServerTestCase.java:XXX) at junit.framework.TestCase.runTest(TestCase.java:XXX) at junit.framework.TestCase.runBare(TestCase.java:XXX) at junit.framework.TestResult$1.protect(TestResult.java:XXX) at junit.framework.TestResult.runProtected(TestResult.java:XXX) at junit.framework.TestResult.run(TestResult.java:XXX) at junit.framework.TestCase.run(TestCase.java:XXX) at junit.framework.TestSuite.runTest(TestSuite.java:XXX) at junit.framework.TestSuite.run(TestSuite.java:XXX) ERROR some8 T8 shortSocketServer MDC-TEST8 [main] root - Message 9 java.lang.Exception: Just testing at org.apache.log4j.net.SocketServerTestCase.common(SocketServerTestCase.java:XXX) at org.apache.log4j.net.SocketServerTestCase.test8(SocketServerTestCase.java:XXX) at junit.framework.TestCase.runTest(TestCase.java:XXX) at junit.framework.TestCase.runBare(TestCase.java:XXX) at junit.framework.TestResult$1.protect(TestResult.java:XXX) at junit.framework.TestResult.runProtected(TestResult.java:XXX) at junit.framework.TestResult.run(TestResult.java:XXX) at junit.framework.TestCase.run(TestCase.java:XXX) at junit.framework.TestSuite.runTest(TestSuite.java:XXX) at junit.framework.TestSuite.run(TestSuite.java:XXX) apache-log4cxx-0.10.0/src/test/resources/witness/patternLayout.mdc.1100644 0 0 55 10774263315 22451 0ustar 0 0 DEBUG - Hello World {{key1,va11}{key2,va12}} apache-log4cxx-0.10.0/src/test/resources/witness/patternLayout.10100644 0 0 751 10774263315 22012 0ustar 0 0 [main] DEBUG patternlayouttest.cpp(X): Message 0 [main] DEBUG patternlayouttest.cpp(X): Message 0 [main] INFO patternlayouttest.cpp(X): Message 1 [main] INFO patternlayouttest.cpp(X): Message 1 [main] WARN patternlayouttest.cpp(X): Message 2 [main] WARN patternlayouttest.cpp(X): Message 2 [main] ERROR patternlayouttest.cpp(X): Message 3 [main] ERROR patternlayouttest.cpp(X): Message 3 [main] FATAL patternlayouttest.cpp(X): Message 4 [main] FATAL patternlayouttest.cpp(X): Message 4apache-log4cxx-0.10.0/src/test/resources/witness/patternLayout.11100644 0 0 600 10774263315 22004 0ustar 0 0 DEBUG [main] log4j.PatternLayoutTest: Message 0 DEBUG [main] root: Message 0 INFO [main] log4j.PatternLayoutTest: Message 1 INFO [main] root: Message 1 WARN [main] log4j.PatternLayoutTest: Message 2 WARN [main] root: Message 2 ERROR [main] log4j.PatternLayoutTest: Message 3 ERROR [main] root: Message 3 FATAL [main] log4j.PatternLayoutTest: Message 4 FATAL [main] root: Message 4apache-log4cxx-0.10.0/src/test/resources/witness/patternLayout.12100644 0 0 751 10774263315 22014 0ustar 0 0 [main] DEBUG patternlayouttest.cpp(X): Message 0 [main] DEBUG patternlayouttest.cpp(X): Message 0 [main] INFO patternlayouttest.cpp(X): Message 1 [main] INFO patternlayouttest.cpp(X): Message 1 [main] WARN patternlayouttest.cpp(X): Message 2 [main] WARN patternlayouttest.cpp(X): Message 2 [main] ERROR patternlayouttest.cpp(X): Message 3 [main] ERROR patternlayouttest.cpp(X): Message 3 [main] FATAL patternlayouttest.cpp(X): Message 4 [main] FATAL patternlayouttest.cpp(X): Message 4apache-log4cxx-0.10.0/src/test/resources/witness/xmlLayout.2100644 0 0 10527 10774263315 21120 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/witness/fallback100644 0 0 430 10774263315 20451 0ustar 0 0 FALLBACK - test - Message 0 FALLBACK - root - Message 0 FALLBACK - test - Message 1 FALLBACK - root - Message 1 FALLBACK - test - Message 2 FALLBACK - root - Message 2 FALLBACK - test - Message 3 FALLBACK - root - Message 3 FALLBACK - test - Message 4 FALLBACK - root - Message 4 apache-log4cxx-0.10.0/src/test/resources/witness/xmlLayout.3100644 0 0 1246 10774263315 21077 0ustar 0 0 hi]]>]]> hi]]>]]> apache-log4cxx-0.10.0/src/test/resources/witness/Makefile.in100644 0 0 40212 10774264500 21073 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/test/resources/witness DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # SUBDIRS = encoding ndc rolling EXTRA_DIST = LevelMatchFilter* \ LevelRangeFilter* \ NDCMatchFilter* \ custom* \ dom.* \ hierarchyThreshold.* \ l7d.* \ patternLayout.* \ socketServer.* \ xmlLayout.* \ fallback \ simple \ ttcc all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/test/resources/witness/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/test/resources/witness/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile all-local installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am all-local check \ check-am clean clean-generic clean-libtool clean-recursive \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-recursive distclean-tags distdir \ dvi dvi-am html html-am info info-am install install-am \ install-data install-data-am install-exec install-exec-am \ install-info install-info-am install-man install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-generic \ mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am uninstall-info-am # if we are building in a separate build tree, then copy all necessary files all-local: @if test "$(top_srcdir)" != "$(top_builddir)"; then \ echo "Copying test suite data files ..." ; \ list='$(EXTRA_DIST)'; for file in $$list; do \ cp -p $(srcdir)/$$file . ; \ done \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/test/resources/witness/dom.A1.1100644 0 0 707 10774263315 20077 0ustar 0 0 DEBUG xml.DOMTestCase - Message 0 DEBUG xml.DOMTestCase - Message 0 DEBUG root - Message 0 INFO xml.DOMTestCase - Message 1 INFO xml.DOMTestCase - Message 1 INFO root - Message 1 WARN xml.DOMTestCase - Message 2 WARN xml.DOMTestCase - Message 2 WARN root - Message 2 ERROR xml.DOMTestCase - Message 3 ERROR xml.DOMTestCase - Message 3 ERROR root - Message 3 FATAL xml.DOMTestCase - Message 4 FATAL xml.DOMTestCase - Message 4 FATAL root - Message 4 apache-log4cxx-0.10.0/src/test/resources/witness/LevelMatchFilter_accept100644 0 0 405 10774263315 23425 0ustar 0 0 DEBUG - pass 0; filter set to accept only DEBUG msgs INFO - pass 1; filter set to accept only INFO msgs WARN - pass 2; filter set to accept only WARN msgs ERROR - pass 3; filter set to accept only ERROR msgs FATAL - pass 4; filter set to accept only FATAL msgs apache-log4cxx-0.10.0/src/test/resources/witness/LevelMatchFilter_deny100644 0 0 1754 10774263315 23155 0ustar 0 0 INFO - pass 0; filter set to deny only DEBUG msgs WARN - pass 0; filter set to deny only DEBUG msgs ERROR - pass 0; filter set to deny only DEBUG msgs FATAL - pass 0; filter set to deny only DEBUG msgs DEBUG - pass 1; filter set to deny only INFO msgs WARN - pass 1; filter set to deny only INFO msgs ERROR - pass 1; filter set to deny only INFO msgs FATAL - pass 1; filter set to deny only INFO msgs DEBUG - pass 2; filter set to deny only WARN msgs INFO - pass 2; filter set to deny only WARN msgs ERROR - pass 2; filter set to deny only WARN msgs FATAL - pass 2; filter set to deny only WARN msgs DEBUG - pass 3; filter set to deny only ERROR msgs INFO - pass 3; filter set to deny only ERROR msgs WARN - pass 3; filter set to deny only ERROR msgs FATAL - pass 3; filter set to deny only ERROR msgs DEBUG - pass 4; filter set to deny only FATAL msgs INFO - pass 4; filter set to deny only FATAL msgs WARN - pass 4; filter set to deny only FATAL msgs ERROR - pass 4; filter set to deny only FATAL msgs apache-log4cxx-0.10.0/src/test/resources/witness/LevelRangeFilter_accept100644 0 0 5234 10774263315 23452 0ustar 0 0 DEBUG - pass 0; no min or max set INFO - pass 0; no min or max set WARN - pass 0; no min or max set ERROR - pass 0; no min or max set FATAL - pass 0; no min or max set WARN - pass 1; min set to WARN, max not set ERROR - pass 1; min set to WARN, max not set FATAL - pass 1; min set to WARN, max not set DEBUG - pass 2; min not set, max set to WARN INFO - pass 2; min not set, max set to WARN WARN - pass 2; min not set, max set to WARN DEBUG - pass 3; filter set to accept between DEBUG and FATAL msgs INFO - pass 3; filter set to accept between DEBUG and FATAL msgs WARN - pass 3; filter set to accept between DEBUG and FATAL msgs ERROR - pass 3; filter set to accept between DEBUG and FATAL msgs FATAL - pass 3; filter set to accept between DEBUG and FATAL msgs DEBUG - pass 4; filter set to accept between DEBUG and ERROR msgs INFO - pass 4; filter set to accept between DEBUG and ERROR msgs WARN - pass 4; filter set to accept between DEBUG and ERROR msgs ERROR - pass 4; filter set to accept between DEBUG and ERROR msgs DEBUG - pass 5; filter set to accept between DEBUG and WARN msgs INFO - pass 5; filter set to accept between DEBUG and WARN msgs WARN - pass 5; filter set to accept between DEBUG and WARN msgs DEBUG - pass 6; filter set to accept between DEBUG and INFO msgs INFO - pass 6; filter set to accept between DEBUG and INFO msgs DEBUG - pass 7; filter set to accept between DEBUG and DEBUG msgs INFO - pass 8; filter set to accept between INFO and FATAL msgs WARN - pass 8; filter set to accept between INFO and FATAL msgs ERROR - pass 8; filter set to accept between INFO and FATAL msgs FATAL - pass 8; filter set to accept between INFO and FATAL msgs INFO - pass 9; filter set to accept between INFO and ERROR msgs WARN - pass 9; filter set to accept between INFO and ERROR msgs ERROR - pass 9; filter set to accept between INFO and ERROR msgs INFO - pass 10; filter set to accept between INFO and WARN msgs WARN - pass 10; filter set to accept between INFO and WARN msgs INFO - pass 11; filter set to accept between INFO and INFO msgs WARN - pass 13; filter set to accept between WARN and FATAL msgs ERROR - pass 13; filter set to accept between WARN and FATAL msgs FATAL - pass 13; filter set to accept between WARN and FATAL msgs WARN - pass 14; filter set to accept between WARN and ERROR msgs ERROR - pass 14; filter set to accept between WARN and ERROR msgs WARN - pass 15; filter set to accept between WARN and WARN msgs ERROR - pass 18; filter set to accept between ERROR and FATAL msgs FATAL - pass 18; filter set to accept between ERROR and FATAL msgs ERROR - pass 19; filter set to accept between ERROR and ERROR msgs FATAL - pass 23; filter set to accept between FATAL and FATAL msgs apache-log4cxx-0.10.0/src/test/resources/witness/patternLayout.mdc.2100644 0 0 727 10774263315 22500 0ustar 0 0 starting mdc pattern test empty mdc, no key specified in pattern : {} empty mdc, key1 in pattern : empty mdc, key2 in pattern : empty mdc, key3 in pattern : empty mdc, key1, key2, and key3 in pattern : ,, filled mdc, no key specified in pattern : {{key1,value1}{key2,value2}} filled mdc, key1 in pattern : value1 filled mdc, key2 in pattern : value2 filled mdc, key3 in pattern : filled mdc, key1, key2, and key3 in pattern : value1,value2, finished mdc pattern test apache-log4cxx-0.10.0/src/test/resources/witness/LevelRangeFilter_neutral100644 0 0 5234 10774263315 23665 0ustar 0 0 DEBUG - pass 0; no min or max set INFO - pass 0; no min or max set WARN - pass 0; no min or max set ERROR - pass 0; no min or max set FATAL - pass 0; no min or max set WARN - pass 1; min set to WARN, max not set ERROR - pass 1; min set to WARN, max not set FATAL - pass 1; min set to WARN, max not set DEBUG - pass 2; min not set, max set to WARN INFO - pass 2; min not set, max set to WARN WARN - pass 2; min not set, max set to WARN DEBUG - pass 3; filter set to accept between DEBUG and FATAL msgs INFO - pass 3; filter set to accept between DEBUG and FATAL msgs WARN - pass 3; filter set to accept between DEBUG and FATAL msgs ERROR - pass 3; filter set to accept between DEBUG and FATAL msgs FATAL - pass 3; filter set to accept between DEBUG and FATAL msgs DEBUG - pass 4; filter set to accept between DEBUG and ERROR msgs INFO - pass 4; filter set to accept between DEBUG and ERROR msgs WARN - pass 4; filter set to accept between DEBUG and ERROR msgs ERROR - pass 4; filter set to accept between DEBUG and ERROR msgs DEBUG - pass 5; filter set to accept between DEBUG and WARN msgs INFO - pass 5; filter set to accept between DEBUG and WARN msgs WARN - pass 5; filter set to accept between DEBUG and WARN msgs DEBUG - pass 6; filter set to accept between DEBUG and INFO msgs INFO - pass 6; filter set to accept between DEBUG and INFO msgs DEBUG - pass 7; filter set to accept between DEBUG and DEBUG msgs INFO - pass 8; filter set to accept between INFO and FATAL msgs WARN - pass 8; filter set to accept between INFO and FATAL msgs ERROR - pass 8; filter set to accept between INFO and FATAL msgs FATAL - pass 8; filter set to accept between INFO and FATAL msgs INFO - pass 9; filter set to accept between INFO and ERROR msgs WARN - pass 9; filter set to accept between INFO and ERROR msgs ERROR - pass 9; filter set to accept between INFO and ERROR msgs INFO - pass 10; filter set to accept between INFO and WARN msgs WARN - pass 10; filter set to accept between INFO and WARN msgs INFO - pass 11; filter set to accept between INFO and INFO msgs WARN - pass 13; filter set to accept between WARN and FATAL msgs ERROR - pass 13; filter set to accept between WARN and FATAL msgs FATAL - pass 13; filter set to accept between WARN and FATAL msgs WARN - pass 14; filter set to accept between WARN and ERROR msgs ERROR - pass 14; filter set to accept between WARN and ERROR msgs WARN - pass 15; filter set to accept between WARN and WARN msgs ERROR - pass 18; filter set to accept between ERROR and FATAL msgs FATAL - pass 18; filter set to accept between ERROR and FATAL msgs ERROR - pass 19; filter set to accept between ERROR and ERROR msgs FATAL - pass 23; filter set to accept between FATAL and FATAL msgs apache-log4cxx-0.10.0/src/test/resources/witness/hierarchyThreshold.1100644 0 0 0 10774263315 22635 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/witness/hierarchyThreshold.2100644 0 0 46 10774263315 22670 0ustar 0 0 FATAL HierarchyThresholdTestCase = m5 apache-log4cxx-0.10.0/src/test/resources/witness/hierarchyThreshold.3100644 0 0 114 10774263315 22705 0ustar 0 0 ERROR HierarchyThresholdTestCase = m4 FATAL HierarchyThresholdTestCase = m5 apache-log4cxx-0.10.0/src/test/resources/witness/hierarchyThreshold.4100644 0 0 161 10774263315 22710 0ustar 0 0 WARN HierarchyThresholdTestCase = m3 ERROR HierarchyThresholdTestCase = m4 FATAL HierarchyThresholdTestCase = m5 apache-log4cxx-0.10.0/src/test/resources/witness/hierarchyThreshold.5100644 0 0 226 10774263315 22713 0ustar 0 0 INFO HierarchyThresholdTestCase = m2 WARN HierarchyThresholdTestCase = m3 ERROR HierarchyThresholdTestCase = m4 FATAL HierarchyThresholdTestCase = m5 apache-log4cxx-0.10.0/src/test/resources/witness/hierarchyThreshold.6100644 0 0 274 10774263315 22717 0ustar 0 0 DEBUG HierarchyThresholdTestCase = m1 INFO HierarchyThresholdTestCase = m2 WARN HierarchyThresholdTestCase = m3 ERROR HierarchyThresholdTestCase = m4 FATAL HierarchyThresholdTestCase = m5 apache-log4cxx-0.10.0/src/test/resources/witness/xmlLayout.mdc.1100644 0 0 440 10774263315 21612 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/witness/hierarchyThreshold.7100644 0 0 342 10774263315 22714 0ustar 0 0 TRACE HierarchyThresholdTestCase = m0 DEBUG HierarchyThresholdTestCase = m1 INFO HierarchyThresholdTestCase = m2 WARN HierarchyThresholdTestCase = m3 ERROR HierarchyThresholdTestCase = m4 FATAL HierarchyThresholdTestCase = m5 apache-log4cxx-0.10.0/src/test/resources/witness/xmlLayout.mdc.2100644 0 0 534 10774263315 21617 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/witness/hierarchyThreshold.8100644 0 0 342 10774263315 22715 0ustar 0 0 TRACE HierarchyThresholdTestCase = m0 DEBUG HierarchyThresholdTestCase = m1 INFO HierarchyThresholdTestCase = m2 WARN HierarchyThresholdTestCase = m3 ERROR HierarchyThresholdTestCase = m4 FATAL HierarchyThresholdTestCase = m5 apache-log4cxx-0.10.0/src/test/resources/witness/customLevel.1100644 0 0 322 10774263315 21353 0ustar 0 0 DEBUG xml.CustomLevelTestCase - Message 1 INFO xml.CustomLevelTestCase - Message 2 WARN xml.CustomLevelTestCase - Message 3 ERROR xml.CustomLevelTestCase - Message 4 TRACE xml.CustomLevelTestCase - Message 5 apache-log4cxx-0.10.0/src/test/resources/witness/customLevel.2100644 0 0 322 10774263315 21354 0ustar 0 0 DEBUG xml.CustomLevelTestCase - Message 1 INFO xml.CustomLevelTestCase - Message 2 WARN xml.CustomLevelTestCase - Message 3 ERROR xml.CustomLevelTestCase - Message 4 TRACE xml.CustomLevelTestCase - Message 5 apache-log4cxx-0.10.0/src/test/resources/witness/customLevel.3100644 0 0 52 10774263315 21335 0ustar 0 0 TRACE xml.CustomLevelTestCase - Message 5 apache-log4cxx-0.10.0/src/test/resources/witness/customLevel.4100644 0 0 322 10774263315 21356 0ustar 0 0 DEBUG xml.CustomLevelTestCase - Message 1 INFO xml.CustomLevelTestCase - Message 2 WARN xml.CustomLevelTestCase - Message 3 ERROR xml.CustomLevelTestCase - Message 4 TRACE xml.CustomLevelTestCase - Message 5 apache-log4cxx-0.10.0/src/test/resources/witness/NDCMatchFilter_accept100644 0 0 1103 10774263315 22776 0ustar 0 0 pass 0: "level_1" exactly matches "level_1" pass 1: "level_1 level_2" exactly matches "level_1 level_2" pass 2: "level_1 level_2 level_3" exactly matches "level_1 level_2 level_3" pass 3: "level_1" contained in "level_1 level_2 level_3" pass 3: "level_1" contained in "level_1 level_2" pass 3: "level_1" contained in "level_1" pass 4: "level_1 level_2" contained in "level_1 level_2 level_3" pass 4: "level_1 level_2" contained in "level_1 level_2" pass 5: "level_1 level_2 level_3" contained in "level_1 level_2 level_3" pass 6: "" exactly matches "" pass 7: "" contained in "" apache-log4cxx-0.10.0/src/test/resources/witness/NDCMatchFilter_deny100644 0 0 2225 10774263315 22504 0ustar 0 0 pass 0: "level_1" does not exactly match "level_1 level_2 level_3" pass 0: "level_1" does not exactly match "level_1 level_2" pass 0: "level_1" does not exactly match "" pass 1: "level_1 level_2" does not exactly match "level_1 level_2 level_3" pass 1: "level_1 level_2" does not exactly match "level_1" pass 1: "level_1 level_2" does not exactly match "" pass 2: "level_1 level_2 level_3" does not exactly match "level_1 level_2" pass 2: "level_1 level_2 level_3" does not exactly match "level_1" pass 2: "level_1 level_2 level_3" does not exactly match "" pass 3: "level_1" not contained in "" pass 4: "level_1 level_2" not contained in "level_1" pass 4: "level_1 level_2" not contained in "" pass 5: "level_1 level_2 level_3" not contained in "level_1 level_2" pass 5: "level_1 level_2 level_3" not contained in "level_1" pass 5: "level_1 level_2 level_3" not contained in "" pass 6: "" does not exactly match "level_1 level_2 level_3" pass 6: "" does not exactly match "level_1 level_2" pass 6: "" does not exactly match "level_1" pass 7: "" not contained in "level_1 level_2 level_3" pass 7: "" not contained in "level_1 level_2" pass 7: "" not contained in "level_1" apache-log4cxx-0.10.0/src/test/resources/witness/xmlLayout.null100644 0 0 772 10774263315 21672 0ustar 0 0 apache-log4cxx-0.10.0/src/test/resources/witness/Makefile.am100644 0 0 2657 10774263315 21060 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # SUBDIRS = encoding ndc rolling EXTRA_DIST = LevelMatchFilter* \ LevelRangeFilter* \ NDCMatchFilter* \ custom* \ dom.* \ hierarchyThreshold.* \ l7d.* \ patternLayout.* \ socketServer.* \ xmlLayout.* \ fallback \ simple \ ttcc # if we are building in a separate build tree, then copy all necessary files all-local: @if test "$(top_srcdir)" != "$(top_builddir)"; then \ echo "Copying test suite data files ..." ; \ list='$(EXTRA_DIST)'; for file in $$list; do \ cp -p $(srcdir)/$$file . ; \ done \ fi apache-log4cxx-0.10.0/src/test/resources/witness/customLogger.1100644 0 0 432 10774263315 21525 0ustar 0 0 TRACE customLogger.XLoggerTestCase - Message 0 DEBUG customLogger.XLoggerTestCase - Message 1 WARN customLogger.XLoggerTestCase - Message 2 ERROR customLogger.XLoggerTestCase - Message 3 FATAL customLogger.XLoggerTestCase - Message 4 DEBUG customLogger.XLoggerTestCase - Message 5 apache-log4cxx-0.10.0/src/test/resources/witness/patternLayout.1100644 0 0 264 10774263315 21731 0ustar 0 0 DEBUG - Message 0 DEBUG - Message 0 INFO - Message 1 INFO - Message 1 WARN - Message 2 WARN - Message 2 ERROR - Message 3 ERROR - Message 3 FATAL - Message 4 FATAL - Message 4 apache-log4cxx-0.10.0/src/test/resources/witness/customLogger.2100644 0 0 57 10774263315 21511 0ustar 0 0 TRACE customLogger.XLoggerTestCase - Message 0 apache-log4cxx-0.10.0/src/test/resources/witness/patternLayout.2100644 0 0 562 10774263315 21733 0ustar 0 0 [main] DEBUG atternLayoutTest - Message 0 [main] DEBUG root - Message 0 [main] INFO atternLayoutTest - Message 1 [main] INFO root - Message 1 [main] WARN atternLayoutTest - Message 2 [main] WARN root - Message 2 [main] ERROR atternLayoutTest - Message 3 [main] ERROR root - Message 3 [main] FATAL atternLayoutTest - Message 4 [main] FATAL root - Message 4 apache-log4cxx-0.10.0/src/test/resources/witness/patternLayout.3100644 0 0 561 10774263315 21733 0ustar 0 0 [main] DEBUG atternLayoutTest - Message 0 [main] DEBUG root - Message 0 [main] INFO atternLayoutTest - Message 1 [main] INFO root - Message 1 [main] WARN atternLayoutTest - Message 2 [main] WARN root - Message 2 [main] ERROR atternLayoutTest - Message 3 [main] ERROR root - Message 3 [main] FATAL atternLayoutTest - Message 4 [main] FATAL root - Message 4apache-log4cxx-0.10.0/src/test/resources/witness/patternLayout.4100644 0 0 561 10774263315 21734 0ustar 0 0 [main] DEBUG atternLayoutTest - Message 0 [main] DEBUG root - Message 0 [main] INFO atternLayoutTest - Message 1 [main] INFO root - Message 1 [main] WARN atternLayoutTest - Message 2 [main] WARN root - Message 2 [main] ERROR atternLayoutTest - Message 3 [main] ERROR root - Message 3 [main] FATAL atternLayoutTest - Message 4 [main] FATAL root - Message 4apache-log4cxx-0.10.0/src/test/resources/witness/patternLayout.5100644 0 0 561 10774263315 21735 0ustar 0 0 [main] DEBUG atternLayoutTest - Message 0 [main] DEBUG root - Message 0 [main] INFO atternLayoutTest - Message 1 [main] INFO root - Message 1 [main] WARN atternLayoutTest - Message 2 [main] WARN root - Message 2 [main] ERROR atternLayoutTest - Message 3 [main] ERROR root - Message 3 [main] FATAL atternLayoutTest - Message 4 [main] FATAL root - Message 4apache-log4cxx-0.10.0/src/test/resources/witness/socketServer.1100644 0 0 3435 10774263315 21560 0ustar 0 0 TRACE T1 [main] org.apache.log4j.net.SocketServerTestCase Message 1 TRACE T1 [main] root Message 2 DEBUG T1 [main] org.apache.log4j.net.SocketServerTestCase Message 3 DEBUG T1 [main] root Message 4 INFO T1 [main] org.apache.log4j.net.SocketServerTestCase Message 5 WARN T1 [main] org.apache.log4j.net.SocketServerTestCase Message 6 FATAL T1 [main] org.apache.log4j.net.SocketServerTestCase Message 7 DEBUG T1 [main] org.apache.log4j.net.SocketServerTestCase Message 8 java.lang.Exception: Just testing at org.apache.log4j.net.SocketServerTestCase.common(SocketServerTestCase.java:XXX) at org.apache.log4j.net.SocketServerTestCase.test1(SocketServerTestCase.java:XXX) at junit.framework.TestCase.runTest(TestCase.java:XXX) at junit.framework.TestCase.runBare(TestCase.java:XXX) at junit.framework.TestResult$1.protect(TestResult.java:XXX) at junit.framework.TestResult.runProtected(TestResult.java:XXX) at junit.framework.TestResult.run(TestResult.java:XXX) at junit.framework.TestCase.run(TestCase.java:XXX) at junit.framework.TestSuite.runTest(TestSuite.java:XXX) at junit.framework.TestSuite.run(TestSuite.java:XXX) ERROR T1 [main] root Message 9 java.lang.Exception: Just testing at org.apache.log4j.net.SocketServerTestCase.common(SocketServerTestCase.java:XXX) at org.apache.log4j.net.SocketServerTestCase.test1(SocketServerTestCase.java:XXX) at junit.framework.TestCase.runTest(TestCase.java:XXX) at junit.framework.TestCase.runBare(TestCase.java:XXX) at junit.framework.TestResult$1.protect(TestResult.java:XXX) at junit.framework.TestResult.runProtected(TestResult.java:XXX) at junit.framework.TestResult.run(TestResult.java:XXX) at junit.framework.TestCase.run(TestCase.java:XXX) at junit.framework.TestSuite.runTest(TestSuite.java:XXX) at junit.framework.TestSuite.run(TestSuite.java:XXX) apache-log4cxx-0.10.0/src/test/resources/L7D_fr_CH.properties100644 0 0 1545 10774263315 21070 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # test=Ceci est le test en francais pour la p'tite Suisse. hello world=Salut le monde. apache-log4cxx-0.10.0/src/test/resources/L7D_fr.properties100644 0 0 1634 10774263315 20515 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # test=Ceci est le test en francais pour la France. hello_world=Bonjour la France. msg1=Ceci est le test numero {0} contenant l'argument {1}. apache-log4cxx-0.10.0/src/test/resources/Makefile.am100644 0 0 4043 10774263315 17353 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # SUBDIRS = input witness EXTRA_DIST = L7D_en_US.properties L7D_fr_CH.properties L7D_fr.properties # if we are building in a separate build tree, then copy all necessary files all-local: @if test "$(top_srcdir)" != "$(top_builddir)"; then \ echo "Copying test suite data files ..." ; \ list='$(EXTRA_DIST)'; for file in $$list; do \ cp -p $(srcdir)/$$file . ; \ done \ fi prepare: @if test ! -d "output"; then \ mkdir output; \ fi; @rm -rf log4j.xml @rm -rf log4j.properties @rm -rf log4cxx.xml @rm -rf log4cxx.properties build: check-recursive prepare cleanOutputDir: @rm -rf output/* check: prepare run-unittest DefaultInit run-unittest: build cleanOutputDir @export TOTO=wonderful; \ export key1=value1; \ export key2=value2; \ ../cpp/testsuite -v DefaultInit: build cleanOutputDir ../cpp/testsuite -v testcase1 @cp input/xml/defaultInit.xml log4j.xml ../cpp/testsuite -v testcase2 @rm -f log4j.xml @cp input/defaultInit3.properties log4j.properties ../cpp/testsuite -v testcase3 @rm -f log4j.properties @cp input/defaultInit3.properties log4j.properties @cp input/xml/defaultInit.xml log4j.xml ../cpp/testsuite -v testcase4 @rm -f log4j.xml @rm -f log4j.properties SocketServer: build cleanOutputDir ../cpp/testsuite -v socketservertestcase apache-log4cxx-0.10.0/src/test/resources/L7D_en_US.properties100644 0 0 1603 10774263315 21113 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # test=This is the English, US test. hello_world=Hello world. msg1=This is test number {0} with string argument {1}. apache-log4cxx-0.10.0/src/test/resources/Makefile.in100644 0 0 41334 10774264477 17422 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/test/resources DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # SUBDIRS = input witness EXTRA_DIST = L7D_en_US.properties L7D_fr_CH.properties L7D_fr.properties all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/test/resources/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/test/resources/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile all-local installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am all-local check \ check-am clean clean-generic clean-libtool clean-recursive \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-recursive distclean-tags distdir \ dvi dvi-am html html-am info info-am install install-am \ install-data install-data-am install-exec install-exec-am \ install-info install-info-am install-man install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-generic \ mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am uninstall-info-am # if we are building in a separate build tree, then copy all necessary files all-local: @if test "$(top_srcdir)" != "$(top_builddir)"; then \ echo "Copying test suite data files ..." ; \ list='$(EXTRA_DIST)'; for file in $$list; do \ cp -p $(srcdir)/$$file . ; \ done \ fi prepare: @if test ! -d "output"; then \ mkdir output; \ fi; @rm -rf log4j.xml @rm -rf log4j.properties @rm -rf log4cxx.xml @rm -rf log4cxx.properties build: check-recursive prepare cleanOutputDir: @rm -rf output/* check: prepare run-unittest DefaultInit run-unittest: build cleanOutputDir @export TOTO=wonderful; \ export key1=value1; \ export key2=value2; \ ../cpp/testsuite -v DefaultInit: build cleanOutputDir ../cpp/testsuite -v testcase1 @cp input/xml/defaultInit.xml log4j.xml ../cpp/testsuite -v testcase2 @rm -f log4j.xml @cp input/defaultInit3.properties log4j.properties ../cpp/testsuite -v testcase3 @rm -f log4j.properties @cp input/defaultInit3.properties log4j.properties @cp input/xml/defaultInit.xml log4j.xml ../cpp/testsuite -v testcase4 @rm -f log4j.xml @rm -f log4j.properties SocketServer: build cleanOutputDir ../cpp/testsuite -v socketservertestcase # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/test/Makefile.in100644 0 0 36662 10774264477 15420 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/test DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # SUBDIRS = cpp resources all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/test/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/test/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ clean clean-generic clean-libtool clean-recursive ctags \ ctags-recursive distclean distclean-generic distclean-libtool \ distclean-recursive distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic maintainer-clean-recursive \ mostlyclean mostlyclean-generic mostlyclean-libtool \ mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/test/Makefile.am100644 0 0 1450 10774263315 15340 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # SUBDIRS = cpp resources apache-log4cxx-0.10.0/src/ant/esmtp-build.xml100644 0 0 11763 10774263317 16110 0ustar 0 0 ]> &common; apache-log4cxx-0.10.0/src/ant/find-apr.xml100644 0 0 27335 10774263317 15365 0ustar 0 0 Unable to locate apr base directory. apr-find: apr.dir=${apr.dir} apr.include.dir=${apr.include.dir} apr.src.dir=${apr.src.dir} apr.lib.file=${apr.lib.file} apr.lib.file.dir=${apr.lib.file.dir} apr.lib.dir=${apr.lib.dir} apr.lib.prefix=${apr.lib.prefix} apr.lib.suffix=${apr.lib.suffix} apr.lib.type=${apr.lib.type} apache-log4cxx-0.10.0/src/ant/apr-build.xml100644 0 0 45701 10774263317 15541 0ustar 0 0 ]> &common; &license; &license; &license; &license; apache-log4cxx-0.10.0/src/ant/common.xml100644 0 0 13711 10774263317 15146 0ustar 0 0 cpptasks required Use cpptasks 1.0b5 or later from http://ant-contrib.sourceforge.net. apache-log4cxx-0.10.0/src/ant/apr-util-build.xml100644 0 0 41405 10774263317 16511 0ustar 0 0 ]> &common; &find-apr; &license; &license; &license; apache-log4cxx-0.10.0/src/ant/find-apr-util.xml100644 0 0 32012 10774263317 16324 0ustar 0 0 Unable to locate apr-util base directory. apr-util-find: apr-util.dir=${apr-util.dir} apr-util.include.dir=${apr-util.include.dir} apr-util.src.dir=${apr-util.src.dir} apr-util.lib.file=${apr-util.lib.file} apr-util.lib.file.dir=${apr-util.lib.file.dir} apr-util.lib.dir=${apr-util.lib.dir} apr-util.lib.prefix=${apr-util.lib.prefix} apr-util.lib.suffix=${apr-util.lib.suffix} apr-util.lib.type=${apr-util.lib.type} apache-log4cxx-0.10.0/src/ant/find-libesmtp.xml100644 0 0 30323 10774263317 16411 0ustar 0 0 Unable to locate esmtp base directory. esmtp-find: esmtp.dir=${esmtp.dir} esmtp.include.dir=${esmtp.include.dir} esmtp.src.dir=${esmtp.src.dir} esmtp.lib.file=${esmtp.lib.file} esmtp.lib.file.dir=${esmtp.lib.file.dir} esmtp.lib.dir=${esmtp.lib.dir} esmtp.lib.prefix=${esmtp.lib.prefix} esmtp.lib.suffix=${esmtp.lib.suffix} esmtp.lib.type=${esmtp.lib.type} apache-log4cxx-0.10.0/src/main/cpp/syslogappender.cpp100644 0 0 27214 10774263341 17623 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include #if !defined(LOG4CXX) #define LOG4CXX 1 #endif #include #if LOG4CXX_HAVE_SYSLOG #include #else /* facility codes */ #define LOG_KERN (0<<3) /* kernel messages */ #define LOG_USER (1<<3) /* random user-level messages */ #define LOG_MAIL (2<<3) /* mail system */ #define LOG_DAEMON (3<<3) /* system daemons */ #define LOG_AUTH (4<<3) /* security/authorization messages */ #define LOG_SYSLOG (5<<3) /* messages generated internally by syslogd */ #define LOG_LPR (6<<3) /* line printer subsystem */ #define LOG_NEWS (7<<3) /* network news subsystem */ #define LOG_UUCP (8<<3) /* UUCP subsystem */ #define LOG_CRON (9<<3) /* clock daemon */ #define LOG_AUTHPRIV (10<<3) /* security/authorization messages (private) */ #define LOG_FTP (11<<3) /* ftp daemon */ /* other codes through 15 reserved for system use */ #define LOG_LOCAL0 (16<<3) /* reserved for local use */ #define LOG_LOCAL1 (17<<3) /* reserved for local use */ #define LOG_LOCAL2 (18<<3) /* reserved for local use */ #define LOG_LOCAL3 (19<<3) /* reserved for local use */ #define LOG_LOCAL4 (20<<3) /* reserved for local use */ #define LOG_LOCAL5 (21<<3) /* reserved for local use */ #define LOG_LOCAL6 (22<<3) /* reserved for local use */ #define LOG_LOCAL7 (23<<3) /* reserved for local use */ #endif #define LOG_UNDEF -1 using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::net; IMPLEMENT_LOG4CXX_OBJECT(SyslogAppender) SyslogAppender::SyslogAppender() : syslogFacility(LOG_USER), facilityPrinting(false), sw(0) { this->initSyslogFacilityStr(); } SyslogAppender::SyslogAppender(const LayoutPtr& layout1, int syslogFacility1) : syslogFacility(syslogFacility1), facilityPrinting(false), sw(0) { this->layout = layout1; this->initSyslogFacilityStr(); } SyslogAppender::SyslogAppender(const LayoutPtr& layout1, const LogString& syslogHost1, int syslogFacility1) : syslogFacility(syslogFacility1), facilityPrinting(false), sw(0) { this->layout = layout1; this->initSyslogFacilityStr(); setSyslogHost(syslogHost1); } SyslogAppender::~SyslogAppender() { finalize(); } /** Release any resources held by this SyslogAppender.*/ void SyslogAppender::close() { closed = true; if (sw != 0) { delete sw; sw = 0; } } void SyslogAppender::initSyslogFacilityStr() { facilityStr = getFacilityString(this->syslogFacility); if (facilityStr.empty()) { Pool p; LogString msg(LOG4CXX_STR("\"")); StringHelper::toString(syslogFacility, p, msg); msg.append(LOG4CXX_STR("\" is an unknown syslog facility. Defaulting to \"USER\".")); LogLog::error(msg); this->syslogFacility = LOG_USER; facilityStr = LOG4CXX_STR("user:"); } else { facilityStr += LOG4CXX_STR(":"); } } /** Returns the specified syslog facility as a lower-case String, e.g. "kern", "user", etc. */ LogString SyslogAppender::getFacilityString( int syslogFacility) { switch(syslogFacility) { case LOG_KERN: return LOG4CXX_STR("kern"); case LOG_USER: return LOG4CXX_STR("user"); case LOG_MAIL: return LOG4CXX_STR("mail"); case LOG_DAEMON: return LOG4CXX_STR("daemon"); case LOG_AUTH: return LOG4CXX_STR("auth"); case LOG_SYSLOG: return LOG4CXX_STR("syslog"); case LOG_LPR: return LOG4CXX_STR("lpr"); case LOG_NEWS: return LOG4CXX_STR("news"); case LOG_UUCP: return LOG4CXX_STR("uucp"); case LOG_CRON: return LOG4CXX_STR("cron"); #ifdef LOG_AUTHPRIV case LOG_AUTHPRIV: return LOG4CXX_STR("authpriv"); #endif #ifdef LOG_FTP case LOG_FTP: return LOG4CXX_STR("ftp"); #endif case LOG_LOCAL0: return LOG4CXX_STR("local0"); case LOG_LOCAL1: return LOG4CXX_STR("local1"); case LOG_LOCAL2: return LOG4CXX_STR("local2"); case LOG_LOCAL3: return LOG4CXX_STR("local3"); case LOG_LOCAL4: return LOG4CXX_STR("local4"); case LOG_LOCAL5: return LOG4CXX_STR("local5"); case LOG_LOCAL6: return LOG4CXX_STR("local6"); case LOG_LOCAL7: return LOG4CXX_STR("local7"); default: return LogString(); } } int SyslogAppender::getFacility( const LogString& s) { if (StringHelper::equalsIgnoreCase(s, LOG4CXX_STR("KERN"), LOG4CXX_STR("kern"))) { return LOG_KERN; } else if (StringHelper::equalsIgnoreCase(s, LOG4CXX_STR("USER"), LOG4CXX_STR("user"))) { return LOG_USER; } else if (StringHelper::equalsIgnoreCase(s, LOG4CXX_STR("MAIL"), LOG4CXX_STR("mail"))) { return LOG_MAIL; } else if (StringHelper::equalsIgnoreCase(s, LOG4CXX_STR("DAEMON"), LOG4CXX_STR("daemon"))) { return LOG_DAEMON; } else if (StringHelper::equalsIgnoreCase(s, LOG4CXX_STR("AUTH"), LOG4CXX_STR("auth"))) { return LOG_AUTH; } else if (StringHelper::equalsIgnoreCase(s, LOG4CXX_STR("SYSLOG"), LOG4CXX_STR("syslog"))) { return LOG_SYSLOG; } else if (StringHelper::equalsIgnoreCase(s, LOG4CXX_STR("LPR"), LOG4CXX_STR("lpr"))) { return LOG_LPR; } else if (StringHelper::equalsIgnoreCase(s, LOG4CXX_STR("NEWS"), LOG4CXX_STR("news"))) { return LOG_NEWS; } else if (StringHelper::equalsIgnoreCase(s, LOG4CXX_STR("UUCP"), LOG4CXX_STR("uucp"))) { return LOG_UUCP; } else if (StringHelper::equalsIgnoreCase(s, LOG4CXX_STR("CRON"), LOG4CXX_STR("cron"))) { return LOG_CRON; } #ifdef LOG_AUTHPRIV else if (StringHelper::equalsIgnoreCase(s, LOG4CXX_STR("AUTHPRIV"), LOG4CXX_STR("authpriv"))) { return LOG_AUTHPRIV; } #endif #ifdef LOG_FTP else if (StringHelper::equalsIgnoreCase(s, LOG4CXX_STR("FTP"), LOG4CXX_STR("ftp"))) { return LOG_FTP; } #endif else if (StringHelper::equalsIgnoreCase(s, LOG4CXX_STR("LOCAL0"), LOG4CXX_STR("local0"))) { return LOG_LOCAL0; } else if (StringHelper::equalsIgnoreCase(s, LOG4CXX_STR("LOCAL1"), LOG4CXX_STR("local1"))) { return LOG_LOCAL1; } else if (StringHelper::equalsIgnoreCase(s, LOG4CXX_STR("LOCAL1"), LOG4CXX_STR("local2"))) { return LOG_LOCAL2; } else if (StringHelper::equalsIgnoreCase(s, LOG4CXX_STR("LOCAL1"), LOG4CXX_STR("local3"))) { return LOG_LOCAL3; } else if (StringHelper::equalsIgnoreCase(s, LOG4CXX_STR("LOCAL1"), LOG4CXX_STR("local4"))) { return LOG_LOCAL4; } else if (StringHelper::equalsIgnoreCase(s, LOG4CXX_STR("LOCAL1"), LOG4CXX_STR("local5"))) { return LOG_LOCAL5; } else if (StringHelper::equalsIgnoreCase(s, LOG4CXX_STR("LOCAL1"), LOG4CXX_STR("local6"))) { return LOG_LOCAL6; } else if (StringHelper::equalsIgnoreCase(s, LOG4CXX_STR("LOCAL1"), LOG4CXX_STR("local7"))) { return LOG_LOCAL7; } else { return LOG_UNDEF; } } void SyslogAppender::append(const spi::LoggingEventPtr& event, Pool& p) { if (!isAsSevereAsThreshold(event->getLevel())) return; LogString msg; layout->format(msg, event, p); // On the local host, we can directly use the system function 'syslog' // if it is available #if LOG4CXX_HAVE_SYSLOG if (sw == 0) { std::string sbuf; Transcoder::encode(msg, sbuf); // use of "%s" to avoid a security hole ::syslog(syslogFacility | event->getLevel()->getSyslogEquivalent(), "%s", sbuf.c_str()); return; } #endif // We must not attempt to append if sw is null. if(sw == 0) { errorHandler->error(LOG4CXX_STR("No syslog host is set for SyslogAppedender named \"")+ this->name+LOG4CXX_STR("\".")); return; } LogString sbuf(1, 0x3C /* '<' */); StringHelper::toString((syslogFacility | event->getLevel()->getSyslogEquivalent()), p, sbuf); sbuf.append(1, (logchar) 0x3E /* '>' */); if (facilityPrinting) { sbuf.append(facilityStr); } sbuf.append(msg); sw->write(sbuf); } void SyslogAppender::activateOptions(Pool&) { } void SyslogAppender::setOption(const LogString& option, const LogString& value) { if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("SYSLOGHOST"), LOG4CXX_STR("sysloghost"))) { setSyslogHost(value); } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("FACILITY"), LOG4CXX_STR("facility"))) { setFacility(value); } else { AppenderSkeleton::setOption(option, value); } } void SyslogAppender::setSyslogHost(const LogString& syslogHost1) { if (this->sw != 0) { delete this->sw; this->sw = 0; } // On the local host, we can directly use the system function 'syslog' // if it is available (cf. append) #if LOG4CXX_HAVE_SYSLOG if (syslogHost1 != LOG4CXX_STR("localhost") && syslogHost1 != LOG4CXX_STR("127.0.0.1") && !syslogHost1.empty()) #endif this->sw = new SyslogWriter(syslogHost1); this->syslogHost = syslogHost1; } void SyslogAppender::setFacility(const LogString& facilityName) { if (facilityName.empty()) { return; } syslogFacility = getFacility(facilityName); if (syslogFacility == LOG_UNDEF) { LogLog::error(LOG4CXX_STR("[")+facilityName + LOG4CXX_STR("] is an unknown syslog facility. Defaulting to [USER].")); syslogFacility = LOG_USER; } this->initSyslogFacilityStr(); } apache-log4cxx-0.10.0/src/main/cpp/xmllayout.cpp100644 0 0 14265 10774263341 16624 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::spi; using namespace log4cxx::xml; IMPLEMENT_LOG4CXX_OBJECT(XMLLayout) XMLLayout::XMLLayout() : locationInfo(false), properties(false) { } void XMLLayout::setOption(const LogString& option, const LogString& value) { if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("LOCATIONINFO"), LOG4CXX_STR("locationinfo"))) { setLocationInfo(OptionConverter::toBoolean(value, false)); } if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("PROPERTIES"), LOG4CXX_STR("properties"))) { setProperties(OptionConverter::toBoolean(value, false)); } } void XMLLayout::format(LogString& output, const spi::LoggingEventPtr& event, Pool& p) const { output.append(LOG4CXX_STR("getLoggerName()); output.append(LOG4CXX_STR("\" timestamp=\"")); StringHelper::toString(event->getTimeStamp()/1000L, p, output); output.append(LOG4CXX_STR("\" level=\"")); Transform::appendEscapingTags(output, event->getLevel()->toString()); output.append(LOG4CXX_STR("\" thread=\"")); Transform::appendEscapingTags(output, event->getThreadName()); output.append(LOG4CXX_STR("\">")); output.append(LOG4CXX_EOL); output.append(LOG4CXX_STR("getRenderedMessage()); output.append(LOG4CXX_STR("]]>")); output.append(LOG4CXX_EOL); LogString ndc; if(event->getNDC(ndc)) { output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); } if(locationInfo) { output.append(LOG4CXX_STR("getLocationInformation(); LOG4CXX_DECODE_CHAR(className, locInfo.getClassName()); Transform::appendEscapingTags(output, className); output.append(LOG4CXX_STR("\" method=\"")); LOG4CXX_DECODE_CHAR(method, locInfo.getMethodName()); Transform::appendEscapingTags(output, method); output.append(LOG4CXX_STR("\" file=\"")); LOG4CXX_DECODE_CHAR(fileName, locInfo.getFileName()); Transform::appendEscapingTags(output, fileName); output.append(LOG4CXX_STR("\" line=\"")); StringHelper::toString(locInfo.getLineNumber(), p, output); output.append(LOG4CXX_STR("\"/>")); output.append(LOG4CXX_EOL); } if (properties) { LoggingEvent::KeySet propertySet(event->getPropertyKeySet()); LoggingEvent::KeySet keySet(event->getMDCKeySet()); if (!(keySet.empty() && propertySet.empty())) { output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); for (LoggingEvent::KeySet::const_iterator i = keySet.begin(); i != keySet.end(); i++) { LogString key(*i); LogString value; if(event->getMDC(key, value)) { output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); } } for (LoggingEvent::KeySet::const_iterator i2 = propertySet.begin(); i2 != propertySet.end(); i2++) { LogString key(*i2); LogString value; if(event->getProperty(key, value)) { output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); } } output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); } } output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); output.append(LOG4CXX_EOL); } apache-log4cxx-0.10.0/src/main/cpp/onlyonceerrorhandler.cpp100644 0 0 4451 10774263341 21000 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::spi; IMPLEMENT_LOG4CXX_OBJECT(OnlyOnceErrorHandler) OnlyOnceErrorHandler::OnlyOnceErrorHandler() : WARN_PREFIX(LOG4CXX_STR("log4cxx warning: ")), ERROR_PREFIX(LOG4CXX_STR("log4cxx error: ")), firstTime(true) { } void OnlyOnceErrorHandler::addRef() const { ObjectImpl::addRef(); } void OnlyOnceErrorHandler::releaseRef() const { ObjectImpl::releaseRef(); } void OnlyOnceErrorHandler::setLogger(const LoggerPtr&) { } void OnlyOnceErrorHandler::activateOptions(Pool&) { } void OnlyOnceErrorHandler::setOption(const LogString&, const LogString&) { } void OnlyOnceErrorHandler::error(const LogString& message, const std::exception& e, int) const { if(firstTime) { LogLog::error(message, e); firstTime = false; } } void OnlyOnceErrorHandler::error(const LogString& message, const std::exception& e, int errorCode, const log4cxx::spi::LoggingEventPtr&) const { error(message, e, errorCode); } void OnlyOnceErrorHandler::error(const LogString& message) const { if(firstTime) { LogLog::error(message); firstTime = false; } } void OnlyOnceErrorHandler::setAppender(const AppenderPtr&) { } void OnlyOnceErrorHandler::setBackupAppender(const AppenderPtr&) { } apache-log4cxx-0.10.0/src/main/cpp/simpledateformat.cpp100644 0 0 45070 10774263341 20124 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include #include #if !defined(LOG4CXX) #define LOG4CXX 1 #endif #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace std; #if LOG4CXX_HAS_STD_LOCALE #include #endif #if defined(_MSC_VER) && _MSC_VER < 1300 #define HAS_FACET(locale, type) _HAS(locale, type) #define USE_FACET(locale, type) _USE(locale, type) #define PUT_FACET(facet, os, time, spec) facet.put(os, os, time, spec) #else #if defined(_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE) #define HAS_FACET(locale, type) std::has_facet(locale, (type*) 0) #define USE_FACET(locale, type) std::use_facet(locale, (type*) 0) #else #define HAS_FACET(locale, type) std::has_facet < type >(locale) #define USE_FACET(locale, type) std::use_facet < type >(locale) #endif #define PUT_FACET(facet, os, time, spec) facet.put(os, os, os.fill(), time, spec) #endif namespace log4cxx { namespace helpers { namespace SimpleDateFormatImpl { typedef void (*incrementFunction)(tm& time, apr_time_exp_t& apr_time); /** * Abstract inner class representing one format token * (one or more instances of a character). */ class PatternToken { public: PatternToken() { } virtual ~PatternToken() { } /** * Sets the time zone. * @param zone new time zone. */ virtual void setTimeZone(const TimeZonePtr& zone) { } /** * Appends the formatted content to the string. * @param s string to which format contribution is appended. * @param date exploded date/time. * @param p memory pool. */ virtual void format(LogString& s, const apr_time_exp_t& date, log4cxx::helpers::Pool& p) const = 0; protected: static void incrementMonth(tm& time, apr_time_exp_t& aprtime) { time.tm_mon++; aprtime.tm_mon++; } static void incrementDay(tm& time, apr_time_exp_t& aprtime) { time.tm_wday++; aprtime.tm_wday++; } static void incrementHalfDay(tm& time, apr_time_exp_t& aprtime) { time.tm_hour += 12; aprtime.tm_hour += 12; } static void renderFacet(const std::locale* locale, incrementFunction inc, char spec, unsigned int wspec, const char* aprspec, std::vector& values) { std::vector::iterator valueIter = values.begin(); tm time; memset(&time, 0, sizeof(time)); apr_time_exp_t aprtime; memset(&aprtime, 0, sizeof(aprtime)); #if LOG4CXX_HAS_STD_LOCALE if (locale != NULL) { #if LOG4CXX_WCHAR_T_API if (HAS_FACET(*locale, std::time_put)) { const std::time_put& facet = USE_FACET(*locale, std::time_put); size_t start = 0; std::basic_ostringstream os; for(; valueIter != values.end(); valueIter++) { PUT_FACET(facet, os, &time, (wchar_t) wspec); Transcoder::decode(os.str().substr(start), *valueIter); start = os.str().length(); (*inc)(time, aprtime); } } else #endif if (HAS_FACET(*locale, std::time_put)) { const std::time_put& facet = USE_FACET(*locale, std::time_put ); size_t start = 0; std::ostringstream os; for(; valueIter != values.end(); valueIter++) { PUT_FACET(facet, os, &time, spec); Transcoder::decode(os.str().substr(start), *valueIter); start = os.str().length(); (*inc)(time, aprtime); } } } #endif const size_t BUFSIZE = 256; char buf[BUFSIZE]; memset(buf, 0, BUFSIZE); apr_size_t retsize = 0; for(; valueIter != values.end(); valueIter++) { apr_status_t stat = apr_strftime(buf, &retsize, BUFSIZE, aprspec, &aprtime); (*inc)(time, aprtime); if (stat == APR_SUCCESS) { Transcoder::decode(std::string(buf, retsize), *valueIter); } else { valueIter->append(1, (logchar) 0x3F); } } } private: /** * Private copy constructor. */ PatternToken(const PatternToken&); /** * Private assignment operator. */ PatternToken& operator=(const PatternToken&); }; class LiteralToken : public PatternToken { public: LiteralToken( logchar ch1, int count1 ) : ch( ch1 ), count( count1 ) { } void format( LogString& s, const apr_time_exp_t & , Pool & /* p */ ) const { s.append( count, ch ); } private: logchar ch; int count; }; class EraToken : public PatternToken { public: EraToken( int /* count */ , const std::locale * /* locale */ ) { } void format(LogString& s, const apr_time_exp_t & /* tm */, Pool & /* p */ ) const { s.append(1, (logchar) 0x41 /* 'A' */); s.append(1, (logchar) 0x44 /* 'D' */); } }; class NumericToken : public PatternToken { public: NumericToken( size_t width1 ) : width( width1 ) { } virtual int getField( const apr_time_exp_t & tm ) const = 0; void format( LogString& s, const apr_time_exp_t & tm, Pool & p ) const { size_t initialLength = s.length(); StringHelper::toString( getField( tm ), p, s ); size_t finalLength = s.length(); if ( initialLength + width > finalLength ) { s.insert( initialLength, ( initialLength + width ) - finalLength, (logchar) 0x30 /* '0' */); } } private: size_t width; char zeroDigit; }; class YearToken : public NumericToken { public: YearToken( int width1 ) : NumericToken( width1 ) { } int getField( const apr_time_exp_t & tm ) const { return 1900 + tm.tm_year; } }; class MonthToken : public NumericToken { public: MonthToken( int width1 ) : NumericToken( width1 ) { } int getField( const apr_time_exp_t & tm ) const { return tm.tm_mon + 1; } }; class AbbreviatedMonthNameToken : public PatternToken { public: AbbreviatedMonthNameToken(int, const std::locale *locale) : names( 12 ) { renderFacet(locale, PatternToken::incrementMonth, 'b', 0x62, "%b", names); } void format(LogString& s, const apr_time_exp_t & tm, Pool & /* p */ ) const { s.append( names[tm.tm_mon] ); } private: std::vector < LogString > names; }; class FullMonthNameToken : public PatternToken { public: FullMonthNameToken( int width, const std::locale *locale) : names( 12 ) { renderFacet(locale, PatternToken::incrementMonth, 'B', 0x42, "%B", names); } void format( LogString& s, const apr_time_exp_t & tm, Pool & /* p */ ) const { s.append( names[tm.tm_mon] ); } private: std::vector < LogString > names; }; class WeekInYearToken : public NumericToken { public: WeekInYearToken( int width1 ) : NumericToken( width1 ) { } int getField( const apr_time_exp_t & tm ) const { return tm.tm_yday / 7; } }; class WeekInMonthToken : public NumericToken { public: WeekInMonthToken( int width1 ) : NumericToken( width1 ) { } int getField( const apr_time_exp_t & tm ) const { return tm.tm_mday / 7; } }; class DayInMonthToken : public NumericToken { public: DayInMonthToken( int width1 ) : NumericToken( width1 ) { } int getField( const apr_time_exp_t & tm ) const { return tm.tm_mday; } }; class DayInYearToken : public NumericToken { public: DayInYearToken( int width1 ) : NumericToken( width1 ) { } int getField( const apr_time_exp_t & tm ) const { return tm.tm_yday; } }; class DayOfWeekInMonthToken : public NumericToken { public: DayOfWeekInMonthToken( int width1 ) : NumericToken( width1 ) { } int getField( const apr_time_exp_t & /* tm */ ) const { return -1; } }; class AbbreviatedDayNameToken : public PatternToken { public: AbbreviatedDayNameToken( int width, const std::locale *locale) : names( 7 ) { renderFacet(locale, PatternToken::incrementDay, 'a', 0x61, "%a", names); } void format( LogString& s, const apr_time_exp_t & tm, Pool & /* p */ ) const { s.append( names[tm.tm_wday] ); } private: std::vector < LogString > names; }; class FullDayNameToken : public PatternToken { public: FullDayNameToken( int width, const std::locale *locale) : names( 7 ) { renderFacet(locale, PatternToken::incrementDay, 'A', 0x41, "%A", names); } void format( LogString& s, const apr_time_exp_t & tm, Pool & /* p */ ) const { s.append( names[tm.tm_wday] ); } private: std::vector < LogString > names; }; class MilitaryHourToken : public NumericToken { public: MilitaryHourToken( int width1, int offset1 ) : NumericToken( width1 ), offset( offset1 ) { } int getField( const apr_time_exp_t & tm ) const { return tm.tm_hour + offset; } private: int offset; }; class HourToken : public NumericToken { public: HourToken( int width1, int /* offset1 */ ) : NumericToken( width1 ) { } int getField( const apr_time_exp_t & tm ) const { return ( ( tm.tm_hour + 12 - offset ) % 12 ) + offset; } private: int offset; }; class MinuteToken : public NumericToken { public: MinuteToken( int width1 ) : NumericToken( width1 ) { } int getField( const apr_time_exp_t & tm ) const { return tm.tm_min; } }; class SecondToken : public NumericToken { public: SecondToken( int width1 ) : NumericToken( width1 ) { } int getField( const apr_time_exp_t & tm ) const { return tm.tm_sec; } }; class MillisecondToken : public NumericToken { public: MillisecondToken( int width1 ) : NumericToken( width1 ) { } int getField( const apr_time_exp_t & tm ) const { return tm.tm_usec / 1000; } }; class AMPMToken : public PatternToken { public: AMPMToken( int width, const std::locale *locale) : names( 2 ) { renderFacet(locale, PatternToken::incrementHalfDay, 'p', 0x70, "%p", names); } void format( LogString& s, const apr_time_exp_t & tm, Pool & /* p */ ) const { s.append( names[tm.tm_hour / 12] ); } private: std::vector < LogString > names; }; class GeneralTimeZoneToken : public PatternToken { public: GeneralTimeZoneToken( int /* width */ ) { } void format( LogString& s, const apr_time_exp_t & , Pool & /* p */ ) const { s.append(timeZone->getID()); } void setTimeZone( const TimeZonePtr & zone ) { timeZone = zone; } private: TimeZonePtr timeZone; }; class RFC822TimeZoneToken : public PatternToken { public: RFC822TimeZoneToken( int /* width */ ) { } void format( LogString& s, const apr_time_exp_t & tm, Pool & p ) const { if ( tm.tm_gmtoff == 0 ) { s.append( 1, (logchar) 0x5A /* 'Z' */ ); } else { apr_int32_t off = tm.tm_gmtoff; size_t basePos = s.length(); s.append( LOG4CXX_STR( "+0000" ) ); if ( off < 0 ) { s[basePos] = 0x2D; // '-' off = -off; } LogString hours; StringHelper::toString( off / 3600, p, hours ); size_t hourPos = basePos + 2; // // assumes that point values for 0-9 are same between char and wchar_t // for ( size_t i = hours.length(); i-- > 0; ) { s[hourPos--] = hours[i]; } LogString min; StringHelper::toString( ( off % 3600 ) / 60, p, min ); size_t minPos = basePos + 4; // // assumes that point values for 0-9 are same between char and wchar_t // for ( size_t j = min.length(); j-- > 0; ) { s[minPos--] = min[j]; } } } }; } } } using namespace log4cxx::helpers::SimpleDateFormatImpl; void SimpleDateFormat::addToken(const logchar spec, const int repeat, const std::locale * locale, std::vector < PatternToken * > & pattern ) { PatternToken * token = NULL; switch ( spec ) { case 0x47: // 'G' token = ( new EraToken( repeat, locale ) ); break; case 0x79: // 'y' token = ( new YearToken( repeat ) ); break; case 0x4D: // 'M' if ( repeat <= 2 ) { token = ( new MonthToken( repeat ) ); } else if ( repeat <= 3 ) { token = ( new AbbreviatedMonthNameToken( repeat, locale ) ); } else { token = ( new FullMonthNameToken( repeat, locale ) ); } break; case 0x77: // 'w' token = ( new WeekInYearToken( repeat ) ); break; case 0x57: // 'W' token = ( new WeekInMonthToken( repeat ) ); break; case 0x44: // 'D' token = ( new DayInYearToken( repeat ) ); break; case 0x64: // 'd' token = ( new DayInMonthToken( repeat ) ); break; case 0x46: // 'F' token = ( new DayOfWeekInMonthToken( repeat ) ); break; case 0x45: // 'E' if ( repeat <= 3 ) { token = ( new AbbreviatedDayNameToken( repeat, locale ) ); } else { token = ( new FullDayNameToken( repeat, locale ) ); } break; case 0x61: // 'a' token = ( new AMPMToken( repeat, locale ) ); break; case 0x48: // 'H' token = ( new MilitaryHourToken( repeat, 0 ) ); break; case 0x6B: // 'k' token = ( new MilitaryHourToken( repeat, 1 ) ); break; case 0x4B: // 'K' token = ( new HourToken( repeat, 0 ) ); break; case 0x68: // 'h' token = ( new HourToken( repeat, 1 ) ); break; case 0x6D: // 'm' token = ( new MinuteToken( repeat ) ); break; case 0x73: // 's' token = ( new SecondToken( repeat ) ); break; case 0x53: // 'S' token = ( new MillisecondToken( repeat ) ); break; case 0x7A: // 'z' token = ( new GeneralTimeZoneToken( repeat ) ); break; case 0x5A: // 'Z' token = ( new RFC822TimeZoneToken( repeat ) ); break; default: token = ( new LiteralToken( spec, repeat ) ); } assert( token != NULL ); pattern.push_back( token ); } void SimpleDateFormat::parsePattern( const LogString & fmt, const std::locale * locale, std::vector < PatternToken * > & pattern ) { if ( !fmt.empty() ) { LogString::const_iterator iter = fmt.begin(); int repeat = 1; logchar prevChar = * iter; for ( iter++; iter != fmt.end(); iter++ ) { if ( * iter == prevChar ) { repeat++; } else { addToken( prevChar, repeat, locale, pattern ); prevChar = * iter; repeat = 1; } } addToken( prevChar, repeat, locale, pattern ); } } SimpleDateFormat::SimpleDateFormat( const LogString & fmt ) : timeZone( TimeZone::getDefault() ) { #if LOG4CXX_HAS_STD_LOCALE std::locale defaultLocale; parsePattern( fmt, & defaultLocale, pattern ); #else parsePattern( fmt, NULL, pattern ); #endif for ( PatternTokenList::iterator iter = pattern.begin(); iter != pattern.end(); iter++ ) { ( * iter )->setTimeZone( timeZone ); } } SimpleDateFormat::SimpleDateFormat( const LogString & fmt, const std::locale * locale ) : timeZone( TimeZone::getDefault() ) { parsePattern( fmt, locale, pattern ); for ( PatternTokenList::iterator iter = pattern.begin(); iter != pattern.end(); iter++ ) { ( * iter )->setTimeZone( timeZone ); } } SimpleDateFormat::~SimpleDateFormat() { for ( PatternTokenList::iterator iter = pattern.begin(); iter != pattern.end(); iter++ ) { delete * iter; } } void SimpleDateFormat::format( LogString & s, log4cxx_time_t time, Pool & p ) const { apr_time_exp_t exploded; apr_status_t stat = timeZone->explode( & exploded, time ); if ( stat == APR_SUCCESS ) { for ( PatternTokenList::const_iterator iter = pattern.begin(); iter != pattern.end(); iter++ ) { ( * iter )->format( s, exploded, p ); } } } void SimpleDateFormat::setTimeZone( const TimeZonePtr & zone ) { timeZone = zone; } apache-log4cxx-0.10.0/src/main/cpp/loggingeventpatternconverter.cpp100644 0 0 3154 10774263341 22557 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include using namespace log4cxx; using namespace log4cxx::pattern; using namespace log4cxx::spi; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(LoggingEventPatternConverter) LoggingEventPatternConverter::LoggingEventPatternConverter( const LogString& name1, const LogString& style1) : PatternConverter(name1, style1) { } void LoggingEventPatternConverter::format(const ObjectPtr& obj, LogString& output, log4cxx::helpers::Pool& p) const { LoggingEventPtr le(obj); if (le != NULL) { format(le, output, p); } } bool LoggingEventPatternConverter::handlesThrowable() const { return false; } apache-log4cxx-0.10.0/src/main/cpp/socketappenderskeleton.cpp100644 0 0 14137 10774263341 21340 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #define __STDC_CONSTANT_MACROS #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::net; SocketAppenderSkeleton::SocketAppenderSkeleton(int defaultPort, int reconnectionDelay1) : remoteHost(), address(), port(defaultPort), reconnectionDelay(reconnectionDelay1), locationInfo(false), thread() { } SocketAppenderSkeleton::SocketAppenderSkeleton(InetAddressPtr address1, int port1, int delay) : remoteHost(), address(address1), port(port1), reconnectionDelay(delay), locationInfo(false), thread() { remoteHost = this->address->getHostName(); } SocketAppenderSkeleton::SocketAppenderSkeleton(const LogString& host, int port1, int delay) : remoteHost(host), address(InetAddress::getByName(host)), port(port1), reconnectionDelay(delay), locationInfo(false), thread() { } SocketAppenderSkeleton::~SocketAppenderSkeleton() { finalize(); } void SocketAppenderSkeleton::activateOptions(Pool& p) { AppenderSkeleton::activateOptions(p); connect(p); } void SocketAppenderSkeleton::close() { synchronized sync(mutex); if (closed) return; closed = true; cleanUp(pool); thread.interrupt(); } void SocketAppenderSkeleton::connect(Pool& p) { if (address == 0) { LogLog::error(LogString(LOG4CXX_STR("No remote host is set for Appender named \"")) + name + LOG4CXX_STR("\".")); } else { cleanUp(p); try { SocketPtr socket(new Socket(address, port)); setSocket(socket, p); } catch(SocketException& e) { LogString msg = LOG4CXX_STR("Could not connect to remote log4cxx server at [") +address->getHostName()+LOG4CXX_STR("]."); if(reconnectionDelay > 0) { msg += LOG4CXX_STR(" We will try again later. "); } fireConnector(); // fire the connector thread LogLog::error(msg, e); } } } void SocketAppenderSkeleton::setOption(const LogString& option, const LogString& value) { if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("REMOTEHOST"), LOG4CXX_STR("remotehost"))) { setRemoteHost(value); } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("PORT"), LOG4CXX_STR("port"))) { setPort(OptionConverter::toInt(value, getDefaultPort())); } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("LOCATIONINFO"), LOG4CXX_STR("locationinfo"))) { setLocationInfo(OptionConverter::toBoolean(value, false)); } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("RECONNECTIONDELAY"), LOG4CXX_STR("reconnectiondelay"))) { setReconnectionDelay(OptionConverter::toInt(value, getDefaultDelay())); } else { AppenderSkeleton::setOption(option, value); } } void SocketAppenderSkeleton::fireConnector() { synchronized sync(mutex); if (thread.isActive()) { thread.run(monitor, this); } } void* LOG4CXX_THREAD_FUNC SocketAppenderSkeleton::monitor(apr_thread_t* /* thread */, void* data) { SocketAppenderSkeleton* socketAppender = (SocketAppenderSkeleton*) data; SocketPtr socket; bool isClosed = socketAppender->closed; while(!isClosed) { try { Thread::sleep(socketAppender->reconnectionDelay); LogLog::debug(LogString(LOG4CXX_STR("Attempting connection to ")) + socketAppender->address->getHostName()); socket = new Socket(socketAppender->address, socketAppender->port); Pool p; socketAppender->setSocket(socket, p); LogLog::debug(LOG4CXX_STR("Connection established. Exiting connector thread.")); return NULL; } catch(ConnectException&) { LogLog::debug(LOG4CXX_STR("Remote host ") +socketAppender->address->getHostName() +LOG4CXX_STR(" refused connection.")); } catch(IOException& e) { LogString exmsg; log4cxx::helpers::Transcoder::decode(e.what(), exmsg); LogLog::debug(((LogString) LOG4CXX_STR("Could not connect to ")) + socketAppender->address->getHostName() + LOG4CXX_STR(". Exception is ") + exmsg); } isClosed = socketAppender->closed; } LogLog::debug(LOG4CXX_STR("Exiting Connector.run() method.")); return NULL; } apache-log4cxx-0.10.0/src/main/cpp/synchronized.cpp100644 0 0 3062 10774263341 17256 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include using namespace log4cxx::helpers; using namespace log4cxx; synchronized::synchronized(const Mutex& mutex1) : mutex(mutex1.getAPRMutex()) { #if APR_HAS_THREADS apr_status_t stat = apr_thread_mutex_lock( (apr_thread_mutex_t*) this->mutex); if (stat != APR_SUCCESS) { throw MutexException(stat); } #endif } synchronized::~synchronized() { #if APR_HAS_THREADS apr_status_t stat = apr_thread_mutex_unlock( (apr_thread_mutex_t*) mutex); if (stat != APR_SUCCESS) { throw MutexException(stat); } #endif } apache-log4cxx-0.10.0/src/main/cpp/file.cpp100644 0 0 13531 10774263341 15500 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; File::File() { } template static LogString decodeLS(const S* src) { LogString dst; if (src != 0) { Transcoder::decode(src, dst); } return dst; } template static LogString decodeLS(const std::basic_string& src) { LogString dst; Transcoder::decode(src, dst); return dst; } File::File(const std::string& name1) : path(decodeLS(name1)) { } File::File(const char* name1) : path(decodeLS(name1)) { } #if LOG4CXX_WCHAR_T_API File::File(const std::wstring& name1) : path(decodeLS(name1)) { } File::File(const wchar_t* name1) : path(decodeLS(name1)) { } #endif #if LOG4CXX_UNICHAR_API File::File(const std::basic_string& name1) : path(decodeLS(name1)) { } File::File(const UniChar* name1) : path(decodeLS(name1)) { } #endif #if LOG4CXX_CFSTRING_API File::File(const CFStringRef& name1) : path(decodeLS(name1)) { } #endif File::File(const File& src) : path(src.path) { } File& File::operator=(const File& src) { if (this == &src) return *this; path.assign(src.path); return *this; } File::~File() { } LogString File::getPath() const { return path; } File& File::setPath(const LogString& newName) { path.assign(newName); return *this; } LogString File::getName() const { const logchar slashes[] = { 0x2F, 0x5C, 0 }; size_t lastSlash = path.find_last_of(slashes); if (lastSlash != LogString::npos) { return path.substr(lastSlash+1); } return path; } char* File::getPath(Pool& p) const { int style = APR_FILEPATH_ENCODING_UNKNOWN; apr_filepath_encoding(&style, p.getAPRPool()); char* retval = NULL; if (style == APR_FILEPATH_ENCODING_UTF8) { retval = Transcoder::encodeUTF8(path, p); } else { retval = Transcoder::encode(path, p); } return retval; } log4cxx_status_t File::open(apr_file_t** file, int flags, int perm, Pool& p) const { return apr_file_open(file, getPath(p), flags, perm, p.getAPRPool()); } bool File::exists(Pool& p) const { apr_finfo_t finfo; apr_status_t rv = apr_stat(&finfo, getPath(p), 0, p.getAPRPool()); return rv == APR_SUCCESS; } char* File::convertBackSlashes(char* src) { for(char* c = src; *c != 0; c++) { if(*c == '\\') { *c = '/'; } } return src; } bool File::deleteFile(Pool& p) const { apr_status_t rv = apr_file_remove(convertBackSlashes(getPath(p)), p.getAPRPool()); return rv == APR_SUCCESS; } bool File::renameTo(const File& dest, Pool& p) const { apr_status_t rv = apr_file_rename(convertBackSlashes(getPath(p)), convertBackSlashes(dest.getPath(p)), p.getAPRPool()); return rv == APR_SUCCESS; } size_t File::length(Pool& pool) const { apr_finfo_t finfo; apr_status_t rv = apr_stat(&finfo, getPath(pool), APR_FINFO_SIZE, pool.getAPRPool()); if (rv == APR_SUCCESS) { return (size_t) finfo.size; } return 0; } log4cxx_time_t File::lastModified(Pool& pool) const { apr_finfo_t finfo; apr_status_t rv = apr_stat(&finfo, getPath(pool), APR_FINFO_MTIME, pool.getAPRPool()); if (rv == APR_SUCCESS) { return finfo.mtime; } return 0; } std::vector File::list(Pool& p) const { apr_dir_t *dir; apr_finfo_t entry; std::vector filenames; apr_status_t stat = apr_dir_open(&dir, convertBackSlashes(getPath(p)), p.getAPRPool()); if(stat == APR_SUCCESS) { int style = APR_FILEPATH_ENCODING_UNKNOWN; apr_filepath_encoding(&style, p.getAPRPool()); stat = apr_dir_read(&entry, APR_FINFO_DIRENT, dir); while(stat == APR_SUCCESS) { if (entry.name != NULL) { LogString filename; if(style == APR_FILEPATH_ENCODING_UTF8) { Transcoder::decodeUTF8(entry.name, filename); } else { Transcoder::decode(entry.name, filename); } filenames.push_back(filename); } stat = apr_dir_read(&entry, APR_FINFO_DIRENT, dir); } stat = apr_dir_close(dir); } return filenames; } LogString File::getParent(Pool&) const { LogString::size_type slashPos = path.rfind(LOG4CXX_STR('/')); LogString::size_type backPos = path.rfind(LOG4CXX_STR('\\')); if (slashPos == LogString::npos) { slashPos = backPos; } else { if (backPos != LogString::npos && backPos > slashPos) { slashPos = backPos; } } LogString parent; if (slashPos != LogString::npos && slashPos > 0) { parent.assign(path, 0, slashPos); } return parent; } bool File::mkdirs(Pool& p) const { apr_status_t stat = apr_dir_make_recursive(convertBackSlashes(getPath(p)), APR_OS_DEFAULT, p.getAPRPool()); return stat == APR_SUCCESS; } apache-log4cxx-0.10.0/src/main/cpp/rootlogger.cpp100644 0 0 2676 10774263341 16734 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::spi; using namespace log4cxx::helpers; RootLogger::RootLogger(Pool& pool, const LevelPtr& level1) : Logger(pool, LOG4CXX_STR("root")) { setLevel(level1); } const LevelPtr& RootLogger::getEffectiveLevel() const { return level; } void RootLogger::setLevel(const LevelPtr& level1) { if(level1 == 0) { LogLog::error(LOG4CXX_STR("You have tried to set a null level to root.")); } else { this->level = level1; } } apache-log4cxx-0.10.0/src/main/cpp/charsetencoder.cpp100644 0 0 44433 10774263341 17557 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include #if !defined(LOG4CXX) #define LOG4CXX 1 #endif #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(CharsetEncoder) namespace log4cxx { namespace helpers { #if APR_HAS_XLATE /** * A character encoder implemented using apr_xlate. */ class APRCharsetEncoder : public CharsetEncoder { public: APRCharsetEncoder(const LogString& topage) : pool(), mutex(pool) { #if LOG4CXX_LOGCHAR_IS_WCHAR const char* frompage = "WCHAR_T"; #endif #if LOG4CXX_LOGCHAR_IS_UTF8 const char* frompage = "UTF-8"; #endif #if LOG4CXX_LOGCHAR_IS_UNICHAR const char* frompage = "UTF-16"; #endif std::string tpage(Transcoder::encodeCharsetName(topage)); apr_status_t stat = apr_xlate_open(&convset, tpage.c_str(), frompage, pool.getAPRPool()); if (stat != APR_SUCCESS) { throw IllegalArgumentException(topage); } } virtual ~APRCharsetEncoder() { } virtual log4cxx_status_t encode(const LogString& in, LogString::const_iterator& iter, ByteBuffer& out) { apr_status_t stat; size_t outbytes_left = out.remaining(); size_t initial_outbytes_left = outbytes_left; size_t position = out.position(); if (iter == in.end()) { synchronized sync(mutex); stat = apr_xlate_conv_buffer(convset, NULL, NULL, out.data() + position, &outbytes_left); } else { LogString::size_type inOffset = (iter - in.begin()); apr_size_t inbytes_left = (in.size() - inOffset) * sizeof(LogString::value_type); apr_size_t initial_inbytes_left = inbytes_left; { synchronized sync(mutex); stat = apr_xlate_conv_buffer(convset, (const char*) (in.data() + inOffset), &inbytes_left, out.data() + position, &outbytes_left); } iter += ((initial_inbytes_left - inbytes_left) / sizeof(LogString::value_type)); } out.position(out.position() + (initial_outbytes_left - outbytes_left)); return stat; } private: APRCharsetEncoder(const APRCharsetEncoder&); APRCharsetEncoder& operator=(const APRCharsetEncoder&); Pool pool; Mutex mutex; apr_xlate_t *convset; }; #endif #if LOG4CXX_LOGCHAR_IS_WCHAR && LOG4CXX_HAS_WCSTOMBS /** * A character encoder implemented using wcstombs. */ class WcstombsCharsetEncoder : public CharsetEncoder { public: WcstombsCharsetEncoder() { } /** * Converts a wchar_t to the default external multibyte encoding. */ log4cxx_status_t encode(const LogString& in, LogString::const_iterator& iter, ByteBuffer& out) { log4cxx_status_t stat = APR_SUCCESS; if (iter != in.end()) { size_t outbytes_left = out.remaining(); size_t position = out.position(); std::wstring::size_type inOffset = (iter - in.begin()); enum { BUFSIZE = 256 }; wchar_t buf[BUFSIZE]; size_t chunkSize = BUFSIZE - 1; if (chunkSize * MB_LEN_MAX > outbytes_left) { chunkSize = outbytes_left / MB_LEN_MAX; } if (chunkSize > in.length() - inOffset) { chunkSize = in.length() - inOffset; } memset(buf, 0, BUFSIZE * sizeof(wchar_t)); memcpy(buf, in.data() + inOffset, chunkSize * sizeof(wchar_t)); size_t converted = wcstombs(out.data() + position, buf, outbytes_left); if (converted == (size_t) -1) { stat = APR_BADARG; // // if unconvertable character was encountered // repeatedly halve source to get fragment that // can be converted for(chunkSize /= 2; chunkSize > 0; chunkSize /= 2) { buf[chunkSize] = 0; converted = wcstombs(out.data() + position, buf, outbytes_left); if (converted != (size_t) -1) { iter += chunkSize; out.position(out.position() + converted); break; } } } else { iter += chunkSize; out.position(out.position() + converted); } } return stat; } private: WcstombsCharsetEncoder(const WcstombsCharsetEncoder&); WcstombsCharsetEncoder& operator=(const WcstombsCharsetEncoder&); }; #endif /** * Encodes a LogString to US-ASCII. */ class USASCIICharsetEncoder : public CharsetEncoder { public: USASCIICharsetEncoder() { } virtual log4cxx_status_t encode(const LogString& in, LogString::const_iterator& iter, ByteBuffer& out) { log4cxx_status_t stat = APR_SUCCESS; if (iter != in.end()) { while(out.remaining() > 0 && iter != in.end()) { LogString::const_iterator prev(iter); unsigned int sv = Transcoder::decode(in, iter); if (sv <= 0x7F) { out.put((char) sv); } else { iter = prev; stat = APR_BADARG; break; } } } return stat; } private: USASCIICharsetEncoder(const USASCIICharsetEncoder&); USASCIICharsetEncoder& operator=(const USASCIICharsetEncoder&); }; /** * Converts a LogString to ISO-8859-1. */ class ISOLatinCharsetEncoder : public CharsetEncoder { public: ISOLatinCharsetEncoder() { } virtual log4cxx_status_t encode(const LogString& in, LogString::const_iterator& iter, ByteBuffer& out) { log4cxx_status_t stat = APR_SUCCESS; if (iter != in.end()) { while(out.remaining() > 0 && iter != in.end()) { LogString::const_iterator prev(iter); unsigned int sv = Transcoder::decode(in, iter); if (sv <= 0xFF) { out.put((char) sv); } else { iter = prev; stat = APR_BADARG; break; } } } return stat; } private: ISOLatinCharsetEncoder(const ISOLatinCharsetEncoder&); ISOLatinCharsetEncoder& operator=(const ISOLatinCharsetEncoder&); }; /** * Encodes a LogString to a byte array when the encodings are identical. */ class TrivialCharsetEncoder : public CharsetEncoder { public: TrivialCharsetEncoder() { } virtual log4cxx_status_t encode(const LogString& in, LogString::const_iterator& iter, ByteBuffer& out) { if(iter != in.end()) { size_t requested = in.length() - (iter - in.begin()); if (requested > out.remaining()/sizeof(logchar)) { requested = out.remaining()/sizeof(logchar); } memcpy(out.current(), (const char*) in.data() + (iter - in.begin()), requested * sizeof(logchar)); iter += requested; out.position(out.position() + requested * sizeof(logchar)); } return APR_SUCCESS; } private: TrivialCharsetEncoder(const TrivialCharsetEncoder&); TrivialCharsetEncoder& operator=(const TrivialCharsetEncoder&); }; #if LOG4CXX_LOGCHAR_IS_UTF8 typedef TrivialCharsetEncoder UTF8CharsetEncoder; #else /** * Converts a LogString to UTF-8. */ class UTF8CharsetEncoder : public CharsetEncoder { public: UTF8CharsetEncoder() { } virtual log4cxx_status_t encode(const LogString& in, LogString::const_iterator& iter, ByteBuffer& out) { while(iter != in.end() && out.remaining() >= 8) { unsigned int sv = Transcoder::decode(in, iter); if (sv == 0xFFFF) { return APR_BADARG; } Transcoder::encodeUTF8(sv, out); } return APR_SUCCESS; } private: UTF8CharsetEncoder(const UTF8CharsetEncoder&); UTF8CharsetEncoder& operator=(const UTF8CharsetEncoder&); }; #endif /** * Encodes a LogString to UTF16-BE. */ class UTF16BECharsetEncoder : public CharsetEncoder { public: UTF16BECharsetEncoder() { } virtual log4cxx_status_t encode(const LogString& in, LogString::const_iterator& iter, ByteBuffer& out) { while(iter != in.end() && out.remaining() >= 4) { unsigned int sv = Transcoder::decode(in, iter); if (sv == 0xFFFF) { return APR_BADARG; } Transcoder::encodeUTF16BE(sv, out); } return APR_SUCCESS; } private: UTF16BECharsetEncoder(const UTF16BECharsetEncoder&); UTF16BECharsetEncoder& operator=(const UTF16BECharsetEncoder&); }; /** * Encodes a LogString to UTF16-LE. */ class UTF16LECharsetEncoder : public CharsetEncoder { public: UTF16LECharsetEncoder() { } virtual log4cxx_status_t encode(const LogString& in, LogString::const_iterator& iter, ByteBuffer& out) { while(iter != in.end() && out.remaining() >= 4) { unsigned int sv = Transcoder::decode(in, iter); if (sv == 0xFFFF) { return APR_BADARG; } Transcoder::encodeUTF16LE(sv, out); } return APR_SUCCESS; } private: UTF16LECharsetEncoder(const UTF16LECharsetEncoder&); UTF16LECharsetEncoder& operator=(const UTF16LECharsetEncoder&); }; /** * Charset encoder that uses an embedded CharsetEncoder consistent * with current locale settings. */ class LocaleCharsetEncoder : public CharsetEncoder { public: LocaleCharsetEncoder() : pool(), mutex(pool), encoder(), encoding() { } virtual ~LocaleCharsetEncoder() { } virtual log4cxx_status_t encode(const LogString& in, LogString::const_iterator& iter, ByteBuffer& out) { #if !LOG4CXX_CHARSET_EBCDIC char* current = out.current(); size_t remain = out.remaining(); for(; iter != in.end() && ((unsigned int) *iter) < 0x80 && remain > 0; iter++, remain--, current++) { *current = *iter; } out.position(current - out.data()); #endif if (iter != in.end() && out.remaining() > 0) { Pool subpool; const char* enc = apr_os_locale_encoding(subpool.getAPRPool()); { synchronized sync(mutex); if (enc == 0) { if (encoder == 0) { encoding = "C"; encoder = new USASCIICharsetEncoder(); } } else if (encoding != enc) { encoding = enc; LogString ename; Transcoder::decode(encoding, ename); try { encoder = CharsetEncoder::getEncoder(ename); } catch(IllegalArgumentException ex) { encoder = new USASCIICharsetEncoder(); } } } return encoder->encode(in, iter, out); } return APR_SUCCESS; } private: LocaleCharsetEncoder(const LocaleCharsetEncoder&); LocaleCharsetEncoder& operator=(const LocaleCharsetEncoder&); Pool pool; Mutex mutex; CharsetEncoderPtr encoder; std::string encoding; }; } // namespace helpers } //namespace log4cxx CharsetEncoder::CharsetEncoder() { } CharsetEncoder::~CharsetEncoder() { } CharsetEncoderPtr CharsetEncoder::getDefaultEncoder() { static CharsetEncoderPtr encoder(createDefaultEncoder()); // // if invoked after static variable destruction // (if logging is called in the destructor of a static object) // then create a new decoder. // if (encoder == 0) { return createDefaultEncoder(); } return encoder; } CharsetEncoder* CharsetEncoder::createDefaultEncoder() { #if LOG4CXX_CHARSET_UTF8 return new UTF8CharsetEncoder(); #elif LOG4CXX_CHARSET_ISO88591 return new ISOLatinCharsetEncoder(); #elif LOG4CXX_CHARSET_USASCII return new USASCIICharsetEncoder(); #elif LOG4CXX_LOGCHAR_IS_WCHAR && LOG4CXX_HAS_WCSTOMBS return new WcstombsCharsetEncoder(); #else return new LocaleCharsetEncoder(); #endif } CharsetEncoderPtr CharsetEncoder::getUTF8Encoder() { return new UTF8CharsetEncoder(); } CharsetEncoderPtr CharsetEncoder::getEncoder(const LogString& charset) { if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF-8"), LOG4CXX_STR("utf-8"))) { return new UTF8CharsetEncoder(); } else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("C"), LOG4CXX_STR("c")) || charset == LOG4CXX_STR("646") || StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("US-ASCII"), LOG4CXX_STR("us-ascii")) || StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO646-US"), LOG4CXX_STR("iso646-US")) || StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ANSI_X3.4-1968"), LOG4CXX_STR("ansi_x3.4-1968"))) { return new USASCIICharsetEncoder(); } else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO-8859-1"), LOG4CXX_STR("iso-8859-1")) || StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO-LATIN-1"), LOG4CXX_STR("iso-latin-1"))) { return new ISOLatinCharsetEncoder(); } else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF-16BE"), LOG4CXX_STR("utf-16be")) || StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF-16"), LOG4CXX_STR("utf-16"))) { return new UTF16BECharsetEncoder(); } else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF-16LE"), LOG4CXX_STR("utf-16le"))) { return new UTF16LECharsetEncoder(); } #if APR_HAS_XLATE || !defined(_WIN32) return new APRCharsetEncoder(charset); #else throw IllegalArgumentException(charset); #endif } void CharsetEncoder::reset() { } void CharsetEncoder::flush(ByteBuffer& /* out */ ) { } void CharsetEncoder::encode(CharsetEncoderPtr& enc, const LogString& src, LogString::const_iterator& iter, ByteBuffer& dst) { log4cxx_status_t stat = enc->encode(src, iter, dst); if (stat != APR_SUCCESS && iter != src.end()) { #if LOG4CXX_LOGCHAR_IS_WCHAR || LOG4CXX_LOGCHAR_IS_UNICHAR iter++; #elif LOG4CXX_LOGCHAR_IS_UTF8 // advance past this character and all continuation characters while((*(++iter) & 0xC0) == 0x80); #else #error logchar is unrecognized #endif dst.put(Transcoder::LOSSCHAR); } } apache-log4cxx-0.10.0/src/main/cpp/threadcxx.cpp100644 0 0 11012 10774263341 16543 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include using namespace log4cxx::helpers; using namespace log4cxx; Thread::Thread() : thread(NULL), alive(0), interruptedStatus(0) { } Thread::~Thread() { join(); } Thread::LaunchPackage::LaunchPackage(Thread* t, Runnable r, void* d) : thread(t), runnable(r), data(d) { } Thread* Thread::LaunchPackage::getThread() const { return thread; } Runnable Thread::LaunchPackage::getRunnable() const { return runnable; } void* Thread::LaunchPackage::getData() const { return data; } void* Thread::LaunchPackage::operator new(size_t sz, Pool& p) { return p.palloc(sz); } void Thread::LaunchPackage::operator delete(void* mem, Pool& p) { } void Thread::run(Runnable start, void* data) { #if APR_HAS_THREADS // // if attempting a second run method on the same Thread object // throw an exception // if (thread != NULL) { throw IllegalStateException(); } apr_threadattr_t* attrs; apr_status_t stat = apr_threadattr_create(&attrs, p.getAPRPool()); if (stat != APR_SUCCESS) { throw ThreadException(stat); } // create LaunchPackage on the thread's memory pool LaunchPackage* package = new(p) LaunchPackage(this, start, data); stat = apr_thread_create(&thread, attrs, launcher, package, p.getAPRPool()); if (stat != APR_SUCCESS) { throw ThreadException(stat); } #else throw ThreadException(LOG4CXX_STR("APR_HAS_THREADS is not true")); #endif } Thread::LaunchStatus::LaunchStatus(volatile unsigned int* p) : alive(p) { apr_atomic_set32(alive, 0xFFFFFFFF); } Thread::LaunchStatus::~LaunchStatus() { apr_atomic_set32(alive, 0); } #if APR_HAS_THREADS void* LOG4CXX_THREAD_FUNC Thread::launcher(apr_thread_t* thread, void* data) { LaunchPackage* package = (LaunchPackage*) data; ThreadLocal& tls = getThreadLocal(); tls.set(package->getThread()); LaunchStatus alive(&package->getThread()->alive); void* retval = (package->getRunnable())(thread, package->getData()); apr_thread_exit(thread, 0); return retval; } #endif void Thread::join() { #if APR_HAS_THREADS if (thread != NULL) { apr_status_t startStat; apr_status_t stat = apr_thread_join(&startStat, thread); thread = NULL; if (stat != APR_SUCCESS) { throw ThreadException(stat); } } #endif } ThreadLocal& Thread::getThreadLocal() { static ThreadLocal tls; return tls; } void Thread::currentThreadInterrupt() { #if APR_HAS_THREADS void* tls = getThreadLocal().get(); if (tls != 0) { ((Thread*) tls)->interrupt(); } #endif } void Thread::interrupt() { apr_atomic_set32(&interruptedStatus, 0xFFFFFFFF); } bool Thread::interrupted() { #if APR_HAS_THREADS void* tls = getThreadLocal().get(); if (tls != 0) { return apr_atomic_xchg32(&(((Thread*) tls)->interruptedStatus), 0) != 0; } #endif return false; } bool Thread::isCurrentThread() const { #if APR_HAS_THREADS const void* tls = getThreadLocal().get(); return (tls == this); #else return true; #endif } bool Thread::isAlive() { return apr_atomic_read32(&alive) != 0; } void Thread::ending() { apr_atomic_set32(&alive, 0); } void Thread::sleep(int duration) { #if APR_HAS_THREADS if(interrupted()) { throw InterruptedException(); } #endif if (duration > 0) { apr_sleep(duration*1000); } } apache-log4cxx-0.10.0/src/main/cpp/integer.cpp100644 0 0 2055 10774263341 16175 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include using namespace log4cxx; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(Integer) Integer::Integer() : val(0){ } Integer::Integer(int val1) : val(val1) { } Integer::~Integer() { } apache-log4cxx-0.10.0/src/main/cpp/appenderskeleton.cpp100644 0 0 10710 10774263341 20120 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::spi; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(AppenderSkeleton) AppenderSkeleton::AppenderSkeleton() : layout(), name(), threshold(Level::getAll()), errorHandler(new OnlyOnceErrorHandler()), headFilter(), tailFilter(), pool(), mutex(pool) { synchronized sync(mutex); closed = false; } AppenderSkeleton::AppenderSkeleton(const LayoutPtr& layout1) : layout(layout1), name(), threshold(Level::getAll()), errorHandler(new OnlyOnceErrorHandler()), headFilter(), tailFilter(), pool(), mutex(pool) { synchronized sync(mutex); closed = false; } void AppenderSkeleton::addRef() const { ObjectImpl::addRef(); } void AppenderSkeleton::releaseRef() const { ObjectImpl::releaseRef(); } void AppenderSkeleton::finalize() { // An appender might be closed then garbage collected. There is no // point in closing twice. if(closed) { return; } close(); } void AppenderSkeleton::addFilter(const spi::FilterPtr& newFilter) { synchronized sync(mutex); if(headFilter == 0) { headFilter = tailFilter = newFilter; } else { tailFilter->setNext(newFilter); tailFilter = newFilter; } } void AppenderSkeleton::clearFilters() { synchronized sync(mutex); headFilter = tailFilter = 0; } bool AppenderSkeleton::isAsSevereAsThreshold(const LevelPtr& level) const { return ((level == 0) || level->isGreaterOrEqual(threshold)); } void AppenderSkeleton::doAppend(const spi::LoggingEventPtr& event, Pool& pool1) { synchronized sync(mutex); if(closed) { LogLog::error(((LogString) LOG4CXX_STR("Attempted to append to closed appender named [")) + name + LOG4CXX_STR("].")); return; } if(!isAsSevereAsThreshold(event->getLevel())) { return; } FilterPtr f = headFilter; while(f != 0) { switch(f->decide(event)) { case Filter::DENY: return; case Filter::ACCEPT: f = 0; break; case Filter::NEUTRAL: f = f->getNext(); } } append(event, pool1); } void AppenderSkeleton::setErrorHandler(const spi::ErrorHandlerPtr& errorHandler1) { synchronized sync(mutex); if(errorHandler1 == 0) { // We do not throw exception here since the cause is probably a // bad config file. LogLog::warn(LOG4CXX_STR("You have tried to set a null error-handler.")); } else { this->errorHandler = errorHandler1; } } void AppenderSkeleton::setThreshold(const LevelPtr& threshold1) { synchronized sync(mutex); this->threshold = threshold1; } void AppenderSkeleton::setOption(const LogString& option, const LogString& value) { if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("THRESHOLD"), LOG4CXX_STR("threshold"))) { setThreshold(Level::toLevelLS(value)); } } apache-log4cxx-0.10.0/src/main/cpp/fileappender.cpp100644 0 0 21542 10774263341 17220 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::spi; IMPLEMENT_LOG4CXX_OBJECT(FileAppender) FileAppender::FileAppender() { synchronized sync(mutex); fileAppend = true; bufferedIO = false; bufferSize = 8 * 1024; } FileAppender::FileAppender(const LayoutPtr& layout1, const LogString& fileName1, bool append1, bool bufferedIO1, int bufferSize1) : WriterAppender(layout1) { { synchronized sync(mutex); fileAppend = append1; fileName = fileName1; bufferedIO = bufferedIO1; bufferSize = bufferSize1; } Pool p; activateOptions(p); } FileAppender::FileAppender(const LayoutPtr& layout1, const LogString& fileName1, bool append1) : WriterAppender(layout1) { { synchronized sync(mutex); fileAppend = append1; fileName = fileName1; bufferedIO = false; bufferSize = 8 * 1024; } Pool p; activateOptions(p); } FileAppender::FileAppender(const LayoutPtr& layout1, const LogString& fileName1) : WriterAppender(layout1) { { synchronized sync(mutex); fileAppend = true; fileName = fileName1; bufferedIO = false; bufferSize = 8 * 1024; } Pool p; activateOptions(p); } FileAppender::~FileAppender() { finalize(); } void FileAppender::setAppend(bool fileAppend1) { synchronized sync(mutex); this->fileAppend = fileAppend1; } void FileAppender::setFile(const LogString& file) { synchronized sync(mutex); fileName = file; } void FileAppender::setBufferedIO(bool bufferedIO1) { synchronized sync(mutex); this->bufferedIO = bufferedIO1; if(bufferedIO1) { setImmediateFlush(false); } } void FileAppender::setOption(const LogString& option, const LogString& value) { if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("FILE"), LOG4CXX_STR("file")) || StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("FILENAME"), LOG4CXX_STR("filename"))) { synchronized sync(mutex); fileName = stripDuplicateBackslashes(value); } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("APPEND"), LOG4CXX_STR("append"))) { synchronized sync(mutex); fileAppend = OptionConverter::toBoolean(value, true); } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("BUFFEREDIO"), LOG4CXX_STR("bufferedio"))) { synchronized sync(mutex); bufferedIO = OptionConverter::toBoolean(value, true); } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("IMMEDIATEFLUSH"), LOG4CXX_STR("immediateflush"))) { synchronized sync(mutex); bufferedIO = !OptionConverter::toBoolean(value, false); } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("BUFFERSIZE"), LOG4CXX_STR("buffersize"))) { synchronized sync(mutex); bufferSize = OptionConverter::toFileSize(value, 8*1024); } else { WriterAppender::setOption(option, value); } } void FileAppender::activateOptions(Pool& p) { synchronized sync(mutex); int errors = 0; if (!fileName.empty()) { try { setFile(fileName, fileAppend, bufferedIO, bufferSize, p); } catch (IOException& e) { errors++; LogString msg(LOG4CXX_STR("setFile(")); msg.append(fileName); msg.append(1, (logchar) 0x2C /* ',' */); StringHelper::toString(fileAppend, msg); msg.append(LOG4CXX_STR(") call failed.")); LogLog::error(msg, e); } } else { errors++; LogLog::error(LogString(LOG4CXX_STR("File option not set for appender [")) + name + LOG4CXX_STR("].")); LogLog::warn(LOG4CXX_STR("Are you using FileAppender instead of ConsoleAppender?")); } if(errors == 0) { WriterAppender::activateOptions(p); } } /** * Replaces double backslashes (except the leading doubles of UNC's) * with single backslashes for compatibility with existing path * specifications that were working around use of * OptionConverter::convertSpecialChars in XML configuration files. * * @param src source string * @return modified string * * */ LogString FileAppender::stripDuplicateBackslashes(const LogString& src) { logchar backslash = 0x5C; // '\\' LogString::size_type i = src.find_last_of(backslash); if (i != LogString::npos) { LogString tmp(src); for(; i != LogString::npos && i > 0; i = tmp.find_last_of(backslash, i - 1)) { // // if the preceding character is a slash then // remove the preceding character // and continue processing if (tmp[i - 1] == backslash) { tmp.erase(i, 1); i--; if (i == 0) break; } else { // // if there an odd number of slashes // the string wasn't trying to work around // OptionConverter::convertSpecialChars return src; } } return tmp; } return src; } /**

Sets and opens the file where the log output will go. The specified file must be writable.

If there was already an opened file, then the previous file is closed first.

Do not use this method directly. To configure a FileAppender or one of its subclasses, set its properties one by one and then call activateOptions. @param filename The path to the log file. @param append If true will append to fileName. Otherwise will truncate fileName. @param bufferedIO @param bufferSize @throws IOException */ void FileAppender::setFile( const LogString& filename, bool append1, bool bufferedIO1, size_t bufferSize1, Pool& p) { synchronized sync(mutex); // It does not make sense to have immediate flush and bufferedIO. if (bufferedIO1) { setImmediateFlush(false); } closeWriter(); bool writeBOM = false; if(StringHelper::equalsIgnoreCase(getEncoding(), LOG4CXX_STR("utf-16"), LOG4CXX_STR("UTF-16"))) { // // don't want to write a byte order mark if the file exists // if (append1) { File outFile; outFile.setPath(filename); writeBOM = !outFile.exists(p); } else { writeBOM = true; } } OutputStreamPtr outStream; try { outStream = new FileOutputStream(filename, append1); } catch(IOException& ex) { LogString parentName = File().setPath(filename).getParent(p); if (!parentName.empty()) { File parentDir; parentDir.setPath(parentName); if(!parentDir.exists(p) && parentDir.mkdirs(p)) { outStream = new FileOutputStream(filename, append1); } else { throw ex; } } else { throw ex; } } // // if a new file and UTF-16, then write a BOM // if (writeBOM) { char bom[] = { (char) 0xFE, (char) 0xFF }; ByteBuffer buf(bom, 2); outStream->write(buf, p); } WriterPtr newWriter(createWriter(outStream)); if (bufferedIO1) { newWriter = new BufferedWriter(newWriter, bufferSize1); } setWriter(newWriter); this->fileAppend = append1; this->bufferedIO = bufferedIO1; this->fileName = filename; this->bufferSize = bufferSize1; writeHeader(p); } apache-log4cxx-0.10.0/src/main/cpp/reader.cpp100644 0 0 1731 10774263341 16002 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(Reader) Reader::Reader() { } Reader::~Reader() { } apache-log4cxx-0.10.0/src/main/cpp/smtpappender.cpp100644 0 0 50175 10774263341 17270 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include #include #include #if !defined(LOG4CXX) #define LOG4CXX 1 #endif #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::net; using namespace log4cxx::spi; #if LOG4CXX_HAVE_LIBESMTP #include #include #endif namespace log4cxx { namespace net { // // The following two classes implement an C++ SMTP wrapper over libesmtp. // The same signatures could be implemented over different SMTP implementations // or libesmtp could be combined with libgmime to enable support for non-ASCII // content. #if LOG4CXX_HAVE_LIBESMTP /** * SMTP Session. */ class SMTPSession { public: /** * Create new instance. */ SMTPSession(const LogString& smtpHost, int smtpPort, const LogString& smtpUsername, const LogString& smtpPassword, Pool& p) : session(0), authctx(0), user(toAscii(smtpUsername, p)), pwd(toAscii(smtpPassword, p)) { auth_client_init(); session = smtp_create_session(); if (session == 0) { throw Exception("Could not initialize session."); } std::string host(toAscii(smtpHost, p)); host.append(1, ':'); host.append(p.itoa(smtpPort)); smtp_set_server(session, host.c_str()); authctx = auth_create_context(); auth_set_mechanism_flags(authctx, AUTH_PLUGIN_PLAIN, 0); auth_set_interact_cb(authctx, authinteract, (void*) this); if (*user || *pwd) { smtp_auth_set_context(session, authctx); } } ~SMTPSession() { smtp_destroy_session(session); auth_destroy_context(authctx); } void send(Pool& p) { int status = smtp_start_session(session); if (!status) { size_t bufSize = 128; char* buf = p.pstralloc(bufSize); smtp_strerror(smtp_errno(), buf, bufSize); throw Exception(buf); } } operator smtp_session_t() { return session; } static char* toAscii(const LogString& str, Pool& p) { char* buf = p.pstralloc(str.length() + 1); char* current = buf; for(LogString::const_iterator iter = str.begin(); iter != str.end(); iter++) { unsigned int c = *iter; if (c > 0x7F) { c = '?'; } *current++ = c; } *current = 0; return buf; } private: SMTPSession(SMTPSession&); SMTPSession& operator=(SMTPSession&); smtp_session_t session; auth_context_t authctx; char* user; char* pwd; /** * This method is called if the SMTP server requests authentication. */ static int authinteract(auth_client_request_t request, char **result, int fields, void *arg) { SMTPSession* pThis = (SMTPSession*) arg; for (int i = 0; i < fields; i++) { int flag = request[i].flags & 0x07; if (flag == AUTH_USER) { result[i] = pThis->user; } else if(flag == AUTH_PASS) { result[i] = pThis->pwd; } } return 1; } }; /** * A message in an SMTP session. */ class SMTPMessage { public: SMTPMessage(SMTPSession& session, const LogString& from, const LogString& to, const LogString& cc, const LogString& bcc, const LogString& subject, const LogString msg, Pool& p) { message = smtp_add_message(session); body = current = toMessage(msg, p); smtp_set_reverse_path(message, toAscii(from, p)); addRecipients(to, "To", p); addRecipients(cc, "Cc", p); addRecipients(bcc, "Bcc", p); if (!subject.empty()) { smtp_set_header(message, "Subject", toAscii(subject, p)); } smtp_set_messagecb(message, messagecb, this); } ~SMTPMessage() { } private: SMTPMessage(const SMTPMessage&); SMTPMessage& operator=(const SMTPMessage&); smtp_message_t message; const char* body; const char* current; void addRecipients(const LogString& addresses, const char* field, Pool& p) { if (!addresses.empty()) { char* str = p.pstrdup(toAscii(addresses, p));; smtp_set_header(message, field, NULL, str); char* last; for(char* next = apr_strtok(str, ",", &last); next; next = apr_strtok(NULL, ",", &last)) { smtp_add_recipient(message, next); } } } static const char* toAscii(const LogString& str, Pool& p) { return SMTPSession::toAscii(str, p); } /** * Message bodies can only contain US-ASCII characters and * CR and LFs can only occur together. */ static const char* toMessage(const LogString& str, Pool& p) { // // count the number of carriage returns and line feeds // int feedCount = 0; for(size_t pos = str.find_first_of(LOG4CXX_STR("\n\r")); pos != LogString::npos; pos = str.find_first_of(LOG4CXX_STR("\n\r"), ++pos)) { feedCount++; } // // allocate sufficient space for the modified message char* retval = p.pstralloc(str.length() + feedCount + 1); char* current = retval; char* startOfLine = current; // // iterator through message // for(LogString::const_iterator iter = str.begin(); iter != str.end(); iter++) { unsigned int c = *iter; // // replace non-ASCII characters with '?' // if (c > 0x7F) { *current++ = 0x3F; // '?' } else if (c == 0x0A || c == 0x0D) { // // replace any stray CR or LF with CRLF // reset start of line *current++ = 0x0D; *current++ = 0x0A; startOfLine = current; LogString::const_iterator next = iter + 1; if (next != str.end() && (*next == 0x0A || *next == 0x0D)) { iter++; } } else { // // truncate any lines to 1000 characters (including CRLF) // as required by RFC. if (current < startOfLine + 998) { *current++ = (char) c; } } } *current = 0; return retval; } /** * Callback for message. */ static const char* messagecb(void** ctx, int* len, void* arg) { *ctx = 0; const char* retval = 0; SMTPMessage* pThis = (SMTPMessage*) arg; // rewind message if (len == NULL) { pThis->current = pThis->body; } else { if (pThis->current) { *len = strlen(pThis->current); } retval = pThis->current; pThis->current = 0; } return retval; } }; #endif class LOG4CXX_EXPORT DefaultEvaluator : public virtual spi::TriggeringEventEvaluator, public virtual helpers::ObjectImpl { public: DECLARE_LOG4CXX_OBJECT(DefaultEvaluator) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(DefaultEvaluator) LOG4CXX_CAST_ENTRY(spi::TriggeringEventEvaluator) END_LOG4CXX_CAST_MAP() DefaultEvaluator(); /** Is this event the e-mail triggering event?

This method returns true, if the event level has ERROR level or higher. Otherwise it returns false. */ virtual bool isTriggeringEvent(const spi::LoggingEventPtr& event); private: DefaultEvaluator(const DefaultEvaluator&); DefaultEvaluator& operator=(const DefaultEvaluator&); }; // class DefaultEvaluator } } IMPLEMENT_LOG4CXX_OBJECT(DefaultEvaluator) IMPLEMENT_LOG4CXX_OBJECT(SMTPAppender) DefaultEvaluator::DefaultEvaluator() { } bool DefaultEvaluator::isTriggeringEvent(const spi::LoggingEventPtr& event) { return event->getLevel()->isGreaterOrEqual(Level::getError()); } SMTPAppender::SMTPAppender() : smtpPort(25), bufferSize(512), locationInfo(false), cb(bufferSize), evaluator(new DefaultEvaluator()) { } /** Use evaluator passed as parameter as the TriggeringEventEvaluator for this SMTPAppender. */ SMTPAppender::SMTPAppender(spi::TriggeringEventEvaluatorPtr evaluator) : smtpPort(25), bufferSize(512), locationInfo(false), cb(bufferSize), evaluator(evaluator) { } SMTPAppender::~SMTPAppender() { finalize(); } bool SMTPAppender::requiresLayout() const { return true; } LogString SMTPAppender::getFrom() const { return from; } void SMTPAppender::setFrom(const LogString& newVal) { from = newVal; } LogString SMTPAppender::getSubject() const { return subject; } void SMTPAppender::setSubject(const LogString& newVal) { subject = newVal; } LogString SMTPAppender::getSMTPHost() const { return smtpHost; } void SMTPAppender::setSMTPHost(const LogString& newVal) { smtpHost = newVal; } int SMTPAppender::getSMTPPort() const { return smtpPort; } void SMTPAppender::setSMTPPort(int newVal) { smtpPort = newVal; } bool SMTPAppender::getLocationInfo() const { return locationInfo; } void SMTPAppender::setLocationInfo(bool newVal) { locationInfo = newVal; } LogString SMTPAppender::getSMTPUsername() const { return smtpUsername; } void SMTPAppender::setSMTPUsername(const LogString& newVal) { smtpUsername = newVal; } LogString SMTPAppender::getSMTPPassword() const { return smtpPassword; } void SMTPAppender::setSMTPPassword(const LogString& newVal) { smtpPassword = newVal; } void SMTPAppender::setOption(const LogString& option, const LogString& value) { if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("BUFFERSIZE"), LOG4CXX_STR("buffersize"))) { setBufferSize(OptionConverter::toInt(value, 512)); } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("EVALUATORCLASS"), LOG4CXX_STR("evaluatorclass"))) { setEvaluatorClass(value); } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("FROM"), LOG4CXX_STR("from"))) { setFrom(value); } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("SMTPHOST"), LOG4CXX_STR("smtphost"))) { setSMTPHost(value); } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("SMTPUSERNAME"), LOG4CXX_STR("smtpusername"))) { setSMTPUsername(value); } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("SMTPPASSWORD"), LOG4CXX_STR("smtppassword"))) { setSMTPPassword(value); } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("SUBJECT"), LOG4CXX_STR("subject"))) { setSubject(value); } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("TO"), LOG4CXX_STR("to"))) { setTo(value); } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("CC"), LOG4CXX_STR("cc"))) { setCc(value); } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("BCC"), LOG4CXX_STR("bcc"))) { setBcc(value); } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("SMTPPORT"), LOG4CXX_STR("smtpport"))) { setSMTPPort(OptionConverter::toInt(value, 25)); } else { AppenderSkeleton::setOption(option, value); } } bool SMTPAppender::asciiCheck(const LogString& value, const LogString& field) { for(LogString::const_iterator iter = value.begin(); iter != value.end(); iter++) { if (0x7F < (unsigned int) *iter) { LogLog::warn(field + LOG4CXX_STR(" contains non-ASCII character")); return false; } } return true; } /** Activate the specified options, such as the smtp host, the recipient, from, etc. */ void SMTPAppender::activateOptions(Pool& p) { bool activate = true; if (layout == 0) { LogLog::error(LOG4CXX_STR("No layout set for appender named [") +name+ LOG4CXX_STR("].")); activate = false; } if(evaluator == 0) { LogLog::error(LOG4CXX_STR("No TriggeringEventEvaluator is set for appender [")+ name+LOG4CXX_STR("].")); activate = false; } if(smtpHost.empty()) { LogLog::error(LOG4CXX_STR("No smtpHost is set for appender [")+ name+LOG4CXX_STR("].")); activate = false; } if(to.empty() && cc.empty() && bcc.empty()) { LogLog::error(LOG4CXX_STR("No recipient address is set for appender [")+ name+LOG4CXX_STR("].")); activate = false; } activate &= asciiCheck(to, LOG4CXX_STR("to")); activate &= asciiCheck(cc, LOG4CXX_STR("cc")); activate &= asciiCheck(bcc, LOG4CXX_STR("bcc")); activate &= asciiCheck(from, LOG4CXX_STR("from")); #if !LOG4CXX_HAS_LIBESMTP LogLog::error(LOG4CXX_STR("log4cxx built without SMTP support.")); activate = false; #endif if (activate) { AppenderSkeleton::activateOptions(p); } } /** Perform SMTPAppender specific appending actions, mainly adding the event to a cyclic buffer and checking if the event triggers an e-mail to be sent. */ void SMTPAppender::append(const spi::LoggingEventPtr& event, Pool& p) { if(!checkEntryConditions()) { return; } LogString ndc; event->getNDC(ndc); event->getThreadName(); // Get a copy of this thread's MDC. event->getMDCCopy(); cb.add(event); if(evaluator->isTriggeringEvent(event)) { sendBuffer(p); } } /** This method determines if there is a sense in attempting to append.

It checks whether there is a set output target and also if there is a set layout. If these checks fail, then the boolean value false is returned. */ bool SMTPAppender::checkEntryConditions() { #if LOG4CXX_HAVE_LIBESMTP if((to.empty() && cc.empty() && bcc.empty()) || from.empty() || smtpHost.empty()) { errorHandler->error(LOG4CXX_STR("Message not configured.")); return false; } if(evaluator == 0) { errorHandler->error(LOG4CXX_STR("No TriggeringEventEvaluator is set for appender [")+ name+ LOG4CXX_STR("].")); return false; } if(layout == 0) { errorHandler->error(LOG4CXX_STR("No layout set for appender named [")+name+LOG4CXX_STR("].")); return false; } return true; #else return false; #endif } void SMTPAppender::close() { this->closed = true; } LogString SMTPAppender::getTo() const{ return to; } void SMTPAppender::setTo(const LogString& addressStr) { to = addressStr; } LogString SMTPAppender::getCc() const{ return cc; } void SMTPAppender::setCc(const LogString& addressStr) { cc = addressStr; } LogString SMTPAppender::getBcc() const{ return bcc; } void SMTPAppender::setBcc(const LogString& addressStr) { bcc = addressStr; } /** Send the contents of the cyclic buffer as an e-mail message. */ void SMTPAppender::sendBuffer(Pool& p) { #if LOG4CXX_HAS_LIBESMTP // Note: this code already owns the monitor for this // appender. This frees us from needing to synchronize on 'cb'. try { LogString sbuf; layout->appendHeader(sbuf, p); int len = cb.length(); for(int i = 0; i < len; i++) { LoggingEventPtr event = cb.get(); layout->format(sbuf, event, p); } layout->appendFooter(sbuf, p); SMTPSession session(smtpHost, smtpPort, smtpUsername, smtpPassword, p); SMTPMessage message(session, from, to, cc, bcc, subject, sbuf, p); session.send(p); } catch(std::exception& e) { LogLog::error(LOG4CXX_STR("Error occured while sending e-mail notification."), e); } #endif } /** Returns value of the EvaluatorClass option. */ LogString SMTPAppender::getEvaluatorClass() { return evaluator == 0 ? LogString() : evaluator->getClass().getName(); } log4cxx::spi::TriggeringEventEvaluatorPtr SMTPAppender::getEvaluator() const { return evaluator; } void SMTPAppender::setEvaluator(log4cxx::spi::TriggeringEventEvaluatorPtr& trigger) { evaluator = trigger; } /** The BufferSize option takes a positive integer representing the maximum number of logging events to collect in a cyclic buffer. When the BufferSize is reached, oldest events are deleted as new events are added to the buffer. By default the size of the cyclic buffer is 512 events. */ void SMTPAppender::setBufferSize(int bufferSize) { this->bufferSize = bufferSize; cb.resize(bufferSize); } /** The EvaluatorClass option takes a string value representing the name of the class implementing the {@link TriggeringEventEvaluator} interface. A corresponding object will be instantiated and assigned as the triggering event evaluator for the SMTPAppender. */ void SMTPAppender::setEvaluatorClass(const LogString& value) { evaluator = OptionConverter::instantiateByClassName(value, TriggeringEventEvaluator::getStaticClass(), evaluator); } apache-log4cxx-0.10.0/src/main/cpp/filelocationpatternconverter.cpp100644 0 0 3422 10774263341 22535 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include using namespace log4cxx; using namespace log4cxx::pattern; using namespace log4cxx::spi; using namespace helpers; IMPLEMENT_LOG4CXX_OBJECT(FileLocationPatternConverter) FileLocationPatternConverter::FileLocationPatternConverter() : LoggingEventPatternConverter(LOG4CXX_STR("File Location"), LOG4CXX_STR("file")) { } PatternConverterPtr FileLocationPatternConverter::newInstance( const std::vector& /* options */ ) { static PatternConverterPtr instance(new FileLocationPatternConverter()); return instance; } void FileLocationPatternConverter::format( const LoggingEventPtr& event, LogString& toAppendTo, Pool& /* p */ ) const { append(toAppendTo, event->getLocationInformation().getFileName()); } apache-log4cxx-0.10.0/src/main/cpp/configurator.cpp100644 0 0 2036 10774263341 17241 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include using namespace log4cxx; using namespace log4cxx::spi; IMPLEMENT_LOG4CXX_OBJECT(Configurator) Configurator::Configurator() { } apache-log4cxx-0.10.0/src/main/cpp/mutex.cpp100644 0 0 3372 10774263341 15705 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #if !defined(LOG4CXX) #define LOG4CXX 1 #endif #include using namespace log4cxx::helpers; using namespace log4cxx; Mutex::Mutex(Pool& p) { #if APR_HAS_THREADS apr_status_t stat = apr_thread_mutex_create(&mutex, APR_THREAD_MUTEX_NESTED, p.getAPRPool()); if (stat != APR_SUCCESS) { throw MutexException(stat); } #endif } Mutex::Mutex(apr_pool_t* p) { #if APR_HAS_THREADS apr_status_t stat = apr_thread_mutex_create(&mutex, APR_THREAD_MUTEX_NESTED, p); if (stat != APR_SUCCESS) { throw MutexException(stat); } #endif } Mutex::~Mutex() { #if APR_HAS_THREADS apr_thread_mutex_destroy(mutex); #endif } apr_thread_mutex_t* Mutex::getAPRMutex() const { return mutex; } apache-log4cxx-0.10.0/src/main/cpp/class.cpp100644 0 0 14151 10774263341 15665 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include #include #include #if !defined(LOG4CXX) #define LOG4CXX 1 #endif #include #include #include #include #include #include #include #if defined(WIN32) || defined(_WIN32) #if !defined(_WIN32_WCE) #include #endif #include #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::net; using namespace log4cxx::filter; using namespace log4cxx::xml; using namespace log4cxx::rolling; Class::Class() { } Class::~Class() { } LogString Class::toString() const { return getName(); } ObjectPtr Class::newInstance() const { throw InstantiationException(LOG4CXX_STR("Cannot create new instances of Class.")); #if LOG4CXX_RETURN_AFTER_THROW return 0; #endif } Class::ClassMap& Class::getRegistry() { static ClassMap registry; return registry; } const Class& Class::forName(const LogString& className) { LogString lowerName(StringHelper::toLowerCase(className)); // // check registry using full class name // const Class* clazz = getRegistry()[lowerName]; if (clazz == 0) { LogString::size_type pos = className.find_last_of(LOG4CXX_STR(".$")); if (pos != LogString::npos) { LogString terminalName(lowerName, pos + 1, LogString::npos); clazz = getRegistry()[terminalName]; if (clazz == 0) { registerClasses(); clazz = getRegistry()[lowerName]; if (clazz == 0) { clazz = getRegistry()[terminalName]; } } } else { registerClasses(); clazz = getRegistry()[lowerName]; } } if (clazz == 0) { throw ClassNotFoundException(className); } return *clazz; } bool Class::registerClass(const Class& newClass) { getRegistry()[StringHelper::toLowerCase(newClass.getName())] = &newClass; return true; } void Class::registerClasses() { #if APR_HAS_THREADS AsyncAppender::registerClass(); #endif ConsoleAppender::registerClass(); FileAppender::registerClass(); log4cxx::db::ODBCAppender::registerClass(); #if (defined(WIN32) || defined(_WIN32)) #if !defined(_WIN32_WCE) log4cxx::nt::NTEventLogAppender::registerClass(); #endif log4cxx::nt::OutputDebugStringAppender::registerClass(); #endif log4cxx::RollingFileAppender::registerClass(); SMTPAppender::registerClass(); SocketAppender::registerClass(); #if APR_HAS_THREADS SocketHubAppender::registerClass(); #endif SyslogAppender::registerClass(); #if APR_HAS_THREADS TelnetAppender::registerClass(); #endif XMLSocketAppender::registerClass(); DateLayout::registerClass(); HTMLLayout::registerClass(); PatternLayout::registerClass(); SimpleLayout::registerClass(); TTCCLayout::registerClass(); XMLLayout::registerClass(); LevelMatchFilter::registerClass(); LevelRangeFilter::registerClass(); StringMatchFilter::registerClass(); log4cxx::RollingFileAppender::registerClass(); log4cxx::rolling::RollingFileAppender::registerClass(); DailyRollingFileAppender::registerClass(); log4cxx::rolling::SizeBasedTriggeringPolicy::registerClass(); log4cxx::rolling::TimeBasedRollingPolicy::registerClass(); log4cxx::rolling::ManualTriggeringPolicy::registerClass(); log4cxx::rolling::FixedWindowRollingPolicy::registerClass(); log4cxx::rolling::FilterBasedTriggeringPolicy::registerClass(); log4cxx::xml::DOMConfigurator::registerClass(); log4cxx::PropertyConfigurator::registerClass(); } apache-log4cxx-0.10.0/src/main/cpp/ndc.cpp100644 0 0 16672 10774263341 15336 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; NDC::NDC(const std::string& message) { push(message); } NDC::~NDC() { pop(); } LogString& NDC::getMessage(NDC::DiagnosticContext& ctx) { return ctx.first; } LogString& NDC::getFullMessage(NDC::DiagnosticContext& ctx) { return ctx.second; } void NDC::clear() { ThreadSpecificData* data = ThreadSpecificData::getCurrentData(); if (data != 0) { Stack& stack = data->getStack(); while(!stack.empty()) { stack.pop(); } data->recycle(); } } NDC::Stack* NDC::cloneStack() { ThreadSpecificData* data = ThreadSpecificData::getCurrentData(); if (data != 0) { Stack& stack = data->getStack(); if (!stack.empty()) { return new Stack(stack); } } return new Stack(); } void NDC::inherit(NDC::Stack * stack) { if (stack != NULL) { ThreadSpecificData::inherit(*stack); delete stack; } } bool NDC::get(LogString& dest) { ThreadSpecificData* data = ThreadSpecificData::getCurrentData(); if (data != 0) { Stack& stack = data->getStack(); if(!stack.empty()) { dest.append(getFullMessage(stack.top())); return true; } data->recycle(); } return false; } int NDC::getDepth() { int size = 0; ThreadSpecificData* data = ThreadSpecificData::getCurrentData(); if (data != 0) { size = data->getStack().size(); if (size == 0) { data->recycle(); } } return size; } LogString NDC::pop() { ThreadSpecificData* data = ThreadSpecificData::getCurrentData(); if (data != 0) { Stack& stack = data->getStack(); if(!stack.empty()) { LogString value(getMessage(stack.top())); stack.pop(); data->recycle(); return value; } data->recycle(); } return LogString(); } bool NDC::pop(std::string& dst) { bool retval = false; ThreadSpecificData* data = ThreadSpecificData::getCurrentData(); if (data != 0) { Stack& stack = data->getStack(); if(!stack.empty()) { Transcoder::encode(getMessage(stack.top()), dst); stack.pop(); retval = true; } data->recycle(); } return retval; } LogString NDC::peek() { ThreadSpecificData* data = ThreadSpecificData::getCurrentData(); if (data != 0) { Stack& stack = data->getStack(); if(!stack.empty()) { return getMessage(stack.top()); } data->recycle(); } return LogString(); } bool NDC::peek(std::string& dst) { ThreadSpecificData* data = ThreadSpecificData::getCurrentData(); if (data != 0) { Stack& stack = data->getStack(); if(!stack.empty()) { Transcoder::encode(getMessage(stack.top()), dst); return true; } data->recycle(); } return false; } void NDC::pushLS(const LogString& message) { ThreadSpecificData::push(message); } void NDC::push(const std::string& message) { LOG4CXX_DECODE_CHAR(msg, message); pushLS(msg); } void NDC::remove() { clear(); } bool NDC::empty() { bool empty = true; ThreadSpecificData* data = ThreadSpecificData::getCurrentData(); if (data != 0) { Stack& stack = data->getStack(); empty = stack.empty(); if (empty) { data->recycle(); } } return empty; } #if LOG4CXX_WCHAR_T_API NDC::NDC(const std::wstring& message) { push(message); } void NDC::push(const std::wstring& message) { LOG4CXX_DECODE_WCHAR(msg, message); pushLS(msg); } bool NDC::pop(std::wstring& dst) { ThreadSpecificData* data = ThreadSpecificData::getCurrentData(); if (data != 0) { Stack& stack = data->getStack(); if(!stack.empty()) { Transcoder::encode(getMessage(stack.top()), dst); stack.pop(); data->recycle(); return true; } data->recycle(); } return false; } bool NDC::peek(std::wstring& dst) { ThreadSpecificData* data = ThreadSpecificData::getCurrentData(); if (data != 0) { Stack& stack = data->getStack(); if(!stack.empty()) { Transcoder::encode(getMessage(stack.top()), dst); return true; } data->recycle(); } return false; } #endif #if LOG4CXX_UNICHAR_API NDC::NDC(const std::basic_string& message) { push(message); } void NDC::push(const std::basic_string& message) { LOG4CXX_DECODE_UNICHAR(msg, message); pushLS(msg); } bool NDC::pop(std::basic_string& dst) { ThreadSpecificData* data = ThreadSpecificData::getCurrentData(); if (data != 0) { Stack& stack = data->getStack(); if(!stack.empty()) { Transcoder::encode(stack.top().message, dst); stack.pop(); data->recycle(); return true; } data->recycle(); } return false; } bool NDC::peek(std::basic_string& dst) { ThreadSpecificData* data = ThreadSpecificData::getCurrentData(); if (data != 0) { Stack& stack = data->getStack(); if(!stack.empty()) { Transcoder::encode(stack.top().message, dst); return true; } data->recycle(); } return false; } #endif #if LOG4CXX_CFSTRING_API NDC::NDC(const CFStringRef& message) { push(message); } void NDC::push(const CFStringRef& message) { LOG4CXX_DECODE_CFSTRING(msg, message); pushLS(msg); } bool NDC::pop(CFStringRef& dst) { ThreadSpecificData* data = ThreadSpecificData::getCurrentData(); if (data != 0) { Stack& stack = data->getStack(); if(!stack.empty()) { dst = Transcoder::encode(stack.top().message); stack.pop(); data->recycle(); return true; } data->recycle(); } return false; } bool NDC::peek(CFStringRef& dst) { ThreadSpecificData* data = ThreadSpecificData::getCurrentData(); if (data != 0) { Stack& stack = data->getStack(); if(!stack.empty()) { dst = Transcoder::encode(stack.top().message); return true; } data->recycle(); } return false; } #endif apache-log4cxx-0.10.0/src/main/cpp/objectoutputstream.cpp100644 0 0 14520 10774263341 20523 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include #include "apr_pools.h" using namespace log4cxx; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(ObjectOutputStream) ObjectOutputStream::ObjectOutputStream(OutputStreamPtr outputStream, Pool& p) : os(outputStream) , utf8Encoder(CharsetEncoder::getUTF8Encoder()), objectHandle(0x7E0000), classDescriptions(new ClassDescriptionMap()) { char start[] = { 0xAC, 0xED, 0x00, 0x05 }; ByteBuffer buf(start, sizeof(start)); os->write(buf, p); } ObjectOutputStream::~ObjectOutputStream() { delete classDescriptions; } void ObjectOutputStream::close(Pool& p) { os->close(p); } void ObjectOutputStream::flush(Pool& p) { os->flush(p); } void ObjectOutputStream::writeObject(const LogString& val, Pool& p) { objectHandle++; writeByte(TC_STRING, p); char bytes[2]; #if LOG4CXX_LOGCHAR_IS_UTF8 size_t len = val.size(); ByteBuffer dataBuf(const_cast(val.data()), val.size()); #else size_t maxSize = 6 * val.size(); char* data = p.pstralloc(maxSize); ByteBuffer dataBuf(data, maxSize); LogString::const_iterator iter(val.begin()); utf8Encoder->encode(val, iter, dataBuf); dataBuf.flip(); size_t len = dataBuf.limit(); #endif bytes[1] = (char) (len & 0xFF); bytes[0] = (char) ((len >> 8) & 0xFF); ByteBuffer lenBuf(bytes, sizeof(bytes)); os->write(lenBuf, p); os->write(dataBuf, p); } void ObjectOutputStream::writeObject(const MDC::Map& val, Pool& p) { // // TC_OBJECT and the classDesc for java.util.Hashtable // char prolog[] = { 0x72, 0x00, 0x13, 0x6A, 0x61, 0x76, 0x61, 0x2E, 0x75, 0x74, 0x69, 0x6C, 0x2E, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x62, 0x6C, 0x65, 0x13, 0xBB, 0x0F, 0x25, 0x21, 0x4A, 0xE4, 0xB8, 0x03, 0x00, 0x02, 0x46, 0x00, 0x0A, 0x6C, 0x6F, 0x61, 0x64, 0x46, 0x61, 0x63, 0x74, 0x6F, 0x72, 0x49, 0x00, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6F, 0x6C, 0x64, 0x78, 0x70 }; writeProlog("java.util.Hashtable", 1, prolog, sizeof(prolog), p); // // loadFactor = 0.75, threshold = 5, blockdata start, buckets.size = 7 char data[] = { 0x3F, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, TC_BLOCKDATA, 0x08, 0x00, 0x00, 0x00, 0x07 }; ByteBuffer dataBuf(data, sizeof(data)); os->write(dataBuf, p); char size[4]; size_t sz = val.size(); size[3] = (char) (sz & 0xFF); size[2] = (char) ((sz >> 8) & 0xFF); size[1] = (char) ((sz >> 16) & 0xFF); size[0] = (char) ((sz >> 24) & 0xFF); ByteBuffer sizeBuf(size, sizeof(size)); os->write(sizeBuf, p); for(MDC::Map::const_iterator iter = val.begin(); iter != val.end(); iter++) { writeObject(iter->first, p); writeObject(iter->second, p); } writeByte(TC_ENDBLOCKDATA, p); } void ObjectOutputStream::writeUTFString(const std::string& val, Pool& p) { char bytes[3]; size_t len = val.size(); ByteBuffer dataBuf(const_cast(val.data()), val.size()); objectHandle++; bytes[0] = 0x74; bytes[1] = (char) ((len >> 8) & 0xFF); bytes[2] = (char) (len & 0xFF); ByteBuffer lenBuf(bytes, sizeof(bytes)); os->write(lenBuf, p); os->write(dataBuf, p); } void ObjectOutputStream::writeByte(char val, Pool& p) { ByteBuffer buf(&val, 1); os->write(buf, p); } void ObjectOutputStream::writeInt(int val, Pool& p) { char bytes[4]; bytes[3] = (char) (val & 0xFF); bytes[2] = (char) ((val >> 8) & 0xFF); bytes[1] = (char) ((val >> 16) & 0xFF); bytes[0] = (char) ((val >> 24) & 0xFF); ByteBuffer buf(bytes, sizeof(bytes)); os->write(buf, p); } void ObjectOutputStream::writeLong(log4cxx_time_t val, Pool& p) { char bytes[8]; bytes[7] = (char) (val & 0xFF); bytes[6] = (char) ((val >> 8) & 0xFF); bytes[5] = (char) ((val >> 16) & 0xFF); bytes[4] = (char) ((val >> 24) & 0xFF); bytes[3] = (char) ((val >> 32) & 0xFF); bytes[2] = (char) ((val >> 40) & 0xFF); bytes[1] = (char) ((val >> 48) & 0xFF); bytes[0] = (char) ((val >> 56) & 0xFF); ByteBuffer buf(bytes, sizeof(bytes)); os->write(buf, p); } void ObjectOutputStream::writeBytes(const char* bytes, size_t len, Pool& p) { ByteBuffer buf(const_cast(bytes), len); os->write(buf, p); } void ObjectOutputStream::writeNull(Pool& p) { writeByte(TC_NULL, p); } void ObjectOutputStream::writeProlog(const char* className, int classDescIncrement, char* classDesc, size_t len, Pool& p) { ClassDescriptionMap::const_iterator match = classDescriptions->find(className); if (match != classDescriptions->end()) { char bytes[6]; bytes[0] = TC_OBJECT; bytes[1] = TC_REFERENCE; bytes[2] = (char) ((match->second >> 24) & 0xFF); bytes[3] = (char) ((match->second >> 16) & 0xFF); bytes[4] = (char) ((match->second >> 8) & 0xFF); bytes[5] = (char) (match->second & 0xFF); ByteBuffer buf(bytes, sizeof(bytes)); os->write(buf, p); objectHandle++; } else { classDescriptions->insert(ClassDescriptionMap::value_type(className, objectHandle)); writeByte(TC_OBJECT, p); ByteBuffer buf(classDesc, len); os->write(buf, p); objectHandle += (classDescIncrement + 1); } } apache-log4cxx-0.10.0/src/main/cpp/fileinputstream.cpp100644 0 0 5166 10774263341 17761 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #if !defined(LOG4CXX) #define LOG4CXX 1 #endif #include using namespace log4cxx; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(FileInputStream) FileInputStream::FileInputStream(const LogString& filename) : fileptr(0) { open(filename); } FileInputStream::FileInputStream(const logchar* filename) : fileptr(0) { LogString fn(filename); open(fn); } void FileInputStream::open(const LogString& filename) { apr_fileperms_t perm = APR_OS_DEFAULT; apr_int32_t flags = APR_READ; apr_status_t stat = File().setPath(filename).open(&fileptr, flags, perm, pool); if (stat != APR_SUCCESS) { throw IOException(stat); } } FileInputStream::FileInputStream(const File& aFile) { apr_fileperms_t perm = APR_OS_DEFAULT; apr_int32_t flags = APR_READ; apr_status_t stat = aFile.open(&fileptr, flags, perm, pool); if (stat != APR_SUCCESS) { throw IOException(stat); } } FileInputStream::~FileInputStream() { if (fileptr != NULL && !APRInitializer::isDestructed) { apr_file_close(fileptr); } } void FileInputStream::close() { apr_status_t stat = apr_file_close(fileptr); if (stat == APR_SUCCESS) { fileptr = NULL; } else { throw IOException(stat); } } int FileInputStream::read(ByteBuffer& buf) { apr_size_t bytesRead = buf.remaining(); apr_status_t stat = apr_file_read(fileptr, buf.current(), &bytesRead); int retval = -1; if (!APR_STATUS_IS_EOF(stat)) { if (stat != APR_SUCCESS) { throw IOException(stat); } buf.position(buf.position() + bytesRead); retval = bytesRead; } return retval; } apache-log4cxx-0.10.0/src/main/cpp/inetaddress.cpp100644 0 0 10054 10774263341 17063 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include #include "apr_network_io.h" using namespace log4cxx; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(InetAddress) UnknownHostException::UnknownHostException(const LogString& msg1) : Exception(msg1) { } UnknownHostException::UnknownHostException(const UnknownHostException& src) : Exception(src) { } UnknownHostException& UnknownHostException::operator=(const UnknownHostException& src) { Exception::operator=(src); return *this; } InetAddress::InetAddress(const LogString& hostName, const LogString& hostAddr) : ipAddrString(hostAddr), hostNameString(hostName) { } /** Determines all the IP addresses of a host, given the host's name. */ std::vector InetAddress::getAllByName(const LogString& host) { LOG4CXX_ENCODE_CHAR(encodedHost, host); // retrieve information about the given host Pool addrPool; apr_sockaddr_t *address = 0; apr_status_t status = apr_sockaddr_info_get(&address, encodedHost.c_str(), APR_INET, 0, 0, addrPool.getAPRPool()); if (status != APR_SUCCESS) { LogString msg(LOG4CXX_STR("Cannot get information about host: ")); msg.append(host); LogLog::error(msg); throw UnknownHostException(msg); } std::vector result; apr_sockaddr_t *currentAddr = address; while(currentAddr != NULL) { // retrieve the IP address of this InetAddress. LogString ipAddrString; char *ipAddr; status = apr_sockaddr_ip_get(&ipAddr, currentAddr); if (status == APR_SUCCESS) { std::string ip(ipAddr); Transcoder::decode(ip, ipAddrString); } // retrieve the host name of this InetAddress. LogString hostNameString; char *hostName; status = apr_getnameinfo(&hostName, currentAddr, 0); if (status == APR_SUCCESS) { std::string host(hostName); Transcoder::decode(host, hostNameString); } result.push_back(new InetAddress(hostNameString, ipAddrString)); currentAddr = currentAddr->next; } return result; } /** Determines the IP address of a host, given the host's name. */ InetAddressPtr InetAddress::getByName(const LogString& host) { return getAllByName(host)[0]; } /** Returns the IP address string "%d.%d.%d.%d". */ LogString InetAddress::getHostAddress() const { return ipAddrString; } /** Gets the host name for this IP address. */ LogString InetAddress::getHostName() const { return hostNameString; } /** Returns the local host. */ InetAddressPtr InetAddress::getLocalHost() { return getByName(LOG4CXX_STR("127.0.0.1")); } InetAddressPtr InetAddress::anyAddress() { // APR_ANYADDR does not work with the LOG4CXX_STR macro return getByName(LOG4CXX_STR("0.0.0.0")); } /** Converts this IP address to a String. */ LogString InetAddress::toString() const { LogString rv(getHostName()); rv.append(LOG4CXX_STR("/")); rv.append(getHostAddress()); return rv; } apache-log4cxx-0.10.0/src/main/cpp/datelayout.cpp100644 0 0 10121 10774263341 16724 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::spi; DateLayout::DateLayout(const LogString& dateFormatOption1) : timeZoneID(), dateFormatOption(dateFormatOption1), dateFormat(0) { } DateLayout::~DateLayout() { } void DateLayout::setOption(const LogString& option, const LogString& value) { if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("DATEFORMAT"), LOG4CXX_STR("dateformat"))) { dateFormatOption = value; } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("TIMEZONE"), LOG4CXX_STR("timezone"))) { timeZoneID = value; } } void DateLayout::activateOptions(Pool&) { if(!dateFormatOption.empty()) { if(dateFormatOption.empty()) { dateFormat = 0; } else if(StringHelper::equalsIgnoreCase(dateFormatOption, LOG4CXX_STR("NULL"), LOG4CXX_STR("null"))) { dateFormat = 0; dateFormatOption = LOG4CXX_STR("NULL"); } else if(StringHelper::equalsIgnoreCase(dateFormatOption, LOG4CXX_STR("RELATIVE"), LOG4CXX_STR("relative"))) { dateFormat = new RelativeTimeDateFormat(); dateFormatOption = LOG4CXX_STR("RELATIVE"); } else if(StringHelper::equalsIgnoreCase(dateFormatOption, LOG4CXX_STR("ABSOLUTE"), LOG4CXX_STR("absolute"))) { dateFormat = new AbsoluteTimeDateFormat(); dateFormatOption = LOG4CXX_STR("ABSOLUTE"); } else if(StringHelper::equalsIgnoreCase(dateFormatOption, LOG4CXX_STR("DATE"), LOG4CXX_STR("date"))) { dateFormat = new DateTimeDateFormat(); dateFormatOption = LOG4CXX_STR("DATE"); } else if(StringHelper::equalsIgnoreCase(dateFormatOption, LOG4CXX_STR("ISO8601"), LOG4CXX_STR("iso8601"))) { dateFormat = new ISO8601DateFormat(); dateFormatOption = LOG4CXX_STR("iso8601"); } else { dateFormat = new SimpleDateFormat(dateFormatOption); } } if (dateFormat != NULL) { if (timeZoneID.empty()) { dateFormat->setTimeZone(TimeZone::getDefault()); } else { dateFormat->setTimeZone(TimeZone::getTimeZone(timeZoneID)); } } } void DateLayout::formatDate(LogString &s, const spi::LoggingEventPtr& event, Pool& p) const { if(dateFormat != 0) { dateFormat->format(s, event->getTimeStamp(), p); s.append(1, (logchar) 0x20 /* ' ' */); } } apache-log4cxx-0.10.0/src/main/cpp/sockethubappender.cpp100644 0 0 17166 10774263341 20277 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::net; using namespace log4cxx::spi; #if APR_HAS_THREADS IMPLEMENT_LOG4CXX_OBJECT(SocketHubAppender) int SocketHubAppender::DEFAULT_PORT = 4560; SocketHubAppender::~SocketHubAppender() { finalize(); } SocketHubAppender::SocketHubAppender() : port(DEFAULT_PORT), streams(), locationInfo(false), thread() { } SocketHubAppender::SocketHubAppender(int port1) : port(port1), streams(), locationInfo(false), thread() { startServer(); } void SocketHubAppender::activateOptions(Pool& /* p */ ) { startServer(); } void SocketHubAppender::setOption(const LogString& option, const LogString& value) { if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("PORT"), LOG4CXX_STR("port"))) { setPort(OptionConverter::toInt(value, DEFAULT_PORT)); } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("LOCATIONINFO"), LOG4CXX_STR("locationinfo"))) { setLocationInfo(OptionConverter::toBoolean(value, true)); } else { AppenderSkeleton::setOption(option, value); } } void SocketHubAppender::close() { { synchronized sync(mutex); if (closed) { return; } closed = true; } LogLog::debug(LOG4CXX_STR("closing SocketHubAppender ") + getName()); // // wait until the server thread completes // thread.join(); synchronized sync(mutex); // close all of the connections LogLog::debug(LOG4CXX_STR("closing client connections")); for (std::vector::iterator iter = streams.begin(); iter != streams.end(); iter++) { if ( (*iter) != NULL) { try { (*iter)->close(pool); } catch(SocketException& e) { LogLog::error(LOG4CXX_STR("could not close socket: "), e); } } } streams.erase(streams.begin(), streams.end()); LogLog::debug(LOG4CXX_STR("SocketHubAppender ") + getName() + LOG4CXX_STR(" closed")); } void SocketHubAppender::append(const spi::LoggingEventPtr& event, Pool& p) { // if no open connections, exit now if(streams.empty()) { return; } LogString ndcVal; event->getNDC(ndcVal); event->getThreadName(); // Get a copy of this thread's MDC. event->getMDCCopy(); // loop through the current set of open connections, appending the event to each std::vector::iterator it = streams.begin(); std::vector::iterator itEnd = streams.end(); while(it != itEnd) { // list size changed unexpectedly? Just exit the append. if (*it == 0) { break; } try { event->write(**it, p); (*it)->flush(p); it++; } catch(std::exception& e) { // there was an io exception so just drop the connection it = streams.erase(it); LogLog::debug(LOG4CXX_STR("dropped connection"), e); } } } void SocketHubAppender::startServer() { thread.run(monitor, this); } void* APR_THREAD_FUNC SocketHubAppender::monitor(apr_thread_t* /* thread */, void* data) { SocketHubAppender* pThis = (SocketHubAppender*) data; ServerSocket* serverSocket = 0; try { serverSocket = new ServerSocket(pThis->port); serverSocket->setSoTimeout(1000); } catch (SocketException& e) { LogLog::error(LOG4CXX_STR("exception setting timeout, shutting down server socket."), e); delete serverSocket; return NULL; } bool stopRunning = pThis->closed; while (!stopRunning) { SocketPtr socket; try { socket = serverSocket->accept(); } catch (InterruptedIOException&) { // timeout occurred, so just loop } catch (SocketException& e) { LogLog::error(LOG4CXX_STR("exception accepting socket, shutting down server socket."), e); stopRunning = true; } catch (IOException& e) { LogLog::error(LOG4CXX_STR("exception accepting socket."), e); } // if there was a socket accepted if (socket != 0) { try { InetAddressPtr remoteAddress = socket->getInetAddress(); LogLog::debug(LOG4CXX_STR("accepting connection from ") + remoteAddress->getHostName() + LOG4CXX_STR(" (") + remoteAddress->getHostAddress() + LOG4CXX_STR(")")); // add it to the oosList. synchronized sync(pThis->mutex); OutputStreamPtr os(new SocketOutputStream(socket)); Pool p; ObjectOutputStreamPtr oos(new ObjectOutputStream(os, p)); pThis->streams.push_back(oos); } catch (IOException& e) { LogLog::error(LOG4CXX_STR("exception creating output stream on socket."), e); } } stopRunning = (stopRunning || pThis->closed); } delete serverSocket; return NULL; } #endif apache-log4cxx-0.10.0/src/main/cpp/namepatternconverter.cpp100644 0 0 3655 10774263341 21015 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include using namespace log4cxx; using namespace log4cxx::pattern; using namespace log4cxx::spi; IMPLEMENT_LOG4CXX_OBJECT(NamePatternConverter) NamePatternConverter::NamePatternConverter( const LogString& name1, const LogString& style1, const std::vector& options) : LoggingEventPatternConverter(name1, style1), abbreviator(getAbbreviator(options)) { } NameAbbreviatorPtr NamePatternConverter::getAbbreviator( const std::vector& options) { if (options.size() > 0) { return NameAbbreviator::getAbbreviator(options[0]); } return NameAbbreviator::getDefaultAbbreviator(); } /** * Abbreviate name in string buffer. * @param nameStart starting position of name to abbreviate. * @param buf string buffer containing name. */ void NamePatternConverter::abbreviate(int nameStart, LogString& buf) const { abbreviator->abbreviate(nameStart, buf); } apache-log4cxx-0.10.0/src/main/cpp/rolloverdescription.cpp100644 0 0 3565 10774263341 20657 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include using namespace log4cxx; using namespace log4cxx::rolling; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(RolloverDescription) RolloverDescription::RolloverDescription() { } RolloverDescription::RolloverDescription( const LogString& activeFileName1, const bool append1, const ActionPtr& synchronous1, const ActionPtr& asynchronous1) : activeFileName(activeFileName1), append(append1), synchronous(synchronous1), asynchronous(asynchronous1) { } LogString RolloverDescription::getActiveFileName() const { return activeFileName; } bool RolloverDescription::getAppend() const { return append; } ActionPtr RolloverDescription::getSynchronous() const { return synchronous; } /** * Action to be completed after close of current active log file * and before next rollover attempt, may be executed asynchronously. * * @return action, may be null. */ ActionPtr RolloverDescription::getAsynchronous() const { return asynchronous; } apache-log4cxx-0.10.0/src/main/cpp/outputstreamwriter.cpp100644 0 0 4571 10774263341 20556 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(OutputStreamWriter) OutputStreamWriter::OutputStreamWriter(OutputStreamPtr& out1) : out(out1), enc(CharsetEncoder::getDefaultEncoder()) { if (out1 == 0) { throw NullPointerException(LOG4CXX_STR("out parameter may not be null.")); } } OutputStreamWriter::OutputStreamWriter(OutputStreamPtr& out1, CharsetEncoderPtr &enc1) : out(out1), enc(enc1) { if (out1 == 0) { throw NullPointerException(LOG4CXX_STR("out parameter may not be null.")); } if (enc1 == 0) { throw NullPointerException(LOG4CXX_STR("enc parameter may not be null.")); } } OutputStreamWriter::~OutputStreamWriter() { } void OutputStreamWriter::close(Pool& p) { out->close(p); } void OutputStreamWriter::flush(Pool& p) { out->flush(p); } void OutputStreamWriter::write(const LogString& str, Pool& p) { if (str.length() > 0) { enum { BUFSIZE = 1024 }; char rawbuf[BUFSIZE]; ByteBuffer buf(rawbuf, (size_t) BUFSIZE); enc->reset(); LogString::const_iterator iter = str.begin(); while(iter != str.end()) { CharsetEncoder::encode(enc, str, iter, buf); buf.flip(); out->write(buf, p); buf.clear(); } CharsetEncoder::encode(enc, str, iter, buf); enc->flush(buf); buf.flip(); out->write(buf, p); } } apache-log4cxx-0.10.0/src/main/cpp/dailyrollingfileappender.cpp100644 0 0 6021 10774263341 21605 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::rolling; IMPLEMENT_LOG4CXX_OBJECT(DailyRollingFileAppender) DailyRollingFileAppender::DailyRollingFileAppender() { } DailyRollingFileAppender::DailyRollingFileAppender( const LayoutPtr& layout, const LogString& filename, const LogString& datePattern1) : datePattern(datePattern1) { setLayout(layout); setFile(filename); Pool p; activateOptions(p); } void DailyRollingFileAppender::setDatePattern(const LogString& pattern) { datePattern = pattern; } LogString DailyRollingFileAppender::getDatePattern() { return datePattern; } void DailyRollingFileAppender::activateOptions(log4cxx::helpers::Pool& pool) { TimeBasedRollingPolicyPtr policy = new TimeBasedRollingPolicy(); LogString pattern(getFile()); bool inLiteral = false; bool inPattern = false; for (size_t i = 0; i < datePattern.length(); i++) { if (datePattern[i] == 0x27 /* '\'' */) { inLiteral = !inLiteral; if (inLiteral && inPattern) { pattern.append(1, (logchar) 0x7D /* '}' */); inPattern = false; } } else { if (!inLiteral && !inPattern) { const logchar dbrace[] = { 0x25, 0x64, 0x7B, 0 }; // "%d{" pattern.append(dbrace); inPattern = true; } pattern.append(1, datePattern[i]); } } if (inPattern) { pattern.append(1, (logchar) 0x7D /* '}' */); } policy->setFileNamePattern(pattern); policy->activateOptions(pool); setTriggeringPolicy(policy); setRollingPolicy(policy); RollingFileAppenderSkeleton::activateOptions(pool); } void DailyRollingFileAppender::setOption(const LogString& option, const LogString& value) { if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("DATEPATTERN"), LOG4CXX_STR("datepattern"))) { setDatePattern(value); } else { RollingFileAppenderSkeleton::setOption(option, value); } } apache-log4cxx-0.10.0/src/main/cpp/zipcompressaction.cpp100644 0 0 5566 10774263341 20326 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::rolling; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(ZipCompressAction) ZipCompressAction::ZipCompressAction(const File& src, const File& dest, bool del) : source(src), destination(dest), deleteSource(del) { } bool ZipCompressAction::execute(log4cxx::helpers::Pool& p) const { if (source.exists(p)) { apr_pool_t* pool = p.getAPRPool(); apr_procattr_t* attr; apr_status_t stat = apr_procattr_create(&attr, pool); if (stat != APR_SUCCESS) throw IOException(stat); stat = apr_procattr_io_set(attr, APR_NO_PIPE, APR_NO_PIPE, APR_FULL_BLOCK); if (stat != APR_SUCCESS) throw IOException(stat); stat = apr_procattr_cmdtype_set(attr, APR_PROGRAM_PATH); if (stat != APR_SUCCESS) throw IOException(stat); // // redirect the child's error stream to this processes' error stream // apr_file_t* child_err; stat = apr_file_open_stderr(&child_err, pool); if (stat == APR_SUCCESS) { stat = apr_procattr_child_err_set(attr, child_err, NULL); if (stat != APR_SUCCESS) throw IOException(stat); } const char** args = (const char**) apr_palloc(pool, 5 *sizeof(*args)); int i = 0; args[i++] = "zip"; args[i++] = "-q"; args[i++] = Transcoder::encode(destination.getPath(), p); args[i++] = Transcoder::encode(source.getPath(), p); args[i++] = NULL; if (destination.exists(p)) { destination.deleteFile(p); } apr_proc_t pid; stat = apr_proc_create(&pid, "zip", args, NULL, attr, pool); if (stat != APR_SUCCESS) throw IOException(stat); apr_proc_wait(&pid, NULL, NULL, APR_WAIT); if (deleteSource) { source.deleteFile(p); } return true; } return false; } apache-log4cxx-0.10.0/src/main/cpp/syslogwriter.cpp100644 0 0 4173 10774263341 17320 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include #include #include #define SYSLOG_PORT 514 using namespace log4cxx; using namespace log4cxx::helpers; SyslogWriter::SyslogWriter(const LogString& syslogHost1) : syslogHost(syslogHost1) { try { this->address = InetAddress::getByName(syslogHost1); } catch(UnknownHostException& e) { LogLog::error(((LogString) LOG4CXX_STR("Could not find ")) + syslogHost1 + LOG4CXX_STR(". All logging will FAIL."), e); } try { this->ds = new DatagramSocket(); } catch (SocketException& e) { LogLog::error(((LogString) LOG4CXX_STR("Could not instantiate DatagramSocket to ")) + syslogHost1 + LOG4CXX_STR(". All logging will FAIL."), e); } } void SyslogWriter::write(const LogString& source) { if (this->ds != 0 && this->address != 0) { LOG4CXX_ENCODE_CHAR(data, source); DatagramPacketPtr packet( new DatagramPacket((void*) data.data(), data.length(), address, SYSLOG_PORT)); ds->send(packet); } } apache-log4cxx-0.10.0/src/main/cpp/bufferedwriter.cpp100644 0 0 3232 10774263341 17555 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(BufferedWriter) BufferedWriter::BufferedWriter(WriterPtr& out1) : out(out1), sz(1024) { } BufferedWriter::BufferedWriter(WriterPtr& out1, size_t sz1) : out(out1), sz(sz1) { } BufferedWriter::~BufferedWriter() { } void BufferedWriter::close(Pool& p) { flush(p); out->close(p); } void BufferedWriter::flush(Pool& p) { if (buf.length() > 0) { out->write(buf, p); buf.erase(buf.begin(), buf.end()); } } void BufferedWriter::write(const LogString& str, Pool& p) { if (buf.length() + str.length() > sz) { out->write(buf, p); buf.erase(buf.begin(), buf.end()); } if (str.length() > sz) { out->write(str, p); } else { buf.append(str); } } apache-log4cxx-0.10.0/src/main/cpp/dateformat.cpp100644 0 0 2325 10774263341 16666 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(DateFormat) DateFormat::~DateFormat() {} void DateFormat::setTimeZone(const TimeZonePtr&) {} void DateFormat::numberFormat(LogString& s, int n, Pool& p) const { StringHelper::toString(n, p, s); } DateFormat::DateFormat() {} apache-log4cxx-0.10.0/src/main/cpp/stringmatchfilter.cpp100644 0 0 4270 10774263341 20272 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::filter; using namespace log4cxx::spi; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(StringMatchFilter) StringMatchFilter::StringMatchFilter() : acceptOnMatch(true), stringToMatch() { } void StringMatchFilter::setOption(const LogString& option, const LogString& value) { if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("STRINGTOMATCH"), LOG4CXX_STR("stringtomatch"))) { stringToMatch = value; } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("ACCEPTONMATCH"), LOG4CXX_STR("acceptonmatch"))) { acceptOnMatch = OptionConverter::toBoolean(value, acceptOnMatch); } } Filter::FilterDecision StringMatchFilter::decide( const log4cxx::spi::LoggingEventPtr& event) const { const LogString& msg = event->getRenderedMessage(); if(msg.empty() || stringToMatch.empty()) { return Filter::NEUTRAL; } if( msg.find(stringToMatch) == LogString::npos ) { return Filter::NEUTRAL; } else { // we've got a match if(acceptOnMatch) { return Filter::ACCEPT; } else { return Filter::DENY; } } } apache-log4cxx-0.10.0/src/main/cpp/patternparser.cpp100644 0 0 23622 10774263341 17455 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include using namespace log4cxx; using namespace log4cxx::pattern; using namespace log4cxx::helpers; const logchar PatternParser::ESCAPE_CHAR = 0x25; // '%' /** * Private constructor. */ PatternParser::PatternParser() { } bool PatternParser::isUnicodeIdentifierStart(logchar ch) { // // greatly simplified version checks if // character is USACII alpha or number // return (ch >= 0x41 /* 'A' */ && ch <= 0x5A /* 'Z' */) || (ch >= 0x61 /* 'a' */ && ch <= 0x7A /* 'z' */) || (ch >= 0x30 /* '0' */ && ch <= 0x39 /* '9' */); } bool PatternParser::isUnicodeIdentifierPart(logchar ch) { // // greatly simplified version checks if // character is USACII alpha or number // return isUnicodeIdentifierStart(ch) || (ch == 0x5F /* '_' */); } int PatternParser::extractConverter( logchar lastChar, const LogString& pattern, LogString::size_type i, LogString& convBuf, LogString& currentLiteral) { if (!convBuf.empty()) { convBuf.erase(convBuf.begin(), convBuf.end()); } // When this method is called, lastChar points to the first character of the // conversion word. For example: // For "%hello" lastChar = 'h' // For "%-5hello" lastChar = 'h' //System.out.println("lastchar is "+lastChar); if (!isUnicodeIdentifierStart(lastChar)) { return i; } convBuf.append(1, lastChar); while ( (i < pattern.length()) && isUnicodeIdentifierPart(pattern[i])) { convBuf.append(1, pattern[i]); currentLiteral.append(1, pattern[i]); //System.out.println("conv buffer is now ["+convBuf+"]."); i++; } return i; } int PatternParser::extractOptions(const LogString& pattern, LogString::size_type i, std::vector& options) { while ((i < pattern.length()) && (pattern[i] == 0x7B /* '{' */)) { int end = pattern.find(0x7D /* '}' */, i); if (end == -1) { break; } LogString r(pattern.substr(i + 1, end - i - 1)); options.push_back(r); i = end + 1; } return i; } void PatternParser::parse( const LogString& pattern, std::vector& patternConverters, std::vector& formattingInfos, const PatternMap& rules) { LogString currentLiteral; int patternLength = pattern.length(); int state = LITERAL_STATE; logchar c; int i = 0; FormattingInfoPtr formattingInfo(FormattingInfo::getDefault()); while (i < patternLength) { c = pattern[i++]; switch (state) { case LITERAL_STATE: // In literal state, the last char is always a literal. if (i == patternLength) { currentLiteral.append(1, c); continue; } if (c == ESCAPE_CHAR) { // peek at the next char. if(pattern[i] == ESCAPE_CHAR) { currentLiteral.append(1, c); i++; // move pointer } else { if (!currentLiteral.empty()) { patternConverters.push_back( LiteralPatternConverter::newInstance(currentLiteral)); formattingInfos.push_back(FormattingInfo::getDefault()); currentLiteral.erase(currentLiteral.begin(), currentLiteral.end()); } currentLiteral.append(1, c); // append % state = CONVERTER_STATE; formattingInfo = FormattingInfo::getDefault(); } } else { currentLiteral.append(1, c); } break; case CONVERTER_STATE: currentLiteral.append(1, c); switch (c) { case 0x2D: // '-' formattingInfo = new FormattingInfo( true, formattingInfo->getMinLength(), formattingInfo->getMaxLength()); break; case 0x2E: // '.' state = DOT_STATE; break; default: if ((c >= 0x30 /* '0' */) && (c <= 0x39 /* '9' */)) { formattingInfo = new FormattingInfo( formattingInfo->isLeftAligned(), c - 0x30 /* '0' */, formattingInfo->getMaxLength()); state = MIN_STATE; } else { i = finalizeConverter( c, pattern, i, currentLiteral, formattingInfo, rules, patternConverters, formattingInfos); // Next pattern is assumed to be a literal. state = LITERAL_STATE; formattingInfo = FormattingInfo::getDefault(); if (!currentLiteral.empty()) { currentLiteral.erase(currentLiteral.begin(), currentLiteral.end()); } } } // switch break; case MIN_STATE: currentLiteral.append(1, c); if ((c >= 0x30 /* '0' */) && (c <= 0x39 /* '9' */)) { formattingInfo = new FormattingInfo( formattingInfo->isLeftAligned(), (formattingInfo->getMinLength() * 10) + (c - 0x30 /* '0' */), formattingInfo->getMaxLength()); } else if (c == 0x2E /* '.' */) { state = DOT_STATE; } else { i = finalizeConverter( c, pattern, i, currentLiteral, formattingInfo, rules, patternConverters, formattingInfos); state = LITERAL_STATE; formattingInfo = FormattingInfo::getDefault(); if (!currentLiteral.empty()) { currentLiteral.erase(currentLiteral.begin(), currentLiteral.end()); } } break; case DOT_STATE: currentLiteral.append(1, c); if ((c >= 0x30 /* '0' */) && (c <= 0x39 /* '9' */)) { formattingInfo = new FormattingInfo( formattingInfo->isLeftAligned(), formattingInfo->getMinLength(), c - 0x30 /* '0' */); state = MAX_STATE; } else { LogLog::error(LOG4CXX_STR("Error in pattern, was expecting digit.")); state = LITERAL_STATE; } break; case MAX_STATE: currentLiteral.append(1, c); if ((c >= 0x30 /* '0' */) && (c <= 0x39 /* '9' */)) { formattingInfo = new FormattingInfo( formattingInfo->isLeftAligned(), formattingInfo->getMinLength(), (formattingInfo->getMaxLength() * 10) + (c - 0x30 /* '0' */)); } else { i = finalizeConverter( c, pattern, i, currentLiteral, formattingInfo, rules, patternConverters, formattingInfos); state = LITERAL_STATE; formattingInfo = FormattingInfo::getDefault(); if (!currentLiteral.empty()) { currentLiteral.erase(currentLiteral.begin(), currentLiteral.end()); } } break; } // switch } // while if (currentLiteral.length() != 0) { patternConverters.push_back( LiteralPatternConverter::newInstance(currentLiteral)); formattingInfos.push_back(FormattingInfo::getDefault()); } } PatternConverterPtr PatternParser::createConverter( const LogString& converterId, LogString& currentLiteral, const PatternMap& rules, std::vector& options) { LogString converterName(converterId); for (int i = converterId.length(); i > 0; i--) { converterName = converterName.substr(0, i); PatternMap::const_iterator iter = rules.find(converterName); if (iter != rules.end()) { currentLiteral.erase(currentLiteral.begin(), currentLiteral.end() - (converterId.length() - i)); return (iter->second)(options); } } LogLog::error(LogString(LOG4CXX_STR("Unrecognized format specifier ")) + converterId); ObjectPtr converterObj; return converterObj; } int PatternParser::finalizeConverter( logchar c, const LogString& pattern, int i, LogString& currentLiteral, const FormattingInfoPtr& formattingInfo, const PatternMap& rules, std::vector& patternConverters, std::vector& formattingInfos) { LogString convBuf; i = extractConverter(c, pattern, i, convBuf, currentLiteral); if (convBuf.empty()) { LogLog::error(LOG4CXX_STR("Empty conversion specifier")); patternConverters.push_back( LiteralPatternConverter::newInstance(currentLiteral)); formattingInfos.push_back(FormattingInfo::getDefault()); } else { LogString converterId(convBuf); std::vector options; i = extractOptions(pattern, i, options); PatternConverterPtr pc( createConverter( converterId, currentLiteral, rules, options)); if (pc == NULL) { LogString msg(LOG4CXX_STR("Unrecognized conversion specifier [")); msg.append(converterId); msg.append(LOG4CXX_STR("] in conversion pattern.")); LogLog::error(msg); patternConverters.push_back( LiteralPatternConverter::newInstance(currentLiteral)); formattingInfos.push_back(FormattingInfo::getDefault()); } else { patternConverters.push_back(pc); formattingInfos.push_back(formattingInfo); if (currentLiteral.length() > 0) { patternConverters.push_back( LiteralPatternConverter::newInstance(currentLiteral)); formattingInfos.push_back(FormattingInfo::getDefault()); } } } if (!currentLiteral.empty()) { currentLiteral.erase(currentLiteral.begin(), currentLiteral.end()); } return i; } apache-log4cxx-0.10.0/src/main/cpp/asyncappender.cpp100644 0 0 26070 10774263341 17417 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::spi; IMPLEMENT_LOG4CXX_OBJECT(AsyncAppender) AsyncAppender::AsyncAppender() : AppenderSkeleton(), buffer(), bufferMutex(pool), bufferNotFull(pool), bufferNotEmpty(pool), discardMap(new DiscardMap()), bufferSize(DEFAULT_BUFFER_SIZE), appenders(new AppenderAttachableImpl(pool)), dispatcher(), locationInfo(false), blocking(true) { #if APR_HAS_THREADS dispatcher.run(dispatch, this); #endif } AsyncAppender::~AsyncAppender() { finalize(); delete discardMap; } void AsyncAppender::addRef() const { ObjectImpl::addRef(); } void AsyncAppender::releaseRef() const { ObjectImpl::releaseRef(); } void AsyncAppender::addAppender(const AppenderPtr& newAppender) { synchronized sync(appenders->getMutex()); appenders->addAppender(newAppender); } void AsyncAppender::setOption(const LogString& option, const LogString& value) { if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("LOCATIONINFO"), LOG4CXX_STR("locationinfo"))) { setLocationInfo(OptionConverter::toBoolean(value, false)); } if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("BUFFERSIZE"), LOG4CXX_STR("buffersize"))) { setBufferSize(OptionConverter::toInt(value, DEFAULT_BUFFER_SIZE)); } if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("BLOCKING"), LOG4CXX_STR("blocking"))) { setBlocking(OptionConverter::toBoolean(value, true)); } else { AppenderSkeleton::setOption(option, value); } } void AsyncAppender::append(const spi::LoggingEventPtr& event, Pool& p) { #if APR_HAS_THREADS // // if dispatcher has died then // append subsequent events synchronously // if (!dispatcher.isAlive() || bufferSize <= 0) { synchronized sync(appenders->getMutex()); appenders->appendLoopOnAppenders(event, p); return; } // Set the NDC and thread name for the calling thread as these // LoggingEvent fields were not set at event creation time. LogString ndcVal; event->getNDC(ndcVal); event->getThreadName(); // Get a copy of this thread's MDC. event->getMDCCopy(); { synchronized sync(bufferMutex); while(true) { int previousSize = buffer.size(); if (previousSize < bufferSize) { buffer.push_back(event); if (previousSize == 0) { bufferNotEmpty.signalAll(); } break; } // // Following code is only reachable if buffer is full // // // if blocking and thread is not already interrupted // and not the dispatcher then // wait for a buffer notification bool discard = true; if (blocking && !Thread::interrupted() && !dispatcher.isCurrentThread()) { try { bufferNotFull.await(bufferMutex); discard = false; } catch (InterruptedException& e) { // // reset interrupt status so // calling code can see interrupt on // their next wait or sleep. Thread::currentThreadInterrupt(); } } // // if blocking is false or thread has been interrupted // add event to discard map. // if (discard) { LogString loggerName = event->getLoggerName(); DiscardMap::iterator iter = discardMap->find(loggerName); if (iter == discardMap->end()) { DiscardSummary summary(event); discardMap->insert(DiscardMap::value_type(loggerName, summary)); } else { (*iter).second.add(event); } break; } } } #else synchronized sync(appenders->getMutex()); appenders->appendLoopOnAppenders(event, p); #endif } void AsyncAppender::close() { { synchronized sync(bufferMutex); closed = true; bufferNotEmpty.signalAll(); bufferNotFull.signalAll(); } #if APR_HAS_THREADS try { dispatcher.join(); } catch(InterruptedException& e) { Thread::currentThreadInterrupt(); LogLog::error(LOG4CXX_STR("Got an InterruptedException while waiting for the dispatcher to finish,"), e); } #endif { synchronized sync(appenders->getMutex()); AppenderList appenderList = appenders->getAllAppenders(); for (AppenderList::iterator iter = appenderList.begin(); iter != appenderList.end(); iter++) { (*iter)->close(); } } } AppenderList AsyncAppender::getAllAppenders() const { synchronized sync(appenders->getMutex()); return appenders->getAllAppenders(); } AppenderPtr AsyncAppender::getAppender(const LogString& name) const { synchronized sync(appenders->getMutex()); return appenders->getAppender(name); } bool AsyncAppender::isAttached(const AppenderPtr& appender) const { synchronized sync(appenders->getMutex()); return appenders->isAttached(appender); } bool AsyncAppender::requiresLayout() const { return false; } void AsyncAppender::removeAllAppenders() { synchronized sync(appenders->getMutex()); appenders->removeAllAppenders(); } void AsyncAppender::removeAppender(const AppenderPtr& appender) { synchronized sync(appenders->getMutex()); appenders->removeAppender(appender); } void AsyncAppender::removeAppender(const LogString& name) { synchronized sync(appenders->getMutex()); appenders->removeAppender(name); } bool AsyncAppender::getLocationInfo() const { return locationInfo; } void AsyncAppender::setLocationInfo(bool flag) { locationInfo = flag; } void AsyncAppender::setBufferSize(int size) { if (size < 0) { throw IllegalArgumentException(LOG4CXX_STR("size argument must be non-negative")); } synchronized sync(bufferMutex); bufferSize = (size < 1) ? 1 : size; bufferNotFull.signalAll(); } int AsyncAppender::getBufferSize() const { return bufferSize; } void AsyncAppender::setBlocking(bool value) { synchronized sync(bufferMutex); blocking = value; bufferNotFull.signalAll(); } bool AsyncAppender::getBlocking() const { return blocking; } AsyncAppender::DiscardSummary::DiscardSummary(const LoggingEventPtr& event) : maxEvent(event), count(1) { } AsyncAppender::DiscardSummary::DiscardSummary(const DiscardSummary& src) : maxEvent(src.maxEvent), count(src.count) { } AsyncAppender::DiscardSummary& AsyncAppender::DiscardSummary::operator=(const DiscardSummary& src) { maxEvent = src.maxEvent; count = src.count; return *this; } void AsyncAppender::DiscardSummary::add(const LoggingEventPtr& event) { if (event->getLevel()->toInt() > maxEvent->getLevel()->toInt()) { maxEvent = event; } count++; } LoggingEventPtr AsyncAppender::DiscardSummary::createEvent(Pool& p) { LogString msg(LOG4CXX_STR("Discarded ")); StringHelper::toString(count, p, msg); msg.append(LOG4CXX_STR(" messages due to a full event buffer including: ")); msg.append(maxEvent->getMessage()); return new LoggingEvent( maxEvent->getLoggerName(), maxEvent->getLevel(), msg, LocationInfo::getLocationUnavailable()); } #if APR_HAS_THREADS void* LOG4CXX_THREAD_FUNC AsyncAppender::dispatch(apr_thread_t* thread, void* data) { AsyncAppender* pThis = (AsyncAppender*) data; bool isActive = true; try { while (isActive) { // // process events after lock on buffer is released. // Pool p; LoggingEventList events; { synchronized sync(pThis->bufferMutex); size_t bufferSize = pThis->buffer.size(); isActive = !pThis->closed; while((bufferSize == 0) && isActive) { pThis->bufferNotEmpty.await(pThis->bufferMutex); bufferSize = pThis->buffer.size(); isActive = !pThis->closed; } for(LoggingEventList::iterator eventIter = pThis->buffer.begin(); eventIter != pThis->buffer.end(); eventIter++) { events.push_back(*eventIter); } for(DiscardMap::iterator discardIter = pThis->discardMap->begin(); discardIter != pThis->discardMap->end(); discardIter++) { events.push_back(discardIter->second.createEvent(p)); } pThis->buffer.clear(); pThis->discardMap->clear(); pThis->bufferNotFull.signalAll(); } for (LoggingEventList::iterator iter = events.begin(); iter != events.end(); iter++) { synchronized sync(pThis->appenders->getMutex()); pThis->appenders->appendLoopOnAppenders(*iter, p); } } } catch(InterruptedException& ex) { Thread::currentThreadInterrupt(); } catch(...) { } return 0; } #endif apache-log4cxx-0.10.0/src/main/cpp/bytebuffer.cpp100644 0 0 3222 10774263341 16672 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; ByteBuffer::ByteBuffer(char* data1, size_t capacity) : base(data1), pos(0), lim(capacity), cap(capacity) { } ByteBuffer::~ByteBuffer() { } void ByteBuffer::clear() { lim = cap; pos = 0; } void ByteBuffer::flip() { lim = pos; pos = 0; } void ByteBuffer::position(size_t newPosition) { if (newPosition < lim) { pos = newPosition; } else { pos = lim; } } void ByteBuffer::limit(size_t newLimit) { if (newLimit > cap) { throw IllegalArgumentException(LOG4CXX_STR("newLimit")); } lim = newLimit; } bool ByteBuffer::put(char byte) { if (pos < lim) { base[pos++] = byte; return true; } return false; } apache-log4cxx-0.10.0/src/main/cpp/inputstreamreader.cpp100644 0 0 4472 10774263341 20303 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(InputStreamReader) InputStreamReader::InputStreamReader(const InputStreamPtr& in1) : in(in1), dec(CharsetDecoder::getDefaultDecoder()) { if (in1 == 0) { throw NullPointerException(LOG4CXX_STR("in parameter may not be null.")); } } InputStreamReader::InputStreamReader(const InputStreamPtr& in1, const CharsetDecoderPtr &dec1) : in(in1), dec(dec1) { if (in1 == 0) { throw NullPointerException(LOG4CXX_STR("in parameter may not be null.")); } if (dec1 == 0) { throw NullPointerException(LOG4CXX_STR("dec parameter may not be null.")); } } InputStreamReader::~InputStreamReader() { } void InputStreamReader::close(Pool& ) { in->close(); } LogString InputStreamReader::read(Pool& p) { const size_t BUFSIZE = 4096; ByteBuffer buf(p.pstralloc(BUFSIZE), BUFSIZE); LogString output; // read whole file while(in->read(buf) >= 0) { buf.flip(); log4cxx_status_t stat = dec->decode(buf, output); if (stat != 0) { throw IOException(stat); } if (buf.remaining() > 0) { memmove(buf.data(), buf.current(), buf.remaining()); buf.limit(buf.remaining()); } else { buf.clear(); } } return output; } apache-log4cxx-0.10.0/src/main/cpp/domconfigurator.cpp100644 0 0 115104 10774263341 20002 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::xml; using namespace log4cxx::helpers; using namespace log4cxx::spi; using namespace log4cxx::config; using namespace log4cxx::rolling; #if APR_HAS_THREADS class XMLWatchdog : public FileWatchdog { public: XMLWatchdog(const File& filename) : FileWatchdog(filename) { } /** Call DOMConfigurator#doConfigure with the filename to reconfigure log4cxx. */ void doOnChange() { DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository()); } }; #endif IMPLEMENT_LOG4CXX_OBJECT(DOMConfigurator) #define CONFIGURATION_TAG "log4j:configuration" #define OLD_CONFIGURATION_TAG "configuration" #define APPENDER_TAG "appender" #define APPENDER_REF_TAG "appender-ref" #define PARAM_TAG "param" #define LAYOUT_TAG "layout" #define ROLLING_POLICY_TAG "rollingPolicy" #define TRIGGERING_POLICY_TAG "triggeringPolicy" #define CATEGORY "category" #define LOGGER "logger" #define LOGGER_REF "logger-ref" #define CATEGORY_FACTORY_TAG "categoryFactory" #define NAME_ATTR "name" #define CLASS_ATTR "class" #define VALUE_ATTR "value" #define ROOT_TAG "root" #define ROOT_REF "root-ref" #define LEVEL_TAG "level" #define PRIORITY_TAG "priority" #define FILTER_TAG "filter" #define ERROR_HANDLER_TAG "errorHandler" #define REF_ATTR "ref" #define ADDITIVITY_ATTR "additivity" #define THRESHOLD_ATTR "threshold" #define CONFIG_DEBUG_ATTR "configDebug" #define INTERNAL_DEBUG_ATTR "debug" DOMConfigurator::DOMConfigurator() : props(), repository() { } void DOMConfigurator::addRef() const { ObjectImpl::addRef(); } void DOMConfigurator::releaseRef() const { ObjectImpl::releaseRef(); } /** Used internally to parse appenders by IDREF name. */ AppenderPtr DOMConfigurator::findAppenderByName(log4cxx::helpers::Pool& p, log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* element, apr_xml_doc* doc, const LogString& appenderName, AppenderMap& appenders) { AppenderPtr appender; std::string tagName(element->name); if (tagName == APPENDER_TAG) { if (appenderName == getAttribute(utf8Decoder, element, NAME_ATTR)) { appender = parseAppender(p, utf8Decoder, element, doc, appenders); } } if (element->first_child && !appender) { appender = findAppenderByName(p, utf8Decoder, element->first_child, doc, appenderName, appenders); } if (element->next && !appender) { appender = findAppenderByName(p, utf8Decoder, element->next, doc, appenderName, appenders); } return appender; } /** Used internally to parse appenders by IDREF element. */ AppenderPtr DOMConfigurator::findAppenderByReference( log4cxx::helpers::Pool& p, log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* appenderRef, apr_xml_doc* doc, AppenderMap& appenders) { LogString appenderName(subst(getAttribute(utf8Decoder, appenderRef, REF_ATTR))); AppenderMap::const_iterator match = appenders.find(appenderName); AppenderPtr appender; if (match != appenders.end()) { appender = match->second; } else if (doc) { appender = findAppenderByName(p, utf8Decoder, doc->root, doc, appenderName, appenders); if (appender) { appenders.insert(AppenderMap::value_type(appenderName, appender)); } } if (!appender) { LogLog::error(LOG4CXX_STR("No appender named [")+ appenderName+LOG4CXX_STR("] could be found.")); } return appender; } /** Used internally to parse an appender element. */ AppenderPtr DOMConfigurator::parseAppender(Pool& p, log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* appenderElement, apr_xml_doc* doc, AppenderMap& appenders) { LogString className(subst(getAttribute(utf8Decoder, appenderElement, CLASS_ATTR))); LogLog::debug(LOG4CXX_STR("Class name: [") + className+LOG4CXX_STR("]")); try { ObjectPtr instance = Loader::loadClass(className).newInstance(); AppenderPtr appender = instance; PropertySetter propSetter(appender); appender->setName(subst(getAttribute(utf8Decoder, appenderElement, NAME_ATTR))); for(apr_xml_elem* currentElement = appenderElement->first_child; currentElement; currentElement = currentElement->next) { std::string tagName(currentElement->name); // Parse appender parameters if (tagName == PARAM_TAG) { setParameter(p, utf8Decoder, currentElement, propSetter); } // Set appender layout else if (tagName == LAYOUT_TAG) { appender->setLayout(parseLayout(p, utf8Decoder, currentElement)); } // Add filters else if (tagName == FILTER_TAG) { std::vector filters; parseFilters(p, utf8Decoder, currentElement, filters); for(std::vector::iterator iter = filters.begin(); iter != filters.end(); iter++) { appender->addFilter(*iter); } } else if (tagName == ERROR_HANDLER_TAG) { parseErrorHandler(p, utf8Decoder, currentElement, appender, doc, appenders); } else if (tagName == ROLLING_POLICY_TAG) { RollingPolicyPtr rollPolicy(parseRollingPolicy(p, utf8Decoder, currentElement)); RollingFileAppenderPtr rfa(appender); if (rfa != NULL) { rfa->setRollingPolicy(rollPolicy); } } else if (tagName == TRIGGERING_POLICY_TAG) { ObjectPtr policy(parseTriggeringPolicy(p, utf8Decoder, currentElement)); RollingFileAppenderPtr rfa(appender); if (rfa != NULL) { rfa->setTriggeringPolicy(policy); } else { log4cxx::net::SMTPAppenderPtr smtpa(appender); if (smtpa != NULL) { log4cxx::spi::TriggeringEventEvaluatorPtr evaluator(policy); smtpa->setEvaluator(evaluator); } } } else if (tagName == APPENDER_REF_TAG) { LogString refName = subst(getAttribute(utf8Decoder, currentElement, REF_ATTR)); if(appender->instanceof(AppenderAttachable::getStaticClass())) { AppenderAttachablePtr aa(appender); LogLog::debug(LOG4CXX_STR("Attaching appender named [")+ refName+LOG4CXX_STR("] to appender named [")+ appender->getName()+LOG4CXX_STR("].")); aa->addAppender(findAppenderByReference(p, utf8Decoder, currentElement, doc, appenders)); } else { LogLog::error(LOG4CXX_STR("Requesting attachment of appender named [")+ refName+ LOG4CXX_STR("] to appender named [")+ appender->getName()+ LOG4CXX_STR("] which does not implement AppenderAttachable.")); } } } propSetter.activate(p); return appender; } /* Yes, it's ugly. But all of these exceptions point to the same problem: we can't create an Appender */ catch (Exception& oops) { LogLog::error(LOG4CXX_STR("Could not create an Appender. Reported error follows."), oops); return 0; } } /** Used internally to parse an {@link ErrorHandler} element. */ void DOMConfigurator::parseErrorHandler(Pool& p, log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* element, AppenderPtr& appender, apr_xml_doc* doc, AppenderMap& appenders) { ErrorHandlerPtr eh = OptionConverter::instantiateByClassName( subst(getAttribute(utf8Decoder, element, CLASS_ATTR)), ErrorHandler::getStaticClass(), 0); if(eh != 0) { eh->setAppender(appender); PropertySetter propSetter(eh); for (apr_xml_elem* currentElement = element->first_child; currentElement; currentElement = currentElement->next) { std::string tagName(currentElement->name); if(tagName == PARAM_TAG) { setParameter(p, utf8Decoder, currentElement, propSetter); } else if(tagName == APPENDER_REF_TAG) { eh->setBackupAppender(findAppenderByReference(p, utf8Decoder, currentElement, doc, appenders)); } else if(tagName == LOGGER_REF) { LogString loggerName(getAttribute(utf8Decoder, currentElement, REF_ATTR)); LoggerPtr logger = repository->getLogger(loggerName, loggerFactory); eh->setLogger(logger); } else if(tagName == ROOT_REF) { LoggerPtr root = repository->getRootLogger(); eh->setLogger(root); } } propSetter.activate(p); // appender->setErrorHandler(eh); } } /** Used internally to parse a filter element. */ void DOMConfigurator::parseFilters(Pool& p, log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* element, std::vector& filters) { LogString clazz = subst(getAttribute(utf8Decoder, element, CLASS_ATTR)); FilterPtr filter = OptionConverter::instantiateByClassName(clazz, Filter::getStaticClass(), 0); if(filter != 0) { PropertySetter propSetter(filter); for (apr_xml_elem* currentElement = element->first_child; currentElement; currentElement = currentElement->next) { std::string tagName(currentElement->name); if(tagName == PARAM_TAG) { setParameter(p, utf8Decoder, currentElement, propSetter); } } propSetter.activate(p); filters.push_back(filter); } } /** Used internally to parse an category or logger element. */ void DOMConfigurator::parseLogger( log4cxx::helpers::Pool& p, log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* loggerElement, apr_xml_doc* doc, AppenderMap& appenders) { // Create a new Logger object from the element. LogString loggerName = subst(getAttribute(utf8Decoder, loggerElement, NAME_ATTR)); LogLog::debug(LOG4CXX_STR("Retreiving an instance of Logger.")); LoggerPtr logger = repository->getLogger(loggerName, loggerFactory); // Setting up a logger needs to be an atomic operation, in order // to protect potential log operations while logger // configuration is in progress. synchronized sync(logger->getMutex()); bool additivity = OptionConverter::toBoolean( subst(getAttribute(utf8Decoder, loggerElement, ADDITIVITY_ATTR)), true); LogLog::debug(LOG4CXX_STR("Setting [")+logger->getName()+LOG4CXX_STR("] additivity to [")+ (additivity ? LogString(LOG4CXX_STR("true")) : LogString(LOG4CXX_STR("false")))+LOG4CXX_STR("].")); logger->setAdditivity(additivity); parseChildrenOfLoggerElement(p, utf8Decoder, loggerElement, logger, false, doc, appenders); } /** Used internally to parse the logger factory element. */ void DOMConfigurator::parseLoggerFactory( log4cxx::helpers::Pool& p, log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* factoryElement) { LogString className(subst(getAttribute(utf8Decoder, factoryElement, CLASS_ATTR))); if(className.empty()) { LogLog::error(LOG4CXX_STR("Logger Factory tag class attribute not found.")); LogLog::debug(LOG4CXX_STR("No Logger Factory configured.")); } else { LogLog::debug(LOG4CXX_STR("Desired logger factory: [")+className+LOG4CXX_STR("]")); loggerFactory = OptionConverter::instantiateByClassName( className, LoggerFactory::getStaticClass(), 0); PropertySetter propSetter(loggerFactory); for (apr_xml_elem* currentElement = factoryElement->first_child; currentElement; currentElement = currentElement->next) { std::string tagName(currentElement->name); if (tagName == PARAM_TAG) { setParameter(p, utf8Decoder, currentElement, propSetter); } } } } /** Used internally to parse the root logger element. */ void DOMConfigurator::parseRoot( log4cxx::helpers::Pool& p, log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* rootElement, apr_xml_doc* doc, AppenderMap& appenders) { LoggerPtr root = repository->getRootLogger(); // logger configuration needs to be atomic synchronized sync(root->getMutex()); parseChildrenOfLoggerElement(p, utf8Decoder, rootElement, root, true, doc, appenders); } /** Used internally to parse the children of a logger element. */ void DOMConfigurator::parseChildrenOfLoggerElement( log4cxx::helpers::Pool& p, log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* loggerElement, LoggerPtr logger, bool isRoot, apr_xml_doc* doc, AppenderMap& appenders) { PropertySetter propSetter(logger); // Remove all existing appenders from logger. They will be // reconstructed if need be. logger->removeAllAppenders(); for (apr_xml_elem* currentElement = loggerElement->first_child; currentElement; currentElement = currentElement->next) { std::string tagName(currentElement->name); if (tagName == APPENDER_REF_TAG) { AppenderPtr appender = findAppenderByReference(p, utf8Decoder, currentElement, doc, appenders); LogString refName = subst(getAttribute(utf8Decoder, currentElement, REF_ATTR)); if(appender != 0) { LogLog::debug(LOG4CXX_STR("Adding appender named [")+ refName+ LOG4CXX_STR("] to logger [")+logger->getName()+LOG4CXX_STR("].")); } else { LogLog::debug(LOG4CXX_STR("Appender named [")+ refName + LOG4CXX_STR("] not found.")); } logger->addAppender(appender); } else if(tagName == LEVEL_TAG) { parseLevel(p, utf8Decoder, currentElement, logger, isRoot); } else if(tagName == PRIORITY_TAG) { parseLevel(p, utf8Decoder, currentElement, logger, isRoot); } else if(tagName == PARAM_TAG) { setParameter(p, utf8Decoder, currentElement, propSetter); } } propSetter.activate(p); } /** Used internally to parse a layout element. */ LayoutPtr DOMConfigurator::parseLayout ( log4cxx::helpers::Pool& p, log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* layout_element) { LogString className(subst(getAttribute(utf8Decoder, layout_element, CLASS_ATTR))); LogLog::debug(LOG4CXX_STR("Parsing layout of class: \"")+className+LOG4CXX_STR("\"")); try { ObjectPtr instance = Loader::loadClass(className).newInstance(); LayoutPtr layout = instance; PropertySetter propSetter(layout); for(apr_xml_elem* currentElement = layout_element->first_child; currentElement; currentElement = currentElement->next) { std::string tagName(currentElement->name); if(tagName == PARAM_TAG) { setParameter(p, utf8Decoder, currentElement, propSetter); } } propSetter.activate(p); return layout; } catch (Exception& oops) { LogLog::error(LOG4CXX_STR("Could not create the Layout. Reported error follows."), oops); return 0; } } /** Used internally to parse a triggering policy */ ObjectPtr DOMConfigurator::parseTriggeringPolicy ( log4cxx::helpers::Pool& p, log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* layout_element) { LogString className = subst(getAttribute(utf8Decoder, layout_element, CLASS_ATTR)); LogLog::debug(LOG4CXX_STR("Parsing triggering policy of class: \"")+className+LOG4CXX_STR("\"")); try { ObjectPtr instance = Loader::loadClass(className).newInstance(); PropertySetter propSetter(instance); for (apr_xml_elem* currentElement = layout_element->first_child; currentElement; currentElement = currentElement->next) { std::string tagName(currentElement->name); if(tagName == PARAM_TAG) { setParameter(p, utf8Decoder, currentElement, propSetter); } else if (tagName == FILTER_TAG) { std::vector filters; parseFilters(p, utf8Decoder, currentElement, filters); FilterBasedTriggeringPolicyPtr fbtp(instance); if (fbtp != NULL) { for(std::vector::iterator iter = filters.begin(); iter != filters.end(); iter++) { fbtp->addFilter(*iter); } } } } propSetter.activate(p); return instance; } catch (Exception& oops) { LogLog::error(LOG4CXX_STR("Could not create the TriggeringPolicy. Reported error follows."), oops); return 0; } } /** Used internally to parse a triggering policy */ RollingPolicyPtr DOMConfigurator::parseRollingPolicy ( log4cxx::helpers::Pool& p, log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* layout_element) { LogString className = subst(getAttribute(utf8Decoder, layout_element, CLASS_ATTR)); LogLog::debug(LOG4CXX_STR("Parsing rolling policy of class: \"")+className+LOG4CXX_STR("\"")); try { ObjectPtr instance = Loader::loadClass(className).newInstance(); RollingPolicyPtr layout = instance; PropertySetter propSetter(layout); for(apr_xml_elem* currentElement = layout_element->first_child; currentElement; currentElement = currentElement->next) { std::string tagName(currentElement->name); if(tagName == PARAM_TAG) { setParameter(p, utf8Decoder, currentElement, propSetter); } } propSetter.activate(p); return layout; } catch (Exception& oops) { LogLog::error(LOG4CXX_STR("Could not create the RollingPolicy. Reported error follows."), oops); return 0; } } /** Used internally to parse a level element. */ void DOMConfigurator::parseLevel( log4cxx::helpers::Pool& p, log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* element, LoggerPtr logger, bool isRoot) { LogString loggerName = logger->getName(); if(isRoot) { loggerName = LOG4CXX_STR("root"); } LogString levelStr(subst(getAttribute(utf8Decoder, element, VALUE_ATTR))); LogLog::debug(LOG4CXX_STR("Level value for ")+loggerName+LOG4CXX_STR(" is [")+levelStr+LOG4CXX_STR("].")); if (StringHelper::equalsIgnoreCase(levelStr,LOG4CXX_STR("INHERITED"), LOG4CXX_STR("inherited")) || StringHelper::equalsIgnoreCase(levelStr, LOG4CXX_STR("NULL"), LOG4CXX_STR("null"))) { if(isRoot) { LogLog::error(LOG4CXX_STR("Root level cannot be inherited. Ignoring directive.")); } else { logger->setLevel(0); } } else { LogString className(subst(getAttribute(utf8Decoder, element, CLASS_ATTR))); if (className.empty()) { logger->setLevel(OptionConverter::toLevel(levelStr, Level::getDebug())); } else { LogLog::debug(LOG4CXX_STR("Desired Level sub-class: [") + className + LOG4CXX_STR("]")); try { Level::LevelClass& levelClass = (Level::LevelClass&)Loader::loadClass(className); LevelPtr level = levelClass.toLevel(levelStr); logger->setLevel(level); } catch (Exception& oops) { LogLog::error( LOG4CXX_STR("Could not create level [") + levelStr + LOG4CXX_STR("]. Reported error follows."), oops); return; } catch (...) { LogLog::error( LOG4CXX_STR("Could not create level [") + levelStr); return; } } } LogLog::debug(loggerName + LOG4CXX_STR(" level set to ") + logger->getEffectiveLevel()->toString()); } void DOMConfigurator::setParameter(log4cxx::helpers::Pool& p, log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* elem, PropertySetter& propSetter) { LogString name(subst(getAttribute(utf8Decoder, elem, NAME_ATTR))); LogString value(subst(getAttribute(utf8Decoder, elem, VALUE_ATTR))); value = subst(value); propSetter.setProperty(name, value, p); } void DOMConfigurator::doConfigure(const File& filename, spi::LoggerRepositoryPtr& repository1) { repository1->setConfigured(true); this->repository = repository1; LogString msg(LOG4CXX_STR("DOMConfigurator configuring file ")); msg.append(filename.getPath()); msg.append(LOG4CXX_STR("...")); LogLog::debug(msg); loggerFactory = new DefaultLoggerFactory(); Pool p; apr_file_t *fd; log4cxx_status_t rv = filename.open(&fd, APR_READ, APR_OS_DEFAULT, p); if (rv != APR_SUCCESS) { LogString msg2(LOG4CXX_STR("Could not open file [")); msg2.append(filename.getPath()); msg2.append(LOG4CXX_STR("].")); LogLog::error(msg2); } else { apr_xml_parser *parser; apr_xml_doc *doc; rv = apr_xml_parse_file(p.getAPRPool(), &parser, &doc, fd, 2000); if (rv != APR_SUCCESS) { char errbuf[2000]; char errbufXML[2000]; LogString msg2(LOG4CXX_STR("Error parsing file [")); msg2.append(filename.getPath()); msg2.append(LOG4CXX_STR("], ")); apr_strerror(rv, errbuf, sizeof(errbuf)); LOG4CXX_DECODE_CHAR(lerrbuf, std::string(errbuf)); apr_xml_parser_geterror(parser, errbufXML, sizeof(errbufXML)); LOG4CXX_DECODE_CHAR(lerrbufXML, std::string(errbufXML)); msg2.append(lerrbuf); msg2.append(lerrbufXML); LogLog::error(msg2); } else { AppenderMap appenders; CharsetDecoderPtr utf8Decoder(CharsetDecoder::getUTF8Decoder()); parse(p, utf8Decoder, doc->root, doc, appenders); } } } void DOMConfigurator::configure(const std::string& filename) { File file(filename); DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository()); } #if LOG4CXX_WCHAR_T_API void DOMConfigurator::configure(const std::wstring& filename) { File file(filename); DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository()); } #endif #if LOG4CXX_UNICHAR_API void DOMConfigurator::configure(const std::basic_string& filename) { File file(filename); DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository()); } #endif #if LOG4CXX_CFSTRING_API void DOMConfigurator::configure(const CFStringRef& filename) { File file(filename); DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository()); } #endif void DOMConfigurator::configureAndWatch(const std::string& filename) { configureAndWatch(filename, FileWatchdog::DEFAULT_DELAY); } #if LOG4CXX_WCHAR_T_API void DOMConfigurator::configureAndWatch(const std::wstring& filename) { configureAndWatch(filename, FileWatchdog::DEFAULT_DELAY); } #endif #if LOG4CXX_UNICHAR_API void DOMConfigurator::configureAndWatch(const std::basic_string& filename) { configureAndWatch(filename, FileWatchdog::DEFAULT_DELAY); } #endif #if LOG4CXX_CFSTRING_API void DOMConfigurator::configureAndWatch(const CFStringRef& filename) { configureAndWatch(filename, FileWatchdog::DEFAULT_DELAY); } #endif void DOMConfigurator::configureAndWatch(const std::string& filename, long delay) { File file(filename); #if APR_HAS_THREADS XMLWatchdog * xdog = new XMLWatchdog(file); xdog->setDelay(delay); xdog->start(); #else DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository()); #endif } #if LOG4CXX_WCHAR_T_API void DOMConfigurator::configureAndWatch(const std::wstring& filename, long delay) { File file(filename); #if APR_HAS_THREADS XMLWatchdog * xdog = new XMLWatchdog(file); xdog->setDelay(delay); xdog->start(); #else DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository()); #endif } #endif #if LOG4CXX_UNICHAR_API void DOMConfigurator::configureAndWatch(const std::basic_string& filename, long delay) { File file(filename); #if APR_HAS_THREADS XMLWatchdog * xdog = new XMLWatchdog(file); xdog->setDelay(delay); xdog->start(); #else DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository()); #endif } #endif #if LOG4CXX_CFSTRING_API void DOMConfigurator::configureAndWatch(const CFStringRef& filename, long delay) { File file(filename); #if APR_HAS_THREADS XMLWatchdog * xdog = new XMLWatchdog(file); xdog->setDelay(delay); xdog->start(); #else DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository()); #endif } #endif void DOMConfigurator::parse( Pool& p, log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* element, apr_xml_doc* doc, AppenderMap& appenders) { std::string rootElementName(element->name); if (rootElementName != CONFIGURATION_TAG) { if(rootElementName == OLD_CONFIGURATION_TAG) { //LogLog::warn(LOG4CXX_STR("The <")+String(OLD_CONFIGURATION_TAG)+ // LOG4CXX_STR("> element has been deprecated.")); //LogLog::warn(LOG4CXX_STR("Use the <")+String(CONFIGURATION_TAG)+ // LOG4CXX_STR("> element instead.")); } else { LogLog::error(LOG4CXX_STR("DOM element is - not a element.")); return; } } LogString debugAttrib = subst(getAttribute(utf8Decoder, element, INTERNAL_DEBUG_ATTR)); static const LogString NuLL(LOG4CXX_STR("NULL")); LogLog::debug(LOG4CXX_STR("debug attribute= \"") + debugAttrib +LOG4CXX_STR("\".")); // if the log4j.dtd is not specified in the XML file, then the // "debug" attribute is returned as the empty string. if(!debugAttrib.empty() && debugAttrib != NuLL) { LogLog::setInternalDebugging(OptionConverter::toBoolean(debugAttrib, true)); } else { LogLog::debug(LOG4CXX_STR("Ignoring internalDebug attribute.")); } LogString confDebug = subst(getAttribute(utf8Decoder, element, CONFIG_DEBUG_ATTR)); if(!confDebug.empty() && confDebug != NuLL) { LogLog::warn(LOG4CXX_STR("The \"configDebug\" attribute is deprecated.")); LogLog::warn(LOG4CXX_STR("Use the \"internalDebug\" attribute instead.")); LogLog::setInternalDebugging(OptionConverter::toBoolean(confDebug, true)); } LogString thresholdStr = subst(getAttribute(utf8Decoder, element, THRESHOLD_ATTR)); LogLog::debug(LOG4CXX_STR("Threshold =\"") + thresholdStr +LOG4CXX_STR("\".")); if(!thresholdStr.empty() && thresholdStr != NuLL) { repository->setThreshold(thresholdStr); } apr_xml_elem* currentElement; for(currentElement = element->first_child; currentElement; currentElement = currentElement->next) { std::string tagName(currentElement->name); if (tagName == CATEGORY_FACTORY_TAG) { parseLoggerFactory(p, utf8Decoder, currentElement); } } for(currentElement = element->first_child; currentElement; currentElement = currentElement->next) { std::string tagName(currentElement->name); if (tagName == CATEGORY || tagName == LOGGER) { parseLogger(p, utf8Decoder, currentElement, doc, appenders); } else if (tagName == ROOT_TAG) { parseRoot(p, utf8Decoder, currentElement, doc, appenders); } } } LogString DOMConfigurator::subst(const LogString& value) { try { return OptionConverter::substVars(value, props); } catch(IllegalArgumentException& e) { LogLog::warn(LOG4CXX_STR("Could not perform variable substitution."), e); return value; } } LogString DOMConfigurator::getAttribute( log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* element, const std::string& attrName) { LogString attrValue; for(apr_xml_attr* attr = element->attr; attr; attr = attr->next) { if (attrName == attr->name) { ByteBuffer buf((char*) attr->value, strlen(attr->value)); utf8Decoder->decode(buf, attrValue); } } return attrValue; } apache-log4cxx-0.10.0/src/main/cpp/defaultconfigurator.cpp100644 0 0 7650 10774263341 20615 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::spi; using namespace log4cxx::helpers; void DefaultConfigurator::configure(LoggerRepository* repository) { repository->setConfigured(true); const LogString configuratorClassName(getConfiguratorClass()); LogString configurationOptionStr(getConfigurationFileName()); Pool pool; File configuration; if (configurationOptionStr.empty()) { const char* names[] = { "log4cxx.xml", "log4cxx.properties", "log4j.xml", "log4j.properties", 0 }; for (int i = 0; names[i] != 0; i++) { File candidate(names[i]); if (candidate.exists(pool)) { configuration = candidate; break; } } } else { configuration.setPath(configurationOptionStr); } if (configuration.exists(pool)) { LogString msg(LOG4CXX_STR("Using configuration file [")); msg += configuration.getPath(); msg += LOG4CXX_STR("] for automatic log4cxx configuration"); LogLog::debug(msg); LoggerRepositoryPtr repo(repository); OptionConverter::selectAndConfigure( configuration, configuratorClassName, repo); } else { if (configurationOptionStr.empty()) { LogLog::debug(LOG4CXX_STR("Could not find default configuration file.")); } else { LogString msg(LOG4CXX_STR("Could not find configuration file: [")); msg += configurationOptionStr; msg += LOG4CXX_STR("]."); LogLog::debug(msg); } } } const LogString DefaultConfigurator::getConfiguratorClass() { // Use automatic configration to configure the default hierarchy const LogString log4jConfiguratorClassName( OptionConverter::getSystemProperty(LOG4CXX_STR("log4j.configuratorClass"),LOG4CXX_STR(""))); const LogString configuratorClassName( OptionConverter::getSystemProperty(LOG4CXX_STR("LOG4CXX_CONFIGURATOR_CLASS"), log4jConfiguratorClassName)); return configuratorClassName; } const LogString DefaultConfigurator::getConfigurationFileName() { static const LogString LOG4CXX_DEFAULT_CONFIGURATION_KEY(LOG4CXX_STR("LOG4CXX_CONFIGURATION")); static const LogString LOG4J_DEFAULT_CONFIGURATION_KEY(LOG4CXX_STR("log4j.configuration")); const LogString log4jConfigurationOptionStr( OptionConverter::getSystemProperty(LOG4J_DEFAULT_CONFIGURATION_KEY, LOG4CXX_STR(""))); const LogString configurationOptionStr( OptionConverter::getSystemProperty(LOG4CXX_DEFAULT_CONFIGURATION_KEY, log4jConfigurationOptionStr)); return configurationOptionStr; } apache-log4cxx-0.10.0/src/main/cpp/formattinginfo.cpp100644 0 0 4347 10774263341 17574 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include using namespace log4cxx; using namespace log4cxx::pattern; IMPLEMENT_LOG4CXX_OBJECT(FormattingInfo) /** * Creates new instance. * @param leftAlign left align if true. * @param minLength minimum length. * @param maxLength maximum length. */ FormattingInfo::FormattingInfo( const bool leftAlign1, const int minLength1, const int maxLength1) : minLength(minLength1), maxLength(maxLength1), leftAlign(leftAlign1) { } /** * Gets default instance. * @return default instance. */ FormattingInfoPtr FormattingInfo::getDefault() { static FormattingInfoPtr def(new FormattingInfo(false, 0, INT_MAX)); return def; } /** * Adjust the content of the buffer based on the specified lengths and alignment. * * @param fieldStart start of field in buffer. * @param buffer buffer to be modified. */ void FormattingInfo::format(const int fieldStart, LogString& buffer) const { int rawLength = buffer.length() - fieldStart; if (rawLength > maxLength) { buffer.erase(buffer.begin() + fieldStart, buffer.begin() + fieldStart + (rawLength - maxLength)); } else if (rawLength < minLength) { if (leftAlign) { buffer.append(minLength - rawLength, (logchar) 0x20 /* ' ' */); } else { buffer.insert(fieldStart, minLength - rawLength, 0x20 /* ' ' */); } } } apache-log4cxx-0.10.0/src/main/cpp/transform.cpp100644 0 0 6102 10774263341 16550 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include using namespace log4cxx; using namespace log4cxx::helpers; void Transform::appendEscapingTags( LogString& buf, const LogString& input) { //Check if the string is zero length -- if so, return //what was sent in. if(input.length() == 0 ) { return; } logchar specials[] = { 0x22 /* " */, 0x26 /* & */, 0x3C /* < */, 0x3E /* > */, 0x00 }; size_t start = 0; size_t special = input.find_first_of(specials, start); while(special != LogString::npos) { if (special > start) { buf.append(input, start, special - start); } switch(input[special]) { case 0x22: buf.append(LOG4CXX_STR(""")); break; case 0x26: buf.append(LOG4CXX_STR("&")); break; case 0x3C: buf.append(LOG4CXX_STR("<")); break; case 0x3E: buf.append(LOG4CXX_STR(">")); break; default: buf.append(1, input[special]); break; } start = special+1; if (special < input.size()) { special = input.find_first_of(specials, start); } else { special = LogString::npos; } } if (start < input.size()) { buf.append(input, start, input.size() - start); } } void Transform::appendEscapingCDATA( LogString& buf, const LogString& input) { static const LogString CDATA_END(LOG4CXX_STR("]]>")); static const LogString CDATA_EMBEDED_END(LOG4CXX_STR("]]>]]> #include #ifndef INT64_C #define INT64_C(x) x ## LL #endif #include using namespace log4cxx; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(Date) Date::Date() : time(apr_time_now()) { } Date::Date(log4cxx_time_t t) : time(t) { } Date::~Date() { } log4cxx_time_t Date::getMicrosecondsPerDay() { return APR_INT64_C(86400000000); } log4cxx_time_t Date::getMicrosecondsPerSecond() { return APR_USEC_PER_SEC; } log4cxx_time_t Date::getNextSecond() const { return ((time / APR_USEC_PER_SEC) + 1) * APR_USEC_PER_SEC; } apache-log4cxx-0.10.0/src/main/cpp/propertiespatternconverter.cpp100644 0 0 5310 10774263341 22257 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include using namespace log4cxx; using namespace log4cxx::pattern; using namespace log4cxx::spi; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(PropertiesPatternConverter) PropertiesPatternConverter::PropertiesPatternConverter(const LogString& name1, const LogString& propertyName) : LoggingEventPatternConverter(name1,LOG4CXX_STR("property")), option(propertyName) { } PatternConverterPtr PropertiesPatternConverter::newInstance( const std::vector& options) { if (options.size() == 0) { static PatternConverterPtr def(new PropertiesPatternConverter( LOG4CXX_STR("Properties"), LOG4CXX_STR(""))); return def; } LogString converterName(LOG4CXX_STR("Property{")); converterName.append(options[0]); converterName.append(LOG4CXX_STR("}")); PatternConverterPtr converter(new PropertiesPatternConverter( converterName, options[0])); return converter; } void PropertiesPatternConverter::format( const LoggingEventPtr& event, LogString& toAppendTo, Pool& /* p */) const { if (option.length() == 0) { toAppendTo.append(1, (logchar) 0x7B /* '{' */); LoggingEvent::KeySet keySet(event->getMDCKeySet()); for(LoggingEvent::KeySet::const_iterator iter = keySet.begin(); iter != keySet.end(); iter++) { toAppendTo.append(1, (logchar) 0x7B /* '{' */); toAppendTo.append(*iter); toAppendTo.append(1, (logchar) 0x2C /* ',' */); event->getMDC(*iter, toAppendTo); toAppendTo.append(1, (logchar) 0x7D /* '}' */); } toAppendTo.append(1, (logchar) 0x7D /* '}' */); } else { event->getMDC(option, toAppendTo); } } apache-log4cxx-0.10.0/src/main/cpp/manualtriggeringpolicy.cpp100644 0 0 3007 10774263341 21315 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include using namespace log4cxx; using namespace log4cxx::rolling; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(ManualTriggeringPolicy) ManualTriggeringPolicy::ManualTriggeringPolicy() { } bool ManualTriggeringPolicy::isTriggeringEvent(Appender* /* appender */, const log4cxx::spi::LoggingEventPtr& /* event */, const LogString& /* file */, size_t /* fileLength */ ) { return false; } void ManualTriggeringPolicy::activateOptions(Pool& /* p */ ) { } void ManualTriggeringPolicy::setOption(const LogString& /* option */ , const LogString& /* value */ ) { } apache-log4cxx-0.10.0/src/main/cpp/filter.cpp100644 0 0 2503 10774263341 16023 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include using namespace log4cxx; using namespace log4cxx::spi; using namespace log4cxx::helpers; Filter::Filter() : next() { } void Filter::addRef() const { ObjectImpl::addRef(); } void Filter::releaseRef() const { ObjectImpl::releaseRef(); } FilterPtr Filter::getNext() const { return next; } void Filter::setNext(const FilterPtr& newNext) { next = newNext; } void Filter::activateOptions(Pool&) { } void Filter::setOption(const LogString&, const LogString&) { } apache-log4cxx-0.10.0/src/main/cpp/mdc.cpp100644 0 0 14113 10774263341 15321 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #if LOG4CXX_CFSTRING_API #include #endif using namespace log4cxx; using namespace log4cxx::helpers; MDC::MDC(const std::string& key1, const std::string& value) : key() { Transcoder::decode(key1, key); LOG4CXX_DECODE_CHAR(v, value); putLS(key, v); } MDC::~MDC() { LogString prevVal; remove(key, prevVal); } void MDC::putLS(const LogString& key, const LogString& value) { ThreadSpecificData::put(key, value); } void MDC::put(const std::string& key, const std::string& value) { LOG4CXX_DECODE_CHAR(lkey, key); LOG4CXX_DECODE_CHAR(lvalue, value); putLS(lkey, lvalue); } bool MDC::get(const LogString& key, LogString& value) { ThreadSpecificData* data = ThreadSpecificData::getCurrentData(); if (data != 0) { Map& map = data->getMap(); Map::iterator it = map.find(key); if (it != map.end()) { value.append(it->second); return true; } data->recycle(); } return false; } std::string MDC::get(const std::string& key) { LOG4CXX_DECODE_CHAR(lkey, key); LogString lvalue; if (get(lkey, lvalue)) { LOG4CXX_ENCODE_CHAR(value, lvalue); return value; } return std::string(); } bool MDC::remove(const LogString& key, LogString& value) { ThreadSpecificData* data = ThreadSpecificData::getCurrentData(); if (data != 0) { Map& map = data->getMap(); Map::iterator it; if ((it = map.find(key)) != map.end()) { value = it->second; map.erase(it); data->recycle(); return true; } } return false; } std::string MDC::remove(const std::string& key) { LOG4CXX_DECODE_CHAR(lkey, key); LogString lvalue; if (remove(lkey, lvalue)) { LOG4CXX_ENCODE_CHAR(value, lvalue); return value; } return std::string(); } void MDC::clear() { ThreadSpecificData* data = ThreadSpecificData::getCurrentData(); if (data != 0) { Map& map = data->getMap(); map.erase(map.begin(), map.end()); data->recycle(); } } #if LOG4CXX_WCHAR_T_API MDC::MDC(const std::wstring& key1, const std::wstring& value) : key() { Transcoder::decode(key1, key); LOG4CXX_DECODE_WCHAR(v, value); putLS(key, v); } std::wstring MDC::get(const std::wstring& key) { LOG4CXX_DECODE_WCHAR(lkey, key); LogString lvalue; if (get(lkey, lvalue)) { LOG4CXX_ENCODE_WCHAR(value, lvalue); return value; } return std::wstring(); } void MDC::put(const std::wstring& key, const std::wstring& value) { LOG4CXX_DECODE_WCHAR(lkey, key); LOG4CXX_DECODE_WCHAR(lvalue, value); putLS(lkey, lvalue); } std::wstring MDC::remove(const std::wstring& key) { LOG4CXX_DECODE_WCHAR(lkey, key); LogString lvalue; if (remove(lkey, lvalue)) { LOG4CXX_ENCODE_WCHAR(value, lvalue); return value; } return std::wstring(); } #endif #if LOG4CXX_UNICHAR_API MDC::MDC(const std::basic_string& key1, const std::basic_string& value) { Transcoder::decode(key1, key); LOG4CXX_DECODE_UNICHAR(v, value); putLS(key, v); } std::basic_string MDC::get(const std::basic_string& key) { LOG4CXX_DECODE_UNICHAR(lkey, key); LogString lvalue; if (get(lkey, lvalue)) { LOG4CXX_ENCODE_UNICHAR(value, lvalue); return value; } return std::basic_string(); } void MDC::put(const std::basic_string& key, const std::basic_string& value) { LOG4CXX_DECODE_UNICHAR(lkey, key); LOG4CXX_DECODE_UNICHAR(lvalue, value); putLS(lkey, lvalue); } std::basic_string MDC::remove(const std::basic_string& key) { LOG4CXX_DECODE_UNICHAR(lkey, key); LogString lvalue; if (remove(lkey, lvalue)) { LOG4CXX_ENCODE_UNICHAR(value, lvalue); return value; } return std::basic_string(); } #endif #if LOG4CXX_CFSTRING_API MDC::MDC(const CFStringRef& key1, const CFStringRef& value) { Transcoder::decode(key1, key); LOG4CXX_DECODE_CFSTRING(v, value); putLS(key, v); } CFStringRef MDC::get(const CFStringRef& key) { LOG4CXX_DECODE_CFSTRING(lkey, key); LogString lvalue; if (get(lkey, lvalue)) { LOG4CXX_ENCODE_CFSTRING(value, lvalue); return value; } return CFSTR(""); } void MDC::put(const CFStringRef& key, const CFStringRef& value) { LOG4CXX_DECODE_CFSTRING(lkey, key); LOG4CXX_DECODE_CFSTRING(lvalue, value); putLS(lkey, lvalue); } CFStringRef MDC::remove(const CFStringRef& key) { LOG4CXX_DECODE_CFSTRING(lkey, key); LogString lvalue; if (remove(lkey, lvalue)) { LOG4CXX_ENCODE_CFSTRING(value, lvalue); return value; } return CFSTR(""); } #endif apache-log4cxx-0.10.0/src/main/cpp/socketoutputstream.cpp100644 0 0 3275 10774263341 20532 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(SocketOutputStream) SocketOutputStream::SocketOutputStream(const SocketPtr& socket1) : socket(socket1) { } SocketOutputStream::~SocketOutputStream() { } void SocketOutputStream::close(Pool& p) { flush(p); socket->close(); } void SocketOutputStream::flush(Pool& /* p */) { if (array.size() > 0) { ByteBuffer buf((char*) &array[0], array.size()); socket->write(buf); array.resize(0); } } void SocketOutputStream::write(ByteBuffer& buf, Pool& /* p */ ) { if (buf.remaining() > 0) { size_t sz = array.size(); array.resize(sz + buf.remaining()); memcpy(&array[sz], buf.current(), buf.remaining()); buf.position(buf.limit()); } } apache-log4cxx-0.10.0/src/main/cpp/htmllayout.cpp100644 0 0 20360 10774263341 16761 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::spi; IMPLEMENT_LOG4CXX_OBJECT(HTMLLayout) HTMLLayout::HTMLLayout() : locationInfo(false), title(LOG4CXX_STR("Log4cxx Log Messages")), dateFormat() { dateFormat.setTimeZone(TimeZone::getGMT()); } void HTMLLayout::setOption(const LogString& option, const LogString& value) { if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("TITLE"), LOG4CXX_STR("title"))) { setTitle(value); } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("LOCATIONINFO"), LOG4CXX_STR("locationinfo"))) { setLocationInfo(OptionConverter::toBoolean(value, false)); } } void HTMLLayout::format(LogString& output, const spi::LoggingEventPtr& event, Pool& p) const { output.append(LOG4CXX_EOL); output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); output.append(LOG4CXX_STR("")); dateFormat.format(output, event->getTimeStamp(), p); output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); output.append(LOG4CXX_STR("getThreadName()); output.append(threadName); output.append(LOG4CXX_STR(" thread\">")); output.append(threadName); output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); output.append(LOG4CXX_STR("")); if (event->getLevel()->equals(Level::getDebug())) { output.append(LOG4CXX_STR("")); output.append(event->getLevel()->toString()); output.append(LOG4CXX_STR("")); } else if(event->getLevel()->isGreaterOrEqual(Level::getWarn())) { output.append(LOG4CXX_STR("")); output.append(event->getLevel()->toString()); output.append(LOG4CXX_STR("")); } else { output.append(event->getLevel()->toString()); } output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); output.append(LOG4CXX_STR("getLoggerName()); output.append(LOG4CXX_STR(" logger\">")); Transform::appendEscapingTags(output, event->getLoggerName()); output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); if(locationInfo) { output.append(LOG4CXX_STR("")); const LocationInfo& locInfo = event->getLocationInformation(); LOG4CXX_DECODE_CHAR(fileName, locInfo.getFileName()); Transform::appendEscapingTags(output, fileName); output.append(1, (logchar) 0x3A /* ':' */); int line = event->getLocationInformation().getLineNumber(); if (line != 0) { StringHelper::toString(line, p, output); } output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); } output.append(LOG4CXX_STR("")); Transform::appendEscapingTags(output, event->getRenderedMessage()); output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); LogString ndcVal; if (event->getNDC(ndcVal)) { output.append(LOG4CXX_STR("")); output.append(LOG4CXX_STR("NDC: ")); Transform::appendEscapingTags(output, ndcVal); output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); } } void HTMLLayout::appendHeader(LogString& output, Pool& p) { output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); output.append(LOG4CXX_STR("")); output.append(title); output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); output.append(LOG4CXX_STR("


")); output.append(LOG4CXX_EOL); output.append(LOG4CXX_STR("Log session start time ")); dateFormat.format(output, apr_time_now(), p); output.append(LOG4CXX_STR("
")); output.append(LOG4CXX_EOL); output.append(LOG4CXX_STR("
")); output.append(LOG4CXX_EOL); output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); if(locationInfo) { output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); } output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); output.append(LOG4CXX_STR("")); output.append(LOG4CXX_EOL); } void HTMLLayout::appendFooter(LogString& output, Pool& /* pool */ ) { output.append(LOG4CXX_STR("
TimeThreadLevelLoggerFile:LineMessage
")); output.append(LOG4CXX_EOL); output.append(LOG4CXX_STR("
")); output.append(LOG4CXX_EOL); output.append(LOG4CXX_STR("")); } apache-log4cxx-0.10.0/src/main/cpp/socket.cpp100644 0 0 7602 10774263341 16033 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include "apr_network_io.h" #include "apr_signal.h" using namespace log4cxx; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(Socket) /** Creates a stream socket and connects it to the specified port number at the specified IP address. */ Socket::Socket(InetAddressPtr& address, int port) : pool(), socket(0), address(address), port(port) { apr_status_t status = apr_socket_create(&socket, APR_INET, SOCK_STREAM, APR_PROTO_TCP, pool.getAPRPool()); if (status != APR_SUCCESS) { throw SocketException(status); } LOG4CXX_ENCODE_CHAR(host, address->getHostAddress()); // create socket address (including port) apr_sockaddr_t *client_addr; status = apr_sockaddr_info_get(&client_addr, host.c_str(), APR_INET, port, 0, pool.getAPRPool()); if (status != APR_SUCCESS) { throw ConnectException(status); } // connect the socket status = apr_socket_connect(socket, client_addr); if (status != APR_SUCCESS) { throw ConnectException(status); } } Socket::Socket(apr_socket_t* socket, apr_pool_t* pool) : pool(pool, true), socket(socket) { apr_sockaddr_t* sa; apr_status_t status = apr_socket_addr_get(&sa, APR_REMOTE, socket); if (status == APR_SUCCESS) { port = sa->port; LogString remotename; LogString remoteip; if (sa->hostname != NULL) { Transcoder::decode(sa->hostname, remotename); } char* buf = 0; status = apr_sockaddr_ip_get(&buf, sa); if (status == APR_SUCCESS) { Transcoder::decode(buf, remoteip); } address = new InetAddress(remotename, remoteip); } } Socket::~Socket() { } size_t Socket::write(ByteBuffer& buf) { if (socket == 0) { throw ClosedChannelException(); } int totalWritten = 0; while(buf.remaining() > 0) { apr_size_t written = buf.remaining(); // while writing to the socket, we need to ignore the SIGPIPE // signal. Otherwise, when the client has closed the connection, // the send() function would not return an error but call the // SIGPIPE handler. #if APR_HAVE_SIGACTION apr_sigfunc_t* old = apr_signal(SIGPIPE, SIG_IGN); apr_status_t status = apr_socket_send(socket, buf.current(), &written); apr_signal(SIGPIPE, old); #else apr_status_t status = apr_socket_send(socket, buf.current(), &written); #endif buf.position(buf.position() + written); totalWritten += written; if (status != APR_SUCCESS) { throw SocketException(status); } } return totalWritten; } void Socket::close() { if (socket != 0) { apr_status_t status = apr_socket_close(socket); if (status != APR_SUCCESS) { throw SocketException(status); } socket = 0; } } InetAddressPtr Socket::getInetAddress() const { return address; } int Socket::getPort() const { return port; } apache-log4cxx-0.10.0/src/main/cpp/defaultrepositoryselector.cpp100644 0 0 2476 10774263341 22074 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include using namespace log4cxx; using namespace log4cxx::spi; using namespace log4cxx::helpers; DefaultRepositorySelector::DefaultRepositorySelector(const LoggerRepositoryPtr& repository1) : repository(repository1) { } void DefaultRepositorySelector::addRef() const { ObjectImpl::addRef(); } void DefaultRepositorySelector::releaseRef() const { ObjectImpl::releaseRef(); } LoggerRepositoryPtr& DefaultRepositorySelector::getLoggerRepository() { return repository; } apache-log4cxx-0.10.0/src/main/cpp/strftimedateformat.cpp100644 0 0 3367 10774263341 20453 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; StrftimeDateFormat::StrftimeDateFormat(const LogString& fmt) : timeZone(TimeZone::getDefault()) { log4cxx::helpers::Transcoder::encode(fmt, pattern); } StrftimeDateFormat::~StrftimeDateFormat() { } void StrftimeDateFormat::format(LogString& s, log4cxx_time_t time, Pool& /* p */ ) const { apr_time_exp_t exploded; apr_status_t stat = timeZone->explode(&exploded, time); if (stat == APR_SUCCESS) { const apr_size_t bufSize = 255; char buf[bufSize]; apr_size_t bufLen; stat = apr_strftime(buf, &bufLen, bufSize, pattern.c_str(), &exploded); if (stat == APR_SUCCESS) { log4cxx::helpers::Transcoder::decode(std::string(buf, bufLen), s); } } } void StrftimeDateFormat::setTimeZone(const TimeZonePtr& zone) { timeZone = zone; } apache-log4cxx-0.10.0/src/main/cpp/datagramsocket.cpp100644 0 0 12222 10774263341 17546 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include "apr_network_io.h" #include "apr_lib.h" using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(DatagramSocket) DatagramSocket::DatagramSocket() : socket(0), address(), localAddress(), port(0), localPort(0) { create(); } DatagramSocket::DatagramSocket(int localPort1) : socket(0), address(), localAddress(), port(0), localPort(0) { InetAddressPtr bindAddr = InetAddress::anyAddress(); create(); bind(localPort1, bindAddr); } DatagramSocket::DatagramSocket(int localPort1, InetAddressPtr localAddress1) : socket(0), address(), localAddress(), port(0), localPort(0) { create(); bind(localPort1, localAddress1); } DatagramSocket::~DatagramSocket() { try { close(); } catch(SocketException&) { } } /** Binds a datagram socket to a local port and address.*/ void DatagramSocket::bind(int localPort1, InetAddressPtr localAddress1) { Pool addrPool; // Create server socket address (including port number) LOG4CXX_ENCODE_CHAR(hostAddr, localAddress1->getHostAddress()); apr_sockaddr_t *server_addr; apr_status_t status = apr_sockaddr_info_get(&server_addr, hostAddr.c_str(), APR_INET, localPort1, 0, addrPool.getAPRPool()); if (status != APR_SUCCESS) { throw BindException(status); } // bind the socket to the address status = apr_socket_bind(socket, server_addr); if (status != APR_SUCCESS) { throw BindException(status); } this->localPort = localPort1; this->localAddress = localAddress1; } /** Close the socket.*/ void DatagramSocket::close() { if (socket != 0) { apr_status_t status = apr_socket_close(socket); if (status != APR_SUCCESS) { throw SocketException(status); } socket = 0; localPort = 0; } } void DatagramSocket::connect(InetAddressPtr address1, int port1) { this->address = address1; this->port = port1; Pool addrPool; // create socket address LOG4CXX_ENCODE_CHAR(hostAddr, address1->getHostAddress()); apr_sockaddr_t *client_addr; apr_status_t status = apr_sockaddr_info_get(&client_addr, hostAddr.c_str(), APR_INET, port, 0, addrPool.getAPRPool()); if (status != APR_SUCCESS) { throw ConnectException(status); } // connect the socket status = apr_socket_connect(socket, client_addr); if (status != APR_SUCCESS) { throw ConnectException(status); } } /** Creates a datagram socket.*/ void DatagramSocket::create() { apr_socket_t* newSocket; apr_status_t status = apr_socket_create(&newSocket, APR_INET, SOCK_DGRAM, APR_PROTO_UDP, socketPool.getAPRPool()); socket = newSocket; if (status != APR_SUCCESS) { throw SocketException(status); } } /** Receive the datagram packet.*/ void DatagramSocket::receive(DatagramPacketPtr& p) { Pool addrPool; // Create the address from which to receive the datagram packet LOG4CXX_ENCODE_CHAR(hostAddr, p->getAddress()->getHostAddress()); apr_sockaddr_t *addr; apr_status_t status = apr_sockaddr_info_get(&addr, hostAddr.c_str(), APR_INET, p->getPort(), 0, addrPool.getAPRPool()); if (status != APR_SUCCESS) { throw SocketException(status); } // receive the datagram packet apr_size_t len = p->getLength(); status = apr_socket_recvfrom(addr, socket, 0, (char *)p->getData(), &len); if (status != APR_SUCCESS) { throw IOException(status); } } /** Sends a datagram packet.*/ void DatagramSocket::send(DatagramPacketPtr& p) { Pool addrPool; // create the adress to which to send the datagram packet LOG4CXX_ENCODE_CHAR(hostAddr, p->getAddress()->getHostAddress()); apr_sockaddr_t *addr; apr_status_t status = apr_sockaddr_info_get(&addr, hostAddr.c_str(), APR_INET, p->getPort(), 0, addrPool.getAPRPool()); if (status != APR_SUCCESS) { throw SocketException(status); } // send the datagram packet apr_size_t len = p->getLength(); status = apr_socket_sendto(socket, addr, 0, (char *)p->getData(), &len); if (status != APR_SUCCESS) { throw IOException(status); } } apache-log4cxx-0.10.0/src/main/cpp/stringtokenizer.cpp100644 0 0 3614 10774263341 20003 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #if !defined(LOG4CXX) #define LOG4CXX 1 #endif #include using namespace log4cxx; using namespace log4cxx::helpers; StringTokenizer::StringTokenizer(const LogString& str, const LogString& delim1) : src(str), delim(delim1), pos(0) { } StringTokenizer::~StringTokenizer() { } bool StringTokenizer::hasMoreTokens() const { return (pos != LogString::npos && src.find_first_not_of(delim, pos) != LogString::npos); } LogString StringTokenizer::nextToken() { if (pos != LogString::npos) { size_t nextPos = src.find_first_not_of(delim, pos); if (nextPos != LogString::npos) { pos = src.find_first_of(delim, nextPos); if (pos == LogString::npos) { return src.substr(nextPos); } return src.substr(nextPos, pos - nextPos); } } throw NoSuchElementException(); #if LOG4CXX_RETURN_AFTER_THROW return LogString(); #endif } apache-log4cxx-0.10.0/src/main/cpp/fixedwindowrollingpolicy.cpp100644 0 0 20012 10774263341 21707 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::rolling; using namespace log4cxx::helpers; using namespace log4cxx::pattern; IMPLEMENT_LOG4CXX_OBJECT(FixedWindowRollingPolicy) FixedWindowRollingPolicy::FixedWindowRollingPolicy() : minIndex(1), maxIndex(7) { } void FixedWindowRollingPolicy::setMaxIndex(int maxIndex1) { this->maxIndex = maxIndex1; } void FixedWindowRollingPolicy::setMinIndex(int minIndex1) { this->minIndex = minIndex1; } void FixedWindowRollingPolicy::setOption(const LogString& option, const LogString& value) { if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("MININDEX"), LOG4CXX_STR("minindex"))) { minIndex = OptionConverter::toInt(value, 1); } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("MAXINDEX"), LOG4CXX_STR("maxindex"))) { maxIndex = OptionConverter::toInt(value, 7); } else { RollingPolicyBase::setOption(option, value); } } /** * {@inheritDoc} */ void FixedWindowRollingPolicy::activateOptions(Pool& p) { RollingPolicyBase::activateOptions(p); if (maxIndex < minIndex) { LogLog::warn( LOG4CXX_STR("MaxIndex cannot be smaller than MinIndex.")); maxIndex = minIndex; } if ((maxIndex - minIndex) > MAX_WINDOW_SIZE) { LogLog::warn(LOG4CXX_STR("Large window sizes are not allowed.")); maxIndex = minIndex + MAX_WINDOW_SIZE; } PatternConverterPtr itc = getIntegerPatternConverter(); if (itc == NULL) { throw IllegalStateException(); } } /** * {@inheritDoc} */ RolloverDescriptionPtr FixedWindowRollingPolicy::initialize( const LogString& file, bool append, log4cxx::helpers::Pool& p) { LogString newActiveFile(file); explicitActiveFile = false; if (file.length() > 0) { explicitActiveFile = true; newActiveFile = file; } if (!explicitActiveFile) { LogString buf; ObjectPtr obj(new Integer(minIndex)); formatFileName(obj, buf, p); newActiveFile = buf; } ActionPtr noAction; return new RolloverDescription(newActiveFile, append, noAction, noAction); } /** * {@inheritDoc} */ RolloverDescriptionPtr FixedWindowRollingPolicy::rollover( const LogString& currentFileName, log4cxx::helpers::Pool& p) { RolloverDescriptionPtr desc; if (maxIndex >= 0) { int purgeStart = minIndex; if (!explicitActiveFile) { purgeStart++; } if (!purge(purgeStart, maxIndex, p)) { return desc; } LogString buf; ObjectPtr obj(new Integer(purgeStart)); formatFileName(obj, buf, p); LogString renameTo(buf); LogString compressedName(renameTo); ActionPtr compressAction ; if (StringHelper::endsWith(renameTo, LOG4CXX_STR(".gz"))) { renameTo.resize(renameTo.size() - 3); compressAction = new GZCompressAction( File().setPath(renameTo), File().setPath(compressedName), true); } else if (StringHelper::endsWith(renameTo, LOG4CXX_STR(".zip"))) { renameTo.resize(renameTo.size() - 4); compressAction = new ZipCompressAction( File().setPath(renameTo), File().setPath(compressedName), true); } FileRenameActionPtr renameAction = new FileRenameAction( File().setPath(currentFileName), File().setPath(renameTo), false); desc = new RolloverDescription( currentFileName, false, renameAction, compressAction); } return desc; } /** * Get index of oldest log file to be retained. * @return index of oldest log file. */ int FixedWindowRollingPolicy::getMaxIndex() const { return maxIndex; } /** * Get index of most recent log file. * @return index of oldest log file. */ int FixedWindowRollingPolicy::getMinIndex() const { return minIndex; } /** * Purge and rename old log files in preparation for rollover * @param lowIndex low index * @param highIndex high index. Log file associated with high * index will be deleted if needed. * @return true if purge was successful and rollover should be attempted. */ bool FixedWindowRollingPolicy::purge(int lowIndex, int highIndex, Pool& p) const { int suffixLength = 0; std::vector renames; LogString buf; ObjectPtr obj = new Integer(lowIndex); formatFileName(obj, buf, p); LogString lowFilename(buf); if (lowFilename.compare(lowFilename.length() - 3, 3, LOG4CXX_STR(".gz")) == 0) { suffixLength = 3; } else if (lowFilename.compare(lowFilename.length() - 4, 4, LOG4CXX_STR(".zip")) == 0) { suffixLength = 4; } for (int i = lowIndex; i <= highIndex; i++) { File toRenameCompressed; toRenameCompressed.setPath(lowFilename); File toRenameBase; toRenameBase.setPath(lowFilename.substr(0, lowFilename.length() - suffixLength)); File* toRename = &toRenameCompressed; bool isBase = false; bool exists = toRenameCompressed.exists(p); if (suffixLength > 0) { if (exists) { if (toRenameBase.exists(p)) { toRenameBase.deleteFile(p); } } else { toRename = &toRenameBase; exists = toRenameBase.exists(p); isBase = true; } } if (exists) { // // if at upper index then // attempt to delete last file // if that fails then abandon purge if (i == highIndex) { if (!toRename->deleteFile(p)) { return false; } break; } // // if intermediate index // add a rename action to the list buf.erase(buf.begin(), buf.end()); obj = new Integer(i + 1); formatFileName(obj, buf, p); LogString highFilename(buf); LogString renameTo(highFilename); if (isBase) { renameTo = highFilename.substr(0, highFilename.length() - suffixLength); } renames.push_back(new FileRenameAction(*toRename, File().setPath(renameTo), true)); lowFilename = highFilename; } else { break; } } // // work renames backwards // for(std::vector::reverse_iterator iter = renames.rbegin(); iter != renames.rend(); iter++) { try { if (!(*iter)->execute(p)) { return false; } } catch (std::exception& ex) { LogLog::warn(LOG4CXX_STR("Exception during purge in RollingFileAppender")); return false; } } return true; } #define RULES_PUT(spec, cls) \ specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), (PatternConstructor) cls ::newInstance)) log4cxx::pattern::PatternMap FixedWindowRollingPolicy::getFormatSpecifiers() const { PatternMap specs; RULES_PUT("i", IntegerPatternConverter); RULES_PUT("index", IntegerPatternConverter); return specs; } apache-log4cxx-0.10.0/src/main/cpp/obsoleterollingfileappender.cpp100644 0 0 11756 10774263341 22352 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::spi; namespace log4cxx { class ClassRollingFileAppender : public Class { public: ClassRollingFileAppender() : helpers::Class() {} virtual LogString getName() const { return LOG4CXX_STR("org.apache.log4j.RollingFileAppender"); } virtual ObjectPtr newInstance() const { return new RollingFileAppender(); } }; } const log4cxx::helpers::Class& RollingFileAppender::getClass() const { return getStaticClass(); } const log4cxx::helpers::Class& RollingFileAppender::getStaticClass() { static ClassRollingFileAppender theClass; return theClass; } const log4cxx::helpers::ClassRegistration& RollingFileAppender::registerClass() { static log4cxx::helpers::ClassRegistration classReg(RollingFileAppender::getStaticClass); return classReg; } namespace log4cxx { namespace classes { const log4cxx::helpers::ClassRegistration& ObsoleteRollingFileAppenderRegistration = RollingFileAppender::registerClass(); } } RollingFileAppender::RollingFileAppender() : maxFileSize(10*1024*1024), maxBackupIndex(1) { } RollingFileAppender::RollingFileAppender( const LayoutPtr& layout, const LogString& filename, bool append) : maxFileSize(10*1024*1024), maxBackupIndex(1) { setLayout(layout); setFile(filename); setAppend(append); Pool pool; activateOptions(pool); } RollingFileAppender::RollingFileAppender(const LayoutPtr& layout, const LogString& filename) : maxFileSize(10*1024*1024), maxBackupIndex(1) { setLayout(layout); setFile(filename); Pool pool; activateOptions(pool); } RollingFileAppender::~RollingFileAppender() { } void RollingFileAppender::setOption(const LogString& option, const LogString& value) { if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("MAXFILESIZE"), LOG4CXX_STR("maxfilesize")) || StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("MAXIMUMFILESIZE"), LOG4CXX_STR("maximumfilesize"))) { setMaxFileSize(value); } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("MAXBACKUPINDEX"), LOG4CXX_STR("maxbackupindex")) || StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("MAXIMUMBACKUPINDEX"), LOG4CXX_STR("maximumbackupindex"))) { maxBackupIndex = StringHelper::toInt(value); } else { using namespace log4cxx::rolling; RollingFileAppenderSkeleton::setOption(option, value); } } int RollingFileAppender::getMaxBackupIndex() const { return maxBackupIndex; } long RollingFileAppender::getMaximumFileSize() const { return maxFileSize; } void RollingFileAppender::setMaxBackupIndex(int maxBackups) { maxBackupIndex = maxBackups; } void RollingFileAppender::setMaximumFileSize(int maxFileSize1) { maxFileSize = maxFileSize1; } void RollingFileAppender::setMaxFileSize(const LogString& value) { maxFileSize = OptionConverter::toFileSize(value, maxFileSize + 1); } void RollingFileAppender::activateOptions(Pool& pool) { log4cxx::rolling::SizeBasedTriggeringPolicyPtr trigger( new log4cxx::rolling::SizeBasedTriggeringPolicy()); trigger->setMaxFileSize(maxFileSize); trigger->activateOptions(pool); setTriggeringPolicy(trigger); log4cxx::rolling::FixedWindowRollingPolicyPtr rolling( new log4cxx::rolling::FixedWindowRollingPolicy()); rolling->setMinIndex(1); rolling->setMaxIndex(maxBackupIndex); rolling->setFileNamePattern(getFile() + LOG4CXX_STR(".%i")); rolling->activateOptions(pool); setRollingPolicy(rolling); using namespace log4cxx::rolling; RollingFileAppenderSkeleton::activateOptions(pool); } apache-log4cxx-0.10.0/src/main/cpp/filedatepatternconverter.cpp100644 0 0 2722 10774263341 21644 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include using namespace log4cxx; using namespace log4cxx::pattern; using namespace log4cxx::spi; using namespace log4cxx::helpers; PatternConverterPtr FileDatePatternConverter::newInstance( const std::vector& options) { if (options.size() == 0) { std::vector altOptions; altOptions.push_back(LOG4CXX_STR("yyyy-MM-dd")); return DatePatternConverter::newInstance(altOptions); } return DatePatternConverter::newInstance(options); } apache-log4cxx-0.10.0/src/main/cpp/basicconfigurator.cpp100644 0 0 3167 10774263341 20251 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include using namespace log4cxx; void BasicConfigurator::configure() { LogManager::getLoggerRepository()->setConfigured(true); LoggerPtr root = Logger::getRootLogger(); static const LogString TTCC_CONVERSION_PATTERN(LOG4CXX_STR("%r [%t] %p %c %x - %m%n")); LayoutPtr layout(new PatternLayout(TTCC_CONVERSION_PATTERN)); AppenderPtr appender(new ConsoleAppender(layout)); root->addAppender(appender); } void BasicConfigurator::configure(const AppenderPtr& appender) { LoggerPtr root = Logger::getRootLogger(); root->addAppender(appender); } void BasicConfigurator::resetConfiguration() { LogManager::resetConfiguration(); } apache-log4cxx-0.10.0/src/main/cpp/loggerpatternconverter.cpp100644 0 0 3623 10774263341 21347 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include using namespace log4cxx; using namespace log4cxx::pattern; using namespace log4cxx::spi; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(LoggerPatternConverter) LoggerPatternConverter::LoggerPatternConverter( const std::vector& options) : NamePatternConverter(LOG4CXX_STR("Logger"), LOG4CXX_STR("logger"), options) { } PatternConverterPtr LoggerPatternConverter::newInstance( const std::vector& options) { if (options.size() == 0) { static PatternConverterPtr def(new LoggerPatternConverter(options)); return def; } return new LoggerPatternConverter(options); } void LoggerPatternConverter::format( const LoggingEventPtr& event, LogString& toAppendTo, Pool& /* p */ ) const { int initialLength = toAppendTo.length(); toAppendTo.append(event->getLoggerName()); abbreviate(initialLength, toAppendTo); } apache-log4cxx-0.10.0/src/main/cpp/loader.cpp100644 0 0 4602 10774263341 16006 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::spi; using namespace log4cxx::filter; IMPLEMENT_LOG4CXX_OBJECT(Object) IMPLEMENT_LOG4CXX_OBJECT(OptionHandler) IMPLEMENT_LOG4CXX_OBJECT(ErrorHandler) IMPLEMENT_LOG4CXX_OBJECT(Appender) IMPLEMENT_LOG4CXX_OBJECT(Filter) IMPLEMENT_LOG4CXX_OBJECT(AppenderAttachable) IMPLEMENT_LOG4CXX_OBJECT(LoggerFactory) IMPLEMENT_LOG4CXX_OBJECT(LoggerRepository) IMPLEMENT_LOG4CXX_OBJECT(DenyAllFilter) IMPLEMENT_LOG4CXX_OBJECT(RepositorySelector) IMPLEMENT_LOG4CXX_OBJECT(XMLDOMNode) IMPLEMENT_LOG4CXX_OBJECT(XMLDOMDocument) IMPLEMENT_LOG4CXX_OBJECT(XMLDOMElement) IMPLEMENT_LOG4CXX_OBJECT(XMLDOMNodeList) IMPLEMENT_LOG4CXX_OBJECT(TriggeringEventEvaluator) const Class& Loader::loadClass(const LogString& clazz) { return Class::forName(clazz); } InputStreamPtr Loader::getResourceAsStream(const LogString& name) { try { return new FileInputStream(name); } catch(const IOException& ioex) { } return 0; } apache-log4cxx-0.10.0/src/main/cpp/socketappender.cpp100644 0 0 6346 10774263341 17556 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::net; IMPLEMENT_LOG4CXX_OBJECT(SocketAppender) // The default port number of remote logging server (4560) int SocketAppender::DEFAULT_PORT = 4560; // The default reconnection delay (30000 milliseconds or 30 seconds). int SocketAppender::DEFAULT_RECONNECTION_DELAY = 30000; SocketAppender::SocketAppender() : SocketAppenderSkeleton(DEFAULT_PORT, DEFAULT_RECONNECTION_DELAY) { } SocketAppender::SocketAppender(InetAddressPtr& address1, int port1) : SocketAppenderSkeleton(address1, port1, DEFAULT_RECONNECTION_DELAY) { Pool p; activateOptions(p); } SocketAppender::SocketAppender(const LogString& host, int port1) : SocketAppenderSkeleton(host, port1, DEFAULT_RECONNECTION_DELAY) { Pool p; activateOptions(p); } SocketAppender::~SocketAppender() { finalize(); } int SocketAppender::getDefaultDelay() const { return DEFAULT_RECONNECTION_DELAY; } int SocketAppender::getDefaultPort() const { return DEFAULT_PORT; } void SocketAppender::setSocket(log4cxx::helpers::SocketPtr& socket, Pool& p) { synchronized sync(mutex); oos = new ObjectOutputStream(new SocketOutputStream(socket), p); } void SocketAppender::cleanUp(Pool& p) { if (oos != 0) { try { oos->close(p); oos = 0; } catch(std::exception& e) { } } } void SocketAppender::append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p) { if (oos != 0) { LogString ndcVal; event->getNDC(ndcVal); event->getThreadName(); // Get a copy of this thread's MDC. event->getMDCCopy(); try { event->write(*oos, p); oos->flush(p); } catch(std::exception& e) { oos = 0; LogLog::warn(LOG4CXX_STR("Detected problem with connection: "), e); if (getReconnectionDelay() > 0) { fireConnector(); } } } } apache-log4cxx-0.10.0/src/main/cpp/propertyconfigurator.cpp100644 0 0 37304 10774263341 21074 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::spi; using namespace log4cxx::helpers; using namespace log4cxx::config; #if APR_HAS_THREADS #include class PropertyWatchdog : public FileWatchdog { public: PropertyWatchdog(const File& filename) : FileWatchdog(filename) { } /** Call PropertyConfigurator#doConfigure(const String& configFileName, const spi::LoggerRepositoryPtr& hierarchy) with the filename to reconfigure log4cxx. */ void doOnChange() { PropertyConfigurator().doConfigure(file, LogManager::getLoggerRepository()); } }; #endif IMPLEMENT_LOG4CXX_OBJECT(PropertyConfigurator) PropertyConfigurator::PropertyConfigurator() : registry(new std::map()), loggerFactory(new DefaultLoggerFactory()) { } PropertyConfigurator::~PropertyConfigurator() { delete registry; } void PropertyConfigurator::addRef() const { ObjectImpl::addRef(); } void PropertyConfigurator::releaseRef() const { ObjectImpl::releaseRef(); } void PropertyConfigurator::doConfigure(const File& configFileName, spi::LoggerRepositoryPtr& hierarchy) { hierarchy->setConfigured(true); Properties props; try { InputStreamPtr inputStream = new FileInputStream(configFileName); props.load(inputStream); } catch(const IOException& ie) { LogLog::error(((LogString) LOG4CXX_STR("Could not read configuration file [")) + configFileName.getPath() + LOG4CXX_STR("].")); return; } try { doConfigure(props, hierarchy); } catch(const std::exception& ex) { LogLog::error(((LogString) LOG4CXX_STR("Could not parse configuration file [")) + configFileName.getPath() + LOG4CXX_STR("]."), ex); } } void PropertyConfigurator::configure(const File& configFilename) { PropertyConfigurator().doConfigure(configFilename, LogManager::getLoggerRepository()); } void PropertyConfigurator::configure(helpers::Properties& properties) { PropertyConfigurator().doConfigure(properties, LogManager::getLoggerRepository()); } #if APR_HAS_THREADS void PropertyConfigurator::configureAndWatch(const File& configFilename) { configureAndWatch(configFilename, FileWatchdog::DEFAULT_DELAY); } void PropertyConfigurator::configureAndWatch( const File& configFilename, long delay) { PropertyWatchdog * pdog = new PropertyWatchdog(configFilename); pdog->setDelay(delay); pdog->start(); } #endif void PropertyConfigurator::doConfigure(helpers::Properties& properties, spi::LoggerRepositoryPtr& hierarchy) { hierarchy->setConfigured(true); static const LogString DEBUG_KEY(LOG4CXX_STR("log4j.debug")); LogString value(properties.getProperty(DEBUG_KEY)); if (!value.empty()) { LogLog::setInternalDebugging(OptionConverter::toBoolean(value, true)); } static const LogString THRESHOLD_PREFIX(LOG4CXX_STR("log4j.threshold")); LogString thresholdStr = OptionConverter::findAndSubst(THRESHOLD_PREFIX, properties); if (!thresholdStr.empty()) { hierarchy->setThreshold(OptionConverter::toLevel(thresholdStr, Level::getAll())); LogLog::debug(((LogString) LOG4CXX_STR("Hierarchy threshold set to [")) + hierarchy->getThreshold()->toString() + LOG4CXX_STR("].")); } configureRootLogger(properties, hierarchy); configureLoggerFactory(properties); parseCatsAndRenderers(properties, hierarchy); LogLog::debug(LOG4CXX_STR("Finished configuring.")); // We don't want to hold references to appenders preventing their // destruction. registry->clear(); } void PropertyConfigurator::configureLoggerFactory(helpers::Properties& props) { static const LogString LOGGER_FACTORY_KEY(LOG4CXX_STR("log4j.loggerFactory")); LogString factoryClassName = OptionConverter::findAndSubst(LOGGER_FACTORY_KEY, props); if (!factoryClassName.empty()) { LogString msg(LOG4CXX_STR("Setting logger factory to [")); msg += factoryClassName; msg += LOG4CXX_STR("]."); LogLog::debug(msg); loggerFactory = OptionConverter::instantiateByClassName( factoryClassName, LoggerFactory::getStaticClass(), loggerFactory); static const LogString FACTORY_PREFIX(LOG4CXX_STR("log4j.factory.")); Pool p; PropertySetter::setProperties(loggerFactory, props, FACTORY_PREFIX, p); } } void PropertyConfigurator::configureRootLogger(helpers::Properties& props, spi::LoggerRepositoryPtr& hierarchy) { static const LogString ROOT_CATEGORY_PREFIX(LOG4CXX_STR("log4j.rootCategory")); static const LogString ROOT_LOGGER_PREFIX(LOG4CXX_STR("log4j.rootLogger")); LogString effectiveFrefix(ROOT_LOGGER_PREFIX); LogString value = OptionConverter::findAndSubst(ROOT_LOGGER_PREFIX, props); if (value.empty()) { value = OptionConverter::findAndSubst(ROOT_CATEGORY_PREFIX, props); effectiveFrefix = ROOT_CATEGORY_PREFIX; } if (value.empty()) { LogLog::debug(LOG4CXX_STR("Could not find root logger information. Is this OK?")); } else { LoggerPtr root = hierarchy->getRootLogger(); synchronized sync(root->getMutex()); static const LogString INTERNAL_ROOT_NAME(LOG4CXX_STR("root")); parseLogger(props, root, effectiveFrefix, INTERNAL_ROOT_NAME, value); } } void PropertyConfigurator::parseCatsAndRenderers(helpers::Properties& props, spi::LoggerRepositoryPtr& hierarchy) { static const LogString CATEGORY_PREFIX(LOG4CXX_STR("log4j.category.")); static const LogString LOGGER_PREFIX(LOG4CXX_STR("log4j.logger.")); std::vector names = props.propertyNames(); std::vector::iterator it = names.begin(); std::vector::iterator itEnd = names.end(); while (it != itEnd) { LogString key = *it++; if (key.find(CATEGORY_PREFIX) == 0 || key.find(LOGGER_PREFIX) == 0) { LogString loggerName; if (key.find(CATEGORY_PREFIX) == 0) { loggerName = key.substr(CATEGORY_PREFIX.length()); } else if (key.find(LOGGER_PREFIX) == 0) { loggerName = key.substr(LOGGER_PREFIX.length()); } LogString value = OptionConverter::findAndSubst(key, props); LoggerPtr logger = hierarchy->getLogger(loggerName, loggerFactory); synchronized sync(logger->getMutex()); parseLogger(props, logger, key, loggerName, value); parseAdditivityForLogger(props, logger, loggerName); } } } void PropertyConfigurator::parseAdditivityForLogger(helpers::Properties& props, LoggerPtr& cat, const LogString& loggerName) { static const LogString ADDITIVITY_PREFIX(LOG4CXX_STR("log4j.additivity.")); LogString value(OptionConverter::findAndSubst(ADDITIVITY_PREFIX + loggerName, props)); LogLog::debug((LogString) LOG4CXX_STR("Handling ") + ADDITIVITY_PREFIX + loggerName + LOG4CXX_STR("=[") + value + LOG4CXX_STR("]")); // touch additivity only if necessary if (!value.empty()) { bool additivity = OptionConverter::toBoolean(value, true); LogLog::debug(((LogString) LOG4CXX_STR("Setting additivity for \"")) + loggerName + ((additivity) ? LOG4CXX_STR("\" to true") : LOG4CXX_STR("\" to false"))); cat->setAdditivity(additivity); } } /** This method must work for the root logger as well. */ void PropertyConfigurator::parseLogger( helpers::Properties& props, LoggerPtr& logger, const LogString& /* optionKey */, const LogString& loggerName, const LogString& value) { LogLog::debug(((LogString) LOG4CXX_STR("Parsing for [")) + loggerName + LOG4CXX_STR("] with value=[") + value + LOG4CXX_STR("].")); // We must skip over ',' but not white space StringTokenizer st(value, LOG4CXX_STR(",")); // If value is not in the form ", appender.." or "", then we should set // the level of the logger. if (!(value.find(LOG4CXX_STR(",")) == 0 || value.empty())) { // just to be on the safe side... if (!st.hasMoreTokens()) { return; } LogString levelStr = st.nextToken(); LogLog::debug((LogString) LOG4CXX_STR("Level token is [") + levelStr + LOG4CXX_STR("].")); // If the level value is inherited, set logger level value to // null. We also check that the user has not specified inherited for the // root logger. if (StringHelper::equalsIgnoreCase(levelStr, LOG4CXX_STR("INHERITED"), LOG4CXX_STR("inherited")) || StringHelper::equalsIgnoreCase(levelStr, LOG4CXX_STR("NULL"), LOG4CXX_STR("null"))) { static const LogString INTERNAL_ROOT_NAME(LOG4CXX_STR("root")); if (loggerName == INTERNAL_ROOT_NAME) { LogLog::warn(LOG4CXX_STR("The root logger cannot be set to null.")); } else { logger->setLevel(0); LogLog::debug((LogString) LOG4CXX_STR("Logger ") + loggerName + LOG4CXX_STR(" set to null")); } } else { logger->setLevel(OptionConverter::toLevel(levelStr, Level::getDebug())); LogLog::debug((LogString) LOG4CXX_STR("Logger ") + loggerName + LOG4CXX_STR(" set to ") + logger->getLevel()->toString()); } } // Begin by removing all existing appenders. logger->removeAllAppenders(); AppenderPtr appender; LogString appenderName; while (st.hasMoreTokens()) { appenderName = StringHelper::trim(st.nextToken()); if (appenderName.empty() || appenderName == LOG4CXX_STR(",")) { continue; } LogLog::debug(LOG4CXX_STR("Parsing appender named ") + appenderName + LOG4CXX_STR("\".")); appender = parseAppender(props, appenderName); if (appender != 0) { logger->addAppender(appender); } } } AppenderPtr PropertyConfigurator::parseAppender( helpers::Properties& props, const LogString& appenderName) { AppenderPtr appender = registryGet(appenderName); if (appender != 0) { LogLog::debug((LogString) LOG4CXX_STR("Appender \"") + appenderName + LOG4CXX_STR("\" was already parsed.")); return appender; } static const LogString APPENDER_PREFIX(LOG4CXX_STR("log4j.appender.")); // Appender was not previously initialized. LogString prefix = APPENDER_PREFIX + appenderName; LogString layoutPrefix = prefix + LOG4CXX_STR(".layout"); appender = OptionConverter::instantiateByKey( props, prefix, Appender::getStaticClass(), 0); if (appender == 0) { LogLog::error((LogString) LOG4CXX_STR("Could not instantiate appender named \"") + appenderName + LOG4CXX_STR("\".")); return 0; } appender->setName(appenderName); if (appender->instanceof(OptionHandler::getStaticClass())) { Pool p; if (appender->requiresLayout()) { LayoutPtr layout = OptionConverter::instantiateByKey( props, layoutPrefix, Layout::getStaticClass(), 0); if (layout != 0) { appender->setLayout(layout); LogLog::debug((LogString) LOG4CXX_STR("Parsing layout options for \"") + appenderName + LOG4CXX_STR("\".")); //configureOptionHandler(layout, layoutPrefix + ".", props); PropertySetter::setProperties(layout, props, layoutPrefix + LOG4CXX_STR("."), p); LogLog::debug((LogString) LOG4CXX_STR("End of parsing for \"") + appenderName + LOG4CXX_STR("\".")); } } //configureOptionHandler((OptionHandler) appender, prefix + _T("."), props); PropertySetter::setProperties(appender, props, prefix + LOG4CXX_STR("."), p); LogLog::debug((LogString) LOG4CXX_STR("Parsed \"") + appenderName + LOG4CXX_STR("\" options.")); } registryPut(appender); return appender; } void PropertyConfigurator::registryPut(const AppenderPtr& appender) { (*registry)[appender->getName()] = appender; } AppenderPtr PropertyConfigurator::registryGet(const LogString& name) { return (*registry)[name]; } apache-log4cxx-0.10.0/src/main/cpp/resourcebundle.cpp100644 0 0 6641 10774263341 17566 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(ResourceBundle) ResourceBundlePtr ResourceBundle::getBundle(const LogString& baseName, const Locale& locale) { LogString bundleName; PropertyResourceBundlePtr resourceBundle, previous; std::vector bundlesNames; if (!locale.getVariant().empty()) { bundlesNames.push_back(baseName + LOG4CXX_STR("_") + locale.getLanguage() + LOG4CXX_STR("_") + locale.getCountry() + LOG4CXX_STR("_") + locale.getVariant()); } if (!locale.getCountry().empty()) { bundlesNames.push_back(baseName + LOG4CXX_STR("_") + locale.getLanguage() + LOG4CXX_STR("_") + locale.getCountry()); } if (!locale.getLanguage().empty()) { bundlesNames.push_back(baseName + LOG4CXX_STR("_") + locale.getLanguage()); } bundlesNames.push_back(baseName); for (std::vector::iterator it = bundlesNames.begin(); it != bundlesNames.end(); it++) { bundleName = *it; PropertyResourceBundlePtr current; // Try loading a class which implements ResourceBundle try { const Class& classObj = Loader::loadClass(bundleName); current = classObj.newInstance(); } catch(ClassNotFoundException&) { current = 0; } // No class found, then try to create a PropertyResourceBundle from a file if (current == 0) { InputStreamPtr bundleStream = Loader::getResourceAsStream( bundleName + LOG4CXX_STR(".properties")); if (bundleStream == 0) { continue; } try { current = new PropertyResourceBundle(bundleStream); } catch(Exception&) { throw; } } // Add the new resource bundle to the hierarchy if (resourceBundle == 0) { resourceBundle = current; previous = current; } else { previous->setParent(current); previous = current; } } // no resource bundle found at all, then throw exception if (resourceBundle == 0) { throw MissingResourceException( ((LogString) LOG4CXX_STR("Missing resource bundle ")) + baseName); } return resourceBundle; } apache-log4cxx-0.10.0/src/main/cpp/filterbasedtriggeringpolicy.cpp100644 0 0 5142 10774263341 22326 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include using namespace log4cxx; using namespace log4cxx::rolling; using namespace log4cxx::spi; IMPLEMENT_LOG4CXX_OBJECT(FilterBasedTriggeringPolicy) FilterBasedTriggeringPolicy::FilterBasedTriggeringPolicy() { } FilterBasedTriggeringPolicy::~FilterBasedTriggeringPolicy() { } bool FilterBasedTriggeringPolicy::isTriggeringEvent( Appender* /* appender */, const log4cxx::spi::LoggingEventPtr& event, const LogString& /* filename */, size_t /* fileLength */ ) { if (headFilter == NULL) { return false; } for(log4cxx::spi::FilterPtr f = headFilter; f != NULL; f = f->getNext()) { switch(f->decide(event)) { case Filter::DENY: return false; case Filter::ACCEPT: return true; case Filter::NEUTRAL: break; } } return true; } /** * Add a filter to end of the filter list. * @param newFilter filter to add to end of list. */ void FilterBasedTriggeringPolicy::addFilter(const log4cxx::spi::FilterPtr& newFilter) { if (headFilter == NULL) { headFilter = newFilter; tailFilter = newFilter; } else { tailFilter->setNext(newFilter); tailFilter = newFilter; } } void FilterBasedTriggeringPolicy::clearFilters() { log4cxx::spi::FilterPtr empty; headFilter = empty; tailFilter = empty; } log4cxx::spi::FilterPtr& FilterBasedTriggeringPolicy::getFilter() { return headFilter; } /** * Prepares the instance for use. */ void FilterBasedTriggeringPolicy::activateOptions(log4cxx::helpers::Pool& p) { for(log4cxx::spi::FilterPtr f = headFilter; f != NULL; f = f->getNext()) { f->activateOptions(p); } } void FilterBasedTriggeringPolicy::setOption(const LogString& /* option */, const LogString& /* value */ ) { } apache-log4cxx-0.10.0/src/main/cpp/literalpatternconverter.cpp100644 0 0 4031 10774263341 21516 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include using namespace log4cxx; using namespace log4cxx::pattern; using namespace log4cxx::spi; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(LiteralPatternConverter) LiteralPatternConverter::LiteralPatternConverter(const LogString& literal1) : LoggingEventPatternConverter(LOG4CXX_STR("Literal"),LOG4CXX_STR("literal")), literal(literal1) { } PatternConverterPtr LiteralPatternConverter::newInstance( const LogString& literal) { if (literal.length() == 1 && literal[0] == 0x20 /* ' ' */) { static PatternConverterPtr blank(new LiteralPatternConverter(literal)); return blank; } PatternConverterPtr pattern(new LiteralPatternConverter(literal)); return pattern; } void LiteralPatternConverter::format( const LoggingEventPtr& /* event */, LogString& toAppendTo, Pool& /* p */) const { toAppendTo.append(literal); } void LiteralPatternConverter::format( const ObjectPtr& /* event */, LogString& toAppendTo, Pool& /* p */) const { toAppendTo.append(literal); } apache-log4cxx-0.10.0/src/main/cpp/loglog.cpp100644 0 0 6311 10774263341 16022 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #if !defined(LOG4CXX) #define LOG4CXX 1 #endif #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; LogLog::LogLog() : mutex(APRInitializer::getRootPool()) { synchronized sync(mutex); debugEnabled = false; quietMode = false; } LogLog& LogLog::getInstance() { static LogLog internalLogger; return internalLogger; } void LogLog::setInternalDebugging(bool debugEnabled1) { synchronized sync(getInstance().mutex); getInstance().debugEnabled = debugEnabled1; } void LogLog::debug(const LogString& msg) { synchronized sync(getInstance().mutex); if(getInstance().debugEnabled && !getInstance().quietMode) { emit(msg); } } void LogLog::debug(const LogString& msg, const std::exception& e) { synchronized sync(getInstance().mutex); debug(msg); emit(e); } void LogLog::error(const LogString& msg) { synchronized sync(getInstance().mutex); if(!getInstance().quietMode) { emit(msg); } } void LogLog::error(const LogString& msg, const std::exception& e) { synchronized sync(getInstance().mutex); error(msg); emit(e); } void LogLog::setQuietMode(bool quietMode1) { synchronized sync(getInstance().mutex); getInstance().quietMode = quietMode1; } void LogLog::warn(const LogString& msg) { synchronized sync(getInstance().mutex); if(!getInstance().quietMode) { emit(msg); } } void LogLog::warn(const LogString& msg, const std::exception& e) { synchronized sync(getInstance().mutex); warn(msg); emit(e); } void LogLog::emit(const LogString& msg) { LogString out(LOG4CXX_STR("log4cxx: ")); out.append(msg); out.append(1, (logchar) 0x0A); SystemErrWriter::write(out); } void LogLog::emit(const std::exception& ex) { LogString out(LOG4CXX_STR("log4cxx: ")); const char* raw = ex.what(); if (raw != 0) { Transcoder::decode(raw, out); } else { out.append(LOG4CXX_STR("std::exception::what() == null")); } out.append(1, (logchar) 0x0A); SystemErrWriter::write(out); } apache-log4cxx-0.10.0/src/main/cpp/rollingfileappender.cpp100644 0 0 24267 10774263341 20616 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::rolling; using namespace log4cxx::helpers; using namespace log4cxx::spi; IMPLEMENT_LOG4CXX_OBJECT(RollingFileAppenderSkeleton) IMPLEMENT_LOG4CXX_OBJECT(RollingFileAppender) /** * Construct a new instance. */ RollingFileAppenderSkeleton::RollingFileAppenderSkeleton() { } RollingFileAppender::RollingFileAppender() { } /** * Prepare instance of use. */ void RollingFileAppenderSkeleton::activateOptions(Pool &p) { if (rollingPolicy == NULL) { FixedWindowRollingPolicy* fwrp = new FixedWindowRollingPolicy(); fwrp->setFileNamePattern(getFile() + LOG4CXX_STR(".%i")); rollingPolicy = fwrp; } // // if no explicit triggering policy and rolling policy is both. // if (triggeringPolicy == NULL) { TriggeringPolicyPtr trig(rollingPolicy); if (trig != NULL) { triggeringPolicy = trig; } } if (triggeringPolicy == NULL) { triggeringPolicy = new ManualTriggeringPolicy(); } { synchronized sync(mutex); triggeringPolicy->activateOptions(p); rollingPolicy->activateOptions(p); try { RolloverDescriptionPtr rollover1 = rollingPolicy->initialize(getFile(), getAppend(), p); if (rollover1 != NULL) { ActionPtr syncAction(rollover1->getSynchronous()); if (syncAction != NULL) { syncAction->execute(p); } setFile(rollover1->getActiveFileName()); setAppend(rollover1->getAppend()); // // async action not yet implemented // ActionPtr asyncAction(rollover1->getAsynchronous()); if (asyncAction != NULL) { asyncAction->execute(p); } } File activeFile; activeFile.setPath(getFile()); if (getAppend()) { fileLength = activeFile.length(p); } else { fileLength = 0; } FileAppender::activateOptions(p); } catch (std::exception& ex) { LogLog::warn( LogString(LOG4CXX_STR("Exception will initializing RollingFileAppender named ")) + getName()); } } } /** Implements the usual roll over behaviour.

If MaxBackupIndex is positive, then files {File.1, ..., File.MaxBackupIndex -1} are renamed to {File.2, ..., File.MaxBackupIndex}. Moreover, File is renamed File.1 and closed. A new File is created to receive further log output.

If MaxBackupIndex is equal to zero, then the File is truncated with no backup files created. * @return true if rollover performed. */ bool RollingFileAppenderSkeleton::rollover(Pool& p) { // // can't roll without a policy // if (rollingPolicy != NULL) { { synchronized sync(mutex); try { RolloverDescriptionPtr rollover1(rollingPolicy->rollover(getFile(), p)); if (rollover1 != NULL) { if (rollover1->getActiveFileName() == getFile()) { closeWriter(); bool success = true; if (rollover1->getSynchronous() != NULL) { success = false; try { success = rollover1->getSynchronous()->execute(p); } catch (std::exception& ex) { LogLog::warn(LOG4CXX_STR("Exception on rollover")); } } if (success) { if (rollover1->getAppend()) { fileLength = File().setPath(rollover1->getActiveFileName()).length(p); } else { fileLength = 0; } // // async action not yet implemented // ActionPtr asyncAction(rollover1->getAsynchronous()); if (asyncAction != NULL) { asyncAction->execute(p); } setFile( rollover1->getActiveFileName(), rollover1->getAppend(), bufferedIO, bufferSize, p); } else { setFile( rollover1->getActiveFileName(), true, bufferedIO, bufferSize, p); } } else { OutputStreamPtr os(new FileOutputStream( rollover1->getActiveFileName(), rollover1->getAppend())); WriterPtr newWriter(createWriter(os)); closeWriter(); setFile(rollover1->getActiveFileName()); setWriter(newWriter); bool success = true; if (rollover1->getSynchronous() != NULL) { success = false; try { success = rollover1->getSynchronous()->execute(p); } catch (std::exception& ex) { LogLog::warn(LOG4CXX_STR("Exception during rollover")); } } if (success) { if (rollover1->getAppend()) { fileLength = File().setPath(rollover1->getActiveFileName()).length(p); } else { fileLength = 0; } // // async action not yet implemented // ActionPtr asyncAction(rollover1->getAsynchronous()); if (asyncAction != NULL) { asyncAction->execute(p); } } writeHeader(p); } return true; } } catch (std::exception& ex) { LogLog::warn(LOG4CXX_STR("Exception during rollover")); } } } return false; } /** * {@inheritDoc} */ void RollingFileAppenderSkeleton::subAppend(const LoggingEventPtr& event, Pool& p) { // The rollover check must precede actual writing. This is the // only correct behavior for time driven triggers. if ( triggeringPolicy->isTriggeringEvent( this, event, getFile(), getFileLength())) { // // wrap rollover request in try block since // rollover may fail in case read access to directory // is not provided. However appender should still be in good // condition and the append should still happen. try { rollover(p); } catch (std::exception& ex) { LogLog::warn(LOG4CXX_STR("Exception during rollover attempt.")); } } FileAppender::subAppend(event, p); } /** * Get rolling policy. * @return rolling policy. */ RollingPolicyPtr RollingFileAppenderSkeleton::getRollingPolicy() const { return rollingPolicy; } /** * Get triggering policy. * @return triggering policy. */ TriggeringPolicyPtr RollingFileAppenderSkeleton::getTriggeringPolicy() const { return triggeringPolicy; } /** * Sets the rolling policy. * @param policy rolling policy. */ void RollingFileAppenderSkeleton::setRollingPolicy(const RollingPolicyPtr& policy) { rollingPolicy = policy; } /** * Set triggering policy. * @param policy triggering policy. */ void RollingFileAppenderSkeleton::setTriggeringPolicy(const TriggeringPolicyPtr& policy) { triggeringPolicy = policy; } /** * Close appender. Waits for any asynchronous file compression actions to be completed. */ void RollingFileAppenderSkeleton::close() { FileAppender::close(); } namespace log4cxx { namespace rolling { /** * Wrapper for OutputStream that will report all write * operations back to this class for file length calculations. */ class CountingOutputStream : public OutputStream { /** * Wrapped output stream. */ private: OutputStreamPtr os; /** * Rolling file appender to inform of stream writes. */ RollingFileAppenderSkeleton* rfa; public: /** * Constructor. * @param os output stream to wrap. * @param rfa rolling file appender to inform. */ CountingOutputStream( OutputStreamPtr& os1, RollingFileAppenderSkeleton* rfa1) : os(os1), rfa(rfa1) { } /** * {@inheritDoc} */ void close(Pool& p) { os->close(p); rfa = 0; } /** * {@inheritDoc} */ void flush(Pool& p) { os->flush(p); } /** * {@inheritDoc} */ void write(ByteBuffer& buf, Pool& p) { os->write(buf, p); if (rfa != 0) { rfa->incrementFileLength(buf.limit()); } } }; } } /** Returns an OutputStreamWriter when passed an OutputStream. The encoding used will depend on the value of the encoding property. If the encoding value is specified incorrectly the writer will be opened using the default system encoding (an error message will be printed to the loglog. @param os output stream, may not be null. @return new writer. */ WriterPtr RollingFileAppenderSkeleton::createWriter(OutputStreamPtr& os) { OutputStreamPtr cos(new CountingOutputStream(os, this)); return FileAppender::createWriter(cos); } /** * Get byte length of current active log file. * @return byte length of current active log file. */ size_t RollingFileAppenderSkeleton::getFileLength() const { return fileLength; } /** * Increments estimated byte length of current active log file. * @param increment additional bytes written to log file. */ void RollingFileAppenderSkeleton::incrementFileLength(size_t increment) { fileLength += increment; } apache-log4cxx-0.10.0/src/main/cpp/stringhelper.cpp100644 0 0 11017 10774263341 17264 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #define __STDC_CONSTANT_MACROS #include #include #include #include #include #include #include #if !defined(LOG4CXX) #define LOG4CXX 1 #endif #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; bool StringHelper::equalsIgnoreCase(const LogString& s1, const logchar* upper, const logchar* lower) { for (LogString::const_iterator iter = s1.begin(); iter != s1.end(); iter++, upper++, lower++) { if (*iter != *upper && *iter != * lower) return false; } return (*upper == 0); } bool StringHelper::equalsIgnoreCase(const LogString& s1, const LogString& upper, const LogString& lower) { LogString::const_iterator u = upper.begin(); LogString::const_iterator l = lower.begin(); LogString::const_iterator iter = s1.begin(); for (; iter != s1.end() && u != upper.end() && l != lower.end(); iter++, u++, l++) { if (*iter != *u && *iter != *l) return false; } return u == upper.end() && iter == s1.end(); } LogString StringHelper::toLowerCase(const LogString& s) { LogString d; std::transform(s.begin(), s.end(), std::insert_iterator(d, d.begin()), tolower); return d; } LogString StringHelper::trim(const LogString& s) { LogString::size_type pos = s.find_first_not_of(' '); if (pos == std::string::npos) { return LogString(); } LogString::size_type n = s.find_last_not_of(' ') - pos + 1; return s.substr(pos, n); } bool StringHelper::startsWith(const LogString& s, const LogString& prefix) { return s.compare(0, prefix.length(), prefix) == 0; } bool StringHelper::endsWith(const LogString& s, const LogString& suffix) { if (suffix.length() <= s.length()) { return s.compare(s.length() - suffix.length(), suffix.length(), suffix) == 0; } return false; } int StringHelper::toInt(const LogString& s) { std::string as; Transcoder::encode(s, as); return atoi(as.c_str()); } log4cxx_int64_t StringHelper::toInt64(const LogString& s) { std::string as; Transcoder::encode(s, as); return apr_atoi64(as.c_str()); } void StringHelper::toString(int n, Pool& pool, LogString& s) { char* fmt = pool.itoa(n); Transcoder::decode(fmt, s); } void StringHelper::toString(bool val, LogString& dst) { if (val) { dst.append(LOG4CXX_STR("true")); } else { dst.append(LOG4CXX_STR("false")); } } void StringHelper::toString(log4cxx_int64_t n, Pool& pool, LogString& dst) { if (n >= INT_MIN && n <= INT_MAX) { toString((int) n, pool, dst); } else { const log4cxx_int64_t BILLION = APR_INT64_C(1000000000); int billions = (int) (n / BILLION); char* upper = pool.itoa(billions); int remain = (int) (n - billions * BILLION); if (remain < 0) remain *= -1; char* lower = pool.itoa(remain); Transcoder::decode(upper, dst); dst.append(9 - strlen(lower), 0x30 /* '0' */); Transcoder::decode(lower, dst); } } void StringHelper::toString(size_t n, Pool& pool, LogString& s) { toString((log4cxx_int64_t) n, pool, s); } LogString StringHelper::format(const LogString& pattern, const std::vector& params) { LogString result; int i = 0; while(pattern[i] != 0) { if (pattern[i] == 0x7B /* '{' */ && pattern[i + 1] >= 0x30 /* '0' */ && pattern[i + 1] <= 0x39 /* '9' */ && pattern[i + 2] == 0x7D /* '}' */) { int arg = pattern[i + 1] - 0x30 /* '0' */; result = result + params[arg]; i += 3; } else { result = result + pattern[i]; i++; } } return result; } apache-log4cxx-0.10.0/src/main/cpp/Makefile.am100644 0 0 12564 10774263341 16116 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # lib_LTLIBRARIES = liblog4cxx.la INCLUDES = -I$(top_srcdir)/src/main/include -I$(top_builddir)/src/main/include liblog4cxx_la_SOURCES = \ action.cpp \ appenderattachableimpl.cpp \ appenderskeleton.cpp \ aprinitializer.cpp \ asyncappender.cpp \ basicconfigurator.cpp \ bufferedwriter.cpp \ bytearrayinputstream.cpp \ bytearrayoutputstream.cpp \ bytebuffer.cpp \ cacheddateformat.cpp \ charsetdecoder.cpp \ charsetencoder.cpp \ class.cpp \ classnamepatternconverter.cpp \ classregistration.cpp \ condition.cpp \ configurator.cpp \ consoleappender.cpp \ cyclicbuffer.cpp \ dailyrollingfileappender.cpp \ datagrampacket.cpp \ datagramsocket.cpp \ date.cpp \ dateformat.cpp \ datelayout.cpp \ datepatternconverter.cpp \ defaultloggerfactory.cpp \ defaultconfigurator.cpp \ defaultrepositoryselector.cpp \ domconfigurator.cpp \ exception.cpp \ fallbackerrorhandler.cpp \ file.cpp \ fileappender.cpp \ filedatepatternconverter.cpp \ fileinputstream.cpp \ filelocationpatternconverter.cpp \ fileoutputstream.cpp \ filerenameaction.cpp \ filewatchdog.cpp \ filter.cpp \ filterbasedtriggeringpolicy.cpp \ fixedwindowrollingpolicy.cpp \ formattinginfo.cpp \ fulllocationpatternconverter.cpp \ gzcompressaction.cpp \ hierarchy.cpp \ htmllayout.cpp \ inetaddress.cpp \ inputstream.cpp \ inputstreamreader.cpp \ integer.cpp \ integerpatternconverter.cpp \ layout.cpp\ level.cpp \ levelmatchfilter.cpp \ levelrangefilter.cpp \ levelpatternconverter.cpp \ linelocationpatternconverter.cpp \ lineseparatorpatternconverter.cpp \ literalpatternconverter.cpp \ loggerpatternconverter.cpp \ loggingeventpatternconverter.cpp \ loader.cpp\ locale.cpp\ locationinfo.cpp\ logger.cpp \ loggingevent.cpp \ loglog.cpp \ logmanager.cpp \ logstream.cpp \ manualtriggeringpolicy.cpp \ messagebuffer.cpp \ messagepatternconverter.cpp \ methodlocationpatternconverter.cpp \ mdc.cpp \ mutex.cpp \ nameabbreviator.cpp \ namepatternconverter.cpp \ ndcpatternconverter.cpp \ ndc.cpp \ nteventlogappender.cpp \ objectimpl.cpp \ objectptr.cpp \ objectoutputstream.cpp \ obsoleterollingfileappender.cpp \ odbcappender.cpp \ onlyonceerrorhandler.cpp \ optionconverter.cpp \ outputdebugstringappender.cpp \ outputstream.cpp \ outputstreamwriter.cpp \ patternconverter.cpp \ patternlayout.cpp \ patternparser.cpp \ pool.cpp \ properties.cpp \ propertiespatternconverter.cpp \ propertyconfigurator.cpp \ propertyresourcebundle.cpp \ propertysetter.cpp \ reader.cpp \ relativetimedateformat.cpp \ relativetimepatternconverter.cpp \ resourcebundle.cpp \ rollingfileappender.cpp \ rollingpolicy.cpp \ rollingpolicybase.cpp \ rolloverdescription.cpp \ rootlogger.cpp \ serversocket.cpp \ simpledateformat.cpp \ simplelayout.cpp \ sizebasedtriggeringpolicy.cpp \ smtpappender.cpp \ socket.cpp \ socketappender.cpp \ socketappenderskeleton.cpp \ sockethubappender.cpp \ socketoutputstream.cpp \ strftimedateformat.cpp \ stringhelper.cpp \ stringmatchfilter.cpp \ stringtokenizer.cpp \ synchronized.cpp \ syslogappender.cpp \ syslogwriter.cpp \ system.cpp \ systemerrwriter.cpp \ systemoutwriter.cpp \ telnetappender.cpp \ threadcxx.cpp \ threadlocal.cpp \ threadspecificdata.cpp \ threadpatternconverter.cpp \ throwableinformationpatternconverter.cpp \ timezone.cpp \ timebasedrollingpolicy.cpp \ transform.cpp \ triggeringpolicy.cpp \ transcoder.cpp \ ttcclayout.cpp \ writer.cpp \ writerappender.cpp \ xmllayout.cpp\ xmlsocketappender.cpp \ zipcompressaction.cpp AM_CPPFLAGS = @CPPFLAGS_ODBC@ liblog4cxx_la_LDFLAGS = -version-info @LT_VERSION@ @LIBS_ODBC@ -@APR_LIBS@ apache-log4cxx-0.10.0/src/main/cpp/timezone.cpp100644 0 0 15777 10774263341 16431 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #define __STDC_CONSTANT_MACROS #include #include #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT( TimeZone ) namespace log4cxx { namespace helpers { namespace TimeZoneImpl { /** Time zone object that represents GMT. */ class GMTTimeZone : public TimeZone { public: /** Class factory. */ static const TimeZonePtr & getInstance() { static TimeZonePtr tz( new GMTTimeZone() ); return tz; } /** Explode time to human readable form. */ log4cxx_status_t explode( apr_time_exp_t * result, log4cxx_time_t input ) const { apr_status_t stat; // APR 1.1 and early mishandles microseconds on dates // before 1970, APR bug 32520 if (LOG4CXX_UNLIKELY(input < 0 && apr_time_usec(input) < 0)) { apr_time_t floorTime = (apr_time_sec(input) -1) * APR_USEC_PER_SEC; stat = apr_time_exp_gmt(result, floorTime); result->tm_usec = (int) (input - floorTime); } else { stat = apr_time_exp_gmt( result, input ); } return stat; } private: GMTTimeZone() : TimeZone( LOG4CXX_STR("GMT") ) { } }; /** Time zone object that represents GMT. */ class LocalTimeZone : public TimeZone { public: /** Class factory. */ static const TimeZonePtr & getInstance() { static TimeZonePtr tz( new LocalTimeZone() ); return tz; } /** Explode time to human readable form. */ log4cxx_status_t explode( apr_time_exp_t * result, log4cxx_time_t input ) const { apr_status_t stat; // APR 1.1 and early mishandles microseconds on dates // before 1970, APR bug 32520 if (LOG4CXX_UNLIKELY(input < 0 && apr_time_usec(input) < 0)) { apr_time_t floorTime = (apr_time_sec(input) -1) * APR_USEC_PER_SEC; stat = apr_time_exp_lt(result, floorTime); result->tm_usec = (int) (input - floorTime); } else { stat = apr_time_exp_lt( result, input ); } return stat; } private: LocalTimeZone() : TimeZone( getTimeZoneName() ) { } static const LogString getTimeZoneName() { const int MAX_TZ_LENGTH = 255; char tzName[MAX_TZ_LENGTH]; apr_size_t tzLength; apr_time_exp_t tm; apr_time_exp_lt(&tm, 0); apr_strftime(tzName, &tzLength, MAX_TZ_LENGTH, "%Z", &tm); if (tzLength == 0) { apr_strftime(tzName, &tzLength, MAX_TZ_LENGTH, "%z", &tm); } tzName[tzLength] = 0; LogString retval; log4cxx::helpers::Transcoder::decode(tzName, retval); return retval; } }; /** Time zone object that represents a fixed offset from GMT. */ class FixedTimeZone : public TimeZone { public: FixedTimeZone( const LogString & name, apr_int32_t offset1 ) : TimeZone( name ), offset( offset1 ) { } /** Explode time to human readable form. */ log4cxx_status_t explode( apr_time_exp_t * result, log4cxx_time_t input ) const { apr_status_t stat; // APR 1.1 and early mishandles microseconds on dates // before 1970, APR bug 32520 if (LOG4CXX_UNLIKELY(input < 0 && apr_time_usec(input) < 0)) { apr_time_t floorTime = (apr_time_sec(input) -1) * APR_USEC_PER_SEC; stat = apr_time_exp_tz(result, floorTime, offset); result->tm_usec = (int) (input - floorTime); } else { stat = apr_time_exp_tz( result, input, offset ); } return stat; } private: const apr_int32_t offset; }; } } } TimeZone::TimeZone( const LogString & id1 ) : id( id1 ) { } TimeZone::~TimeZone() { } const TimeZonePtr & TimeZone::getDefault() { return log4cxx::helpers::TimeZoneImpl::LocalTimeZone::getInstance(); } const TimeZonePtr & TimeZone::getGMT() { return log4cxx::helpers::TimeZoneImpl::GMTTimeZone::getInstance(); } const TimeZonePtr TimeZone::getTimeZone( const LogString & id ) { const logchar gmt[] = { 0x47, 0x4D, 0x54, 0 }; if ( id == gmt ) { return log4cxx::helpers::TimeZoneImpl::GMTTimeZone::getInstance(); } if ( id.length() >= 5 && id.substr( 0, 3 ) == gmt ) { int hours = 0; int minutes = 0; int sign = 1; if (id[3] == 0x2D /* '-' */) { sign = -1; } LogString off( id.substr( 4 ) ); if ( id.length() >= 7 ) { size_t colonPos = off.find( 0x3A /* ':' */); if ( colonPos == LogString::npos ) { minutes = StringHelper::toInt(off.substr(off.length() - 2)); hours = StringHelper::toInt(off.substr(0, off.length() - 2)); } else { minutes = StringHelper::toInt(off.substr(colonPos + 1)); hours = StringHelper::toInt(off.substr(0, colonPos)); } } else { hours = StringHelper::toInt(off); } LogString s(gmt); Pool p; LogString hh; StringHelper::toString(hours, p, hh); if (sign > 0) { s.append(1, (logchar) 0x2B /* '+' */); } else { s.append(1, (logchar) 0x2D /* '-' */); } if (hh.length() == 1) { s.append(1, (logchar) 0x30 /* '0' */); } s.append(hh); s.append(1, (logchar) 0x3A /*' :' */); LogString mm; StringHelper::toString(minutes, p, mm); if (mm.length() == 1) { s.append(1, (logchar) 0x30 /* '0' */); } s.append(mm); apr_int32_t offset = sign * (hours * 3600 + minutes * 60); return new log4cxx::helpers::TimeZoneImpl::FixedTimeZone( s, offset ); } const TimeZonePtr & ltz = getDefault(); if ( ltz->getID() == id ) { return ltz; } return getGMT(); } apache-log4cxx-0.10.0/src/main/cpp/gzcompressaction.cpp100644 0 0 6444 10774263341 20140 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::rolling; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(GZCompressAction) GZCompressAction::GZCompressAction(const File& src, const File& dest, bool del) : source(src), destination(dest), deleteSource(del) { } bool GZCompressAction::execute(log4cxx::helpers::Pool& p) const { if (source.exists(p)) { apr_pool_t* pool = p.getAPRPool(); apr_procattr_t* attr; apr_status_t stat = apr_procattr_create(&attr, pool); if (stat != APR_SUCCESS) throw IOException(stat); stat = apr_procattr_io_set(attr, APR_NO_PIPE, APR_FULL_BLOCK, APR_FULL_BLOCK); if (stat != APR_SUCCESS) throw IOException(stat); stat = apr_procattr_cmdtype_set(attr, APR_PROGRAM_PATH); if (stat != APR_SUCCESS) throw IOException(stat); // // set child process output to destination file // apr_file_t* child_out; apr_int32_t flags = APR_FOPEN_READ | APR_FOPEN_WRITE | APR_FOPEN_CREATE | APR_FOPEN_TRUNCATE; stat = destination.open(&child_out, flags, APR_OS_DEFAULT, p); if (stat != APR_SUCCESS) throw IOException(stat); stat = apr_procattr_child_out_set(attr, child_out, NULL); if (stat != APR_SUCCESS) throw IOException(stat); // // redirect the child's error stream to this processes' error stream // apr_file_t* child_err; stat = apr_file_open_stderr(&child_err, pool); if (stat == APR_SUCCESS) { stat = apr_procattr_child_err_set(attr, child_err, NULL); if (stat != APR_SUCCESS) throw IOException(stat); } const char** args = (const char**) apr_palloc(pool, 4 *sizeof(*args)); int i = 0; args[i++] = "gzip"; args[i++] = "-c"; args[i++] = Transcoder::encode(source.getPath(), p); args[i++] = NULL; apr_proc_t pid; stat = apr_proc_create(&pid, "gzip", args, NULL, attr, pool); if (stat != APR_SUCCESS) throw IOException(stat); apr_proc_wait(&pid, NULL, NULL, APR_WAIT); stat = apr_file_close(child_out); if (stat != APR_SUCCESS) throw IOException(stat); if (deleteSource) { source.deleteFile(p); } return true; } return false; } apache-log4cxx-0.10.0/src/main/cpp/levelrangefilter.cpp100644 0 0 5475 10774263341 20103 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::filter; using namespace log4cxx::spi; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(LevelRangeFilter) LevelRangeFilter::LevelRangeFilter() : acceptOnMatch(true), levelMin(Level::getAll()), levelMax(Level::getOff()) { } void LevelRangeFilter::setOption(const LogString& option, const LogString& value) { if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("LEVELMIN"), LOG4CXX_STR("levelmin"))) { levelMin = OptionConverter::toLevel(value, levelMin); } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("LEVELMAX"), LOG4CXX_STR("levelmax"))) { levelMax = OptionConverter::toLevel(value, levelMax); } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("ACCEPTONMATCH"), LOG4CXX_STR("acceptonmatch"))) { acceptOnMatch = OptionConverter::toBoolean(value, acceptOnMatch); } } Filter::FilterDecision LevelRangeFilter::decide( const spi::LoggingEventPtr& event) const { if (levelMin != 0 && !event->getLevel()->isGreaterOrEqual(levelMin)) { // level of event is less than minimum return Filter::DENY; } if (levelMax != 0 && event->getLevel()->toInt() > levelMax->toInt()) { // level of event is greater than maximum // Alas, there is no Level.isGreater method. and using // a combo of isGreaterOrEqual && !Equal seems worse than // checking the int values of the level objects.. return Filter::DENY; } if (acceptOnMatch) { // this filter set up to bypass later filters and always return // accept if level in range return Filter::ACCEPT; } else { // event is ok for this filter; allow later filters to have a look.. return Filter::NEUTRAL; } } apache-log4cxx-0.10.0/src/main/cpp/inputstream.cpp100644 0 0 2020 10774263341 17103 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include using namespace log4cxx; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(InputStream) InputStream::InputStream() { } InputStream::~InputStream() { } apache-log4cxx-0.10.0/src/main/cpp/level.cpp100644 0 0 13715 10774263341 15674 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #if !defined(LOG4CXX) #define LOG4CXX 1 #endif #include using namespace log4cxx; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS(Level, LevelClass) LevelPtr Level::getOff() { static LevelPtr level(new Level(Level::OFF_INT, LOG4CXX_STR("OFF"), 0)); return level; } LevelPtr Level::getFatal() { static LevelPtr level(new Level(Level::FATAL_INT, LOG4CXX_STR("FATAL"), 0)); return level; } LevelPtr Level::getError() { static LevelPtr level(new Level(Level::ERROR_INT, LOG4CXX_STR("ERROR"), 3)); return level; } LevelPtr Level::getWarn() { static LevelPtr level(new Level(Level::WARN_INT, LOG4CXX_STR("WARN"), 4)); return level; } LevelPtr Level::getInfo() { static LevelPtr level(new Level(Level::INFO_INT, LOG4CXX_STR("INFO"), 6)); return level; } LevelPtr Level::getDebug() { static LevelPtr level(new Level(Level::DEBUG_INT, LOG4CXX_STR("DEBUG"), 7)); return level; } LevelPtr Level::getTrace() { static LevelPtr level(new Level(Level::TRACE_INT, LOG4CXX_STR("TRACE"), 7)); return level; } LevelPtr Level::getAll() { static LevelPtr level(new Level(Level::ALL_INT, LOG4CXX_STR("ALL"), 7)); return level; } Level::Level(int level1, const LogString& name1, int syslogEquivalent1) : level(level1), name(name1), syslogEquivalent(syslogEquivalent1) { APRInitializer::initialize(); } LevelPtr Level::toLevelLS(const LogString& sArg) { return toLevelLS(sArg, Level::getDebug()); } LogString Level::toString() const { return name; } LevelPtr Level::toLevel(int val) { return toLevel(val, Level::getDebug()); } LevelPtr Level::toLevel(int val, const LevelPtr& defaultLevel) { switch(val) { case ALL_INT: return getAll(); case DEBUG_INT: return getDebug(); case TRACE_INT: return getTrace(); case INFO_INT: return getInfo(); case WARN_INT: return getWarn(); case ERROR_INT: return getError(); case FATAL_INT: return getFatal(); case OFF_INT: return getOff(); default: return defaultLevel; } } LevelPtr Level::toLevel(const std::string& sArg) { return toLevel(sArg, Level::getDebug()); } LevelPtr Level::toLevel(const std::string& sArg, const LevelPtr& defaultLevel) { LOG4CXX_DECODE_CHAR(s, sArg); return toLevelLS(s, defaultLevel); } void Level::toString(std::string& dst) const { Transcoder::encode(name, dst); } #if LOG4CXX_WCHAR_T_API LevelPtr Level::toLevel(const std::wstring& sArg) { return toLevel(sArg, Level::getDebug()); } LevelPtr Level::toLevel(const std::wstring& sArg, const LevelPtr& defaultLevel) { LOG4CXX_DECODE_WCHAR(s, sArg); return toLevelLS(s, defaultLevel); } void Level::toString(std::wstring& dst) const { Transcoder::encode(name, dst); } #endif #if LOG4CXX_UNICHAR_API LevelPtr Level::toLevel(const std::basic_string& sArg) { return toLevel(sArg, Level::getDebug()); } LevelPtr Level::toLevel(const std::basic_string& sArg, const LevelPtr& defaultLevel) { LOG4CXX_DECODE_UNICHAR(s, sArg); return toLevelLS(s, defaultLevel); } void Level::toString(std::basic_string& dst) const { Transcoder::encode(name, dst); } #endif #if LOG4CXX_CFSTRING_API LevelPtr Level::toLevel(const CFStringRef& sArg) { return toLevel(sArg, Level::getDebug()); } LevelPtr Level::toLevel(const CFStringRef& sArg, const LevelPtr& defaultLevel) { LogString s; Transcoder::decode(sArg, s); return toLevelLS(s, defaultLevel); } void Level::toString(CFStringRef& dst) const { dst = Transcoder::encode(name); } #endif LevelPtr Level::toLevelLS(const LogString& sArg, const LevelPtr& defaultLevel) { const size_t len = sArg.length(); if (len == 4) { if (StringHelper::equalsIgnoreCase(sArg, LOG4CXX_STR("INFO"), LOG4CXX_STR("info"))) { return getInfo(); } if (StringHelper::equalsIgnoreCase(sArg, LOG4CXX_STR("WARN"), LOG4CXX_STR("warn"))) { return getWarn(); } } else { if (len == 5) { if (StringHelper::equalsIgnoreCase(sArg, LOG4CXX_STR("DEBUG"), LOG4CXX_STR("debug"))) { return getDebug(); } if (StringHelper::equalsIgnoreCase(sArg, LOG4CXX_STR("TRACE"), LOG4CXX_STR("trace"))) { return getTrace(); } if (StringHelper::equalsIgnoreCase(sArg, LOG4CXX_STR("ERROR"), LOG4CXX_STR("error"))) { return getError(); } if (StringHelper::equalsIgnoreCase(sArg, LOG4CXX_STR("FATAL"), LOG4CXX_STR("fatal"))) { return getFatal(); } } else { if (len == 3) { if (StringHelper::equalsIgnoreCase(sArg, LOG4CXX_STR("OFF"), LOG4CXX_STR("off"))) { return getOff(); } if (StringHelper::equalsIgnoreCase(sArg, LOG4CXX_STR("ALL"), LOG4CXX_STR("all"))) { return getAll(); } } } } return defaultLevel; } bool Level::equals(const LevelPtr& level1) const { return (this->level == level1->level); } bool Level::isGreaterOrEqual(const LevelPtr& level1) const { return this->level >= level1->level; } apache-log4cxx-0.10.0/src/main/cpp/methodlocationpatternconverter.cpp100644 0 0 3421 10774263341 23075 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include using namespace log4cxx; using namespace log4cxx::pattern; using namespace log4cxx::spi; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(MethodLocationPatternConverter) MethodLocationPatternConverter::MethodLocationPatternConverter() : LoggingEventPatternConverter(LOG4CXX_STR("Method"), LOG4CXX_STR("method")) { } PatternConverterPtr MethodLocationPatternConverter::newInstance( const std::vector& /* options */ ) { static PatternConverterPtr def(new MethodLocationPatternConverter()); return def; } void MethodLocationPatternConverter::format( const LoggingEventPtr& event, LogString& toAppendTo, Pool& /* p */ ) const { append(toAppendTo, event->getLocationInformation().getMethodName()); } apache-log4cxx-0.10.0/src/main/cpp/xmlsocketappender.cpp100644 0 0 7031 10774263341 20267 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::net; using namespace log4cxx::xml; IMPLEMENT_LOG4CXX_OBJECT(XMLSocketAppender) // The default port number of remote logging server (4560) int XMLSocketAppender::DEFAULT_PORT = 4560; // The default reconnection delay (30000 milliseconds or 30 seconds). int XMLSocketAppender::DEFAULT_RECONNECTION_DELAY = 30000; const int XMLSocketAppender::MAX_EVENT_LEN = 1024; XMLSocketAppender::XMLSocketAppender() : SocketAppenderSkeleton(DEFAULT_PORT, DEFAULT_RECONNECTION_DELAY) { layout = new XMLLayout(); } XMLSocketAppender::XMLSocketAppender(InetAddressPtr address1, int port1) : SocketAppenderSkeleton(address1, port1, DEFAULT_RECONNECTION_DELAY) { layout = new XMLLayout(); Pool p; activateOptions(p); } XMLSocketAppender::XMLSocketAppender(const LogString& host, int port1) : SocketAppenderSkeleton(host, port1, DEFAULT_RECONNECTION_DELAY) { layout = new XMLLayout(); Pool p; activateOptions(p); } XMLSocketAppender::~XMLSocketAppender() { finalize(); } int XMLSocketAppender::getDefaultDelay() const { return DEFAULT_RECONNECTION_DELAY; } int XMLSocketAppender::getDefaultPort() const { return DEFAULT_PORT; } void XMLSocketAppender::setSocket(log4cxx::helpers::SocketPtr& socket, Pool& p) { OutputStreamPtr os(new SocketOutputStream(socket)); CharsetEncoderPtr charset(CharsetEncoder::getUTF8Encoder()); synchronized sync(mutex); writer = new OutputStreamWriter(os, charset); } void XMLSocketAppender::cleanUp(Pool& p) { if (writer != 0) { try { writer->close(p); writer = 0; } catch(std::exception &e) { } } } void XMLSocketAppender::append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p) { if (writer != 0) { LogString output; layout->format(output, event, p); try { writer->write(output, p); writer->flush(p); } catch(std::exception& e) { writer = 0; LogLog::warn(LOG4CXX_STR("Detected problem with connection: "), e); if (getReconnectionDelay() > 0) { fireConnector(); } } } } apache-log4cxx-0.10.0/src/main/cpp/systemoutwriter.cpp100644 0 0 3621 10774263341 20051 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #if !defined(LOG4CXX) #define LOG4CXX 1 #endif #include using namespace log4cxx; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(SystemOutWriter) SystemOutWriter::SystemOutWriter() { } SystemOutWriter::~SystemOutWriter() { } void SystemOutWriter::close(Pool& /* p */ ) { } void SystemOutWriter::flush(Pool& /* p */ ) { flush(); } void SystemOutWriter::write(const LogString& str, Pool& /* p */ ) { write(str); } bool SystemOutWriter::isWide() { #if LOG4CXX_FORCE_WIDE_CONSOLE return true; #elif LOG4CXX_FORCE_BYTE_CONSOLE || !LOG4CXX_HAS_FWIDE return false; #else return fwide(stdout, 0) > 0; #endif } void SystemOutWriter::write(const LogString& str) { #if LOG4CXX_WCHAR_T_API if (isWide()) { LOG4CXX_ENCODE_WCHAR(msg, str); fputws(msg.c_str(), stdout); return; } #endif LOG4CXX_ENCODE_CHAR(msg, str); fputs(msg.c_str(), stdout); } void SystemOutWriter::flush() { fflush(stdout); } apache-log4cxx-0.10.0/src/main/cpp/propertysetter.cpp100644 0 0 7014 10774263341 17653 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::spi; using namespace log4cxx::config; PropertySetter::PropertySetter(const helpers::ObjectPtr& obj1) : obj(obj1) { } void PropertySetter::setProperties(const helpers::ObjectPtr& obj, helpers::Properties& properties, const LogString& prefix, Pool& p) { PropertySetter(obj).setProperties(properties, prefix, p); } void PropertySetter::setProperties(helpers::Properties& properties, const LogString& prefix, Pool& p) { int len = prefix.length(); std::vector names = properties.propertyNames(); std::vector::iterator it; for (it = names.begin(); it != names.end(); it++) { LogString key = *it; // handle only properties that start with the desired frefix. if (key.find(prefix) == 0) { // ignore key if it contains dots after the prefix if (key.find(0x2E /* '.' */, len + 1) != LogString::npos) { continue; } LogString value = OptionConverter::findAndSubst(key, properties); key = key.substr(len); if (key == LOG4CXX_STR("layout") && obj != 0 && obj->instanceof(Appender::getStaticClass())) { continue; } setProperty(key, value, p); } } activate(p); } void PropertySetter::setProperty(const LogString& option, const LogString& value, Pool&) { if (value.empty()) return; if (obj != 0 && obj->instanceof(OptionHandler::getStaticClass())) { LogLog::debug(LOG4CXX_STR("Setting option name=[") + option + LOG4CXX_STR("], value=[") + value + LOG4CXX_STR("]")); OptionHandlerPtr(obj)->setOption(option, value); } } void PropertySetter::activate(Pool& p) { if (obj != 0 && obj->instanceof(OptionHandler::getStaticClass())) { OptionHandlerPtr(obj)->activateOptions(p); } } apache-log4cxx-0.10.0/src/main/cpp/pool.cpp100644 0 0 4244 10774263341 15513 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #if !defined(LOG4CXX) #define LOG4CXX 1 #endif #include using namespace log4cxx::helpers; using namespace log4cxx; Pool::Pool() : pool(0), release(true) { apr_status_t stat = apr_pool_create(&pool, APRInitializer::getRootPool()); if (stat != APR_SUCCESS) { throw PoolException(stat); } } Pool::Pool(apr_pool_t* p, bool release1) : pool(p), release(release1) { assert(p != NULL); } Pool::~Pool() { if (release) { apr_pool_destroy(pool); } } apr_pool_t* Pool::getAPRPool() { return pool; } apr_pool_t* Pool::create() { apr_pool_t* child; apr_status_t stat = apr_pool_create(&child, pool); if (stat != APR_SUCCESS) { throw PoolException(stat); } return child; } void* Pool::palloc(size_t size) { return apr_palloc(pool, size); } char* Pool::pstralloc(size_t size) { return (char*) palloc(size); } char* Pool::itoa(int n) { return apr_itoa(pool, n); } char* Pool::pstrndup(const char* s, size_t len) { return apr_pstrndup(pool, s, len); } char* Pool::pstrdup(const char* s) { return apr_pstrdup(pool, s); } char* Pool::pstrdup(const std::string& s) { return apr_pstrndup(pool, s.data(), s.length()); } apache-log4cxx-0.10.0/src/main/cpp/sizebasedtriggeringpolicy.cpp100644 0 0 3642 10774263341 22016 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include using namespace log4cxx; using namespace log4cxx::rolling; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(SizeBasedTriggeringPolicy) SizeBasedTriggeringPolicy::SizeBasedTriggeringPolicy() : maxFileSize(10 * 1024 * 1024) { } bool SizeBasedTriggeringPolicy::isTriggeringEvent(Appender* /* appender */, const log4cxx::spi::LoggingEventPtr& /* event */, const LogString& /* file */, size_t fileLength) { return (fileLength >= maxFileSize); } size_t SizeBasedTriggeringPolicy::getMaxFileSize() { return maxFileSize; } void SizeBasedTriggeringPolicy::setMaxFileSize(size_t l) { maxFileSize = l; } void SizeBasedTriggeringPolicy::activateOptions(Pool& /* p */) { } void SizeBasedTriggeringPolicy::setOption(const LogString& option, const LogString& value) { if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("MAXFILESIZE"), LOG4CXX_STR("maxfilesize"))) { maxFileSize = OptionConverter::toFileSize(value, 10*1024*1024); } } apache-log4cxx-0.10.0/src/main/cpp/fileoutputstream.cpp100644 0 0 5443 10774263341 20160 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #if !defined(LOG4CXX) #define LOG4CXX 1 #endif #include using namespace log4cxx; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(FileOutputStream) FileOutputStream::FileOutputStream(const LogString& filename, bool append) : pool(), fileptr(open(filename, append, pool)) { } FileOutputStream::FileOutputStream(const logchar* filename, bool append) : pool(), fileptr(open(filename, append, pool)) { } apr_file_t* FileOutputStream::open(const LogString& filename, bool append, Pool& pool) { apr_fileperms_t perm = APR_OS_DEFAULT; apr_int32_t flags = APR_WRITE | APR_CREATE; if (append) { flags |= APR_APPEND; } else { flags |= APR_TRUNCATE; } File fn; fn.setPath(filename); apr_file_t* fileptr = 0; apr_status_t stat = fn.open(&fileptr, flags, perm, pool); if (stat != APR_SUCCESS) { throw IOException(stat); } return fileptr; } FileOutputStream::~FileOutputStream() { if (fileptr != NULL && !APRInitializer::isDestructed) { apr_file_close(fileptr); } } void FileOutputStream::close(Pool& /* p */) { if (fileptr != NULL) { apr_status_t stat = apr_file_close(fileptr); if (stat != APR_SUCCESS) { throw IOException(stat); } fileptr = NULL; } } void FileOutputStream::flush(Pool& /* p */) { } void FileOutputStream::write(ByteBuffer& buf, Pool& /* p */ ) { if (fileptr == NULL) { throw IOException(-1); } size_t nbytes = buf.remaining(); size_t pos = buf.position(); const char* data = buf.data(); while(nbytes > 0) { apr_status_t stat = apr_file_write( fileptr, data + pos, &nbytes); if (stat != APR_SUCCESS) { throw IOException(stat); } pos += nbytes; buf.position(pos); nbytes = buf.remaining(); } } apache-log4cxx-0.10.0/src/main/cpp/hierarchy.cpp100644 0 0 25200 10774263341 16533 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #if !defined(LOG4CXX) #define LOG4CXX 1 #endif #include #include #include #include #include "assert.h" using namespace log4cxx; using namespace log4cxx::spi; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(Hierarchy) Hierarchy::Hierarchy() : pool(), mutex(pool), loggers(new LoggerMap()), provisionNodes(new ProvisionNodeMap()) { synchronized sync(mutex); root = new RootLogger(pool, Level::getDebug()); root->setHierarchy(this); defaultFactory = new DefaultLoggerFactory(); emittedNoAppenderWarning = false; configured = false; thresholdInt = Level::ALL_INT; threshold = Level::getAll(); emittedNoResourceBundleWarning = false; } Hierarchy::~Hierarchy() { delete loggers; delete provisionNodes; } void Hierarchy::addRef() const { ObjectImpl::addRef(); } void Hierarchy::releaseRef() const { ObjectImpl::releaseRef(); } void Hierarchy::addHierarchyEventListener(const spi::HierarchyEventListenerPtr& listener) { synchronized sync(mutex); if (std::find(listeners.begin(), listeners.end(), listener) != listeners.end()) { LogLog::warn(LOG4CXX_STR("Ignoring attempt to add an existent listener.")); } else { listeners.push_back(listener); } } void Hierarchy::clear() { synchronized sync(mutex); loggers->clear(); } void Hierarchy::emitNoAppenderWarning(const LoggerPtr& logger) { bool emitWarning = false; { synchronized sync(mutex); emitWarning = !emittedNoAppenderWarning; emittedNoAppenderWarning = true; } // No appender in hierarchy, warn user only once. if(emitWarning) { LogLog::warn(((LogString) LOG4CXX_STR("No appender could be found for logger (")) + logger->getName() + LOG4CXX_STR(").")); LogLog::warn(LOG4CXX_STR("Please initialize the log4cxx system properly.")); } } LoggerPtr Hierarchy::exists(const LogString& name) { synchronized sync(mutex); LoggerPtr logger; LoggerMap::iterator it = loggers->find(name); if (it != loggers->end()) { logger = it->second; } return logger; } void Hierarchy::setThreshold(const LevelPtr& l) { if (l != 0) { synchronized sync(mutex); thresholdInt = l->toInt(); threshold = l; if (thresholdInt != Level::ALL_INT) { setConfigured(true); } } } void Hierarchy::setThreshold(const LogString& levelStr) { LevelPtr l(Level::toLevelLS(levelStr, 0)); if(l != 0) { setThreshold(l); } else { LogLog::warn(((LogString) LOG4CXX_STR("No level could be found named \"")) + levelStr + LOG4CXX_STR("\".")); } } void Hierarchy::fireAddAppenderEvent(const LoggerPtr& logger, const AppenderPtr& appender) { setConfigured(true); HierarchyEventListenerList clonedList; { synchronized sync(mutex); clonedList = listeners; } HierarchyEventListenerList::iterator it, itEnd = clonedList.end(); HierarchyEventListenerPtr listener; for(it = clonedList.begin(); it != itEnd; it++) { listener = *it; listener->addAppenderEvent(logger, appender); } } void Hierarchy::fireRemoveAppenderEvent(const LoggerPtr& logger, const AppenderPtr& appender) { HierarchyEventListenerList clonedList; { synchronized sync(mutex); clonedList = listeners; } HierarchyEventListenerList::iterator it, itEnd = clonedList.end(); HierarchyEventListenerPtr listener; for(it = clonedList.begin(); it != itEnd; it++) { listener = *it; listener->removeAppenderEvent(logger, appender); } } const LevelPtr& Hierarchy::getThreshold() const { return threshold; } LoggerPtr Hierarchy::getLogger(const LogString& name) { return getLogger(name, defaultFactory); } LoggerPtr Hierarchy::getLogger(const LogString& name, const spi::LoggerFactoryPtr& factory) { synchronized sync(mutex); LoggerMap::iterator it = loggers->find(name); if (it != loggers->end()) { return it->second; } else { LoggerPtr logger(factory->makeNewLoggerInstance(pool, name)); logger->setHierarchy(this); loggers->insert(LoggerMap::value_type(name, logger)); ProvisionNodeMap::iterator it2 = provisionNodes->find(name); if (it2 != provisionNodes->end()) { updateChildren(it2->second, logger); provisionNodes->erase(it2); } updateParents(logger); return logger; } } LoggerList Hierarchy::getCurrentLoggers() const { synchronized sync(mutex); LoggerList v; LoggerMap::const_iterator it, itEnd = loggers->end(); for (it = loggers->begin(); it != itEnd; it++) { v.push_back(it->second); } return v; } LoggerPtr Hierarchy::getRootLogger() const { return root; } bool Hierarchy::isDisabled(int level) const { if(!configured) { synchronized sync(mutex); if (!configured) { DefaultConfigurator::configure( const_cast(this)); } } return thresholdInt > level; } void Hierarchy::resetConfiguration() { synchronized sync(mutex); getRootLogger()->setLevel(Level::getDebug()); root->setResourceBundle(0); setThreshold(Level::getAll()); shutdown(); // nested locks are OK LoggerList loggers1 = getCurrentLoggers(); LoggerList::iterator it, itEnd = loggers1.end(); for (it = loggers1.begin(); it != itEnd; it++) { LoggerPtr& logger = *it; logger->setLevel(0); logger->setAdditivity(true); logger->setResourceBundle(0); } //rendererMap.clear(); } void Hierarchy::shutdown() { synchronized sync(mutex); setConfigured(false); LoggerPtr root1 = getRootLogger(); // begin by closing nested appenders root1->closeNestedAppenders(); LoggerList loggers1 = getCurrentLoggers(); LoggerList::iterator it, itEnd = loggers1.end(); for (it = loggers1.begin(); it != itEnd; it++) { LoggerPtr& logger = *it; logger->closeNestedAppenders(); } // then, remove all appenders root1->removeAllAppenders(); for (it = loggers1.begin(); it != itEnd; it++) { LoggerPtr& logger = *it; logger->removeAllAppenders(); } } void Hierarchy::updateParents(LoggerPtr logger) { synchronized sync(mutex); const LogString name(logger->getName()); int length = name.size(); bool parentFound = false; // if name = "w.x.y.z", loop thourgh "w.x.y", "w.x" and "w", but not "w.x.y.z" for(size_t i = name.find_last_of(0x2E /* '.' */, length-1); i != LogString::npos; i = name.find_last_of(0x2E /* '.' */, i-1)) { LogString substr = name.substr(0, i); LoggerMap::iterator it = loggers->find(substr); if(it != loggers->end()) { parentFound = true; logger->parent = it->second; break; // no need to update the ancestors of the closest ancestor } else { ProvisionNodeMap::iterator it2 = provisionNodes->find(substr); if (it2 != provisionNodes->end()) { it2->second.push_back(logger); } else { ProvisionNode node(1, logger); provisionNodes->insert( ProvisionNodeMap::value_type(substr, node)); } } } // If we could not find any existing parents, then link with root. if(!parentFound) { logger->parent = root; } } void Hierarchy::updateChildren(ProvisionNode& pn, LoggerPtr logger) { ProvisionNode::iterator it, itEnd = pn.end(); for(it = pn.begin(); it != itEnd; it++) { LoggerPtr& l = *it; // Unless this child already points to a correct (lower) parent, // make cat.parent point to l.parent and l.parent to cat. if(!StringHelper::startsWith(l->parent->name, logger->name)) { logger->parent = l->parent; l->parent = logger; } } } void Hierarchy::setConfigured(bool newValue) { synchronized sync(mutex); configured = newValue; } bool Hierarchy::isConfigured() { return configured; } apache-log4cxx-0.10.0/src/main/cpp/action.cpp100644 0 0 3447 10774263341 16023 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include using namespace log4cxx; using namespace log4cxx::rolling; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(Action) Action::Action() : complete(false), interrupted(false), pool(), mutex(pool) { } Action::~Action() { } /** * {@inheritDoc} */ void Action::run(log4cxx::helpers::Pool& pool1) { synchronized sync(mutex); if (!interrupted) { try { execute(pool1); } catch(std::exception& ex) { reportException(ex); } complete = true; interrupted = true; } } /** * {@inheritDoc} */ void Action::close() { synchronized sync(mutex); interrupted = true; } /** * Tests if the action is complete. * @return true if action is complete. */ bool Action::isComplete() const { return complete; } /** * Capture exception. * * @param ex exception. */ void Action::reportException(const std::exception& /* ex */) { } apache-log4cxx-0.10.0/src/main/cpp/outputdebugstringappender.cpp100644 0 0 2735 10774263341 22062 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_WIN32) #include #include #include "windows.h" using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::nt; IMPLEMENT_LOG4CXX_OBJECT(OutputDebugStringAppender) OutputDebugStringAppender::OutputDebugStringAppender() { } void OutputDebugStringAppender::append(const spi::LoggingEventPtr& event, Pool& p) { LogString buf; layout->format(buf, event, p); #if LOG4CXX_WCHAR_T_API LOG4CXX_ENCODE_WCHAR(wstr, buf); ::OutputDebugStringW(wstr.c_str()); #else LOG4CXX_ENCODE_CHAR(str, buf); ::OutputDebugStringA(str.c_str()); #endif } #endif apache-log4cxx-0.10.0/src/main/cpp/triggeringpolicy.cpp100644 0 0 2231 10774263341 20115 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include using namespace log4cxx; using namespace log4cxx::rolling; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(TriggeringPolicy) TriggeringPolicy::~TriggeringPolicy() { } void TriggeringPolicy::addRef() const { ObjectImpl::addRef(); } void TriggeringPolicy::releaseRef() const { ObjectImpl::releaseRef(); } apache-log4cxx-0.10.0/src/main/cpp/threadlocal.cpp100644 0 0 3437 10774263341 17027 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include "log4cxx/helpers/threadlocal.h" #include "apr_thread_proc.h" #include "log4cxx/helpers/exception.h" using namespace log4cxx::helpers; using namespace log4cxx; apr_threadkey_t* ThreadLocal::create(Pool& p) { apr_threadkey_t* key = 0; #if APR_HAS_THREADS apr_status_t stat = apr_threadkey_private_create(&key, 0, p.getAPRPool()); if (stat != APR_SUCCESS) { throw RuntimeException(stat); } #endif return key; } ThreadLocal::ThreadLocal() : p(), key(create(p)) { } ThreadLocal::~ThreadLocal() { } void ThreadLocal::set(void* priv) { #if APR_HAS_THREADS apr_status_t stat = apr_threadkey_private_set(priv, key); if (stat != APR_SUCCESS) { throw RuntimeException(stat); } #endif } void* ThreadLocal::get() { void* retval = 0; #if APR_HAS_THREADS apr_status_t stat = apr_threadkey_private_get(&retval, key); if (stat != APR_SUCCESS) { throw RuntimeException(stat); } #endif return retval; } apache-log4cxx-0.10.0/src/main/cpp/aprinitializer.cpp100644 0 0 3647 10774263341 17576 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #if !defined(LOG4CXX) #define LOG4CXX 1 #endif #include #include #include #include #include #include using namespace log4cxx::helpers; using namespace log4cxx; bool APRInitializer::isDestructed = false; APRInitializer::APRInitializer() { apr_initialize(); apr_pool_create(&p, NULL); apr_atomic_init(p); startTime = apr_time_now(); #if APR_HAS_THREADS apr_status_t stat = apr_threadkey_private_create(&tlsKey, tlsDestruct, p); assert(stat == APR_SUCCESS); #endif } APRInitializer::~APRInitializer() { apr_terminate(); isDestructed = true; } APRInitializer& APRInitializer::getInstance() { static APRInitializer init; return init; } log4cxx_time_t APRInitializer::initialize() { return getInstance().startTime; } apr_pool_t* APRInitializer::getRootPool() { return getInstance().p; } apr_threadkey_t* APRInitializer::getTlsKey() { return getInstance().tlsKey; } void APRInitializer::tlsDestruct(void* ptr) { delete ((ThreadSpecificData*) ptr); } apache-log4cxx-0.10.0/src/main/cpp/integerpatternconverter.cpp100644 0 0 3315 10774263341 21523 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include using namespace log4cxx; using namespace log4cxx::pattern; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(IntegerPatternConverter) IntegerPatternConverter::IntegerPatternConverter() : PatternConverter(LOG4CXX_STR("Integer"), LOG4CXX_STR("integer")) { } PatternConverterPtr IntegerPatternConverter::newInstance( const std::vector& /* options */) { static PatternConverterPtr instance(new IntegerPatternConverter()); return instance; } void IntegerPatternConverter::format( const ObjectPtr& obj, LogString& toAppendTo, Pool& p) const { IntegerPtr i(obj); if (i != NULL) { StringHelper::toString(i->intValue(), p, toAppendTo); } } apache-log4cxx-0.10.0/src/main/cpp/simplelayout.cpp100644 0 0 2472 10774263341 17272 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include using namespace log4cxx; using namespace log4cxx::spi; IMPLEMENT_LOG4CXX_OBJECT(SimpleLayout) void SimpleLayout::format(LogString& output, const spi::LoggingEventPtr& event, log4cxx::helpers::Pool&) const { output.append(event->getLevel()->toString()); output.append(LOG4CXX_STR(" - ")); output.append(event->getRenderedMessage()); output.append(LOG4CXX_EOL); } apache-log4cxx-0.10.0/src/main/cpp/loggingevent.cpp100644 0 0 24233 10774263341 17252 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #if !defined(LOG4CXX) #define LOG4CXX 1 #endif #include #include #include #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::spi; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(LoggingEvent) // // Accessor for start time. // log4cxx_time_t LoggingEvent::getStartTime() { return log4cxx::helpers::APRInitializer::initialize(); } LoggingEvent::LoggingEvent() : ndc(0), mdcCopy(0), properties(0), ndcLookupRequired(true), mdcCopyLookupRequired(true), timeStamp(0), locationInfo() { } LoggingEvent::LoggingEvent( const LogString& logger1, const LevelPtr& level1, const LogString& message1, const LocationInfo& locationInfo1) : logger(logger1), level(level1), ndc(0), mdcCopy(0), properties(0), ndcLookupRequired(true), mdcCopyLookupRequired(true), message(message1), timeStamp(apr_time_now()), locationInfo(locationInfo1), threadName(getCurrentThreadName()) { } LoggingEvent::~LoggingEvent() { delete ndc; delete mdcCopy; delete properties; } bool LoggingEvent::getNDC(LogString& dest) const { if(ndcLookupRequired) { ndcLookupRequired = false; LogString val; if(NDC::get(val)) { ndc = new LogString(val); } } if (ndc) { dest.append(*ndc); return true; } return false; } bool LoggingEvent::getMDC(const LogString& key, LogString& dest) const { // Note the mdcCopy is used if it exists. Otherwise we use the MDC // that is associated with the thread. if (mdcCopy != 0 && !mdcCopy->empty()) { MDC::Map::const_iterator it = mdcCopy->find(key); if (it != mdcCopy->end()) { if (!it->second.empty()) { dest.append(it->second); return true; } } } return MDC::get(key, dest); } LoggingEvent::KeySet LoggingEvent::getMDCKeySet() const { LoggingEvent::KeySet set; if (mdcCopy != 0 && !mdcCopy->empty()) { MDC::Map::const_iterator it; for (it = mdcCopy->begin(); it != mdcCopy->end(); it++) { set.push_back(it->first); } } else { ThreadSpecificData* data = ThreadSpecificData::getCurrentData(); if (data != 0) { MDC::Map& m = data->getMap(); for(MDC::Map::const_iterator it = m.begin(); it != m.end(); it++) { set.push_back(it->first); } } } return set; } void LoggingEvent::getMDCCopy() const { if(mdcCopyLookupRequired) { mdcCopyLookupRequired = false; // the clone call is required for asynchronous logging. ThreadSpecificData* data = ThreadSpecificData::getCurrentData(); if (data != 0) { mdcCopy = new MDC::Map(data->getMap()); } else { mdcCopy = new MDC::Map(); } } } bool LoggingEvent::getProperty(const LogString& key, LogString& dest) const { if (properties == 0) { return false; } std::map::const_iterator it = properties->find(key); if (it != properties->end()) { dest.append(it->second); return true; } return false; } LoggingEvent::KeySet LoggingEvent::getPropertyKeySet() const { LoggingEvent::KeySet set; if (properties != 0) { std::map::const_iterator it; for (it = properties->begin(); it != properties->end(); it++) { set.push_back(it->first); } } return set; } const LogString LoggingEvent::getCurrentThreadName() { #if APR_HAS_THREADS #if defined(_WIN32) char result[20]; DWORD threadId = GetCurrentThreadId(); apr_snprintf(result, sizeof(result), LOG4CXX_WIN32_THREAD_FMTSPEC, threadId); #else // apr_os_thread_t encoded in HEX takes needs as many characters // as two times the size of the type, plus an additional null byte. char result[sizeof(apr_os_thread_t) * 3 + 10]; apr_os_thread_t threadId = apr_os_thread_current(); apr_snprintf(result, sizeof(result), LOG4CXX_APR_THREAD_FMTSPEC, (void*) &threadId); #endif LOG4CXX_DECODE_CHAR(str, (const char*) result); return str; #else return LOG4CXX_STR("0x00000000"); #endif } void LoggingEvent::setProperty(const LogString& key, const LogString& value) { if (properties == 0) { properties = new std::map; } (*properties)[key] = value; } void LoggingEvent::writeProlog(ObjectOutputStream& os, Pool& p) { char classDesc[] = { 0x72, 0x00, 0x21, 0x6F, 0x72, 0x67, 0x2E, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2E, 0x6C, 0x6F, 0x67, 0x34, 0x6A, 0x2E, 0x73, 0x70, 0x69, 0x2E, 0x4C, 0x6F, 0x67, 0x67, 0x69, 0x6E, 0x67, 0x45, 0x76, 0x65, 0x6E, 0x74, 0xF3, 0xF2, 0xB9, 0x23, 0x74, 0x0B, 0xB5, 0x3F, 0x03, 0x00, 0x0A, 0x5A, 0x00, 0x15, 0x6D, 0x64, 0x63, 0x43, 0x6F, 0x70, 0x79, 0x4C, 0x6F, 0x6F, 0x6B, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5A, 0x00, 0x11, 0x6E, 0x64, 0x63, 0x4C, 0x6F, 0x6F, 0x6B, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x4A, 0x00, 0x09, 0x74, 0x69, 0x6D, 0x65, 0x53, 0x74, 0x61, 0x6D, 0x70, 0x4C, 0x00, 0x0C, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6F, 0x72, 0x79, 0x4E, 0x61, 0x6D, 0x65, 0x74, 0x00, 0x12, 0x4C, 0x6A, 0x61, 0x76, 0x61, 0x2F, 0x6C, 0x61, 0x6E, 0x67, 0x2F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x3B, 0x4C, 0x00, 0x0C, 0x6C, 0x6F, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x49, 0x6E, 0x66, 0x6F, 0x74, 0x00, 0x23, 0x4C, 0x6F, 0x72, 0x67, 0x2F, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2F, 0x6C, 0x6F, 0x67, 0x34, 0x6A, 0x2F, 0x73, 0x70, 0x69, 0x2F, 0x4C, 0x6F, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x49, 0x6E, 0x66, 0x6F, 0x3B, 0x4C, 0x00, 0x07, 0x6D, 0x64, 0x63, 0x43, 0x6F, 0x70, 0x79, 0x74, 0x00, 0x15, 0x4C, 0x6A, 0x61, 0x76, 0x61, 0x2F, 0x75, 0x74, 0x69, 0x6C, 0x2F, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x62, 0x6C, 0x65, 0x3B, 0x4C, 0x00, 0x03, 0x6E, 0x64, 0x63, 0x74, 0x00, 0x12, 0x4C, 0x6A, 0x61, 0x76, 0x61, 0x2F, 0x6C, 0x61, 0x6E, 0x67, 0x2F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x3B, 0x4C, 0x00, 0x0F, 0x72, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x65, 0x64, 0x4D, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x74, 0x00, 0x12, 0x4C, 0x6A, 0x61, 0x76, 0x61, 0x2F, 0x6C, 0x61, 0x6E, 0x67, 0x2F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x3B, 0x4C, 0x00, 0x0A, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4E, 0x61, 0x6D, 0x65, 0x74, 0x00, 0x12, 0x4C, 0x6A, 0x61, 0x76, 0x61, 0x2F, 0x6C, 0x61, 0x6E, 0x67, 0x2F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x3B, 0x4C, 0x00, 0x0D, 0x74, 0x68, 0x72, 0x6F, 0x77, 0x61, 0x62, 0x6C, 0x65, 0x49, 0x6E, 0x66, 0x6F, 0x74, 0x00, 0x2B, 0x4C, 0x6F, 0x72, 0x67, 0x2F, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2F, 0x6C, 0x6F, 0x67, 0x34, 0x6A, 0x2F, 0x73, 0x70, 0x69, 0x2F, 0x54, 0x68, 0x72, 0x6F, 0x77, 0x61, 0x62, 0x6C, 0x65, 0x49, 0x6E, 0x66, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x3B, 0x78, 0x70 }; os.writeProlog("org.apache.log4j.spi.LoggingEvent", 8, classDesc, sizeof(classDesc), p); } void LoggingEvent::write(helpers::ObjectOutputStream& os, Pool& p) const { writeProlog(os, p); // mdc and ndc lookup required should always be false char lookupsRequired[] = { 0, 0 }; os.writeBytes(lookupsRequired, sizeof(lookupsRequired), p); os.writeLong(timeStamp/1000, p); os.writeObject(logger, p); locationInfo.write(os, p); if (mdcCopy == 0 || mdcCopy->size() == 0) { os.writeNull(p); } else { os.writeObject(*mdcCopy, p); } if (ndc == 0) { os.writeNull(p); } else { os.writeObject(*ndc, p); } os.writeObject(message, p); os.writeObject(threadName, p); // throwable os.writeNull(p); os.writeByte(ObjectOutputStream::TC_BLOCKDATA, p); os.writeByte(0x04, p); os.writeInt(level->toInt(), p); os.writeNull(p); os.writeByte(ObjectOutputStream::TC_ENDBLOCKDATA, p); } apache-log4cxx-0.10.0/src/main/cpp/bytearrayoutputstream.cpp100644 0 0 3126 10774263341 21237 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(ByteArrayOutputStream) ByteArrayOutputStream::ByteArrayOutputStream() { } ByteArrayOutputStream::~ByteArrayOutputStream() { } void ByteArrayOutputStream::close(Pool& /* p */) { } void ByteArrayOutputStream::flush(Pool& /* p */) { } void ByteArrayOutputStream::write(ByteBuffer& buf, Pool& /* p */ ) { size_t sz = array.size(); array.resize(sz + buf.remaining()); memcpy(&array[sz], buf.current(), buf.remaining()); buf.position(buf.limit()); } std::vector ByteArrayOutputStream::toByteArray() const { return array; } apache-log4cxx-0.10.0/src/main/cpp/ndcpatternconverter.cpp100644 0 0 3315 10774263341 20632 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include using namespace log4cxx; using namespace log4cxx::pattern; using namespace log4cxx::spi; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(NDCPatternConverter) NDCPatternConverter::NDCPatternConverter() : LoggingEventPatternConverter(LOG4CXX_STR("NDC"), LOG4CXX_STR("ndc")) { } PatternConverterPtr NDCPatternConverter::newInstance( const std::vector& /* options */) { static PatternConverterPtr def(new NDCPatternConverter()); return def; } void NDCPatternConverter::format( const LoggingEventPtr& event, LogString& toAppendTo, Pool& /* p */) const { if(!event->getNDC(toAppendTo)) { toAppendTo.append(LOG4CXX_STR("null")); } } apache-log4cxx-0.10.0/src/main/cpp/objectptr.cpp100644 0 0 3145 10774263341 16535 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include using namespace log4cxx::helpers; ObjectPtrBase::ObjectPtrBase() { } ObjectPtrBase::~ObjectPtrBase() { } void ObjectPtrBase::checkNull(const int& null) { if (null != 0) { throw IllegalArgumentException(LOG4CXX_STR("Attempt to set pointer to a non-zero numeric value.")); } } void* ObjectPtrBase::exchange(void** destination, void* newValue) { #if _WIN32 && (!defined(_MSC_VER) || _MSC_VER >= 1300) return InterlockedExchangePointer(destination, newValue); #elif APR_SIZEOF_VOIDP == 4 return (void*) apr_atomic_xchg32((volatile apr_uint32_t*) destination, (apr_uint32_t) newValue); #else void* oldValue = *destination; *destination = newValue; return oldValue; #endif } apache-log4cxx-0.10.0/src/main/cpp/logstream.cpp100644 0 0 33204 10774263341 16555 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #if !defined(LOG4CXX) #define LOG4CXX 1 #endif #include using namespace log4cxx; logstream_base::logstream_ios_base::logstream_ios_base(std::ios_base::fmtflags initval, int initsize) { #if LOG4CXX_MEMSET_IOS_BASE // // the destructor for std::ios_base in the MSVC STL // releases a pointer that was not initialized in the constructor. // memset(this, 0, sizeof(*this)); #endif flags(initval); precision(initsize); width(initsize); } logstream_base::logstream_base(const LoggerPtr& log, const LevelPtr& lvl) : initset((std::ios_base::fmtflags) -1, 1), initclear((std::ios_base::fmtflags) 0, 0), fillchar(0), fillset(false), logger(log), level(lvl), location() { enabled = logger->isEnabledFor(level); } logstream_base::~logstream_base() { } void logstream_base::insert(std::ios_base& (*manip)(std::ios_base&)) { get_stream_state(initclear, initset, fillchar, fillset); (*manip)(initset); (*manip)(initclear); refresh_stream_state(); } bool logstream_base::set_stream_state(std::ios_base& dest, int& dstchar) { std::ios_base::fmtflags setval = initset.flags(); std::ios_base::fmtflags clrval = initclear.flags(); std::ios_base::fmtflags mask = setval ^ (~clrval); dest.setf(clrval, mask); if (initset.precision() == initclear.precision()) { dest.precision(initset.precision()); } if (initset.width() == initclear.width()) { dest.width(initset.width()); } dstchar = fillchar; return fillset; } logstream_base& logstream_base::endmsg(logstream_base& stream) { stream.end_message(); return stream; } logstream_base& logstream_base::nop(logstream_base& stream) { return stream; } void logstream_base::end_message() { if (isEnabled()) { log(logger, level, location); } erase(); } int log4cxx::logstream_base::precision(int p) { get_stream_state(initclear, initset, fillchar, fillset); initset.precision(p); int oldVal = initclear.precision(p); refresh_stream_state(); return oldVal; } int log4cxx::logstream_base::precision() { get_stream_state(initclear, initset, fillchar, fillset); return initclear.precision(); } int log4cxx::logstream_base::width(int w) { get_stream_state(initclear, initset, fillchar, fillset); initset.width(w); int oldVal = initclear.width(w); refresh_stream_state(); return oldVal; } int log4cxx::logstream_base::width() { get_stream_state(initclear, initset, fillchar, fillset); return initclear.width(); } int log4cxx::logstream_base::fill(int newfill) { get_stream_state(initclear, initset, fillchar, fillset); int oldfill = fillchar; fillchar = newfill; fillset = true; refresh_stream_state(); return oldfill; } int logstream_base::fill() { get_stream_state(initclear, initset, fillchar, fillset); return fillchar; } std::ios_base::fmtflags logstream_base::flags(std::ios_base::fmtflags newflags) { get_stream_state(initclear, initset, fillchar, fillset); initset.flags(newflags); std::ios_base::fmtflags oldVal = initclear.flags(newflags); refresh_stream_state(); return oldVal; } std::ios_base::fmtflags logstream_base::setf(std::ios_base::fmtflags newflags, std::ios_base::fmtflags mask) { get_stream_state(initclear, initset, fillchar, fillset); initset.setf(newflags, mask); std::ios_base::fmtflags oldVal = initclear.setf(newflags, mask); refresh_stream_state(); return oldVal; } std::ios_base::fmtflags logstream_base::setf(std::ios_base::fmtflags newflags) { get_stream_state(initclear, initset, fillchar, fillset); initset.setf(newflags); std::ios_base::fmtflags oldVal = initclear.setf(newflags); refresh_stream_state(); return oldVal; } void logstream_base::setLevel(const ::log4cxx::LevelPtr& newlevel) { level = newlevel; bool oldLevel = enabled; enabled = logger->isEnabledFor(level); if (oldLevel != enabled) { erase(); } } bool logstream_base::isEnabledFor(const ::log4cxx::LevelPtr& level) const { return logger->isEnabledFor(level); } void logstream_base::setLocation(const log4cxx::spi::LocationInfo& newlocation) { if (LOG4CXX_UNLIKELY(enabled)) { location = newlocation; } } logstream::logstream(const log4cxx::LoggerPtr& logger, const log4cxx::LevelPtr& level) : logstream_base(logger, level), stream(0) { } logstream::logstream(const Ch* loggerName, const log4cxx::LevelPtr& level) : logstream_base(log4cxx::Logger::getLogger(loggerName), level), stream(0) { } logstream::logstream(const std::basic_string& loggerName, const log4cxx::LevelPtr& level) : logstream_base(log4cxx::Logger::getLogger(loggerName), level), stream(0) { } logstream::~logstream() { delete stream; } logstream& logstream::operator<<(logstream_base& (*manip)(logstream_base&)) { (*manip)(*this); return *this; } logstream& logstream::operator<<(const LevelPtr& level) { setLevel(level); return *this; } logstream& logstream::operator<<(const log4cxx::spi::LocationInfo& newlocation) { setLocation(newlocation); return *this; } logstream& logstream::operator>>(const log4cxx::spi::LocationInfo& newlocation) { setLocation(newlocation); return *this; } logstream& logstream::operator<<(std::ios_base& (*manip)(std::ios_base&)) { logstream_base::insert(manip); return *this; } logstream::operator std::basic_ostream&() { if (stream == 0) { stream = new std::basic_stringstream(); refresh_stream_state(); } return *stream; } void logstream::log(LoggerPtr& logger, const LevelPtr& level, const log4cxx::spi::LocationInfo& location) { if (stream != 0) { std::basic_string msg = stream->str(); if (!msg.empty()) { logger->log(level, msg, location); } } } void logstream::erase() { if (stream != 0) { std::basic_string emptyStr; stream->str(emptyStr); } } void logstream::get_stream_state(std::ios_base& base, std::ios_base& mask, int& fill, bool& fillSet) const { if (stream != 0) { std::ios_base::fmtflags flags = stream->flags(); base.flags(flags); mask.flags(flags); int width = stream->width(); base.width(width); mask.width(width); int precision = stream->precision(); base.precision(precision); mask.precision(precision); fill = stream->fill(); fillSet = true; } } void logstream::refresh_stream_state() { if (stream != 0) { int fillchar; if(logstream_base::set_stream_state(*stream, fillchar)) { stream->fill(fillchar); } } } #if LOG4CXX_WCHAR_T_API wlogstream::wlogstream(const log4cxx::LoggerPtr& logger, const log4cxx::LevelPtr& level) : logstream_base(logger, level), stream(0) { } wlogstream::wlogstream(const Ch* loggerName, const log4cxx::LevelPtr& level) : logstream_base(log4cxx::Logger::getLogger(loggerName), level), stream(0) { } wlogstream::wlogstream(const std::basic_string& loggerName, const log4cxx::LevelPtr& level) : logstream_base(log4cxx::Logger::getLogger(loggerName), level), stream(0) { } wlogstream::~wlogstream() { delete stream; } wlogstream& wlogstream::operator<<(logstream_base& (*manip)(logstream_base&)) { (*manip)(*this); return *this; } wlogstream& wlogstream::operator<<(const LevelPtr& level) { setLevel(level); return *this; } wlogstream& wlogstream::operator<<(const log4cxx::spi::LocationInfo& newlocation) { setLocation(newlocation); return *this; } wlogstream& wlogstream::operator>>(const log4cxx::spi::LocationInfo& newlocation) { setLocation(newlocation); return *this; } wlogstream& wlogstream::operator<<(std::ios_base& (*manip)(std::ios_base&)) { logstream_base::insert(manip); return *this; } wlogstream::operator std::basic_ostream&() { if (stream == 0) { stream = new std::basic_stringstream(); refresh_stream_state(); } return *stream; } void wlogstream::log(LoggerPtr& logger, const LevelPtr& level, const log4cxx::spi::LocationInfo& location) { if (stream != 0) { std::basic_string msg = stream->str(); if (!msg.empty()) { logger->log(level, msg, location); } } } void wlogstream::erase() { if (stream != 0) { std::basic_string emptyStr; stream->str(emptyStr); } } void wlogstream::get_stream_state(std::ios_base& base, std::ios_base& mask, int& fill, bool& fillSet) const { if (stream != 0) { std::ios_base::fmtflags flags = stream->flags(); base.flags(flags); mask.flags(flags); int width = stream->width(); base.width(width); mask.width(width); int precision = stream->precision(); base.precision(precision); mask.precision(precision); fill = stream->fill(); fillSet = true; } } void wlogstream::refresh_stream_state() { if (stream != 0) { int fillchar; if(logstream_base::set_stream_state(*stream, fillchar)) { stream->fill(fillchar); } } } #endif #if LOG4CXX_UNICHAR_API ulogstream::ulogstream(const Ch* loggerName, const log4cxx::LevelPtr& level) : logstream_base(log4cxx::Logger::getLogger(loggerName), level), stream(0) { } ulogstream::ulogstream(const std::basic_string& loggerName, const log4cxx::LevelPtr& level) : logstream_base(log4cxx::Logger::getLogger(loggerName), level), stream(0) { } #endif #if LOG4CXX_CFSTRING_API ulogstream::ulogstream(const CFStringRef& loggerName, const log4cxx::LevelPtr& level) : logstream_base(log4cxx::Logger::getLogger(loggerName), level), stream(0) { } #endif #if LOG4CXX_UNICHAR_API || LOG4CXX_CFSTRING_API ulogstream::ulogstream(const log4cxx::LoggerPtr& logger, const log4cxx::LevelPtr& level) : logstream_base(logger, level), stream(0) { } ulogstream::~ulogstream() { delete stream; } ulogstream& ulogstream::operator<<(logstream_base& (*manip)(logstream_base&)) { (*manip)(*this); return *this; } ulogstream& ulogstream::operator<<(const LevelPtr& level) { setLevel(level); return *this; } ulogstream& ulogstream::operator<<(const log4cxx::spi::LocationInfo& newlocation) { setLocation(newlocation); return *this; } ulogstream& ulogstream::operator>>(const log4cxx::spi::LocationInfo& newlocation) { setLocation(newlocation); return *this; } ulogstream& ulogstream::operator<<(std::ios_base& (*manip)(std::ios_base&)) { logstream_base::insert(manip); return *this; } ulogstream::operator std::basic_ostream&() { if (stream == 0) { stream = new std::basic_stringstream(); refresh_stream_state(); } return *stream; } void ulogstream::log(LoggerPtr& logger, const LevelPtr& level, const log4cxx::spi::LocationInfo& location) { if (stream != 0) { std::basic_string msg = stream->str(); if (!msg.empty() && logger->isEnabledFor(level)) { LOG4CXX_DECODE_UNICHAR(lsmsg, msg); logger->forcedLogLS(level, lsmsg, location); } } } void ulogstream::erase() { if (stream != 0) { std::basic_string emptyStr; stream->str(emptyStr); } } void ulogstream::get_stream_state(std::ios_base& base, std::ios_base& mask, int& fill, bool& fillSet) const { if (stream != 0) { std::ios_base::fmtflags flags = stream->flags(); base.flags(flags); mask.flags(flags); int width = stream->width(); base.width(width); mask.width(width); int precision = stream->precision(); base.precision(precision); mask.precision(precision); fill = stream->fill(); fillSet = true; } } void ulogstream::refresh_stream_state() { if (stream != 0) { int fillchar; if(logstream_base::set_stream_state(*stream, fillchar)) { stream->fill(fillchar); } } } #endif apache-log4cxx-0.10.0/src/main/cpp/exception.cpp100644 0 0 26551 10774263341 16565 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; Exception::Exception(const LogString& msg1) { std::string m; Transcoder::encode(msg1, m); size_t len = m.size(); if (len > MSG_SIZE) { len = MSG_SIZE; } #if defined(__STDC_LIB_EXT1__) || defined(__STDC_SECURE_LIB__) memcpy_s(msg, sizeof msg, m.data(), len); #else memcpy(msg, m.data(), len); #endif msg[len] = 0; } Exception::Exception(const char* m) { #if defined(__STDC_LIB_EXT1__) || defined(__STDC_SECURE_LIB__) strncpy_s(msg, sizeof msg, m, MSG_SIZE); #else strncpy(msg, m, MSG_SIZE); #endif msg[MSG_SIZE] = 0; } Exception::Exception(const Exception& src) : std::exception() { #if defined(__STDC_LIB_EXT1__) || defined(__STDC_SECURE_LIB__) strcpy_s(msg, sizeof msg, src.msg); #else strcpy(msg, src.msg); #endif } Exception& Exception::operator=(const Exception& src) { #if defined(__STDC_LIB_EXT1__) || defined(__STDC_SECURE_LIB__) strcpy_s(msg, sizeof msg, src.msg); #else strcpy(msg, src.msg); #endif return *this; } const char* Exception::what() const throw() { return msg; } RuntimeException::RuntimeException(log4cxx_status_t stat) : Exception(formatMessage(stat)) { } RuntimeException::RuntimeException(const LogString& msg1) : Exception(msg1) { } RuntimeException::RuntimeException(const RuntimeException& src) : Exception(src) { } RuntimeException& RuntimeException::operator=(const RuntimeException& src) { Exception::operator=(src); return *this; } LogString RuntimeException::formatMessage(log4cxx_status_t stat) { LogString s(LOG4CXX_STR("RuntimeException: return code = ")); Pool p; StringHelper::toString(stat, p, s); return s; } NullPointerException::NullPointerException(const LogString& msg1) : RuntimeException(msg1) { } NullPointerException::NullPointerException(const NullPointerException& src) : RuntimeException(src) { } NullPointerException& NullPointerException::operator=(const NullPointerException& src) { RuntimeException::operator=(src); return *this; } IllegalArgumentException::IllegalArgumentException(const LogString& msg1) : RuntimeException(msg1) { } IllegalArgumentException::IllegalArgumentException(const IllegalArgumentException& src) : RuntimeException(src) { } IllegalArgumentException& IllegalArgumentException::operator=(const IllegalArgumentException& src) { RuntimeException::operator=(src); return *this; } IOException::IOException() : Exception(LOG4CXX_STR("IO exception")) { } IOException::IOException(log4cxx_status_t stat) : Exception(formatMessage(stat)) { } IOException::IOException(const LogString& msg1) : Exception(msg1) { } IOException::IOException(const IOException& src) : Exception(src) { } IOException& IOException::operator=(const IOException& src) { Exception::operator=(src); return *this; } LogString IOException::formatMessage(log4cxx_status_t stat) { LogString s(LOG4CXX_STR("IO Exception : status code = ")); Pool p; StringHelper::toString(stat, p, s); return s; } MissingResourceException::MissingResourceException(const LogString& key) : Exception(formatMessage(key)) { } MissingResourceException::MissingResourceException(const MissingResourceException& src) : Exception(src) { } MissingResourceException& MissingResourceException::operator=(const MissingResourceException& src) { Exception::operator=(src); return *this; } LogString MissingResourceException::formatMessage(const LogString& key) { LogString s(LOG4CXX_STR("MissingResourceException: resource key = \"")); s.append(key); s.append(LOG4CXX_STR("\".")); return s; } PoolException::PoolException(log4cxx_status_t stat) : Exception(formatMessage(stat)) { } PoolException::PoolException(const PoolException &src) : Exception(src) { } PoolException& PoolException::operator=(const PoolException& src) { Exception::operator=(src); return *this; } LogString PoolException::formatMessage(log4cxx_status_t) { return LOG4CXX_STR("Pool exception"); } TranscoderException::TranscoderException(log4cxx_status_t stat) : Exception(formatMessage(stat)) { } TranscoderException::TranscoderException(const TranscoderException &src) : Exception(src) { } TranscoderException& TranscoderException::operator=(const TranscoderException& src) { Exception::operator=(src); return *this; } LogString TranscoderException::formatMessage(log4cxx_status_t) { return LOG4CXX_STR("Transcoder exception"); } MutexException::MutexException(log4cxx_status_t stat) : Exception(formatMessage(stat)) { } MutexException::MutexException(const MutexException &src) : Exception(src) { } MutexException& MutexException::operator=(const MutexException& src) { Exception::operator=(src); return *this; } LogString MutexException::formatMessage(log4cxx_status_t stat) { LogString s(LOG4CXX_STR("Mutex exception: stat = ")); Pool p; StringHelper::toString(stat, p, s); return s; } InterruptedException::InterruptedException() : Exception(LOG4CXX_STR("Thread was interrupted")) { } InterruptedException::InterruptedException(log4cxx_status_t stat) : Exception(formatMessage(stat)) { } InterruptedException::InterruptedException(const InterruptedException &src) : Exception(src) { } InterruptedException& InterruptedException::operator=(const InterruptedException& src) { Exception::operator=(src); return *this; } LogString InterruptedException::formatMessage(log4cxx_status_t stat) { LogString s(LOG4CXX_STR("InterruptedException: stat = ")); Pool p; StringHelper::toString(stat, p, s); return s; } ThreadException::ThreadException(log4cxx_status_t stat) : Exception(formatMessage(stat)) { } ThreadException::ThreadException(const LogString& msg) : Exception(msg) { } ThreadException::ThreadException(const ThreadException &src) : Exception(src) { } ThreadException& ThreadException::operator=(const ThreadException& src) { Exception::operator=(src); return *this; } LogString ThreadException::formatMessage(log4cxx_status_t stat) { LogString s(LOG4CXX_STR("Thread exception: stat = ")); Pool p; StringHelper::toString(stat, p, s); return s; } IllegalMonitorStateException::IllegalMonitorStateException(const LogString& msg1) : Exception(msg1) { } IllegalMonitorStateException::IllegalMonitorStateException(const IllegalMonitorStateException& src) : Exception(src) { } IllegalMonitorStateException& IllegalMonitorStateException::operator=(const IllegalMonitorStateException& src) { Exception::operator=(src); return *this; } InstantiationException::InstantiationException(const LogString& msg1) : Exception(msg1) { } InstantiationException::InstantiationException(const InstantiationException& src) : Exception(src) { } InstantiationException& InstantiationException::operator=(const InstantiationException& src) { Exception::operator=(src); return *this; } ClassNotFoundException::ClassNotFoundException(const LogString& className) : Exception(formatMessage(className)) { } ClassNotFoundException::ClassNotFoundException(const ClassNotFoundException& src) : Exception(src) { } ClassNotFoundException& ClassNotFoundException::operator=(const ClassNotFoundException& src) { Exception::operator=(src); return *this; } LogString ClassNotFoundException::formatMessage(const LogString& className) { LogString s(LOG4CXX_STR("Class not found: ")); s.append(className); return s; } NoSuchElementException::NoSuchElementException() : Exception(LOG4CXX_STR("No such element")) { } NoSuchElementException::NoSuchElementException(const NoSuchElementException& src) : Exception(src) { } NoSuchElementException& NoSuchElementException::operator=(const NoSuchElementException& src) { Exception::operator=(src); return *this; } IllegalStateException::IllegalStateException() : Exception(LOG4CXX_STR("Illegal state")) { } IllegalStateException::IllegalStateException(const IllegalStateException& src) : Exception(src) { } IllegalStateException& IllegalStateException::operator=(const IllegalStateException& src) { Exception::operator=(src); return *this; } SocketException::SocketException(const LogString& msg) : IOException(msg) { } SocketException::SocketException(log4cxx_status_t status) : IOException(status) { } SocketException::SocketException(const SocketException& src) : IOException(src) { } SocketException& SocketException::operator=(const SocketException& src) { IOException::operator=(src); return *this; } ConnectException::ConnectException(log4cxx_status_t status) : SocketException(status) { } ConnectException::ConnectException(const ConnectException& src) : SocketException(src) { } ConnectException& ConnectException::operator=(const ConnectException& src) { SocketException::operator=(src); return *this; } ClosedChannelException::ClosedChannelException() : SocketException(LOG4CXX_STR("Attempt to write to closed socket")) { } ClosedChannelException::ClosedChannelException(const ClosedChannelException& src) : SocketException(src) { } ClosedChannelException& ClosedChannelException::operator=(const ClosedChannelException& src) { SocketException::operator=(src); return *this; } BindException::BindException(log4cxx_status_t status) : SocketException(status) { } BindException::BindException(const BindException& src) : SocketException(src) { } BindException& BindException::operator=(const BindException& src) { SocketException::operator=(src); return *this; } InterruptedIOException::InterruptedIOException(const LogString& msg) : IOException(msg) { } InterruptedIOException::InterruptedIOException(const InterruptedIOException& src) : IOException(src) { } InterruptedIOException& InterruptedIOException::operator=(const InterruptedIOException& src) { IOException::operator=(src); return *this; } SocketTimeoutException::SocketTimeoutException() : InterruptedIOException(LOG4CXX_STR("SocketTimeoutException")) { } SocketTimeoutException::SocketTimeoutException(const SocketTimeoutException& src) : InterruptedIOException(src) { } SocketTimeoutException& SocketTimeoutException::operator=(const SocketTimeoutException& src) { InterruptedIOException::operator=(src); return *this; } apache-log4cxx-0.10.0/src/main/cpp/system.cpp100644 0 0 6013 10774263341 16062 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; LogString System::getProperty(const LogString& lkey) { if (lkey.empty()) { throw IllegalArgumentException(LOG4CXX_STR("key is empty")); } LogString rv; if (lkey == LOG4CXX_STR("java.io.tmpdir")) { Pool p; const char* dir = NULL; apr_status_t stat = apr_temp_dir_get(&dir, p.getAPRPool()); if (stat == APR_SUCCESS) { Transcoder::decode(dir, rv); } return rv; } if (lkey == LOG4CXX_STR("user.dir")) { Pool p; char* dir = NULL; apr_status_t stat = apr_filepath_get(&dir, APR_FILEPATH_NATIVE, p.getAPRPool()); if (stat == APR_SUCCESS) { Transcoder::decode(dir, rv); } return rv; } #if APR_HAS_USER if (lkey == LOG4CXX_STR("user.home") || lkey == LOG4CXX_STR("user.name")) { Pool pool; apr_uid_t userid; apr_gid_t groupid; apr_pool_t* p = pool.getAPRPool(); apr_status_t stat = apr_uid_current(&userid, &groupid, p); if (stat == APR_SUCCESS) { char* username = NULL; stat = apr_uid_name_get(&username, userid, p); if (stat == APR_SUCCESS) { if (lkey == LOG4CXX_STR("user.name")) { Transcoder::decode(username, rv); } else { char* dirname = NULL; stat = apr_uid_homepath_get(&dirname, username, p); if (stat == APR_SUCCESS) { Transcoder::decode(dirname, rv); } } } } return rv; } #endif LOG4CXX_ENCODE_CHAR(key, lkey); Pool p; char* value = NULL; apr_status_t stat = apr_env_get(&value, key.c_str(), p.getAPRPool()); if (stat == APR_SUCCESS) { Transcoder::decode((const char*) value, rv); } return rv; } apache-log4cxx-0.10.0/src/main/cpp/lineseparatorpatternconverter.cpp100644 0 0 3630 10774263341 22736 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include using namespace log4cxx; using namespace log4cxx::pattern; using namespace log4cxx::spi; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(LineSeparatorPatternConverter) LineSeparatorPatternConverter::LineSeparatorPatternConverter() : LoggingEventPatternConverter(LOG4CXX_STR("Line Sep"), LOG4CXX_STR("lineSep")) { } PatternConverterPtr LineSeparatorPatternConverter::newInstance( const std::vector& /* options */) { static PatternConverterPtr instance(new LineSeparatorPatternConverter()); return instance; } void LineSeparatorPatternConverter::format( const LoggingEventPtr& /* event */, LogString& toAppendTo, Pool& /* p */) const { toAppendTo.append(LOG4CXX_EOL); } void LineSeparatorPatternConverter::format( const ObjectPtr& /* event */, LogString& toAppendTo, Pool& /* p */) const { toAppendTo.append(LOG4CXX_EOL); } apache-log4cxx-0.10.0/src/main/cpp/classregistration.cpp100644 0 0 2075 10774263341 20302 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; ClassRegistration::ClassRegistration(ClassAccessor accessor) { Class::registerClass((*accessor)()); } apache-log4cxx-0.10.0/src/main/cpp/filewatchdog.cpp100644 0 0 5050 10774263341 17176 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #define __STDC_CONSTANT_MACROS #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; long FileWatchdog::DEFAULT_DELAY = 60000; #if APR_HAS_THREADS FileWatchdog::FileWatchdog(const File& file1) : file(file1), delay(DEFAULT_DELAY), lastModif(0), warnedAlready(false), interrupted(0), thread() { } FileWatchdog::~FileWatchdog() { apr_atomic_set32(&interrupted, 0xFFFF); thread.join(); } void FileWatchdog::checkAndConfigure() { Pool pool1; if (!file.exists(pool1)) { if(!warnedAlready) { LogLog::debug(((LogString) LOG4CXX_STR("[")) + file.getPath() + LOG4CXX_STR("] does not exist.")); warnedAlready = true; } } else { apr_time_t thisMod = file.lastModified(pool1); if (thisMod > lastModif) { lastModif = thisMod; doOnChange(); warnedAlready = false; } } } void* APR_THREAD_FUNC FileWatchdog::run(apr_thread_t* /* thread */, void* data) { FileWatchdog* pThis = (FileWatchdog*) data; unsigned int interrupted = apr_atomic_read32(&pThis->interrupted); while(!interrupted) { apr_sleep(APR_INT64_C(1000) * pThis->delay); interrupted = apr_atomic_read32(&pThis->interrupted); if (!interrupted) { pThis->checkAndConfigure(); interrupted = apr_atomic_read32(&pThis->interrupted); } } return NULL; } void FileWatchdog::start() { checkAndConfigure(); thread.run(run, this); } #endif apache-log4cxx-0.10.0/src/main/cpp/nameabbreviator.cpp100644 0 0 21243 10774263341 17721 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::pattern; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(NameAbbreviator) NameAbbreviator::NameAbbreviator() { } NameAbbreviator::~NameAbbreviator() { } namespace log4cxx { namespace pattern { /** * Abbreviator that simply appends full name to buffer. */ class NOPAbbreviator : public NameAbbreviator { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(NOPAbbreviator) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(NOPAbbreviator) LOG4CXX_CAST_ENTRY_CHAIN(NameAbbreviator) END_LOG4CXX_CAST_MAP() /** * Constructor. */ NOPAbbreviator() { } /** * {@inheritDoc} */ void abbreviate(LogString::size_type /* nameStart */, LogString& /* buf */) const { } }; /** * Abbreviator that drops starting path elements. */ class MaxElementAbbreviator : public NameAbbreviator { /** * Maximum number of path elements to output. */ const int count; public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(MaxElementAbbreviator) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(MaxElementAbbreviator) LOG4CXX_CAST_ENTRY_CHAIN(NameAbbreviator) END_LOG4CXX_CAST_MAP() /** * Create new instance. * @param count maximum number of path elements to output. */ MaxElementAbbreviator(const int count1) : count(count1) { } /** * Abbreviate name. * @param buf buffer to append abbreviation. * @param nameStart start of name to abbreviate. */ void abbreviate(LogString::size_type nameStart, LogString& buf) const { // We substract 1 from 'len' when assigning to 'end' to avoid out of // bounds exception in return r.substring(end+1, len). This can happen if // precision is 1 and the logger name ends with a dot. LogString::size_type end = buf.length() - 1; for (LogString::size_type i = count; i > 0; i--) { end = buf.rfind(0x2E /* '.' */, end - 1); if ((end == LogString::npos) || (end < nameStart)) { return; } } buf.erase(buf.begin() + nameStart, buf.begin() + (end + 1)); } }; /** * Fragment of an pattern abbreviator. * */ class PatternAbbreviatorFragment { /** * Count of initial characters of element to output. */ LogString::size_type charCount; /** * Character used to represent dropped characters. * '\0' indicates no representation of dropped characters. */ logchar ellipsis; public: /** * Creates a PatternAbbreviatorFragment. * @param charCount number of initial characters to preserve. * @param ellipsis character to represent elimination of characters, * '\0' if no ellipsis is desired. */ PatternAbbreviatorFragment( const int charCount1, const logchar ellipsis1) : charCount(charCount1), ellipsis(ellipsis1) { } PatternAbbreviatorFragment() : charCount(0), ellipsis(0) { } PatternAbbreviatorFragment(const PatternAbbreviatorFragment& src) : charCount(src.charCount), ellipsis(src.ellipsis) { } PatternAbbreviatorFragment& operator=(const PatternAbbreviatorFragment& src) { charCount = src.charCount; ellipsis = src.ellipsis; return *this; } /** * Abbreviate element of name. * @param buf buffer to receive element. * @param startPos starting index of name element. * @return starting index of next element. */ LogString::size_type abbreviate(LogString& buf, LogString::size_type startPos) const { LogString::size_type nextDot = buf.find(0x2E /* '.' */, startPos); if (nextDot != LogString::npos) { if ((nextDot - startPos) > charCount) { buf.erase(buf.begin() + (startPos + charCount), buf.begin() + nextDot); nextDot = startPos + charCount; if (ellipsis != 0x00) { buf.insert(nextDot, 1, ellipsis); nextDot++; } } nextDot++; } return nextDot; } }; /** * Pattern abbreviator. * * */ class PatternAbbreviator : public NameAbbreviator { /** * Element abbreviation patterns. */ std::vector fragments; public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(PatternAbbreviator) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(PatternAbbreviator) LOG4CXX_CAST_ENTRY_CHAIN(NameAbbreviator) END_LOG4CXX_CAST_MAP() /** * Create PatternAbbreviator. * * @param fragments element abbreviation patterns. */ PatternAbbreviator(const std::vector& fragments1) : fragments(fragments1) { if (fragments1.size() == 0) { throw IllegalArgumentException(LOG4CXX_STR("fragments parameter must contain at least one element")); } } /** * Abbreviate name. * @param buf buffer that abbreviated name is appended. * @param nameStart start of name. */ void abbreviate(LogString::size_type nameStart, LogString& buf) const { // // all non-terminal patterns are executed once // LogString::size_type pos = nameStart; for (LogString::size_type i = 0; (i < (fragments.size() - 1)) && (pos < buf.length()); i++) { pos = fragments[i].abbreviate(buf, pos); } // // last pattern in executed repeatedly // PatternAbbreviatorFragment terminalFragment = fragments[fragments.size() - 1]; while (pos < buf.length()) { pos = terminalFragment.abbreviate(buf, pos); } } }; } } IMPLEMENT_LOG4CXX_OBJECT(NOPAbbreviator) IMPLEMENT_LOG4CXX_OBJECT(MaxElementAbbreviator) IMPLEMENT_LOG4CXX_OBJECT(PatternAbbreviator) NameAbbreviatorPtr NameAbbreviator::getAbbreviator(const LogString& pattern) { if (pattern.length() > 0) { // if pattern is just spaces and numbers then // use MaxElementAbbreviator LogString trimmed(StringHelper::trim(pattern)); if (trimmed.length() == 0) { return getDefaultAbbreviator(); } LogString::size_type i = 0; while ( (i < trimmed.length()) && (trimmed[i] >= 0x30 /* '0' */) && (trimmed[i] <= 0x39 /* '9' */)) { i++; } // // if all blanks and digits // if (i == trimmed.length()) { return new MaxElementAbbreviator(StringHelper::toInt(trimmed)); } std::vector fragments; logchar ellipsis; int charCount; LogString::size_type pos = 0; while (pos < trimmed.length()) { LogString::size_type ellipsisPos = pos; if (trimmed[pos] == 0x2A /* '*' */) { charCount = INT_MAX; ellipsisPos++; } else { if ((trimmed[pos] >= 0x30 /* '0' */) && (trimmed[pos] <= 0x39 /* '9' */)) { charCount = trimmed[pos] - 0x30 /* '0' */; ellipsisPos++; } else { charCount = 0; } } ellipsis = 0; if (ellipsisPos < trimmed.length()) { ellipsis = trimmed[ellipsisPos]; if (ellipsis == 0x2E /* '.' */) { ellipsis = 0; } } fragments.push_back(PatternAbbreviatorFragment(charCount, ellipsis)); pos = trimmed.find(0x2E /* '.' */, pos); if (pos == LogString::npos) { break; } pos++; } NameAbbreviatorPtr abbrev(new PatternAbbreviator(fragments)); return abbrev; } // // no matching abbreviation, return defaultAbbreviator // return getDefaultAbbreviator(); } /** * Gets default abbreviator. * * @return default abbreviator. */ NameAbbreviatorPtr NameAbbreviator::getDefaultAbbreviator() { static NameAbbreviatorPtr def(new NOPAbbreviator()); return def; } apache-log4cxx-0.10.0/src/main/cpp/timebasedrollingpolicy.cpp100644 0 0 12663 10774263341 21332 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include #include #include #include #include #ifndef INT64_C #define INT64_C(x) x ## LL #endif #include using namespace log4cxx; using namespace log4cxx::rolling; using namespace log4cxx::helpers; using namespace log4cxx::pattern; IMPLEMENT_LOG4CXX_OBJECT(TimeBasedRollingPolicy) TimeBasedRollingPolicy::TimeBasedRollingPolicy() { } void TimeBasedRollingPolicy::addRef() const { TriggeringPolicy::addRef(); } void TimeBasedRollingPolicy::releaseRef() const { TriggeringPolicy::releaseRef(); } void TimeBasedRollingPolicy::activateOptions(log4cxx::helpers::Pool& pool) { // find out period from the filename pattern if (getFileNamePattern().length() > 0) { parseFileNamePattern(); } else { LogLog::warn( LOG4CXX_STR("The FileNamePattern option must be set before using TimeBasedRollingPolicy. ")); throw IllegalStateException(); } PatternConverterPtr dtc(getDatePatternConverter()); if (dtc == NULL) { throw IllegalStateException(); } apr_time_t n = apr_time_now(); LogString buf; ObjectPtr obj(new Date(n)); formatFileName(obj, buf, pool); lastFileName = buf; suffixLength = 0; if (lastFileName.length() >= 3) { if (lastFileName.compare(lastFileName.length() - 3, 3, LOG4CXX_STR(".gz")) == 0) { suffixLength = 3; } else if (lastFileName.length() >= 4 && lastFileName.compare(lastFileName.length() - 4, 4, LOG4CXX_STR(".zip")) == 0) { suffixLength = 4; } } } #define RULES_PUT(spec, cls) \ specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), (PatternConstructor) cls ::newInstance)) log4cxx::pattern::PatternMap TimeBasedRollingPolicy::getFormatSpecifiers() const { PatternMap specs; RULES_PUT("d", FileDatePatternConverter); RULES_PUT("date", FileDatePatternConverter); return specs; } /** * {@inheritDoc} */ RolloverDescriptionPtr TimeBasedRollingPolicy::initialize( const LogString& currentActiveFile, const bool append, Pool& pool) { apr_time_t n = apr_time_now(); nextCheck = ((n / APR_USEC_PER_SEC) + 1) * APR_USEC_PER_SEC; LogString buf; ObjectPtr obj(new Date(n)); formatFileName(obj, buf, pool); lastFileName = buf; ActionPtr noAction; if (currentActiveFile.length() > 0) { return new RolloverDescription( currentActiveFile, append, noAction, noAction); } else { return new RolloverDescription( lastFileName.substr(0, lastFileName.length() - suffixLength), append, noAction, noAction); } } RolloverDescriptionPtr TimeBasedRollingPolicy::rollover( const LogString& currentActiveFile, Pool& pool) { apr_time_t n = apr_time_now(); nextCheck = ((n / APR_USEC_PER_SEC) + 1) * APR_USEC_PER_SEC; LogString buf; ObjectPtr obj(new Date(n)); formatFileName(obj, buf, pool); LogString newFileName(buf); // // if file names haven't changed, no rollover // if (newFileName == lastFileName) { RolloverDescriptionPtr desc; return desc; } ActionPtr renameAction; ActionPtr compressAction; LogString lastBaseName( lastFileName.substr(0, lastFileName.length() - suffixLength)); LogString nextActiveFile( newFileName.substr(0, newFileName.length() - suffixLength)); // // if currentActiveFile is not lastBaseName then // active file name is not following file pattern // and requires a rename plus maintaining the same name if (currentActiveFile != lastBaseName) { renameAction = new FileRenameAction( File().setPath(currentActiveFile), File().setPath(lastBaseName), true); nextActiveFile = currentActiveFile; } if (suffixLength == 3) { compressAction = new GZCompressAction( File().setPath(lastBaseName), File().setPath(lastFileName), true); } if (suffixLength == 4) { compressAction = new ZipCompressAction( File().setPath(lastBaseName), File().setPath(lastFileName), true); } lastFileName = newFileName; return new RolloverDescription( nextActiveFile, false, renameAction, compressAction); } bool TimeBasedRollingPolicy::isTriggeringEvent( Appender* /* appender */, const log4cxx::spi::LoggingEventPtr& /* event */, const LogString& /* filename */, size_t /* fileLength */) { return apr_time_now() > nextCheck; } apache-log4cxx-0.10.0/src/main/cpp/transcoder.cpp100644 0 0 35413 10774263341 16730 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include #include #include #include #include #if !defined(LOG4CXX) #define LOG4CXX 1 #endif #include #if LOG4CXX_LOGCHAR_IS_UNICHAR || LOG4CXX_CFSTRING_API || LOG4CXX_UNICHAR_API #include #endif using namespace log4cxx; using namespace log4cxx::helpers; void Transcoder::decodeUTF8(const std::string& src, LogString& dst) { std::string::const_iterator iter = src.begin(); while(iter != src.end()) { unsigned int sv = decode(src, iter); if(sv != 0xFFFF) { encode(sv, dst); } else { dst.append(1, LOSSCHAR); iter++; } } } void Transcoder::encodeUTF8(const LogString& src, std::string& dst) { #if LOG4CXX_LOGCHAR_IS_UTF8 dst.append(src); #else LogString::const_iterator iter = src.begin(); while(iter != src.end()) { unsigned int sv = decode(src, iter); if(sv != 0xFFFF) { encode(sv, dst); } else { dst.append(1, LOSSCHAR); iter++; } } #endif } char* Transcoder::encodeUTF8(const LogString& src, Pool& p) { #if LOG4CXX_LOGCHAR_IS_UTF8 return p.pstrdup(src); #else std::string tmp; encodeUTF8(src, tmp); return p.pstrdup(tmp); #endif } void Transcoder::encodeUTF8(unsigned int sv, ByteBuffer& dst) { size_t bytes = encodeUTF8(sv, dst.current()); dst.position(dst.position() + bytes); } size_t Transcoder::encodeUTF8(unsigned int ch, char* dst) { if (ch < 0x80) { dst[0] = (char) ch; return 1; } else if (ch < 0x800) { dst[0] = (char) (0xC0 + (ch >> 6)); dst[1] = (char) (0x80 + (ch & 0x3F)); return 2; } else if (ch < 0x10000) { dst[0] = (char) (0xE0 + (ch >> 12)); dst[1] = (char) (0x80 + ((ch >> 6) & 0x3F)); dst[2] = (char) (0x80 + (ch & 0x3F)); return 3; } else if (ch <= 0x10FFFF) { dst[0] = (char) (0xF0 + (ch >> 18)); dst[1] = (char) (0x80 + ((ch >> 12) & 0x3F)); dst[2] = (char) (0x80 + ((ch >> 6) & 0x3F)); dst[3] = (char) (0x80 + (ch & 0x3F)); return 4; } else { // // output UTF-8 encoding of 0xFFFF // dst[0] = (char) 0xEF; dst[1] = (char) 0xBF; dst[2] = (char) 0xBF; return 3; } } void Transcoder::encodeUTF16BE(unsigned int sv, ByteBuffer& dst) { size_t bytes = encodeUTF16BE(sv, dst.current()); dst.position(dst.position() + bytes); } size_t Transcoder::encodeUTF16BE(unsigned int ch, char* dst) { if (ch <= 0xFFFF) { dst[0] = (char) (ch >> 8); dst[1] = (char) (ch & 0xFF); return 2; } if (ch <= 0x10FFFF) { unsigned char w = (unsigned char) ((ch >> 16) - 1); dst[0] = (char) (0xD8 + (w >> 2)); dst[1] = (char) (((w & 0x03) << 6) + ((ch >> 10) & 0x3F)); dst[2] = (char) (0xDC + ((ch & 0x30) >> 4)); dst[3] = (char) (ch & 0xFF); return 4; } dst[0] = dst[1] = (char) 0xFF; return 2; } void Transcoder::encodeUTF16LE(unsigned int sv, ByteBuffer& dst) { size_t bytes = encodeUTF16LE(sv, dst.current()); dst.position(dst.position() + bytes); } size_t Transcoder::encodeUTF16LE(unsigned int ch, char* dst) { if (ch <= 0xFFFF) { dst[1] = (char) (ch >> 8); dst[0] = (char) (ch & 0xFF); return 2; } if (ch <= 0x10FFFF) { unsigned char w = (unsigned char) ((ch >> 16) - 1); dst[1] = (char) (0xD8 + (w >> 2)); dst[0] = (char) (((w & 0x03) << 6) + ((ch >> 10) & 0x3F)); dst[3] = (char) (0xDC + ((ch & 0x30) >> 4)); dst[2] = (char) (ch & 0xFF); return 4; } dst[0] = dst[1] = (char) 0xFF; return 2; } unsigned int Transcoder::decode(const std::string& src, std::string::const_iterator& iter) { std::string::const_iterator start(iter); unsigned char ch1 = *(iter++); if (ch1 <= 0x7F) { return ch1; } // // should not have continuation character here // if ((ch1 & 0xC0) != 0x80 && iter != src.end()) { unsigned char ch2 = *(iter++); // // should be continuation if ((ch2 & 0xC0) != 0x80) { iter = start; return 0xFFFF; } if((ch1 & 0xE0) == 0xC0) { if ((ch2 & 0xC0) == 0x80) { unsigned int rv = ((ch1 & 0x1F) << 6) + (ch2 & 0x3F); if (rv >= 0x80) { return rv; } } iter = start; return 0xFFFF; } if (iter != src.end()) { unsigned char ch3 = *(iter++); // // should be continuation // if ((ch3 & 0xC0) != 0x80) { iter = start; return 0xFFFF; } if ((ch1 & 0xF0) == 0xE0) { unsigned rv = ((ch1 & 0x0F) << 12) + ((ch2 & 0x3F) << 6) + (ch3 & 0x3F); if (rv <= 0x800) { iter = start; return 0xFFFF; } return rv; } if (iter != src.end()) { unsigned char ch4 = *(iter++); if ((ch4 & 0xC0) != 0x80) { iter = start; return 0xFFFF; } unsigned int rv = ((ch1 & 0x07) << 18) + ((ch2 & 0x3F) << 12) + ((ch3 & 0x3F) << 6) + (ch4 & 0x3F); if (rv > 0xFFFF) { return rv; } } } } iter = start; return 0xFFFF; } void Transcoder::encode(unsigned int sv, std::string& dst) { char tmp[8]; size_t bytes = encodeUTF8(sv, tmp); dst.append(tmp, bytes); } void Transcoder::decode(const std::string& src, LogString& dst) { #if LOG4CXX_CHARSET_UTF8 && LOG4CXX_LOGCHAR_IS_UTF8 dst.append(src); #else static CharsetDecoderPtr decoder(CharsetDecoder::getDefaultDecoder()); dst.reserve(dst.size() + src.size()); std::string::const_iterator iter = src.begin(); #if !LOG4CXX_CHARSET_EBCDIC for(; iter != src.end() && ((unsigned char) *iter) < 0x80; iter++) { dst.append(1, *iter); } #endif if (iter != src.end()) { size_t offset = iter - src.begin(); ByteBuffer buf(const_cast(src.data() + offset), src.size() - offset); while(buf.remaining() > 0) { log4cxx_status_t stat = decoder->decode(buf, dst); if(CharsetDecoder::isError(stat)) { dst.append(1, LOSSCHAR); buf.position(buf.position() + 1); } } decoder->decode(buf, dst); } #endif } char* Transcoder::encode(const LogString& src, Pool& p) { #if LOG4CXX_CHARSET_UTF8 && LOG4CXX_LOGCHAR_IS_UTF8 return p.pstrdup(src); #else std::string tmp; encode(src, tmp); return p.pstrdup(tmp); #endif } void Transcoder::encode(const LogString& src, std::string& dst) { #if LOG4CXX_CHARSET_UTF8 && LOG4CXX_LOGCHAR_IS_UTF8 dst.append(src); #else static CharsetEncoderPtr encoder(CharsetEncoder::getDefaultEncoder()); dst.reserve(dst.size() + src.size()); LogString::const_iterator iter = src.begin(); #if !LOG4CXX_CHARSET_EBCDIC for(; iter != src.end() && ((unsigned int) *iter) < 0x80; iter++) { dst.append(1, *iter); } #endif if (iter != src.end()) { char buf[BUFSIZE]; ByteBuffer out(buf, BUFSIZE); while(iter != src.end()) { log4cxx_status_t stat = encoder->encode(src, iter, out); out.flip(); dst.append(out.data(), out.limit()); out.clear(); if (CharsetEncoder::isError(stat)) { dst.append(1, LOSSCHAR); iter++; } } encoder->encode(src, iter, out); } #endif } template static unsigned int decodeUTF16(const String& in, Iterator& iter) { unsigned int ch1 = *iter; // // if not surrogate pair // if (ch1 < 0xD800 || ch1 > 0xDFFF) { // // then advance iterator and return wchar_t value // if(ch1 != 0xFFFF) iter++; return ch1; } else if (ch1 < 0xDC00) { // // started with high-surrogate value // if there is an additional wchar_t Iterator iter2 = iter + 1; if (iter2 != in.end()) { unsigned int ch2 = *iter2; // // if it is a matching low surrogate then // advance the iterator and return the scalar value if (ch2 >= 0xDC00 && ch2 <= 0xDFFF) { iter += 2; return (ch1 - 0xD800) * 0x400 + (ch2 - 0xDC00) + 0x10000; } } } // // unrecognized value, do not advance iterator // return 0xFFFF; } template static void encodeUTF16(unsigned int sv, String& dst) { if (sv < 0x10000) { dst.append(1, sv); } else { unsigned char u = (unsigned char) (sv >> 16); unsigned char w = (unsigned char) (u - 1); unsigned short hs = (0xD800 + ((w & 0xF) << 6) + ((sv & 0xFFFF) >> 10)); unsigned short ls = (0xDC00 + (sv && 0x3FF)); dst.append(1, hs); dst.append(1, ls); } } #if LOG4CXX_WCHAR_T_API || LOG4CXX_LOGCHAR_IS_WCHAR_T || defined(WIN32) || defined(_WIN32) void Transcoder::decode(const std::wstring& src, LogString& dst) { #if LOG4CXX_LOGCHAR_IS_WCHAR_T dst.append(src, len); #else std::wstring::const_iterator i = src.begin(); while(i != src.end()) { unsigned int cp = decode(src, i); if (cp != 0xFFFF) { encode(cp, dst); } else { dst.append(1, LOSSCHAR); i++; } } #endif } void Transcoder::encode(const LogString& src, std::wstring& dst) { #if LOG4CXX_LOGCHAR_IS_WCHAR_T dst.append(src); #else for(LogString::const_iterator i = src.begin(); i != src.end();) { unsigned int cp = Transcoder::decode(src, i); encode(cp, dst); } #endif } wchar_t* Transcoder::wencode(const LogString& src, Pool& p) { #if LOG4CXX_LOGCHAR_IS_WCHAR_T std::wstring& tmp = src; #else std::wstring tmp; encode(src, tmp); #endif wchar_t* dst = (wchar_t*) p.palloc((tmp.length() + 1) * sizeof(wchar_t)); dst[tmp.length()] = 0; memcpy(dst, tmp.data(), tmp.length() * sizeof(wchar_t)); return dst; } unsigned int Transcoder::decode(const std::wstring& in, std::wstring::const_iterator& iter) { #if defined(__STDC_ISO_10646__) return *(iter++); #else return decodeUTF16(in, iter); #endif } void Transcoder::encode(unsigned int sv, std::wstring& dst) { #if defined(__STDC_ISO_10646__) dst.append(1, sv); #else if (sizeof(wchar_t) == 4) { dst.append(1, sv); } else { encodeUTF16(sv, dst); } #endif } #endif #if LOG4CXX_UNICHAR_API || LOG4CXX_CFSTRING_API void Transcoder::decode(const std::basic_string& src, LogString& dst) { #if LOG4CXX_LOGCHAR_IS_UNICHAR dst.append(src); #else for(std::basic_string::const_iterator i = src.begin(); i != src.end();) { unsigned int cp = decode(src, i); encode(cp, dst); } #endif } void Transcoder::encode(const LogString& src, std::basic_string& dst) { #if LOG4CXX_LOGCHAR_IS_UNICHAR dst.append(src); #else for(LogString::const_iterator i = src.begin(); i != src.end();) { unsigned int cp = decode(src, i); encode(cp, dst); } #endif } unsigned int Transcoder::decode(const std::basic_string& in, std::basic_string::const_iterator& iter) { return decodeUTF16(in, iter); } void Transcoder::encode(unsigned int sv, std::basic_string& dst) { encodeUTF16(sv, dst); } #endif #if LOG4CXX_CFSTRING_API void Transcoder::decode(const CFStringRef& src, LogString& dst) { const UniChar* chars = CFStringGetCharactersPtr(src); if (chars) { decode(chars, dst); } else { size_t length = CFStringGetLength(src); if (length > 0) { std::vector tmp(length); CFStringGetCharacters(src, CFRangeMake(0, length), &tmp[0]); #if LOG4CXX_LOGCHAR_IS_UNICHAR dst.append(&tmp[0], tmp.size()); #else decode(std::basic_string(&tmp[0], tmp.size()), dst); #endif } } } CFStringRef Transcoder::encode(const LogString& src) { LOG4CXX_ENCODE_UNICHAR(tmp, src); return CFStringCreateWithCharacters(kCFAllocatorDefault, tmp.data(), tmp.size()); } #endif logchar Transcoder::decode(char val) { #if LOG4CXX_CHARSET_EBCDIC LogString dst; Transcoder::decode(std::string(1, val), dst); return dst[0]; #else return val; #endif } LogString Transcoder::decode(const char* val) { #if LOG4CXX_LOGCHAR_IS_UTF8 && !LOG4CXX_CHARSET_EBCDIC return val; #else LogString dst; Transcoder::decode(val, dst); return dst; #endif } std::string Transcoder::encodeCharsetName(const LogString& val) { char asciiTable[] = { ' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6' , '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', ' ' }; std::string out; for(LogString::const_iterator iter = val.begin(); iter != val.end(); iter++) { if (*iter >= 0x30 && *iter < 0x7F) { out.append(1, asciiTable[*iter - 0x30]); } else { out.append(1, LOSSCHAR); } } return out; } apache-log4cxx-0.10.0/src/main/cpp/filerenameaction.cpp100644 0 0 2465 10774263341 20052 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include using namespace log4cxx; using namespace log4cxx::rolling; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(FileRenameAction) FileRenameAction::FileRenameAction(const File& toRename, const File& renameTo, bool renameEmptyFile1) : source(toRename), destination(renameTo), renameEmptyFile(renameEmptyFile1) { } bool FileRenameAction::execute(log4cxx::helpers::Pool& pool1) const { return source.renameTo(destination, pool1); } apache-log4cxx-0.10.0/src/main/cpp/linelocationpatternconverter.cpp100644 0 0 3512 10774263341 22545 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::pattern; using namespace log4cxx::spi; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(LineLocationPatternConverter) LineLocationPatternConverter::LineLocationPatternConverter() : LoggingEventPatternConverter(LOG4CXX_STR("Line"), LOG4CXX_STR("line")) { } PatternConverterPtr LineLocationPatternConverter::newInstance( const std::vector& /* options */) { static PatternConverterPtr instance(new LineLocationPatternConverter()); return instance; } void LineLocationPatternConverter::format( const LoggingEventPtr& event, LogString& toAppendTo, Pool& p) const { StringHelper::toString( event->getLocationInformation().getLineNumber(), p, toAppendTo); } apache-log4cxx-0.10.0/src/main/cpp/fallbackerrorhandler.cpp100644 0 0 7162 10774263341 20713 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::spi; using namespace log4cxx::varia; IMPLEMENT_LOG4CXX_OBJECT(FallbackErrorHandler) FallbackErrorHandler::FallbackErrorHandler() : backup(), primary(), loggers() { } void FallbackErrorHandler::addRef() const { ObjectImpl::addRef(); } void FallbackErrorHandler::releaseRef() const { ObjectImpl::releaseRef(); } void FallbackErrorHandler::setLogger(const LoggerPtr& logger) { LogLog::debug(((LogString) LOG4CXX_STR("FB: Adding logger [")) + logger->getName() + LOG4CXX_STR("].")); loggers.push_back(logger); } void FallbackErrorHandler::error(const LogString& message, const std::exception& e, int errorCode) const { error(message, e, errorCode, 0); } void FallbackErrorHandler::error(const LogString& message, const std::exception& e, int, const spi::LoggingEventPtr&) const { LogLog::debug(((LogString) LOG4CXX_STR("FB: The following error reported: ")) + message, e); LogLog::debug(LOG4CXX_STR("FB: INITIATING FALLBACK PROCEDURE.")); for(size_t i = 0; i < loggers.size(); i++) { LoggerPtr& l = (LoggerPtr&)loggers.at(i); LogLog::debug(((LogString) LOG4CXX_STR("FB: Searching for [")) + primary->getName() + LOG4CXX_STR("] in logger [") + l->getName() + LOG4CXX_STR("].")); LogLog::debug(((LogString) LOG4CXX_STR("FB: Replacing [")) + primary->getName() + LOG4CXX_STR("] by [") + backup->getName() + LOG4CXX_STR("] in logger [") + l->getName() + LOG4CXX_STR("].")); l->removeAppender(primary); LogLog::debug(((LogString) LOG4CXX_STR("FB: Adding appender [")) + backup->getName() + LOG4CXX_STR("] to logger ") + l->getName()); l->addAppender(backup); } } void FallbackErrorHandler::setAppender(const AppenderPtr& primary1) { LogLog::debug(((LogString) LOG4CXX_STR("FB: Setting primary appender to [")) + primary1->getName() + LOG4CXX_STR("].")); this->primary = primary1; } void FallbackErrorHandler::setBackupAppender(const AppenderPtr& backup1) { LogLog::debug(((LogString) LOG4CXX_STR("FB: Setting backup appender to [")) + backup1->getName() + LOG4CXX_STR("].")); this->backup = backup1; } void FallbackErrorHandler::activateOptions(Pool&) { } void FallbackErrorHandler::setOption(const LogString&, const LogString&) { } apache-log4cxx-0.10.0/src/main/cpp/telnetappender.cpp100644 0 0 20147 10774263341 17574 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::net; #if APR_HAS_THREADS IMPLEMENT_LOG4CXX_OBJECT(TelnetAppender) /** The default telnet server port */ const int TelnetAppender::DEFAULT_PORT = 23; /** The maximum number of concurrent connections */ const int TelnetAppender::MAX_CONNECTIONS = 20; TelnetAppender::TelnetAppender() : port(DEFAULT_PORT), connections(MAX_CONNECTIONS), encoding(LOG4CXX_STR("UTF-8")), encoder(CharsetEncoder::getUTF8Encoder()), serverSocket(NULL), sh() { synchronized sync(mutex); activeConnections = 0; } TelnetAppender::~TelnetAppender() { finalize(); delete serverSocket; } void TelnetAppender::activateOptions(Pool& /* p */) { if (serverSocket == NULL) { serverSocket = new ServerSocket(port); serverSocket->setSoTimeout(1000); } sh.run(acceptConnections, this); } void TelnetAppender::setOption(const LogString& option, const LogString& value) { if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("PORT"), LOG4CXX_STR("port"))) { setPort(OptionConverter::toInt(value, DEFAULT_PORT)); } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("ENCODING"), LOG4CXX_STR("encoding"))) { setEncoding(value); } else { AppenderSkeleton::setOption(option, value); } } LogString TelnetAppender::getEncoding() const { synchronized sync(mutex); return encoding; } void TelnetAppender::setEncoding(const LogString& value) { synchronized sync(mutex); encoder = CharsetEncoder::getEncoder(value); encoding = value; } void TelnetAppender::close() { synchronized sync(mutex); if (closed) return; closed = true; SocketPtr nullSocket; for(ConnectionList::iterator iter = connections.begin(); iter != connections.end(); iter++) { if (*iter != 0) { (*iter)->close(); *iter = nullSocket; } } if (serverSocket != NULL) { try { serverSocket->close(); } catch(Exception&) { } } try { sh.join(); } catch(Exception& ex) { } activeConnections = 0; } void TelnetAppender::write(ByteBuffer& buf) { for (ConnectionList::iterator iter = connections.begin(); iter != connections.end(); iter++) { if (*iter != 0) { try { ByteBuffer b(buf.current(), buf.remaining()); (*iter)->write(b); } catch(Exception& ex) { // The client has closed the connection, remove it from our list: *iter = 0; activeConnections--; } } } } void TelnetAppender::writeStatus(const SocketPtr& socket, const LogString& msg, Pool& p) { size_t bytesSize = msg.size() * 2; char* bytes = p.pstralloc(bytesSize); LogString::const_iterator msgIter(msg.begin()); ByteBuffer buf(bytes, bytesSize); while(msgIter != msg.end()) { encoder->encode(msg, msgIter, buf); buf.flip(); socket->write(buf); buf.clear(); } } void TelnetAppender::append(const spi::LoggingEventPtr& event, Pool& p) { size_t count = activeConnections; if (count > 0) { LogString msg; this->layout->format(msg, event, pool); msg.append(LOG4CXX_STR("\r\n")); size_t bytesSize = msg.size() * 2; char* bytes = p.pstralloc(bytesSize); LogString::const_iterator msgIter(msg.begin()); ByteBuffer buf(bytes, bytesSize); synchronized sync(this->mutex); while(msgIter != msg.end()) { log4cxx_status_t stat = encoder->encode(msg, msgIter, buf); buf.flip(); write(buf); buf.clear(); if (CharsetEncoder::isError(stat)) { LogString unrepresented(1, 0x3F /* '?' */); LogString::const_iterator unrepresentedIter(unrepresented.begin()); stat = encoder->encode(unrepresented, unrepresentedIter, buf); buf.flip(); write(buf); buf.clear(); msgIter++; } } } } void* APR_THREAD_FUNC TelnetAppender::acceptConnections(apr_thread_t* /* thread */, void* data) { TelnetAppender* pThis = (TelnetAppender*) data; // main loop; is left when This->closed is != 0 after an accept() while(true) { try { SocketPtr newClient = pThis->serverSocket->accept(); bool done = pThis->closed; if (done) { Pool p; pThis->writeStatus(newClient, LOG4CXX_STR("Log closed.\r\n"), p); newClient->close(); return NULL; } size_t count = pThis->activeConnections; if (count >= pThis->connections.size()) { Pool p; pThis->writeStatus(newClient, LOG4CXX_STR("Too many connections.\r\n"), p); newClient->close(); } else { // // find unoccupied connection // synchronized sync(pThis->mutex); for(ConnectionList::iterator iter = pThis->connections.begin(); iter != pThis->connections.end(); iter++) { if (*iter == NULL) { *iter = newClient; pThis->activeConnections++; break; } } Pool p; LogString oss(LOG4CXX_STR("TelnetAppender v1.0 (")); StringHelper::toString((int) count+1, p, oss); oss += LOG4CXX_STR(" active connections)\r\n\r\n"); pThis->writeStatus(newClient, oss, p); } } catch(InterruptedIOException &e) { if (pThis->closed) { return NULL; } } catch(Exception& e) { if (!pThis->closed) { LogLog::error(LOG4CXX_STR("Encountered error while in SocketHandler loop."), e); } else { return NULL; } } } return NULL; } #endif apache-log4cxx-0.10.0/src/main/cpp/cacheddateformat.cpp100644 0 0 23071 10774263341 20037 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #define __STDC_CONSTANT_MACROS #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::pattern; /** * Supported digit set. If the wrapped DateFormat uses * a different unit set, the millisecond pattern * will not be recognized and duplicate requests * will use the cache. */ const logchar CachedDateFormat::digits[] = { 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0 }; /** * Expected representation of first magic number. */ const logchar CachedDateFormat::magicString1[] = { 0x36, 0x35, 0x34, 0 }; /** * Expected representation of second magic number. */ const logchar CachedDateFormat::magicString2[] = { 0x39, 0x38, 0x37, 0}; /** * Expected representation of 0 milliseconds. */ const logchar CachedDateFormat::zeroString[] = { 0x30, 0x30, 0x30, 0 }; #undef min /** * Creates a new CachedDateFormat object. * @param dateFormat Date format, may not be null. * @param expiration maximum cached range in milliseconds. * If the dateFormat is known to be incompatible with the * caching algorithm, use a value of 0 to totally disable * caching or 1 to only use cache for duplicate requests. */ CachedDateFormat::CachedDateFormat(const DateFormatPtr& dateFormat, int expiration1) : formatter(dateFormat), millisecondStart(0), slotBegin(std::numeric_limits::min()), cache(50, 0x20), expiration(expiration1), previousTime(std::numeric_limits::min()) { if (dateFormat == NULL) { throw IllegalArgumentException(LOG4CXX_STR("dateFormat cannot be null")); } if (expiration1 < 0) { throw IllegalArgumentException(LOG4CXX_STR("expiration must be non-negative")); } } /** * Finds start of millisecond field in formatted time. * @param time long time, must be integral number of seconds * @param formatted String corresponding formatted string * @param formatter DateFormat date format * @return int position in string of first digit of milliseconds, * -1 indicates no millisecond field, -2 indicates unrecognized * field (likely RelativeTimeDateFormat) */ int CachedDateFormat::findMillisecondStart( log4cxx_time_t time, const LogString& formatted, const DateFormatPtr& formatter, Pool& pool) { apr_time_t slotBegin = (time / 1000000) * 1000000; if (slotBegin > time) { slotBegin -= 1000000; } int millis = (int) (time - slotBegin)/1000; int magic = magic1; LogString magicString(magicString1); if (millis == magic1) { magic = magic2; magicString = magicString2; } LogString plusMagic; formatter->format(plusMagic, slotBegin + magic, pool); /** * If the string lengths differ then * we can't use the cache except for duplicate requests. */ if (plusMagic.length() != formatted.length()) { return UNRECOGNIZED_MILLISECONDS; } else { // find first difference between values for (LogString::size_type i = 0; i < formatted.length(); i++) { if (formatted[i] != plusMagic[i]) { // // determine the expected digits for the base time const logchar abc[] = { 0x41, 0x42, 0x43, 0 }; LogString formattedMillis(abc); millisecondFormat(millis, formattedMillis, 0); LogString plusZero; formatter->format(plusZero, slotBegin, pool); // If the next 3 characters match the magic // strings and the remaining fragments are identical // // if (plusZero.length() == formatted.length() && regionMatches(magicString, 0, plusMagic, i, magicString.length()) && regionMatches(formattedMillis, 0, formatted, i, magicString.length()) && regionMatches(zeroString, 0, plusZero, i, 3) && (formatted.length() == i + 3 || plusZero.compare(i + 3, LogString::npos, plusMagic, i+3, LogString::npos) == 0)) { return i; } else { return UNRECOGNIZED_MILLISECONDS; } } } } return NO_MILLISECONDS; } /** * Formats a millisecond count into a date/time string. * * @param now Number of milliseconds after midnight 1 Jan 1970 GMT. * @param sbuf the string buffer to write to */ void CachedDateFormat::format(LogString& buf, log4cxx_time_t now, Pool& p) const { // // If the current requested time is identical to the previously // requested time, then append the cache contents. // if (now == previousTime) { buf.append(cache); return; } // // If millisecond pattern was not unrecognized // (that is if it was found or milliseconds did not appear) // if (millisecondStart != UNRECOGNIZED_MILLISECONDS) { // Check if the cache is still valid. // If the requested time is within the same integral second // as the last request and a shorter expiration was not requested. if (now < slotBegin + expiration && now >= slotBegin && now < slotBegin + 1000000L) { // // if there was a millisecond field then update it // if (millisecondStart >= 0 ) { millisecondFormat((int) ((now - slotBegin)/1000), cache, millisecondStart); } // // update the previously requested time // (the slot begin should be unchanged) previousTime = now; buf.append(cache); return; } } // // could not use previous value. // Call underlying formatter to format date. cache.erase(cache.begin(), cache.end()); formatter->format(cache, now, p); buf.append(cache); previousTime = now; slotBegin = (previousTime / 1000000) * 1000000; if (slotBegin > previousTime) { slotBegin -= 1000000; } // // if the milliseconds field was previous found // then reevaluate in case it moved. // if (millisecondStart >= 0) { millisecondStart = findMillisecondStart(now, cache, formatter, p); } } /** * Formats a count of milliseconds (0-999) into a numeric representation. * @param millis Millisecond coun between 0 and 999. * @buf String buffer, may not be null. * @offset Starting position in buffer, the length of the * buffer must be at least offset + 3. */ void CachedDateFormat::millisecondFormat(int millis, LogString& buf, int offset) { buf[offset] = digits[ millis / 100]; buf[offset + 1] = digits[(millis / 10) % 10]; buf[offset + 2] = digits[millis % 10]; } /** * Set timezone. * * @remarks Setting the timezone using getCalendar().setTimeZone() * will likely cause caching to misbehave. * @param timeZone TimeZone new timezone */ void CachedDateFormat::setTimeZone(const TimeZonePtr& timeZone) { formatter->setTimeZone(timeZone); previousTime = std::numeric_limits::min(); slotBegin = std::numeric_limits::min(); } void CachedDateFormat::numberFormat(LogString& s, int n, Pool& p) const { formatter->numberFormat(s, n, p); } /** * Gets maximum cache validity for the specified SimpleDateTime * conversion pattern. * @param pattern conversion pattern, may not be null. * @returns Duration in microseconds from an integral second * that the cache will return consistent results. */ int CachedDateFormat::getMaximumCacheValidity(const LogString& pattern) { // // If there are more "S" in the pattern than just one "SSS" then // (for example, "HH:mm:ss,SSS SSS"), then set the expiration to // one millisecond which should only perform duplicate request caching. // const logchar S = 0x53; const logchar SSS[] = { 0x53, 0x53, 0x53, 0 }; size_t firstS = pattern.find(S); size_t len = pattern.length(); // // if there are no S's or // three that start with the first S and no fourth S in the string // if (firstS == LogString::npos || (len >= firstS + 3 && pattern.compare(firstS, 3, SSS) == 0 && (len == firstS + 3 || pattern.find(S, firstS + 3) == LogString::npos))) { return 1000000; } return 1000; } /** * Tests if two string regions are equal. * @param target target string. * @param toffset character position in target to start comparison. * @param other other string. * @param ooffset character position in other to start comparison. * @param len length of region. * @return true if regions are equal. */ bool CachedDateFormat::regionMatches( const LogString& target, size_t toffset, const LogString& other, size_t ooffset, size_t len) { return target.compare(toffset, len, other, ooffset, len) == 0; } apache-log4cxx-0.10.0/src/main/cpp/charsetdecoder.cpp100644 0 0 37170 10774263341 17545 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include #include #if !defined(LOG4CXX) #define LOG4CXX 1 #endif #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(CharsetDecoder) namespace log4cxx { namespace helpers { #if APR_HAS_XLATE /** * Converts from an arbitrary encoding to LogString * using apr_xlate. Requires real iconv implementation, * apr-iconv will crash in use. */ class APRCharsetDecoder : public CharsetDecoder { public: /** * Creates a new instance. * @param frompage name of source encoding. */ APRCharsetDecoder(const LogString& frompage) : pool(), mutex(pool) { #if LOG4CXX_LOGCHAR_IS_WCHAR const char* topage = "WCHAR_T"; #endif #if LOG4CXX_LOGCHAR_IS_UTF8 const char* topage = "UTF-8"; #endif #if LOG4CXX_LOGCHAR_IS_UNICHAR const char* topage = "UTF-16"; #endif std::string fpage(Transcoder::encodeCharsetName(frompage)); apr_status_t stat = apr_xlate_open(&convset, topage, fpage.c_str(), pool.getAPRPool()); if (stat != APR_SUCCESS) { throw IllegalArgumentException(frompage); } } /** * Destructor. */ virtual ~APRCharsetDecoder() { } virtual log4cxx_status_t decode(ByteBuffer& in, LogString& out) { enum { BUFSIZE = 256 }; logchar buf[BUFSIZE]; const apr_size_t initial_outbytes_left = BUFSIZE * sizeof(logchar); apr_status_t stat = APR_SUCCESS; if (in.remaining() == 0) { size_t outbytes_left = initial_outbytes_left; { synchronized sync(mutex); stat = apr_xlate_conv_buffer((apr_xlate_t*) convset, NULL, NULL, (char*) buf, &outbytes_left); } out.append(buf, (initial_outbytes_left - outbytes_left)/sizeof(logchar)); } else { while(in.remaining() > 0 && stat == APR_SUCCESS) { size_t inbytes_left = in.remaining(); size_t initial_inbytes_left = inbytes_left; size_t pos = in.position(); apr_size_t outbytes_left = initial_outbytes_left; { synchronized sync(mutex); stat = apr_xlate_conv_buffer((apr_xlate_t*) convset, in.data() + pos, &inbytes_left, (char*) buf, &outbytes_left); } out.append(buf, (initial_outbytes_left - outbytes_left)/sizeof(logchar)); in.position(pos + (initial_inbytes_left - inbytes_left)); } } return stat; } private: APRCharsetDecoder(const APRCharsetDecoder&); APRCharsetDecoder& operator=(const APRCharsetDecoder&); log4cxx::helpers::Pool pool; Mutex mutex; apr_xlate_t *convset; }; #endif #if LOG4CXX_LOGCHAR_IS_WCHAR && LOG4CXX_HAS_MBSRTOWCS /** * Converts from the default multi-byte string to * LogString using mbstowcs. * */ class MbstowcsCharsetDecoder : public CharsetDecoder { public: MbstowcsCharsetDecoder() { } virtual ~MbstowcsCharsetDecoder() { } private: inline log4cxx_status_t append(LogString& out, const wchar_t* buf) { out.append(buf); return APR_SUCCESS; } virtual log4cxx_status_t decode(ByteBuffer& in, LogString& out) { log4cxx_status_t stat = APR_SUCCESS; enum { BUFSIZE = 256 }; wchar_t buf[BUFSIZE]; mbstate_t mbstate; memset(&mbstate, 0, sizeof(mbstate)); while(in.remaining() > 0) { size_t requested = in.remaining(); if (requested > BUFSIZE - 1) { requested = BUFSIZE - 1; } memset(buf, 0, BUFSIZE*sizeof(wchar_t)); const char* src = in.current(); if(*src == 0) { out.append(1, (logchar) 0); in.position(in.position() + 1); } else { size_t converted = mbsrtowcs(buf, &src, requested, &mbstate); if (converted == (size_t) -1) { stat = APR_BADARG; in.position(src - in.data()); break; } else { stat = append(out, buf); in.position(in.position() + converted); } } } return stat; } private: MbstowcsCharsetDecoder(const MbstowcsCharsetDecoder&); MbstowcsCharsetDecoder& operator=(const MbstowcsCharsetDecoder&); }; #endif /** * Decoder used when the external and internal charsets * are the same. * */ class TrivialCharsetDecoder : public CharsetDecoder { public: TrivialCharsetDecoder() { } virtual ~TrivialCharsetDecoder() { } virtual log4cxx_status_t decode(ByteBuffer& in, LogString& out) { size_t remaining = in.remaining(); if( remaining > 0) { const logchar* src = (const logchar*) (in.data() + in.position()); size_t count = remaining / sizeof(logchar); out.append(src, count); in.position(in.position() + remaining); } return APR_SUCCESS; } private: TrivialCharsetDecoder(const TrivialCharsetDecoder&); TrivialCharsetDecoder& operator=(const TrivialCharsetDecoder&); }; #if LOG4CXX_LOGCHAR_IS_UTF8 typedef TrivialCharsetDecoder UTF8CharsetDecoder; #else /** * Converts from UTF-8 to std::wstring * */ class UTF8CharsetDecoder : public CharsetDecoder { public: UTF8CharsetDecoder() { } virtual ~UTF8CharsetDecoder() { } private: virtual log4cxx_status_t decode(ByteBuffer& in, LogString& out) { if (in.remaining() > 0) { std::string tmp(in.current(), in.remaining()); std::string::const_iterator iter = tmp.begin(); while(iter != tmp.end()) { unsigned int sv = Transcoder::decode(tmp, iter); if (sv == 0xFFFF) { size_t offset = iter - tmp.begin(); in.position(in.position() + offset); return APR_BADARG; } else { Transcoder::encode(sv, out); } } in.position(in.limit()); } return APR_SUCCESS; } private: UTF8CharsetDecoder(const UTF8CharsetDecoder&); UTF8CharsetDecoder& operator=(const UTF8CharsetDecoder&); }; #endif /** * Converts from ISO-8859-1 to LogString. * */ class ISOLatinCharsetDecoder : public CharsetDecoder { public: ISOLatinCharsetDecoder() { } virtual ~ISOLatinCharsetDecoder() { } private: virtual log4cxx_status_t decode(ByteBuffer& in, LogString& out) { if (in.remaining() > 0) { const unsigned char* src = (unsigned char*) in.current(); const unsigned char* srcEnd = src + in.remaining(); while(src < srcEnd) { unsigned int sv = *(src++); Transcoder::encode(sv, out); } in.position(in.limit()); } return APR_SUCCESS; } private: ISOLatinCharsetDecoder(const ISOLatinCharsetDecoder&); ISOLatinCharsetDecoder& operator=(const ISOLatinCharsetDecoder&); }; /** * Converts from US-ASCII to LogString. * */ class USASCIICharsetDecoder : public CharsetDecoder { public: USASCIICharsetDecoder() { } virtual ~USASCIICharsetDecoder() { } private: virtual log4cxx_status_t decode(ByteBuffer& in, LogString& out) { log4cxx_status_t stat = APR_SUCCESS; if (in.remaining() > 0) { const unsigned char* src = (unsigned char*) in.current(); const unsigned char* srcEnd = src + in.remaining(); while(src < srcEnd) { unsigned char sv = *src; if (sv < 0x80) { src++; Transcoder::encode(sv, out); } else { stat = APR_BADARG; break; } } in.position(src - (const unsigned char*) in.data()); } return stat; } private: USASCIICharsetDecoder(const USASCIICharsetDecoder&); USASCIICharsetDecoder& operator=(const USASCIICharsetDecoder&); }; /** * Charset decoder that uses an embedded CharsetDecoder consistent * with current locale settings. */ class LocaleCharsetDecoder : public CharsetDecoder { public: LocaleCharsetDecoder() : pool(), mutex(pool), decoder(), encoding() { } virtual ~LocaleCharsetDecoder() { } virtual log4cxx_status_t decode(ByteBuffer& in, LogString& out) { const char* p = in.current(); size_t i = in.position(); #if !LOG4CXX_CHARSET_EBCDIC for (; i < in.limit() && ((unsigned int) *p) < 0x80; i++, p++) { out.append(1, *p); } in.position(i); #endif if (i < in.limit()) { Pool subpool; const char* enc = apr_os_locale_encoding(subpool.getAPRPool()); { synchronized sync(mutex); if (enc == 0) { if (decoder == 0) { encoding = "C"; decoder = new USASCIICharsetDecoder(); } } else if (encoding != enc) { encoding = enc; try { LogString e; Transcoder::decode(encoding, e); decoder = getDecoder(e); } catch (IllegalArgumentException& ex) { decoder = new USASCIICharsetDecoder(); } } } return decoder->decode(in, out); } return APR_SUCCESS; } private: Pool pool; Mutex mutex; CharsetDecoderPtr decoder; std::string encoding; }; } // namespace helpers } //namespace log4cxx CharsetDecoder::CharsetDecoder() { } CharsetDecoder::~CharsetDecoder() { } CharsetDecoder* CharsetDecoder::createDefaultDecoder() { #if LOG4CXX_CHARSET_UTF8 return new UTF8CharsetDecoder(); #elif LOG4CXX_CHARSET_ISO88591 || defined(_WIN32_WCE) return new ISOLatinCharsetDecoder(); #elif LOG4CXX_CHARSET_USASCII return new USASCIICharsetDecoder(); #elif LOG4CXX_LOGCHAR_IS_WCHAR && LOG4CXX_HAS_MBSRTOWCS return new MbstowcsCharsetDecoder(); #else return new LocaleCharsetDecoder(); #endif } CharsetDecoderPtr CharsetDecoder::getDefaultDecoder() { static CharsetDecoderPtr decoder(createDefaultDecoder()); // // if invoked after static variable destruction // (if logging is called in the destructor of a static object) // then create a new decoder. // if (decoder == 0) { return createDefaultDecoder(); } return decoder; } CharsetDecoderPtr CharsetDecoder::getUTF8Decoder() { static CharsetDecoderPtr decoder(new UTF8CharsetDecoder()); // // if invoked after static variable destruction // (if logging is called in the destructor of a static object) // then create a new decoder. // if (decoder == 0) { return new UTF8CharsetDecoder(); } return decoder; } CharsetDecoderPtr CharsetDecoder::getISOLatinDecoder() { return new ISOLatinCharsetDecoder(); } CharsetDecoderPtr CharsetDecoder::getDecoder(const LogString& charset) { if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF-8"), LOG4CXX_STR("utf-8")) || StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF8"), LOG4CXX_STR("utf8"))) { return new UTF8CharsetDecoder(); } else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("C"), LOG4CXX_STR("c")) || charset == LOG4CXX_STR("646") || StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("US-ASCII"), LOG4CXX_STR("us-ascii")) || StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO646-US"), LOG4CXX_STR("iso646-US")) || StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ANSI_X3.4-1968"), LOG4CXX_STR("ansi_x3.4-1968"))) { return new USASCIICharsetDecoder(); } else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO-8859-1"), LOG4CXX_STR("iso-8859-1")) || StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO-LATIN-1"), LOG4CXX_STR("iso-latin-1"))) { return new ISOLatinCharsetDecoder(); } #if APR_HAS_XLATE || !defined(_WIN32) return new APRCharsetDecoder(charset); #else throw IllegalArgumentException(charset); #endif } apache-log4cxx-0.10.0/src/main/cpp/rollingpolicybase.cpp100644 0 0 11001 10774263341 20270 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::rolling; using namespace log4cxx::helpers; using namespace log4cxx::pattern; IMPLEMENT_LOG4CXX_OBJECT(RollingPolicyBase) RollingPolicyBase::RollingPolicyBase() { } RollingPolicyBase::~RollingPolicyBase() { } void RollingPolicyBase::addRef() const { ObjectImpl::addRef(); } void RollingPolicyBase::releaseRef() const { ObjectImpl::releaseRef(); } void RollingPolicyBase::activateOptions(log4cxx::helpers::Pool& /* pool */) { if (fileNamePatternStr.length() > 0) { parseFileNamePattern(); } else { LogString msg(LOG4CXX_STR("The FileNamePattern option must be set before using FixedWindowRollingPolicy.")); LogString ref1(LOG4CXX_STR("See also http://logging.apache.org/log4j/codes.html#tbr_fnp_not_set")); LogLog::warn(msg); LogLog::warn(ref1); throw IllegalStateException(); } } void RollingPolicyBase::setOption(const LogString& option, const LogString& value) { if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("FILENAMEPATTERN"), LOG4CXX_STR("filenamepattern"))) { fileNamePatternStr = value; } } void RollingPolicyBase::setFileNamePattern(const LogString& fnp) { fileNamePatternStr = fnp; } LogString RollingPolicyBase::getFileNamePattern() const { return fileNamePatternStr; } /** * Parse file name pattern. */ void RollingPolicyBase::parseFileNamePattern() { patternConverters.erase(patternConverters.begin(), patternConverters.end()); patternFields.erase(patternFields.begin(), patternFields.end()); PatternParser::parse(fileNamePatternStr, patternConverters, patternFields, getFormatSpecifiers()); } /** * Format file name. * * @param obj object to be evaluted in formatting, may not be null. * @param buf string buffer to which formatted file name is appended, may not be null. */ void RollingPolicyBase::formatFileName( ObjectPtr& obj, LogString& toAppendTo, Pool& pool) const { std::vector::const_iterator formatterIter = patternFields.begin(); for(std::vector::const_iterator converterIter = patternConverters.begin(); converterIter != patternConverters.end(); converterIter++, formatterIter++) { int startField = toAppendTo.length(); (*converterIter)->format(obj, toAppendTo, pool); (*formatterIter)->format(startField, toAppendTo); } } PatternConverterPtr RollingPolicyBase::getIntegerPatternConverter() const { for(std::vector::const_iterator converterIter = patternConverters.begin(); converterIter != patternConverters.end(); converterIter++) { IntegerPatternConverterPtr intPattern(*converterIter); if (intPattern != NULL) { return *converterIter; } } PatternConverterPtr noMatch; return noMatch; } PatternConverterPtr RollingPolicyBase::getDatePatternConverter() const { for(std::vector::const_iterator converterIter = patternConverters.begin(); converterIter != patternConverters.end(); converterIter++) { DatePatternConverterPtr datePattern(*converterIter); if (datePattern != NULL) { return *converterIter; } } PatternConverterPtr noMatch; return noMatch; } apache-log4cxx-0.10.0/src/main/cpp/fulllocationpatternconverter.cpp100644 0 0 4010 10774263341 22552 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::pattern; using namespace log4cxx::spi; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(FullLocationPatternConverter) FullLocationPatternConverter::FullLocationPatternConverter() : LoggingEventPatternConverter(LOG4CXX_STR("Full Location"), LOG4CXX_STR("fullLocation")) { } PatternConverterPtr FullLocationPatternConverter::newInstance( const std::vector& /* options */) { static PatternConverterPtr instance(new FullLocationPatternConverter()); return instance; } void FullLocationPatternConverter::format( const LoggingEventPtr& event, LogString& toAppendTo, Pool& p) const { append(toAppendTo, event->getLocationInformation().getFileName()); toAppendTo.append(1, (logchar) 0x28 /* '(' */); StringHelper::toString( event->getLocationInformation().getLineNumber(), p, toAppendTo); toAppendTo.append(1, (logchar) 0x29 /* ')' */); } apache-log4cxx-0.10.0/src/main/cpp/datepatternconverter.cpp100644 0 0 10506 10774263341 21023 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::pattern; using namespace log4cxx::spi; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(DatePatternConverter) DatePatternConverter::DatePatternConverter( const std::vector& options) : LoggingEventPatternConverter(LOG4CXX_STR("Class Name"), LOG4CXX_STR("class name")), df(getDateFormat(options)) { } DateFormatPtr DatePatternConverter::getDateFormat(const OptionsList& options) { DateFormatPtr df; int maximumCacheValidity = 1000000; if (options.size() == 0) { df = new ISO8601DateFormat(); } else { LogString dateFormatStr(options[0]); if(dateFormatStr.empty() || StringHelper::equalsIgnoreCase(dateFormatStr, LOG4CXX_STR("ISO8601"), LOG4CXX_STR("iso8601"))) { df = new ISO8601DateFormat(); } else if(StringHelper::equalsIgnoreCase(dateFormatStr, LOG4CXX_STR("ABSOLUTE"), LOG4CXX_STR("absolute"))) { df = new AbsoluteTimeDateFormat(); } else if(StringHelper::equalsIgnoreCase(dateFormatStr, LOG4CXX_STR("DATE"), LOG4CXX_STR("date"))) { df = new DateTimeDateFormat(); } else { if (dateFormatStr.find(0x25 /*'%'*/) == std::string::npos) { try { df = new SimpleDateFormat(dateFormatStr); maximumCacheValidity = CachedDateFormat::getMaximumCacheValidity(dateFormatStr); } catch(IllegalArgumentException& e) { df = new ISO8601DateFormat(); LogLog::warn(((LogString) LOG4CXX_STR("Could not instantiate SimpleDateFormat with pattern ")) + dateFormatStr, e); } } else { df = new StrftimeDateFormat(dateFormatStr); } } if (options.size() >= 2) { TimeZonePtr tz(TimeZone::getTimeZone(options[1])); if (tz != NULL) { df->setTimeZone(tz); } } } if (maximumCacheValidity > 0) { df = new CachedDateFormat(df, maximumCacheValidity); } return df; } PatternConverterPtr DatePatternConverter::newInstance( const std::vector& options) { return new DatePatternConverter(options); } void DatePatternConverter::format( const LoggingEventPtr& event, LogString& toAppendTo, Pool& p) const { df->format(toAppendTo, event->getTimeStamp(), p); } /** * {@inheritDoc} */ void DatePatternConverter::format( const ObjectPtr& obj, LogString& toAppendTo, Pool& p) const { DatePtr date(obj); if (date != NULL) { format(date, toAppendTo, p); } else { LoggingEventPtr event(obj); if (event != NULL) { format(event, toAppendTo, p); } } } /** * Append formatted date to string buffer. * @param date date * @param toAppendTo buffer to which formatted date is appended. */ void DatePatternConverter::format( const DatePtr& date, LogString& toAppendTo, Pool& p) const { df->format(toAppendTo, date->getTime(), p); } apache-log4cxx-0.10.0/src/main/cpp/rollingpolicy.cpp100644 0 0 1637 10774263341 17433 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include using namespace log4cxx::rolling; IMPLEMENT_LOG4CXX_OBJECT(RollingPolicy) apache-log4cxx-0.10.0/src/main/cpp/locale.cpp100644 0 0 2666 10774263341 16007 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include using namespace log4cxx; using namespace log4cxx::helpers; Locale::Locale(const LogString& language1) : language(language1) { } Locale::Locale(const LogString& language1, const LogString& country1) : language(language1), country(country1) { } Locale::Locale(const LogString& language1, const LogString& country1, const LogString& variant1) : language(language1), country(country1), variant(variant1) { } const LogString& Locale::getLanguage() const { return language; } const LogString& Locale::getCountry() const { return country; } const LogString& Locale::getVariant() const { return variant; } apache-log4cxx-0.10.0/src/main/cpp/layout.cpp100644 0 0 2451 10774263341 16055 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include using namespace log4cxx; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(Layout) Layout::~Layout() {} void Layout::addRef() const { ObjectImpl::addRef(); } void Layout::releaseRef() const { ObjectImpl::releaseRef(); } LogString Layout::getContentType() const { return LOG4CXX_STR("text/plain"); } void Layout::appendHeader(LogString&, log4cxx::helpers::Pool&) {} void Layout::appendFooter(LogString&, log4cxx::helpers::Pool&) {} apache-log4cxx-0.10.0/src/main/cpp/appenderattachableimpl.cpp100644 0 0 7750 10774263341 21240 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::spi; IMPLEMENT_LOG4CXX_OBJECT(AppenderAttachableImpl) AppenderAttachableImpl::AppenderAttachableImpl(Pool& pool) : appenderList(), mutex(pool) { } void AppenderAttachableImpl::addRef() const { ObjectImpl::addRef(); } void AppenderAttachableImpl::releaseRef() const { ObjectImpl::releaseRef(); } void AppenderAttachableImpl::addAppender(const AppenderPtr& newAppender) { // Null values for newAppender parameter are strictly forbidden. if(newAppender == 0) { return; } AppenderList::iterator it = std::find( appenderList.begin(), appenderList.end(), newAppender); if (it == appenderList.end()) { appenderList.push_back(newAppender); } } int AppenderAttachableImpl::appendLoopOnAppenders( const spi::LoggingEventPtr& event, Pool& p) { for (AppenderList::iterator it = appenderList.begin(); it != appenderList.end(); it++) { (*it)->doAppend(event, p); } return appenderList.size(); } AppenderList AppenderAttachableImpl::getAllAppenders() const { return appenderList; } AppenderPtr AppenderAttachableImpl::getAppender(const LogString& name) const { if (name.empty()) { return 0; } AppenderList::const_iterator it, itEnd = appenderList.end(); AppenderPtr appender; for(it = appenderList.begin(); it != itEnd; it++) { appender = *it; if(name == appender->getName()) { return appender; } } return 0; } bool AppenderAttachableImpl::isAttached(const AppenderPtr& appender) const { if (appender == 0) { return false; } AppenderList::const_iterator it = std::find( appenderList.begin(), appenderList.end(), appender); return it != appenderList.end(); } void AppenderAttachableImpl::removeAllAppenders() { AppenderList::iterator it, itEnd = appenderList.end(); AppenderPtr a; for(it = appenderList.begin(); it != itEnd; it++) { a = *it; a->close(); } appenderList.clear(); } void AppenderAttachableImpl::removeAppender(const AppenderPtr& appender) { if (appender == 0) return; AppenderList::iterator it = std::find( appenderList.begin(), appenderList.end(), appender); if (it != appenderList.end()) { appenderList.erase(it); } } void AppenderAttachableImpl::removeAppender(const LogString& name) { if (name.empty()) { return; } AppenderList::iterator it, itEnd = appenderList.end(); AppenderPtr appender; for(it = appenderList.begin(); it != itEnd; it++) { appender = *it; if(name == appender->getName()) { appenderList.erase(it); return; } } } apache-log4cxx-0.10.0/src/main/cpp/optionconverter.cpp100644 0 0 31511 10774263341 20017 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::spi; LogString OptionConverter::convertSpecialChars(const LogString& s) { logchar c; LogString sbuf; LogString::const_iterator i = s.begin(); while(i != s.end()) { c = *i++; if (c == 0x5C /* '\\' */) { c = *i++; switch (c) { case 0x6E: //'n' c = 0x0A; break; case 0x72: //'r' c = 0x0D; break; case 0x74: //'t' c = 0x09; break; case 0x66: //'f' c = 0x0C; break; default: break; } } sbuf.append(1, c); } return sbuf; } bool OptionConverter::toBoolean(const LogString& value, bool dEfault) { if (value.length() >= 4) { if (StringHelper::equalsIgnoreCase(value.substr(0,4), LOG4CXX_STR("TRUE"), LOG4CXX_STR("true"))) { return true; } } if (dEfault && value.length() >= 5) { if (StringHelper::equalsIgnoreCase(value.substr(0,5), LOG4CXX_STR("FALSE"), LOG4CXX_STR("false"))) { return false; } } return dEfault; } int OptionConverter::toInt(const LogString& value, int dEfault) { LogString trimmed(StringHelper::trim(value)); if (trimmed.empty()) { return dEfault; } LOG4CXX_ENCODE_CHAR(cvalue, trimmed); return (int) atol(cvalue.c_str()); } long OptionConverter::toFileSize(const LogString& s, long dEfault) { if(s.empty()) { return dEfault; } size_t index = s.find_first_of(LOG4CXX_STR("bB")); if (index != LogString::npos && index > 0) { long multiplier = 1; index--; if (s[index] == 0x6B /* 'k' */ || s[index] == 0x4B /* 'K' */) { multiplier = 1024; } else if(s[index] == 0x6D /* 'm' */ || s[index] == 0x4D /* 'M' */) { multiplier = 1024*1024; } else if(s[index] == 0x67 /* 'g'*/ || s[index] == 0x47 /* 'G' */) { multiplier = 1024*1024*1024; } return toInt(s.substr(0, index), 1) * multiplier; } return toInt(s, 1); } LogString OptionConverter::findAndSubst(const LogString& key, Properties& props) { LogString value(props.getProperty(key)); if(value.empty()) return value; try { return substVars(value, props); } catch(IllegalArgumentException& e) { LogLog::error(((LogString) LOG4CXX_STR("Bad option value [")) + value + LOG4CXX_STR("]."), e); return value; } } LogString OptionConverter::substVars(const LogString& val, Properties& props) { LogString sbuf; const logchar delimStartArray[] = { 0x24, 0x7B, 0 }; const LogString delimStart(delimStartArray); const logchar delimStop = 0x7D; // '}'; const size_t DELIM_START_LEN = 2; const size_t DELIM_STOP_LEN = 1; int i = 0; int j, k; while(true) { j = val.find(delimStart, i); if(j == -1) { // no more variables if(i==0) { // this is a simple string return val; } else { // add the tail string which contails no variables and return the result. sbuf.append(val.substr(i, val.length() - i)); return sbuf; } } else { sbuf.append(val.substr(i, j - i)); k = val.find(delimStop, j); if(k == -1) { LogString msg(1, (logchar) 0x22 /* '\"' */); msg.append(val); msg.append(LOG4CXX_STR("\" has no closing brace. Opening brace at position ")); Pool p; StringHelper::toString(j, p, msg); msg.append(1, (logchar) 0x2E /* '.' */); throw IllegalArgumentException(msg); } else { j += DELIM_START_LEN; LogString key = val.substr(j, k - j); // first try in System properties LogString replacement(getSystemProperty(key, LogString())); // then try props parameter if(replacement.empty()) { replacement = props.getProperty(key); } if(!replacement.empty()) { // Do variable substitution on the replacement string // such that we can solve "Hello ${x2}" as "Hello p1" // the where the properties are // x1=p1 // x2=${x1} LogString recursiveReplacement = substVars(replacement, props); sbuf.append(recursiveReplacement); } i = k + DELIM_STOP_LEN; } } } } LogString OptionConverter::getSystemProperty(const LogString& key, const LogString& def) { if (!key.empty()) { LogString value(System::getProperty(key)); if (!value.empty()) { return value; } } return def; } LevelPtr OptionConverter::toLevel(const LogString& value, const LevelPtr& defaultValue) { size_t hashIndex = value.find(LOG4CXX_STR("#")); if (hashIndex == LogString::npos) { if (value.empty()) { return defaultValue; } else { LogLog::debug( ((LogString) LOG4CXX_STR("OptionConverter::toLevel: no class name specified, level=[")) + value +LOG4CXX_STR("]")); // no class name specified : use standard Level class return Level::toLevelLS(value, defaultValue); } } LogString clazz = value.substr(hashIndex + 1); LogString levelName = value.substr(0, hashIndex); LogLog::debug(((LogString) LOG4CXX_STR("OptionConverter::toLevel: class=[")) + clazz + LOG4CXX_STR("], level=[") + levelName + LOG4CXX_STR("]")); // This is degenerate case but you never know. if (levelName.empty()) { return Level::toLevelLS(value, defaultValue); } try { Level::LevelClass& levelClass = (Level::LevelClass&)Loader::loadClass(clazz); return levelClass.toLevel(levelName); } catch (ClassNotFoundException&) { LogLog::warn(((LogString) LOG4CXX_STR("custom level class [")) + clazz + LOG4CXX_STR("] not found.")); } catch(Exception& oops) { LogLog::warn( LOG4CXX_STR("class [") + clazz + LOG4CXX_STR("], level [") + levelName + LOG4CXX_STR("] conversion) failed."), oops); } catch(...) { LogLog::warn( LOG4CXX_STR("class [") + clazz + LOG4CXX_STR("], level [") + levelName + LOG4CXX_STR("] conversion) failed.")); } return defaultValue; } ObjectPtr OptionConverter::instantiateByKey(Properties& props, const LogString& key, const Class& superClass, const ObjectPtr& defaultValue) { // Get the value of the property in string form LogString className(findAndSubst(key, props)); if(className.empty()) { LogLog::error( ((LogString) LOG4CXX_STR("Could not find value for key ")) + key); return defaultValue; } // Trim className to avoid trailing spaces that cause problems. return OptionConverter::instantiateByClassName( StringHelper::trim(className), superClass, defaultValue); } ObjectPtr OptionConverter::instantiateByClassName(const LogString& className, const Class& superClass, const ObjectPtr& defaultValue) { if(!className.empty()) { try { const Class& classObj = Loader::loadClass(className); ObjectPtr newObject = classObj.newInstance(); if (!newObject->instanceof(superClass)) { return defaultValue; } return newObject; } catch (Exception& e) { LogLog::error(LOG4CXX_STR("Could not instantiate class [") + className + LOG4CXX_STR("]."), e); } } return defaultValue; } void OptionConverter::selectAndConfigure(const File& configFileName, const LogString& _clazz, spi::LoggerRepositoryPtr& hierarchy) { ConfiguratorPtr configurator; LogString clazz = _clazz; LogString filename(configFileName.getPath()); if(clazz.empty() && filename.length() > 4 && StringHelper::equalsIgnoreCase( filename.substr(filename.length() -4), LOG4CXX_STR(".XML"), LOG4CXX_STR(".xml"))) { clazz = log4cxx::xml::DOMConfigurator::getStaticClass().toString(); } if(!clazz.empty()) { LogLog::debug(LOG4CXX_STR("Preferred configurator class: ") + clazz); configurator = instantiateByClassName(clazz, Configurator::getStaticClass(), 0); if(configurator == 0) { LogLog::error(LOG4CXX_STR("Could not instantiate configurator [") + clazz + LOG4CXX_STR("].")); return; } } else { configurator = new PropertyConfigurator(); } configurator->doConfigure(configFileName, hierarchy); } apache-log4cxx-0.10.0/src/main/cpp/messagebuffer.cpp100644 0 0 34163 10774263341 17403 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include using namespace log4cxx::helpers; CharMessageBuffer::CharMessageBuffer() : stream(0) {} CharMessageBuffer::~CharMessageBuffer() { delete stream; } CharMessageBuffer& CharMessageBuffer::operator<<(const std::basic_string& msg) { if (stream == 0) { buf.append(msg); } else { *stream << msg; } return *this; } CharMessageBuffer& CharMessageBuffer::operator<<(const char* msg) { const char* actualMsg = msg; if (actualMsg == 0) { actualMsg = "null"; } if (stream == 0) { buf.append(actualMsg); } else { *stream << actualMsg; } return *this; } CharMessageBuffer& CharMessageBuffer::operator<<(char* msg) { return operator<<((const char*) msg); } CharMessageBuffer& CharMessageBuffer::operator<<(const char msg) { if (stream == 0) { buf.append(1, msg); } else { buf.assign(1, msg); *stream << buf; } return *this; } CharMessageBuffer::operator std::basic_ostream&() { if (stream == 0) { stream = new std::basic_ostringstream(); if (!buf.empty()) { *stream << buf; } } return *stream; } const std::basic_string& CharMessageBuffer::str(std::basic_ostream&) { buf = stream->str(); return buf; } const std::basic_string& CharMessageBuffer::str(CharMessageBuffer&) { return buf; } bool CharMessageBuffer::hasStream() const { return (stream != 0); } std::ostream& CharMessageBuffer::operator<<(ios_base_manip manip) { std::ostream& s = *this; (*manip)(s); return s; } std::ostream& CharMessageBuffer::operator<<(bool val) { return ((std::ostream&) *this).operator<<(val); } std::ostream& CharMessageBuffer::operator<<(short val) { return ((std::ostream&) *this).operator<<(val); } std::ostream& CharMessageBuffer::operator<<(int val) { return ((std::ostream&) *this).operator<<(val); } std::ostream& CharMessageBuffer::operator<<(unsigned int val) { return ((std::ostream&) *this).operator<<(val); } std::ostream& CharMessageBuffer::operator<<(long val) { return ((std::ostream&) *this).operator<<(val); } std::ostream& CharMessageBuffer::operator<<(unsigned long val) { return ((std::ostream&) *this).operator<<(val); } std::ostream& CharMessageBuffer::operator<<(float val) { return ((std::ostream&) *this).operator<<(val); } std::ostream& CharMessageBuffer::operator<<(double val) { return ((std::ostream&) *this).operator<<(val); } std::ostream& CharMessageBuffer::operator<<(long double val) { return ((std::ostream&) *this).operator<<(val); } std::ostream& CharMessageBuffer::operator<<(void* val) { return ((std::ostream&) *this).operator<<(val); } #if LOG4CXX_WCHAR_T_API WideMessageBuffer::WideMessageBuffer() : stream(0) {} WideMessageBuffer::~WideMessageBuffer() { delete stream; } WideMessageBuffer& WideMessageBuffer::operator<<(const std::basic_string& msg) { if (stream == 0) { buf.append(msg); } else { *stream << msg; } return *this; } WideMessageBuffer& WideMessageBuffer::operator<<(const wchar_t* msg) { const wchar_t* actualMsg = msg; if (actualMsg == 0) { actualMsg = L"null"; } if (stream == 0) { buf.append(actualMsg); } else { *stream << actualMsg; } return *this; } WideMessageBuffer& WideMessageBuffer::operator<<(wchar_t* msg) { return operator<<((const wchar_t*) msg); } WideMessageBuffer& WideMessageBuffer::operator<<(const wchar_t msg) { if (stream == 0) { buf.append(1, msg); } else { buf.assign(1, msg); *stream << buf; } return *this; } WideMessageBuffer::operator std::basic_ostream&() { if (stream == 0) { stream = new std::basic_ostringstream(); if (!buf.empty()) { *stream << buf; } } return *stream; } const std::basic_string& WideMessageBuffer::str(std::basic_ostream&) { buf = stream->str(); return buf; } const std::basic_string& WideMessageBuffer::str(WideMessageBuffer&) { return buf; } bool WideMessageBuffer::hasStream() const { return (stream != 0); } std::basic_ostream& WideMessageBuffer::operator<<(ios_base_manip manip) { std::basic_ostream& s = *this; (*manip)(s); return s; } std::basic_ostream& WideMessageBuffer::operator<<(bool val) { return ((std::basic_ostream&) *this).operator<<(val); } std::basic_ostream& WideMessageBuffer::operator<<(short val) { return ((std::basic_ostream&) *this).operator<<(val); } std::basic_ostream& WideMessageBuffer::operator<<(int val) { return ((std::basic_ostream&) *this).operator<<(val); } std::basic_ostream& WideMessageBuffer::operator<<(unsigned int val) { return ((std::basic_ostream&) *this).operator<<(val); } std::basic_ostream& WideMessageBuffer::operator<<(long val) { return ((std::basic_ostream&) *this).operator<<(val); } std::basic_ostream& WideMessageBuffer::operator<<(unsigned long val) { return ((std::basic_ostream&) *this).operator<<(val); } std::basic_ostream& WideMessageBuffer::operator<<(float val) { return ((std::basic_ostream&) *this).operator<<(val); } std::basic_ostream& WideMessageBuffer::operator<<(double val) { return ((std::basic_ostream&) *this).operator<<(val); } std::basic_ostream& WideMessageBuffer::operator<<(long double val) { return ((std::basic_ostream&) *this).operator<<(val); } std::basic_ostream& WideMessageBuffer::operator<<(void* val) { return ((std::basic_ostream&) *this).operator<<(val); } MessageBuffer::MessageBuffer() : wbuf(0) #if LOG4CXX_UNICHAR_API || LOG4CXX_CFSTRING_API , ubuf(0) #endif { } MessageBuffer::~MessageBuffer() { delete wbuf; #if LOG4CXX_UNICHAR_API || LOG4CXX_CFSTRING_API delete ubuf; #endif } bool MessageBuffer::hasStream() const { bool retval = cbuf.hasStream() || (wbuf != 0 && wbuf->hasStream()); #if LOG4CXX_UNICHAR_API || LOG4CXX_CFSTRING_API retval = retval || (ubuf != 0 && ubuf->hasStream()); #endif return retval; } std::ostream& MessageBuffer::operator<<(ios_base_manip manip) { std::ostream& s = *this; (*manip)(s); return s; } MessageBuffer::operator std::ostream&() { return (std::ostream&) cbuf; } CharMessageBuffer& MessageBuffer::operator<<(const std::string& msg) { return cbuf.operator<<(msg); } CharMessageBuffer& MessageBuffer::operator<<(const char* msg) { return cbuf.operator<<(msg); } CharMessageBuffer& MessageBuffer::operator<<(char* msg) { return cbuf.operator<<((const char*) msg); } CharMessageBuffer& MessageBuffer::operator<<(const char msg) { return cbuf.operator<<(msg); } const std::string& MessageBuffer::str(CharMessageBuffer& buf) { return cbuf.str(buf); } const std::string& MessageBuffer::str(std::ostream& os) { return cbuf.str(os); } WideMessageBuffer& MessageBuffer::operator<<(const std::wstring& msg) { wbuf = new WideMessageBuffer(); return (*wbuf) << msg; } WideMessageBuffer& MessageBuffer::operator<<(const wchar_t* msg) { wbuf = new WideMessageBuffer(); return (*wbuf) << msg; } WideMessageBuffer& MessageBuffer::operator<<(wchar_t* msg) { wbuf = new WideMessageBuffer(); return (*wbuf) << (const wchar_t*) msg; } WideMessageBuffer& MessageBuffer::operator<<(const wchar_t msg) { wbuf = new WideMessageBuffer(); return (*wbuf) << msg; } const std::wstring& MessageBuffer::str(WideMessageBuffer& buf) { return wbuf->str(buf); } const std::wstring& MessageBuffer::str(std::basic_ostream& os) { return wbuf->str(os); } std::ostream& MessageBuffer::operator<<(bool val) { return cbuf.operator<<(val); } std::ostream& MessageBuffer::operator<<(short val) { return cbuf.operator<<(val); } std::ostream& MessageBuffer::operator<<(int val) { return cbuf.operator<<(val); } std::ostream& MessageBuffer::operator<<(unsigned int val) { return cbuf.operator<<(val); } std::ostream& MessageBuffer::operator<<(long val) { return cbuf.operator<<(val); } std::ostream& MessageBuffer::operator<<(unsigned long val) { return cbuf.operator<<(val); } std::ostream& MessageBuffer::operator<<(float val) { return cbuf.operator<<(val); } std::ostream& MessageBuffer::operator<<(double val) { return cbuf.operator<<(val); } std::ostream& MessageBuffer::operator<<(long double val) { return cbuf.operator<<(val); } std::ostream& MessageBuffer::operator<<(void* val) { return cbuf.operator<<(val); } #endif #if LOG4CXX_UNICHAR_API || LOG4CXX_CFSTRING_API UniCharMessageBuffer& MessageBuffer::operator<<(const std::basic_string& msg) { ubuf = new UniCharMessageBuffer(); return (*ubuf) << msg; } UniCharMessageBuffer& MessageBuffer::operator<<(const log4cxx::UniChar* msg) { ubuf = new UniCharMessageBuffer(); return (*ubuf) << msg; } UniCharMessageBuffer& MessageBuffer::operator<<(log4cxx::UniChar* msg) { ubuf = new UniCharMessageBuffer(); return (*ubuf) << (const log4cxx::UniChar*) msg; } UniCharMessageBuffer& MessageBuffer::operator<<(const log4cxx::UniChar msg) { ubuf = new UniCharMessageBuffer(); return (*ubuf) << msg; } const std::basic_string& MessageBuffer::str(UniCharMessageBuffer& buf) { return ubuf->str(buf); } const std::basic_string& MessageBuffer::str(std::basic_ostream& os) { return ubuf->str(os); } UniCharMessageBuffer::UniCharMessageBuffer() : stream(0) {} UniCharMessageBuffer::~UniCharMessageBuffer() { delete stream; } UniCharMessageBuffer& UniCharMessageBuffer::operator<<(const std::basic_string& msg) { if (stream == 0) { buf.append(msg); } else { *stream << buf; } return *this; } UniCharMessageBuffer& UniCharMessageBuffer::operator<<(const log4cxx::UniChar* msg) { const log4cxx::UniChar* actualMsg = msg; static log4cxx::UniChar nullLiteral[] = { 0x6E, 0x75, 0x6C, 0x6C, 0}; if (actualMsg == 0) { actualMsg = nullLiteral; } if (stream == 0) { buf.append(actualMsg); } else { *stream << actualMsg; } return *this; } UniCharMessageBuffer& UniCharMessageBuffer::operator<<(log4cxx::UniChar* msg) { return operator<<((const log4cxx::UniChar*) msg); } UniCharMessageBuffer& UniCharMessageBuffer::operator<<(const log4cxx::UniChar msg) { if (stream == 0) { buf.append(1, msg); } else { *stream << msg; } return *this; } UniCharMessageBuffer::operator UniCharMessageBuffer::uostream&() { if (stream == 0) { stream = new std::basic_ostringstream(); if (!buf.empty()) { *stream << buf; } } return *stream; } const std::basic_string& UniCharMessageBuffer::str(UniCharMessageBuffer::uostream&) { buf = stream->str(); return buf; } const std::basic_string& UniCharMessageBuffer::str(UniCharMessageBuffer&) { return buf; } bool UniCharMessageBuffer::hasStream() const { return (stream != 0); } UniCharMessageBuffer::uostream& UniCharMessageBuffer::operator<<(ios_base_manip manip) { UniCharMessageBuffer::uostream& s = *this; (*manip)(s); return s; } UniCharMessageBuffer::uostream& UniCharMessageBuffer::operator<<(bool val) { return ((UniCharMessageBuffer::uostream&) *this).operator<<(val); } UniCharMessageBuffer::uostream& UniCharMessageBuffer::operator<<(short val) { return ((UniCharMessageBuffer::uostream&) *this).operator<<(val); } UniCharMessageBuffer::uostream& UniCharMessageBuffer::operator<<(int val) { return ((UniCharMessageBuffer::uostream&) *this).operator<<(val); } UniCharMessageBuffer::uostream& UniCharMessageBuffer::operator<<(unsigned int val) { return ((UniCharMessageBuffer::uostream&) *this).operator<<(val); } UniCharMessageBuffer::uostream& UniCharMessageBuffer::operator<<(long val) { return ((UniCharMessageBuffer::uostream&) *this).operator<<(val); } UniCharMessageBuffer::uostream& UniCharMessageBuffer::operator<<(unsigned long val) { return ((UniCharMessageBuffer::uostream&) *this).operator<<(val); } UniCharMessageBuffer::uostream& UniCharMessageBuffer::operator<<(float val) { return ((UniCharMessageBuffer::uostream&) *this).operator<<(val); } UniCharMessageBuffer::uostream& UniCharMessageBuffer::operator<<(double val) { return ((UniCharMessageBuffer::uostream&) *this).operator<<(val); } UniCharMessageBuffer::uostream& UniCharMessageBuffer::operator<<(long double val) { return ((UniCharMessageBuffer::uostream&) *this).operator<<(val); } UniCharMessageBuffer::uostream& UniCharMessageBuffer::operator<<(void* val) { return ((UniCharMessageBuffer::uostream&) *this).operator<<(val); } #endif #if LOG4CXX_CFSTRING_API #include #include UniCharMessageBuffer& UniCharMessageBuffer::operator<<(const CFStringRef& msg) { const log4cxx::UniChar* chars = CFStringGetCharactersPtr(msg); if (chars != 0) { return operator<<(chars); } else { size_t length = CFStringGetLength(msg); std::vector tmp(length); CFStringGetCharacters(msg, CFRangeMake(0, length), &tmp[0]); if (stream) { std::basic_string s(&tmp[0], tmp.size()); *stream << s; } else { buf.append(&tmp[0], tmp.size()); } } return *this; } UniCharMessageBuffer& MessageBuffer::operator<<(const CFStringRef& msg) { ubuf = new UniCharMessageBuffer(); return (*ubuf) << msg; } #endif apache-log4cxx-0.10.0/src/main/cpp/logmanager.cpp100644 0 0 13324 10774263341 16675 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if !defined(LOG4CXX) #define LOG4CXX 1 #endif #include using namespace log4cxx; using namespace log4cxx::spi; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(DefaultRepositorySelector) void * LogManager::guard = 0; RepositorySelectorPtr& LogManager::getRepositorySelector() { // // call to initialize APR and trigger "start" of logging clock // APRInitializer::initialize(); static spi::RepositorySelectorPtr selector; return selector; } void LogManager::setRepositorySelector(spi::RepositorySelectorPtr selector, void * guard1) { if((LogManager::guard != 0) && (LogManager::guard != guard1)) { throw IllegalArgumentException(LOG4CXX_STR("Attempted to reset the LoggerFactory without possessing the guard.")); } if(selector == 0) { throw IllegalArgumentException(LOG4CXX_STR("RepositorySelector must be non-null.")); } LogManager::guard = guard1; LogManager::getRepositorySelector() = selector; } LoggerRepositoryPtr& LogManager::getLoggerRepository() { if (getRepositorySelector() == 0) { LoggerRepositoryPtr hierarchy(new Hierarchy()); RepositorySelectorPtr selector(new DefaultRepositorySelector(hierarchy)); getRepositorySelector() = selector; } return getRepositorySelector()->getLoggerRepository(); } LoggerPtr LogManager::getRootLogger() { // Delegate the actual manufacturing of the logger to the logger repository. return getLoggerRepository()->getRootLogger(); } /** Retrieve the appropriate Logger instance. */ LoggerPtr LogManager::getLoggerLS(const LogString& name) { return getLoggerRepository()->getLogger(name); } /** Retrieve the appropriate Logger instance. */ LoggerPtr LogManager::getLoggerLS(const LogString& name, const spi::LoggerFactoryPtr& factory) { // Delegate the actual manufacturing of the logger to the logger repository. return getLoggerRepository()->getLogger(name, factory); } LoggerPtr LogManager::getLogger(const std::string& name) { LOG4CXX_DECODE_CHAR(n, name); return getLoggerLS(n); } LoggerPtr LogManager::getLogger(const std::string& name, const spi::LoggerFactoryPtr& factory) { LOG4CXX_DECODE_CHAR(n, name); return getLoggerLS(n, factory); } LoggerPtr LogManager::exists(const std::string& name) { LOG4CXX_DECODE_CHAR(n, name); return existsLS(n); } #if LOG4CXX_WCHAR_T_API LoggerPtr LogManager::getLogger(const std::wstring& name) { LOG4CXX_DECODE_WCHAR(n, name); return getLoggerLS(n); } LoggerPtr LogManager::getLogger(const std::wstring& name, const spi::LoggerFactoryPtr& factory) { LOG4CXX_DECODE_WCHAR(n, name); return getLoggerLS(n, factory); } LoggerPtr LogManager::exists(const std::wstring& name) { LOG4CXX_DECODE_WCHAR(n, name); return existsLS(n); } #endif #if LOG4CXX_UNICHAR_API LoggerPtr LogManager::getLogger(const std::basic_string& name) { LOG4CXX_DECODE_UNICHAR(n, name); return getLoggerLS(n); } LoggerPtr LogManager::getLogger(const std::basic_string& name, const spi::LoggerFactoryPtr& factory) { LOG4CXX_DECODE_UNICHAR(n, name); return getLoggerLS(n, factory); } LoggerPtr LogManager::exists(const std::basic_string& name) { LOG4CXX_DECODE_UNICHAR(n, name); return existsLS(n); } #endif #if LOG4CXX_CFSTRING_API LoggerPtr LogManager::getLogger(const CFStringRef& name) { LOG4CXX_DECODE_CFSTRING(n, name); return getLoggerLS(n); } LoggerPtr LogManager::getLogger(const CFStringRef& name, const spi::LoggerFactoryPtr& factory) { LOG4CXX_DECODE_CFSTRING(n, name); return getLoggerLS(n, factory); } LoggerPtr LogManager::exists(const CFStringRef& name) { LOG4CXX_DECODE_CFSTRING(n, name); return existsLS(n); } #endif LoggerPtr LogManager::existsLS(const LogString& name) { return getLoggerRepository()->exists(name); } LoggerList LogManager::getCurrentLoggers() { return getLoggerRepository()->getCurrentLoggers(); } void LogManager::shutdown() { getLoggerRepository()->shutdown(); } void LogManager::resetConfiguration() { getLoggerRepository()->resetConfiguration(); } apache-log4cxx-0.10.0/src/main/cpp/relativetimedateformat.cpp100644 0 0 2612 10774263341 21300 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #define __STDC_CONSTANT_MACROS #include #include #include #include #include #include log4cxx::helpers::RelativeTimeDateFormat::RelativeTimeDateFormat() : DateFormat(), startTime(log4cxx::spi::LoggingEvent::getStartTime()) { } void log4cxx::helpers::RelativeTimeDateFormat::format( LogString &s, log4cxx_time_t date, Pool& p) const { log4cxx_int64_t interval = (date - startTime) / APR_INT64_C(1000); StringHelper::toString(interval, p, s); } apache-log4cxx-0.10.0/src/main/cpp/defaultloggerfactory.cpp100644 0 0 2164 10774263341 20755 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include using namespace log4cxx; IMPLEMENT_LOG4CXX_OBJECT(DefaultLoggerFactory) LoggerPtr DefaultLoggerFactory::makeNewLoggerInstance( log4cxx::helpers::Pool& pool, const LogString& name) const { return new Logger(pool, name); } apache-log4cxx-0.10.0/src/main/cpp/locationinfo.cpp100644 0 0 13261 10774263341 17245 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include "apr_pools.h" #include "apr_strings.h" using namespace ::log4cxx::spi; using namespace log4cxx::helpers; /** When location information is not available the constant NA is returned. Current value of this string constant is ?. */ const char* const LocationInfo::NA = "?"; const char* const LocationInfo::NA_METHOD = "?::?"; const LocationInfo& LocationInfo::getLocationUnavailable() { static const LocationInfo unavailable; return unavailable; } /** * Constructor. * @remarks Used by LOG4CXX_LOCATION to generate * location info for current code site */ LocationInfo::LocationInfo( const char * const fileName1, const char * const methodName1, int lineNumber1 ) : lineNumber( lineNumber1 ), fileName( fileName1 ), methodName( methodName1 ) { } /** * Default constructor. */ LocationInfo::LocationInfo() : lineNumber( -1 ), fileName(LocationInfo::NA), methodName(LocationInfo::NA_METHOD) { } /** * Copy constructor. * @param src source location */ LocationInfo::LocationInfo( const LocationInfo & src ) : lineNumber( src.lineNumber ), fileName( src.fileName ), methodName( src.methodName ) { } /** * Assignment operator. * @param src source location */ LocationInfo & LocationInfo::operator = ( const LocationInfo & src ) { fileName = src.fileName; methodName = src.methodName; lineNumber = src.lineNumber; return * this; } /** * Resets location info to default state. */ void LocationInfo::clear() { fileName = NA; methodName = NA_METHOD; lineNumber = -1; } /** * Return the file name of the caller. * @returns file name, may be null. */ const char * LocationInfo::getFileName() const { return fileName; } /** * Returns the line number of the caller. * @returns line number, -1 if not available. */ int LocationInfo::getLineNumber() const { return lineNumber; } /** Returns the method name of the caller. */ const std::string LocationInfo::getMethodName() const { std::string tmp(methodName); size_t colonPos = tmp.find("::"); if (colonPos != std::string::npos) { tmp.erase(0, colonPos + 2); } else { size_t spacePos = tmp.find(' '); if (spacePos != std::string::npos) { tmp.erase(0, spacePos + 1); } } size_t parenPos = tmp.find('('); if (parenPos != std::string::npos) { tmp.erase(parenPos); } return tmp; } const std::string LocationInfo::getClassName() const { std::string tmp(methodName); size_t colonPos = tmp.find("::"); if (colonPos != std::string::npos) { tmp.erase(colonPos); size_t spacePos = tmp.find_last_of(' '); if (spacePos != std::string::npos) { tmp.erase(0, spacePos + 1); } return tmp; } tmp.erase(0, tmp.length() ); return tmp; } void LocationInfo::write(ObjectOutputStream& os, Pool& p) const { if (lineNumber == -1 && fileName == NA && methodName == NA_METHOD) { os.writeNull(p); } else { char prolog[] = { 0x72, 0x00, 0x21, 0x6F, 0x72, 0x67, 0x2E, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2E, 0x6C, 0x6F, 0x67, 0x34, 0x6A, 0x2E, 0x73, 0x70, 0x69, 0x2E, 0x4C, 0x6F, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x49, 0x6E, 0x66, 0x6F, 0xED, 0x99, 0xBB, 0xE1, 0x4A, 0x91, 0xA5, 0x7C, 0x02, 0x00, 0x01, 0x4C, 0x00, 0x08, 0x66, 0x75, 0x6C, 0x6C, 0x49, 0x6E, 0x66, 0x6F, 0x74, 0x00, 0x12, 0x4C, 0x6A, 0x61, 0x76, 0x61, 0x2F, 0x6C, 0x61, 0x6E, 0x67, 0x2F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x3B, 0x78, 0x70 }; os.writeProlog("org.apache.log4j.spi.LocationInfo", 2, prolog, sizeof(prolog), p); char* line = p.itoa(lineNumber); // // construct Java-like fullInfo (replace "::" with ".") // std::string fullInfo(methodName); size_t openParen = fullInfo.find('('); if (openParen != std::string::npos) { size_t space = fullInfo.find(' '); if (space != std::string::npos && space < openParen) { fullInfo.erase(0, space + 1); } } openParen = fullInfo.find('('); if (openParen != std::string::npos) { size_t classSep = fullInfo.rfind("::", openParen); if (classSep != std::string::npos) { fullInfo.replace(classSep, 2, "."); } else { fullInfo.insert(0, "."); } } fullInfo.append(1, '('); fullInfo.append(fileName); fullInfo.append(1, ':'); fullInfo.append(line); fullInfo.append(1, ')'); os.writeUTFString(fullInfo, p); } } apache-log4cxx-0.10.0/src/main/cpp/writer.cpp100644 0 0 1731 10774263341 16054 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(Writer) Writer::Writer() { } Writer::~Writer() { } apache-log4cxx-0.10.0/src/main/cpp/relativetimepatternconverter.cpp100644 0 0 3543 10774263341 22563 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::pattern; using namespace log4cxx::spi; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(RelativeTimePatternConverter) RelativeTimePatternConverter::RelativeTimePatternConverter() : LoggingEventPatternConverter(LOG4CXX_STR("Time"), LOG4CXX_STR("time")) { } PatternConverterPtr RelativeTimePatternConverter::newInstance( const std::vector& /* options */) { static PatternConverterPtr def(new RelativeTimePatternConverter()); return def; } void RelativeTimePatternConverter::format( const LoggingEventPtr& event, LogString& toAppendTo, Pool& p) const { log4cxx_time_t delta = (event->getTimeStamp() - LoggingEvent::getStartTime())/1000; StringHelper::toString(delta, p, toAppendTo); } apache-log4cxx-0.10.0/src/main/cpp/systemerrwriter.cpp100644 0 0 3614 10774263341 20034 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #if !defined(LOG4CXX) #define LOG4CXX 1 #endif #include using namespace log4cxx; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(SystemErrWriter) SystemErrWriter::SystemErrWriter() { } SystemErrWriter::~SystemErrWriter() { } void SystemErrWriter::close(Pool& /* p */) { } void SystemErrWriter::flush(Pool& /* p */) { flush(); } void SystemErrWriter::write(const LogString& str, Pool& /* p */) { write(str); } bool SystemErrWriter::isWide() { #if LOG4CXX_FORCE_WIDE_CONSOLE return true; #elif LOG4CXX_FORCE_BYTE_CONSOLE || !LOG4CXX_HAS_FWIDE return false; #else return fwide(stderr, 0) > 0; #endif } void SystemErrWriter::write(const LogString& str) { #if LOG4CXX_WCHAR_T_API if (isWide()) { LOG4CXX_ENCODE_WCHAR(msg, str); fputws(msg.c_str(), stderr); return; } #endif LOG4CXX_ENCODE_CHAR(msg, str); fputs(msg.c_str(), stderr); } void SystemErrWriter::flush() { fflush(stderr); } apache-log4cxx-0.10.0/src/main/cpp/ttcclayout.cpp100644 0 0 5035 10774263341 16734 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::spi; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(TTCCLayout) TTCCLayout::TTCCLayout() : DateLayout(LOG4CXX_STR("RELATIVE")), threadPrinting(true), categoryPrefixing(true), contextPrinting(true), filePrinting(false) { Pool pool; activateOptions(pool); } TTCCLayout::TTCCLayout(const LogString& dateFormatType) : DateLayout(dateFormatType), threadPrinting(true), categoryPrefixing(true), contextPrinting(true), filePrinting(false) { Pool pool; activateOptions(pool); } void TTCCLayout::format(LogString& output, const spi::LoggingEventPtr& event, Pool& p) const { formatDate(output, event, p); if(threadPrinting) { output.append(1, (logchar) 0x5B /* '[' */); output.append(event->getThreadName()); output.append(1, (logchar) 0x5D /* ']' */); output.append(1, (logchar) 0x20 /* ' ' */); } output.append(event->getLevel()->toString()); output.append(1, (logchar) 0x20 /* ' ' */); if(categoryPrefixing) { output.append(event->getLoggerName()); output.append(1, (logchar) 0x20 /* ' ' */); } if(contextPrinting && event->getNDC(output)) { output.append(1, (logchar) 0x20 /* ' ' */); } output.append(1, (logchar) 0x2D /* '-' */); output.append(1, (logchar) 0x20 /* ' ' */); output.append(event->getRenderedMessage()); output.append(LOG4CXX_EOL); } apache-log4cxx-0.10.0/src/main/cpp/properties.cpp100644 0 0 34232 10774263341 16756 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; class PropertyParser { public: void parse(LogString& in, Properties& properties) { LogString key, element; LexemType lexemType = BEGIN; logchar c; bool finished = false; if (!get(in, c)) { return; } while (!finished) { switch(lexemType) { case BEGIN: switch(c) { case 0x20: // ' ' case 0x08: // '\t' case 0x0A: // '\n' case 0x0D: // '\r' if (!get(in, c)) finished = true; break; case 0x23: // '#' case 0x21: // '!' lexemType = COMMENT; if (!get(in, c)) finished = true; break; default: lexemType = KEY; break; } break; case KEY: switch(c) { case 0x5C: // '\\' lexemType = KEY_ESCAPE; if (!get(in, c)) finished = true; break; case 0x08: // '\t' case 0x20: // ' ' case 0x3A: // ':' case 0x3D: // '=' lexemType = DELIMITER; if (!get(in, c)) finished = true; break; case 0x0A: case 0x0D: // key associated with an empty string element properties.setProperty(key, LogString()); key.erase(key.begin(), key.end()); lexemType = BEGIN; if (!get(in, c)) finished = true; break; default: key.append(1, c); if (!get(in, c)) finished = true; break; } break; case KEY_ESCAPE: switch(c) { case 0x08: // '\t' case 0x20: // ' ' case 0x3A: // ':' case 0x3D: // '=' case 0x5C: // '\\' key.append(1, c); lexemType = KEY; if (!get(in, c)) finished = true; break; case 0x0A: // '\n' lexemType = KEY_CONTINUE; if (!get(in, c)) finished = true; break; case 0x0D: // '\r' lexemType = KEY_CONTINUE2; if (!get(in, c)) finished = true; break; } break; case KEY_CONTINUE: switch(c) { case 0x20: // ' ' case 0x08: // '\t' if (!get(in, c)) finished = true; break; default: lexemType = KEY; break; } break; case KEY_CONTINUE2: switch(c) { case 0x0A: // '\n' if (!get(in, c)) finished = true; lexemType = KEY_CONTINUE; break; default: lexemType = KEY_CONTINUE; break; } break; case DELIMITER: switch(c) { case 0x08: // '\t' case 0x20: // ' ' case 0x3A: // ':' case 0x3D: // '=' if (!get(in, c)) finished = true; break; default: lexemType = ELEMENT; break; } break; case ELEMENT: switch(c) { case 0x5C: // '\\' lexemType = ELEMENT_ESCAPE; if (!get(in, c)) finished = true; break; case 0x0A: // '\n' case 0x0D: // '\r' // key associated with an empty string element properties.setProperty(key, element); key.erase(key.begin(), key.end()); element.erase(element.begin(), element.end()); lexemType = BEGIN; if (!get(in, c)) finished = true; break; default: element.append(1, c); if (!get(in, c)) finished = true; break; } break; case ELEMENT_ESCAPE: switch(c) { case 0x08: // '\t' case 0x20: // ' ' case 0x6E: // 'n' case 0x72: // 'r' case 0x27: // '\'' case 0x5C: // '\\' case 0x22: // '\"' case 0x3A: // ':' default: element.append(1, c); lexemType = ELEMENT; if (!get(in, c)) finished = true; break; case 0x0A: // '\n' lexemType = ELEMENT_CONTINUE; if (!get(in, c)) finished = true; break; case 0x0D: // '\r' lexemType = ELEMENT_CONTINUE2; if (!get(in, c)) finished = true; break; } break; case ELEMENT_CONTINUE: switch(c) { case 0x20: // ' ' case 0x08: // '\t' if (!get(in, c)) finished = true; break; default: lexemType = ELEMENT; break; } break; case ELEMENT_CONTINUE2: switch(c) { case 0x20: // '\n' if (!get(in, c)) finished = true; lexemType = ELEMENT_CONTINUE; break; default: lexemType = ELEMENT_CONTINUE; break; } break; case COMMENT: if (c == 0x0A || c == 0x0D) { lexemType = BEGIN; } if (!get(in, c)) finished = true; break; } } if (!key.empty()) { properties.setProperty(key, element); } } protected: bool get(LogString& in, logchar& c) { if (in.empty()) { c = 0; return false; } c = in[0]; in.erase(in.begin()); return true; } typedef enum { BEGIN, KEY, KEY_ESCAPE, KEY_CONTINUE, KEY_CONTINUE2, DELIMITER, ELEMENT, ELEMENT_ESCAPE, ELEMENT_CONTINUE, ELEMENT_CONTINUE2, COMMENT } LexemType; }; Properties::Properties() : properties(new PropertyMap()) { } Properties::~Properties() { delete properties; } LogString Properties::setProperty(const LogString& key, const LogString& value) { return put(key, value); } LogString Properties::put(const LogString& key, const LogString& value) { LogString oldValue((*properties)[key]); (*properties)[key] = value; //tcout << ASCII_STR("setting property key=") << key << ASCII_STR(", value=") << value << std::endl; return oldValue; } LogString Properties::getProperty(const LogString& key) const { return get(key); } LogString Properties::get(const LogString& key) const { PropertyMap::const_iterator it = properties->find(key); return (it != properties->end()) ? it->second : LogString(); } void Properties::load(InputStreamPtr inStream) { Pool pool; InputStreamReaderPtr lineReader( new InputStreamReader(inStream, CharsetDecoder::getISOLatinDecoder())); LogString contents = lineReader->read(pool); properties->clear(); PropertyParser parser; parser.parse(contents, *this); } std::vector Properties::propertyNames() const { std::vector names; names.reserve(properties->size()); PropertyMap::const_iterator it; for (it = properties->begin(); it != properties->end(); it++) { const LogString& key = it->first; names.push_back(key); } return names; } apache-log4cxx-0.10.0/src/main/cpp/bytearrayinputstream.cpp100644 0 0 3313 10774263341 21034 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace std; IMPLEMENT_LOG4CXX_OBJECT(ByteArrayInputStream) ByteArrayInputStream::ByteArrayInputStream(const std::vector& bytes) : buf(bytes), pos(0) { } ByteArrayInputStream::~ByteArrayInputStream() { } void ByteArrayInputStream::close() { } int ByteArrayInputStream::read(ByteBuffer& dst) { if (pos >= buf.size()) { return -1; } else { size_t bytesCopied = min(dst.remaining(), buf.size() - pos); memcpy(dst.current(), &buf[pos], bytesCopied); pos += bytesCopied; dst.position(dst.position() + bytesCopied); return bytesCopied; } } apache-log4cxx-0.10.0/src/main/cpp/classnamepatternconverter.cpp100644 0 0 3740 10774263341 22036 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include using namespace log4cxx; using namespace log4cxx::pattern; using namespace log4cxx::spi; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(ClassNamePatternConverter) ClassNamePatternConverter::ClassNamePatternConverter( const std::vector& options) : NamePatternConverter(LOG4CXX_STR("Class Name"), LOG4CXX_STR("class name"), options) { } PatternConverterPtr ClassNamePatternConverter::newInstance( const std::vector& options) { if (options.size() == 0) { static PatternConverterPtr def(new ClassNamePatternConverter(options)); return def; } return new ClassNamePatternConverter(options); } void ClassNamePatternConverter::format( const LoggingEventPtr& event, LogString& toAppendTo, Pool& /* p */) const { int initialLength = toAppendTo.length(); append(toAppendTo, event->getLocationInformation().getClassName()); abbreviate(initialLength, toAppendTo); } apache-log4cxx-0.10.0/src/main/cpp/cyclicbuffer.cpp100644 0 0 7675 10774263341 17215 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::spi; /** Instantiate a new CyclicBuffer of at most maxSize events. The maxSize argument must a positive integer. @param maxSize The maximum number of elements in the buffer. */ CyclicBuffer::CyclicBuffer(int maxSize1) : ea(maxSize1), first(0), last(0), numElems(0), maxSize(maxSize1) { if(maxSize1 < 1) { LogString msg(LOG4CXX_STR("The maxSize argument (")); Pool p; StringHelper::toString(maxSize1, p, msg); msg.append(LOG4CXX_STR(") is not a positive integer.")); throw IllegalArgumentException(msg); } } CyclicBuffer::~CyclicBuffer() { } /** Add an event as the last event in the buffer. */ void CyclicBuffer::add(const spi::LoggingEventPtr& event) { ea[last] = event; if(++last == maxSize) { last = 0; } if(numElems < maxSize) { numElems++; } else if(++first == maxSize) { first = 0; } } /** Get the ith oldest event currently in the buffer. If i is outside the range 0 to the number of elements currently in the buffer, then null is returned. */ spi::LoggingEventPtr CyclicBuffer::get(int i) { if(i < 0 || i >= numElems) return 0; return ea[(first + i) % maxSize]; } /** Get the oldest (first) element in the buffer. The oldest element is removed from the buffer. */ spi::LoggingEventPtr CyclicBuffer::get() { LoggingEventPtr r; if(numElems > 0) { numElems--; r = ea[first]; ea[first] = 0; if(++first == maxSize) { first = 0; } } return r; } /** Resize the cyclic buffer to newSize. @throws IllegalArgumentException if newSize is negative. */ void CyclicBuffer::resize(int newSize) { if(newSize < 0) { LogString msg(LOG4CXX_STR("Negative array size [")); Pool p; StringHelper::toString(newSize, p, msg); msg.append(LOG4CXX_STR("] not allowed.")); throw IllegalArgumentException(msg); } if(newSize == numElems) return; // nothing to do LoggingEventList temp(newSize); int loopLen = newSize < numElems ? newSize : numElems; int i; for(i = 0; i < loopLen; i++) { temp[i] = ea[first]; ea[first] = 0; if(++first == numElems) first = 0; } ea = temp; first = 0; numElems = loopLen; maxSize = newSize; if (loopLen == newSize) { last = 0; } else { last = loopLen; } } apache-log4cxx-0.10.0/src/main/cpp/messagepatternconverter.cpp100644 0 0 3320 10774263341 21506 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include using namespace log4cxx; using namespace log4cxx::pattern; using namespace log4cxx::spi; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(MessagePatternConverter) MessagePatternConverter::MessagePatternConverter() : LoggingEventPatternConverter(LOG4CXX_STR("Message"), LOG4CXX_STR("message")) { } PatternConverterPtr MessagePatternConverter::newInstance( const std::vector& /* options */) { static PatternConverterPtr def(new MessagePatternConverter()); return def; } void MessagePatternConverter::format( const LoggingEventPtr& event, LogString& toAppendTo, Pool& /* p */) const { toAppendTo.append(event->getRenderedMessage()); } apache-log4cxx-0.10.0/src/main/cpp/nteventlogappender.cpp100644 0 0 23071 10774263341 20465 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if (defined(WIN32) || defined(_WIN32)) && !defined(_WIN32_WCE) #include #undef ERROR #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::spi; using namespace log4cxx::helpers; using namespace log4cxx::nt; class CCtUserSIDHelper { public: static bool FreeSid(SID * pSid) { return ::HeapFree(GetProcessHeap(), 0, (LPVOID)pSid) != 0; } static bool CopySid(SID * * ppDstSid, SID * pSrcSid) { bool bSuccess = false; DWORD dwLength = ::GetLengthSid(pSrcSid); *ppDstSid = (SID *) ::HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwLength); if (::CopySid(dwLength, *ppDstSid, pSrcSid)) { bSuccess = true; } else { FreeSid(*ppDstSid); } return bSuccess; } static bool GetCurrentUserSID(SID * * ppSid) { bool bSuccess = false; // Pseudohandle so don't need to close it HANDLE hProcess = ::GetCurrentProcess(); HANDLE hToken = NULL; if (::OpenProcessToken(hProcess, TOKEN_QUERY, &hToken)) { // Get the required size DWORD tusize = 0; GetTokenInformation(hToken, TokenUser, NULL, 0, &tusize); TOKEN_USER* ptu = (TOKEN_USER*)new BYTE[tusize]; if (GetTokenInformation(hToken, TokenUser, (LPVOID)ptu, tusize, &tusize)) { bSuccess = CopySid(ppSid, (SID *)ptu->User.Sid); } CloseHandle(hToken); delete [] ptu; } return bSuccess; } }; IMPLEMENT_LOG4CXX_OBJECT(NTEventLogAppender) NTEventLogAppender::NTEventLogAppender() : hEventLog(NULL), pCurrentUserSID(NULL) { } NTEventLogAppender::NTEventLogAppender(const LogString& server, const LogString& log, const LogString& source, const LayoutPtr& layout) : server(server), log(log), source(source), hEventLog(NULL), pCurrentUserSID(NULL) { this->layout = layout; Pool pool; activateOptions(pool); } NTEventLogAppender::~NTEventLogAppender() { finalize(); } void NTEventLogAppender::close() { if (hEventLog != NULL) { ::DeregisterEventSource(hEventLog); hEventLog = NULL; } if (pCurrentUserSID != NULL) { CCtUserSIDHelper::FreeSid((::SID*) pCurrentUserSID); pCurrentUserSID = NULL; } } void NTEventLogAppender::setOption(const LogString& option, const LogString& value) { if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("SERVER"), LOG4CXX_STR("server"))) { server = value; } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("LOG"), LOG4CXX_STR("log"))) { log = value; } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("SOURCE"), LOG4CXX_STR("source"))) { source = value; } else { AppenderSkeleton::setOption(option, value); } } void NTEventLogAppender::activateOptions(Pool&) { if (source.empty()) { LogLog::warn( ((LogString) LOG4CXX_STR("Source option not set for appender [")) + name + LOG4CXX_STR("].")); return; } if (log.empty()) { log = LOG4CXX_STR("Application"); } close(); // current user security identifier CCtUserSIDHelper::GetCurrentUserSID((::SID**) &pCurrentUserSID); addRegistryInfo(); LOG4CXX_ENCODE_WCHAR(wsource, source); LOG4CXX_ENCODE_WCHAR(wserver, server); hEventLog = ::RegisterEventSourceW( wserver.empty() ? NULL : wserver.c_str(), wsource.c_str()); if (hEventLog == NULL) { LogString msg(LOG4CXX_STR("Cannot register NT EventLog -- server: '")); msg.append(server); msg.append(LOG4CXX_STR("' source: '")); msg.append(source); LogLog::error(msg); LogLog::error(getErrorString(LOG4CXX_STR("RegisterEventSource"))); } } void NTEventLogAppender::append(const LoggingEventPtr& event, Pool& p) { if (hEventLog == NULL) { LogLog::warn(LOG4CXX_STR("NT EventLog not opened.")); return; } LogString oss; layout->format(oss, event, p); wchar_t* msgs = Transcoder::wencode(oss, p); BOOL bSuccess = ::ReportEventW( hEventLog, getEventType(event), getEventCategory(event), 0x1000, pCurrentUserSID, 1, 0, (LPCWSTR*) &msgs, NULL); if (!bSuccess) { LogLog::error(getErrorString(LOG4CXX_STR("ReportEvent"))); } } /* * Add this source with appropriate configuration keys to the registry. */ void NTEventLogAppender::addRegistryInfo() { DWORD disposition = 0; ::HKEY hkey = 0; LogString subkey(LOG4CXX_STR("SYSTEM\\CurrentControlSet\\Services\\EventLog\\")); subkey.append(log); subkey.append(1, (logchar) 0x5C /* '\\' */); subkey.append(source); LOG4CXX_ENCODE_WCHAR(wsubkey, subkey); long stat = RegCreateKeyExW(HKEY_LOCAL_MACHINE, wsubkey.c_str(), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_SET_VALUE, NULL, &hkey, &disposition); if (stat == ERROR_SUCCESS && disposition == REG_CREATED_NEW_KEY) { HMODULE hmodule = GetModuleHandleW(L"log4cxx"); if (hmodule == NULL) { hmodule = GetModuleHandleW(0); } wchar_t modpath[_MAX_PATH]; DWORD modlen = GetModuleFileNameW(hmodule, modpath, _MAX_PATH - 1); if (modlen > 0) { modpath[modlen] = 0; RegSetValueExW(hkey, L"EventMessageFile", 0, REG_SZ, (LPBYTE) modpath, wcslen(modpath) * sizeof(wchar_t)); RegSetValueExW(hkey, L"CategoryMessageFile", 0, REG_SZ, (LPBYTE) modpath, wcslen(modpath) * sizeof(wchar_t)); DWORD typesSupported = 7; DWORD categoryCount = 6; RegSetValueExW(hkey, L"TypesSupported", 0, REG_DWORD, (LPBYTE)&typesSupported, sizeof(DWORD)); RegSetValueExW(hkey, L"CategoryCount", 0, REG_DWORD, (LPBYTE)&categoryCount, sizeof(DWORD)); } } RegCloseKey(hkey); return; } WORD NTEventLogAppender::getEventType(const LoggingEventPtr& event) { int priority = event->getLevel()->toInt(); WORD type = EVENTLOG_SUCCESS; if (priority >= Level::INFO_INT) { type = EVENTLOG_INFORMATION_TYPE; if (priority >= Level::WARN_INT) { type = EVENTLOG_WARNING_TYPE; if (priority >= Level::ERROR_INT) { type = EVENTLOG_ERROR_TYPE; } } } return type; } WORD NTEventLogAppender::getEventCategory(const LoggingEventPtr& event) { int priority = event->getLevel()->toInt(); WORD category = 1; if (priority >= Level::DEBUG_INT) { category = 2; if (priority >= Level::INFO_INT) { category = 3; if (priority >= Level::WARN_INT) { category = 4; if (priority >= Level::ERROR_INT) { category = 5; if (priority >= Level::FATAL_INT) { category = 6; } } } } } return category; } LogString NTEventLogAppender::getErrorString(const LogString& function) { Pool p; enum { MSGSIZE = 5000 }; wchar_t* lpMsgBuf = (wchar_t*) p.palloc(MSGSIZE * sizeof(wchar_t)); DWORD dw = GetLastError(); FormatMessageW( FORMAT_MESSAGE_FROM_SYSTEM, NULL, dw, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), lpMsgBuf, MSGSIZE, NULL ); LogString msg(function); msg.append(LOG4CXX_STR(" failed with error ")); StringHelper::toString((size_t) dw, p, msg); msg.append(LOG4CXX_STR(": ")); Transcoder::decode(lpMsgBuf, msg); return msg; } #endif // WIN32 apache-log4cxx-0.10.0/src/main/cpp/patternconverter.cpp100644 0 0 3104 10774263341 20141 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include using namespace log4cxx; using namespace log4cxx::pattern; IMPLEMENT_LOG4CXX_OBJECT(PatternConverter) PatternConverter::PatternConverter( const LogString& name1, const LogString& style1) : name(name1), style(style1) { } PatternConverter::~PatternConverter() { } LogString PatternConverter::getName() const { return name; } LogString PatternConverter::getStyleClass(const log4cxx::helpers::ObjectPtr& /* e */) const { return style; } void PatternConverter::append(LogString& toAppendTo, const std::string& src) { LOG4CXX_DECODE_CHAR(decoded, src); toAppendTo.append(decoded); } apache-log4cxx-0.10.0/src/main/cpp/threadspecificdata.cpp100644 0 0 7073 10774263341 20354 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #if !defined(LOG4CXX) #define LOG4CXX 1 #endif #include using namespace log4cxx; using namespace log4cxx::helpers; ThreadSpecificData::ThreadSpecificData() : ndcStack(), mdcMap() { } ThreadSpecificData::~ThreadSpecificData() { } log4cxx::NDC::Stack& ThreadSpecificData::getStack() { return ndcStack; } log4cxx::MDC::Map& ThreadSpecificData::getMap() { return mdcMap; } ThreadSpecificData& ThreadSpecificData::getDataNoThreads() { static ThreadSpecificData noThreadData; return noThreadData; } ThreadSpecificData* ThreadSpecificData::getCurrentData() { #if APR_HAS_THREADS void* pData = NULL; apr_threadkey_private_get(&pData, APRInitializer::getTlsKey()); return (ThreadSpecificData*) pData; #else return &getDataNoThreads(); #endif } void ThreadSpecificData::recycle() { #if APR_HAS_THREADS if(ndcStack.empty() && mdcMap.empty()) { void* pData = NULL; apr_status_t stat = apr_threadkey_private_get(&pData, APRInitializer::getTlsKey()); if (stat == APR_SUCCESS && pData == this) { stat = apr_threadkey_private_set(0, APRInitializer::getTlsKey()); if (stat == APR_SUCCESS) { delete this; } } } #endif } void ThreadSpecificData::put(const LogString& key, const LogString& val) { ThreadSpecificData* data = getCurrentData(); if (data == 0) { data = createCurrentData(); } if (data != 0) { data->getMap().insert(log4cxx::MDC::Map::value_type(key, val)); } } void ThreadSpecificData::push(const LogString& val) { ThreadSpecificData* data = getCurrentData(); if (data == 0) { data = createCurrentData(); } if (data != 0) { NDC::Stack& stack = data->getStack(); if(stack.empty()) { stack.push(NDC::DiagnosticContext(val, val)); } else { LogString fullMessage(stack.top().second); fullMessage.append(1, (logchar) 0x20); fullMessage.append(val); stack.push(NDC::DiagnosticContext(val, fullMessage)); } } } void ThreadSpecificData::inherit(const NDC::Stack& src) { ThreadSpecificData* data = getCurrentData(); if (data == 0) { data = createCurrentData(); } if (data != 0) { data->getStack() = src; } } ThreadSpecificData* ThreadSpecificData::createCurrentData() { #if APR_HAS_THREADS ThreadSpecificData* newData = new ThreadSpecificData(); apr_status_t stat = apr_threadkey_private_set(newData, APRInitializer::getTlsKey()); if (stat != APR_SUCCESS) { delete newData; newData = NULL; } return newData; #else return 0; #endif } apache-log4cxx-0.10.0/src/main/cpp/datagrampacket.cpp100644 0 0 4132 10774263341 17506 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(DatagramPacket) /** Constructs a DatagramPacket for receiving packets of length length. */ DatagramPacket::DatagramPacket(void * buf1, int length1) : buf(buf1), offset(0), length(length1), address(), port(0) { } /** Constructs a datagram packet for sending packets of length length/ to the specified port number on the specified host. */ DatagramPacket::DatagramPacket(void * buf1, int length1, InetAddressPtr address1, int port1) : buf(buf1), offset(0), length(length1), address(address1), port(port1) { } /** Constructs a DatagramPacket for receiving packets of length length, specifying an offset into the buffer. */ DatagramPacket::DatagramPacket(void * buf1, int offset1, int length1) : buf(buf1), offset(offset1), length(length1), address(), port(0) { } /** Constructs a datagram packet for sending packets of length length with offset offset to the specified port number on the specified host. */ DatagramPacket::DatagramPacket(void * buf1, int offset1, int length1, InetAddressPtr address1, int port1) : buf(buf1), offset(offset1), length(length1), address(address1), port(port1) { } DatagramPacket::~DatagramPacket() { } apache-log4cxx-0.10.0/src/main/cpp/Makefile.in100644 0 0 105461 10774264474 16156 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/main/cpp DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(libdir)" libLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(lib_LTLIBRARIES) liblog4cxx_la_LIBADD = am_liblog4cxx_la_OBJECTS = action.lo appenderattachableimpl.lo \ appenderskeleton.lo aprinitializer.lo asyncappender.lo \ basicconfigurator.lo bufferedwriter.lo bytearrayinputstream.lo \ bytearrayoutputstream.lo bytebuffer.lo cacheddateformat.lo \ charsetdecoder.lo charsetencoder.lo class.lo \ classnamepatternconverter.lo classregistration.lo condition.lo \ configurator.lo consoleappender.lo cyclicbuffer.lo \ dailyrollingfileappender.lo datagrampacket.lo \ datagramsocket.lo date.lo dateformat.lo datelayout.lo \ datepatternconverter.lo defaultloggerfactory.lo \ defaultconfigurator.lo defaultrepositoryselector.lo \ domconfigurator.lo exception.lo fallbackerrorhandler.lo \ file.lo fileappender.lo filedatepatternconverter.lo \ fileinputstream.lo filelocationpatternconverter.lo \ fileoutputstream.lo filerenameaction.lo filewatchdog.lo \ filter.lo filterbasedtriggeringpolicy.lo \ fixedwindowrollingpolicy.lo formattinginfo.lo \ fulllocationpatternconverter.lo gzcompressaction.lo \ hierarchy.lo htmllayout.lo inetaddress.lo inputstream.lo \ inputstreamreader.lo integer.lo integerpatternconverter.lo \ layout.lo level.lo levelmatchfilter.lo levelrangefilter.lo \ levelpatternconverter.lo linelocationpatternconverter.lo \ lineseparatorpatternconverter.lo literalpatternconverter.lo \ loggerpatternconverter.lo loggingeventpatternconverter.lo \ loader.lo locale.lo locationinfo.lo logger.lo loggingevent.lo \ loglog.lo logmanager.lo logstream.lo manualtriggeringpolicy.lo \ messagebuffer.lo messagepatternconverter.lo \ methodlocationpatternconverter.lo mdc.lo mutex.lo \ nameabbreviator.lo namepatternconverter.lo \ ndcpatternconverter.lo ndc.lo nteventlogappender.lo \ objectimpl.lo objectptr.lo objectoutputstream.lo \ obsoleterollingfileappender.lo odbcappender.lo \ onlyonceerrorhandler.lo optionconverter.lo \ outputdebugstringappender.lo outputstream.lo \ outputstreamwriter.lo patternconverter.lo patternlayout.lo \ patternparser.lo pool.lo properties.lo \ propertiespatternconverter.lo propertyconfigurator.lo \ propertyresourcebundle.lo propertysetter.lo reader.lo \ relativetimedateformat.lo relativetimepatternconverter.lo \ resourcebundle.lo rollingfileappender.lo rollingpolicy.lo \ rollingpolicybase.lo rolloverdescription.lo rootlogger.lo \ serversocket.lo simpledateformat.lo simplelayout.lo \ sizebasedtriggeringpolicy.lo smtpappender.lo socket.lo \ socketappender.lo socketappenderskeleton.lo \ sockethubappender.lo socketoutputstream.lo \ strftimedateformat.lo stringhelper.lo stringmatchfilter.lo \ stringtokenizer.lo synchronized.lo syslogappender.lo \ syslogwriter.lo system.lo systemerrwriter.lo \ systemoutwriter.lo telnetappender.lo threadcxx.lo \ threadlocal.lo threadspecificdata.lo threadpatternconverter.lo \ throwableinformationpatternconverter.lo timezone.lo \ timebasedrollingpolicy.lo transform.lo triggeringpolicy.lo \ transcoder.lo ttcclayout.lo writer.lo writerappender.lo \ xmllayout.lo xmlsocketappender.lo zipcompressaction.lo liblog4cxx_la_OBJECTS = $(am_liblog4cxx_la_OBJECTS) DEFAULT_INCLUDES = -I. -I$(srcdir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(liblog4cxx_la_SOURCES) DIST_SOURCES = $(liblog4cxx_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # lib_LTLIBRARIES = liblog4cxx.la INCLUDES = -I$(top_srcdir)/src/main/include -I$(top_builddir)/src/main/include liblog4cxx_la_SOURCES = \ action.cpp \ appenderattachableimpl.cpp \ appenderskeleton.cpp \ aprinitializer.cpp \ asyncappender.cpp \ basicconfigurator.cpp \ bufferedwriter.cpp \ bytearrayinputstream.cpp \ bytearrayoutputstream.cpp \ bytebuffer.cpp \ cacheddateformat.cpp \ charsetdecoder.cpp \ charsetencoder.cpp \ class.cpp \ classnamepatternconverter.cpp \ classregistration.cpp \ condition.cpp \ configurator.cpp \ consoleappender.cpp \ cyclicbuffer.cpp \ dailyrollingfileappender.cpp \ datagrampacket.cpp \ datagramsocket.cpp \ date.cpp \ dateformat.cpp \ datelayout.cpp \ datepatternconverter.cpp \ defaultloggerfactory.cpp \ defaultconfigurator.cpp \ defaultrepositoryselector.cpp \ domconfigurator.cpp \ exception.cpp \ fallbackerrorhandler.cpp \ file.cpp \ fileappender.cpp \ filedatepatternconverter.cpp \ fileinputstream.cpp \ filelocationpatternconverter.cpp \ fileoutputstream.cpp \ filerenameaction.cpp \ filewatchdog.cpp \ filter.cpp \ filterbasedtriggeringpolicy.cpp \ fixedwindowrollingpolicy.cpp \ formattinginfo.cpp \ fulllocationpatternconverter.cpp \ gzcompressaction.cpp \ hierarchy.cpp \ htmllayout.cpp \ inetaddress.cpp \ inputstream.cpp \ inputstreamreader.cpp \ integer.cpp \ integerpatternconverter.cpp \ layout.cpp\ level.cpp \ levelmatchfilter.cpp \ levelrangefilter.cpp \ levelpatternconverter.cpp \ linelocationpatternconverter.cpp \ lineseparatorpatternconverter.cpp \ literalpatternconverter.cpp \ loggerpatternconverter.cpp \ loggingeventpatternconverter.cpp \ loader.cpp\ locale.cpp\ locationinfo.cpp\ logger.cpp \ loggingevent.cpp \ loglog.cpp \ logmanager.cpp \ logstream.cpp \ manualtriggeringpolicy.cpp \ messagebuffer.cpp \ messagepatternconverter.cpp \ methodlocationpatternconverter.cpp \ mdc.cpp \ mutex.cpp \ nameabbreviator.cpp \ namepatternconverter.cpp \ ndcpatternconverter.cpp \ ndc.cpp \ nteventlogappender.cpp \ objectimpl.cpp \ objectptr.cpp \ objectoutputstream.cpp \ obsoleterollingfileappender.cpp \ odbcappender.cpp \ onlyonceerrorhandler.cpp \ optionconverter.cpp \ outputdebugstringappender.cpp \ outputstream.cpp \ outputstreamwriter.cpp \ patternconverter.cpp \ patternlayout.cpp \ patternparser.cpp \ pool.cpp \ properties.cpp \ propertiespatternconverter.cpp \ propertyconfigurator.cpp \ propertyresourcebundle.cpp \ propertysetter.cpp \ reader.cpp \ relativetimedateformat.cpp \ relativetimepatternconverter.cpp \ resourcebundle.cpp \ rollingfileappender.cpp \ rollingpolicy.cpp \ rollingpolicybase.cpp \ rolloverdescription.cpp \ rootlogger.cpp \ serversocket.cpp \ simpledateformat.cpp \ simplelayout.cpp \ sizebasedtriggeringpolicy.cpp \ smtpappender.cpp \ socket.cpp \ socketappender.cpp \ socketappenderskeleton.cpp \ sockethubappender.cpp \ socketoutputstream.cpp \ strftimedateformat.cpp \ stringhelper.cpp \ stringmatchfilter.cpp \ stringtokenizer.cpp \ synchronized.cpp \ syslogappender.cpp \ syslogwriter.cpp \ system.cpp \ systemerrwriter.cpp \ systemoutwriter.cpp \ telnetappender.cpp \ threadcxx.cpp \ threadlocal.cpp \ threadspecificdata.cpp \ threadpatternconverter.cpp \ throwableinformationpatternconverter.cpp \ timezone.cpp \ timebasedrollingpolicy.cpp \ transform.cpp \ triggeringpolicy.cpp \ transcoder.cpp \ ttcclayout.cpp \ writer.cpp \ writerappender.cpp \ xmllayout.cpp\ xmlsocketappender.cpp \ zipcompressaction.cpp AM_CPPFLAGS = @CPPFLAGS_ODBC@ liblog4cxx_la_LDFLAGS = -version-info @LT_VERSION@ @LIBS_ODBC@ -@APR_LIBS@ all: all-am .SUFFIXES: .SUFFIXES: .cpp .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/cpp/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/main/cpp/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ else :; fi; \ done uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \ p=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done liblog4cxx.la: $(liblog4cxx_la_OBJECTS) $(liblog4cxx_la_DEPENDENCIES) $(CXXLINK) -rpath $(libdir) $(liblog4cxx_la_LDFLAGS) $(liblog4cxx_la_OBJECTS) $(liblog4cxx_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/action.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/appenderattachableimpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/appenderskeleton.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aprinitializer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asyncappender.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basicconfigurator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bufferedwriter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bytearrayinputstream.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bytearrayoutputstream.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bytebuffer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cacheddateformat.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/charsetdecoder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/charsetencoder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/class.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/classnamepatternconverter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/classregistration.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/condition.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/configurator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/consoleappender.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cyclicbuffer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dailyrollingfileappender.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/datagrampacket.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/datagramsocket.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/date.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dateformat.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/datelayout.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/datepatternconverter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/defaultconfigurator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/defaultloggerfactory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/defaultrepositoryselector.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/domconfigurator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exception.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fallbackerrorhandler.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fileappender.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filedatepatternconverter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fileinputstream.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filelocationpatternconverter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fileoutputstream.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filerenameaction.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filewatchdog.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filterbasedtriggeringpolicy.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fixedwindowrollingpolicy.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/formattinginfo.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fulllocationpatternconverter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gzcompressaction.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hierarchy.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htmllayout.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inetaddress.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inputstream.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inputstreamreader.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/integer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/integerpatternconverter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/layout.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/level.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/levelmatchfilter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/levelpatternconverter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/levelrangefilter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linelocationpatternconverter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lineseparatorpatternconverter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/literalpatternconverter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loader.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/locale.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/locationinfo.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/logger.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loggerpatternconverter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loggingevent.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loggingeventpatternconverter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loglog.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/logmanager.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/logstream.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/manualtriggeringpolicy.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mdc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/messagebuffer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/messagepatternconverter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/methodlocationpatternconverter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mutex.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nameabbreviator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/namepatternconverter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ndc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ndcpatternconverter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nteventlogappender.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/objectimpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/objectoutputstream.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/objectptr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/obsoleterollingfileappender.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/odbcappender.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/onlyonceerrorhandler.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/optionconverter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/outputdebugstringappender.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/outputstream.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/outputstreamwriter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/patternconverter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/patternlayout.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/patternparser.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pool.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/properties.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/propertiespatternconverter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/propertyconfigurator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/propertyresourcebundle.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/propertysetter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reader.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/relativetimedateformat.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/relativetimepatternconverter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/resourcebundle.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rollingfileappender.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rollingpolicy.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rollingpolicybase.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rolloverdescription.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rootlogger.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/serversocket.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simpledateformat.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simplelayout.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sizebasedtriggeringpolicy.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtpappender.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/socket.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/socketappender.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/socketappenderskeleton.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sockethubappender.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/socketoutputstream.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strftimedateformat.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stringhelper.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stringmatchfilter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stringtokenizer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/synchronized.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/syslogappender.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/syslogwriter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/system.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/systemerrwriter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/systemoutwriter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/telnetappender.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threadcxx.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threadlocal.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threadpatternconverter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threadspecificdata.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/throwableinformationpatternconverter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timebasedrollingpolicy.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timezone.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/transcoder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/transform.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/triggeringpolicy.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ttcclayout.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/writer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/writerappender.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmllayout.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmlsocketappender.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zipcompressaction.Plo@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-libLTLIBRARIES install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am \ install-libLTLIBRARIES install-man install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-info-am \ uninstall-libLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/main/cpp/patternlayout.cpp100644 0 0 14135 10774263341 17475 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::spi; using namespace log4cxx::pattern; IMPLEMENT_LOG4CXX_OBJECT(PatternLayout) PatternLayout::PatternLayout() { } /** Constructs a PatternLayout using the supplied conversion pattern. */ PatternLayout::PatternLayout(const LogString& pattern) : conversionPattern(pattern) { Pool pool; activateOptions(pool); } void PatternLayout::setConversionPattern(const LogString& pattern) { conversionPattern = pattern; Pool pool; activateOptions(pool); } void PatternLayout::format(LogString& output, const spi::LoggingEventPtr& event, Pool& pool) const { std::vector::const_iterator formatterIter = patternFields.begin(); for(std::vector::const_iterator converterIter = patternConverters.begin(); converterIter != patternConverters.end(); converterIter++, formatterIter++) { int startField = output.length(); (*converterIter)->format(event, output, pool); (*formatterIter)->format(startField, output); } } void PatternLayout::setOption(const LogString& option, const LogString& value) { if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("CONVERSIONPATTERN"), LOG4CXX_STR("conversionpattern"))) { conversionPattern = OptionConverter::convertSpecialChars(value); } } void PatternLayout::activateOptions(Pool&) { LogString pat(conversionPattern); if (pat.empty()) { pat = LOG4CXX_STR("%m%n"); } patternConverters.erase(patternConverters.begin(), patternConverters.end()); patternFields.erase(patternFields.begin(), patternFields.end()); std::vector converters; PatternParser::parse(pat, converters, patternFields, getFormatSpecifiers()); // // strip out any pattern converters that don't handle LoggingEvents // // for(std::vector::const_iterator converterIter = converters.begin(); converterIter != converters.end(); converterIter++) { LoggingEventPatternConverterPtr eventConverter(*converterIter); if (eventConverter != NULL) { patternConverters.push_back(eventConverter); } } } #define RULES_PUT(spec, cls) \ specs.insert(PatternMap::value_type(LogString(LOG4CXX_STR(spec)), (PatternConstructor) cls ::newInstance)) log4cxx::pattern::PatternMap PatternLayout::getFormatSpecifiers() { PatternMap specs; RULES_PUT("c", LoggerPatternConverter); RULES_PUT("logger", LoggerPatternConverter); RULES_PUT("C", ClassNamePatternConverter); RULES_PUT("class", ClassNamePatternConverter); RULES_PUT("d", DatePatternConverter); RULES_PUT("date", DatePatternConverter); RULES_PUT("F", FileLocationPatternConverter); RULES_PUT("file", FileLocationPatternConverter); RULES_PUT("l", FullLocationPatternConverter); RULES_PUT("L", LineLocationPatternConverter); RULES_PUT("line", LineLocationPatternConverter); RULES_PUT("m", MessagePatternConverter); RULES_PUT("message", MessagePatternConverter); RULES_PUT("n", LineSeparatorPatternConverter); RULES_PUT("M", MethodLocationPatternConverter); RULES_PUT("method", MethodLocationPatternConverter); RULES_PUT("p", LevelPatternConverter); RULES_PUT("level", LevelPatternConverter); RULES_PUT("r", RelativeTimePatternConverter); RULES_PUT("relative", RelativeTimePatternConverter); RULES_PUT("t", ThreadPatternConverter); RULES_PUT("thread", ThreadPatternConverter); RULES_PUT("x", NDCPatternConverter); RULES_PUT("ndc", NDCPatternConverter); RULES_PUT("X", PropertiesPatternConverter); RULES_PUT("properties", PropertiesPatternConverter); RULES_PUT("throwable", ThrowableInformationPatternConverter); return specs; } apache-log4cxx-0.10.0/src/main/cpp/outputstream.cpp100644 0 0 2026 10774263341 17312 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include using namespace log4cxx; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(OutputStream) OutputStream::OutputStream() { } OutputStream::~OutputStream() { } apache-log4cxx-0.10.0/src/main/cpp/serversocket.cpp100644 0 0 7463 10774263341 17267 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include "apr_network_io.h" #include "apr_pools.h" #include "apr_poll.h" using namespace log4cxx::helpers; /** Creates a server socket on a specified port. */ ServerSocket::ServerSocket(int port) : pool(), mutex(pool), socket(0), timeout(0) { apr_status_t status = apr_socket_create(&socket, APR_INET, SOCK_STREAM, APR_PROTO_TCP, pool.getAPRPool()); if (status != APR_SUCCESS) { throw SocketException(status); } status = apr_socket_opt_set(socket, APR_SO_NONBLOCK, 1); if (status != APR_SUCCESS) { throw SocketException(status); } // Create server socket address (including port number) apr_sockaddr_t *server_addr; status = apr_sockaddr_info_get(&server_addr, NULL, APR_INET, port, 0, pool.getAPRPool()); if (status != APR_SUCCESS) { throw ConnectException(status); } // bind the socket to the address status = apr_socket_bind(socket, server_addr); if (status != APR_SUCCESS) { throw BindException(status); } status = apr_socket_listen(socket, 50); if (status != APR_SUCCESS) { throw SocketException(status); } } ServerSocket::~ServerSocket() { } void ServerSocket::close() { synchronized sync(mutex); if (socket != 0) { apr_status_t status = apr_socket_close(socket); if (status != APR_SUCCESS) { throw SocketException(status); } socket = 0; } } /** Listens for a connection to be made to this socket and accepts it */ SocketPtr ServerSocket::accept() { synchronized sync(mutex); if (socket == 0) { throw IOException(); } apr_pollfd_t poll; poll.p = pool.getAPRPool(); poll.desc_type = APR_POLL_SOCKET; poll.reqevents = APR_POLLIN; poll.rtnevents = 0; poll.desc.s = socket; poll.client_data = NULL; apr_int32_t signaled; apr_interval_time_t to = timeout * 1000; apr_status_t status = apr_poll(&poll, 1, &signaled, to); if (APR_STATUS_IS_TIMEUP(status)) { throw SocketTimeoutException(); } else if (status != APR_SUCCESS) { throw SocketException(status); } apr_pool_t* newPool; status = apr_pool_create(&newPool, 0); if (status != APR_SUCCESS) { throw PoolException(status); } apr_socket_t* newSocket; status = apr_socket_accept(&newSocket, socket, newPool); if (status != APR_SUCCESS) { apr_pool_destroy(newPool); throw SocketException(status); } status = apr_socket_opt_set(newSocket, APR_SO_NONBLOCK, 0); if (status != APR_SUCCESS) { apr_pool_destroy(newPool); throw SocketException(status); } return new Socket(newSocket, newPool); } /** Retrive setting for SO_TIMEOUT. */ int ServerSocket::getSoTimeout() const { return timeout; } /** Enable/disable SO_TIMEOUT with the specified timeout, in milliseconds. */ void ServerSocket::setSoTimeout(int newVal) { timeout = newVal; } apache-log4cxx-0.10.0/src/main/cpp/logger.cpp100644 0 0 60632 10774263341 16044 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if !defined(LOG4CXX) #define LOG4CXX 1 #endif #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::spi; IMPLEMENT_LOG4CXX_OBJECT(Logger) Logger::Logger(Pool& p, const LogString& name1) : pool(&p), name(), level(), parent(), resourceBundle(), repository(), aai(), mutex(p) { synchronized sync(mutex); name = name1; additive = true; } Logger::~Logger() { } void Logger::addRef() const { ObjectImpl::addRef(); } void Logger::releaseRef() const { ObjectImpl::releaseRef(); } void Logger::addAppender(const AppenderPtr& newAppender) { synchronized sync(mutex); if (aai == 0) { aai = new AppenderAttachableImpl(*pool); } aai->addAppender(newAppender); if (repository != 0) { repository->fireAddAppenderEvent(this, newAppender); } } void Logger::callAppenders(const spi::LoggingEventPtr& event, Pool& p) const { int writes = 0; for(LoggerPtr logger(const_cast(this)); logger != 0; logger = logger->parent) { // Protected against simultaneous call to addAppender, removeAppender,... synchronized sync(logger->mutex); if (logger->aai != 0) { writes += logger->aai->appendLoopOnAppenders(event, p); } if(!logger->additive) { break; } } if(writes == 0 && repository != 0) { repository->emitNoAppenderWarning(const_cast(this)); } } void Logger::closeNestedAppenders() { AppenderList appenders = getAllAppenders(); for(AppenderList::iterator it=appenders.begin(); it!=appenders.end(); ++it) { (*it)->close(); } } void Logger::forcedLog(const LevelPtr& level1, const std::string& message, const LocationInfo& location) const { Pool p; LOG4CXX_DECODE_CHAR(msg, message); LoggingEventPtr event(new LoggingEvent(name, level1, msg, location)); callAppenders(event, p); } void Logger::forcedLog(const LevelPtr& level1, const std::string& message) const { Pool p; LOG4CXX_DECODE_CHAR(msg, message); LoggingEventPtr event(new LoggingEvent(name, level1, msg, LocationInfo::getLocationUnavailable())); callAppenders(event, p); } void Logger::forcedLogLS(const LevelPtr& level1, const LogString& message, const LocationInfo& location) const { Pool p; LoggingEventPtr event(new LoggingEvent(name, level1, message, location)); callAppenders(event, p); } bool Logger::getAdditivity() const { return additive; } AppenderList Logger::getAllAppenders() const { synchronized sync(mutex); if (aai == 0) { return AppenderList(); } else { return aai->getAllAppenders(); } } AppenderPtr Logger::getAppender(const LogString& name1) const { synchronized sync(mutex); if (aai == 0 || name1.empty()) { return 0; } return aai->getAppender(name1); } const LevelPtr& Logger::getEffectiveLevel() const { for(const Logger * l = this; l != 0; l=l->parent) { if(l->level != 0) { return l->level; } } throw NullPointerException(LOG4CXX_STR("No level specified for logger or ancestors.")); #if LOG4CXX_RETURN_AFTER_THROW return this->level; #endif } LoggerRepositoryPtr Logger::getLoggerRepository() const { return repository; } ResourceBundlePtr Logger::getResourceBundle() const { for (LoggerPtr l(const_cast(this)); l != 0; l = l->parent) { if (l->resourceBundle != 0) { return l->resourceBundle; } } // It might be the case that there is no resource bundle return 0; } LogString Logger::getResourceBundleString(const LogString& key) const { ResourceBundlePtr rb = getResourceBundle(); // This is one of the rare cases where we can use logging in order // to report errors from within log4j. if (rb == 0) { return LogString(); } else { try { return rb->getString(key); } catch (MissingResourceException&) { logLS(Level::getError(), LOG4CXX_STR("No resource is associated with key \"") + key + LOG4CXX_STR("\"."), LocationInfo::getLocationUnavailable()); return LogString(); } } } LoggerPtr Logger::getParent() const { return parent; } LevelPtr Logger::getLevel() const { return level; } bool Logger::isAttached(const AppenderPtr& appender) const { synchronized sync(mutex); if (appender == 0 || aai == 0) { return false; } else { return aai->isAttached(appender); } } bool Logger::isTraceEnabled() const { if(repository == 0 || repository->isDisabled(Level::TRACE_INT)) { return false; } return getEffectiveLevel()->toInt() <= Level::TRACE_INT; } bool Logger::isDebugEnabled() const { if(repository == 0 || repository->isDisabled(Level::DEBUG_INT)) { return false; } return getEffectiveLevel()->toInt() <= Level::DEBUG_INT; } bool Logger::isEnabledFor(const LevelPtr& level1) const { if(repository == 0 || repository->isDisabled(level1->toInt())) { return false; } return level1->isGreaterOrEqual(getEffectiveLevel()); } bool Logger::isInfoEnabled() const { if(repository == 0 || repository->isDisabled(Level::INFO_INT)) { return false; } return getEffectiveLevel()->toInt() <= Level::INFO_INT; } bool Logger::isErrorEnabled() const { if(repository == 0 || repository->isDisabled(Level::ERROR_INT)) { return false; } return getEffectiveLevel()->toInt() <= Level::ERROR_INT; } bool Logger::isWarnEnabled() const { if(repository == 0 || repository->isDisabled(Level::WARN_INT)) { return false; } return getEffectiveLevel()->toInt() <= Level::WARN_INT; } bool Logger::isFatalEnabled() const { if(repository == 0 || repository->isDisabled(Level::FATAL_INT)) { return false; } return getEffectiveLevel()->toInt() <= Level::FATAL_INT; } /*void Logger::l7dlog(const LevelPtr& level, const String& key, const char* file, int line) { if (repository == 0 || repository->isDisabled(level->level)) { return; } if (level->isGreaterOrEqual(getEffectiveLevel())) { String msg = getResourceBundleString(key); // if message corresponding to 'key' could not be found in the // resource bundle, then default to 'key'. if (msg.empty()) { msg = key; } forcedLog(FQCN, level, msg, file, line); } }*/ void Logger::l7dlog(const LevelPtr& level1, const LogString& key, const LocationInfo& location, const std::vector& params) const { if (repository == 0 || repository->isDisabled(level1->toInt())) { return; } if (level1->isGreaterOrEqual(getEffectiveLevel())) { LogString pattern = getResourceBundleString(key); LogString msg; if (pattern.empty()) { msg = key; } else { msg = StringHelper::format(pattern, params); } forcedLogLS(level1, msg, location); } } void Logger::l7dlog(const LevelPtr& level1, const std::string& key, const LocationInfo& location) const { LOG4CXX_DECODE_CHAR(lkey, key); std::vector values(0); l7dlog(level1, lkey, location, values); } void Logger::l7dlog(const LevelPtr& level1, const std::string& key, const LocationInfo& location, const std::string& val1) const { LOG4CXX_DECODE_CHAR(lkey, key); LOG4CXX_DECODE_CHAR(lval1, val1); std::vector values(1); values[0] = lval1; l7dlog(level1, lkey, location, values); } void Logger::l7dlog(const LevelPtr& level1, const std::string& key, const LocationInfo& location, const std::string& val1, const std::string& val2) const { LOG4CXX_DECODE_CHAR(lkey, key); LOG4CXX_DECODE_CHAR(lval1, val1); LOG4CXX_DECODE_CHAR(lval2, val2); std::vector values(2); values[0] = lval1; values[1] = lval2; l7dlog(level1, lkey, location, values); } void Logger::l7dlog(const LevelPtr& level1, const std::string& key, const LocationInfo& location, const std::string& val1, const std::string& val2, const std::string& val3) const { LOG4CXX_DECODE_CHAR(lkey, key); LOG4CXX_DECODE_CHAR(lval1, val1); LOG4CXX_DECODE_CHAR(lval2, val2); LOG4CXX_DECODE_CHAR(lval3, val3); std::vector values(3); values[0] = lval1; values[1] = lval2; values[3] = lval3; l7dlog(level1, lkey, location, values); } void Logger::removeAllAppenders() { synchronized sync(mutex); if(aai != 0) { aai->removeAllAppenders(); aai = 0; } } void Logger::removeAppender(const AppenderPtr& appender) { synchronized sync(mutex); if(appender == 0 || aai == 0) { return; } aai->removeAppender(appender); } void Logger::removeAppender(const LogString& name1) { synchronized sync(mutex); if(name1.empty() || aai == 0) { return; } aai->removeAppender(name1); } void Logger::setAdditivity(bool additive1) { synchronized sync(mutex); this->additive = additive1; } void Logger::setHierarchy(spi::LoggerRepository * repository1) { this->repository = repository1; } void Logger::setLevel(const LevelPtr& level1) { this->level = level1; } LoggerPtr Logger::getLogger(const std::string& name) { return LogManager::getLogger(name); } LoggerPtr Logger::getLogger(const char* const name) { return LogManager::getLogger(name); } LoggerPtr Logger::getRootLogger() { return LogManager::getRootLogger(); } LoggerPtr Logger::getLoggerLS(const LogString& name, const spi::LoggerFactoryPtr& factory) { return LogManager::getLoggerLS(name, factory); } void Logger::getName(std::string& rv) const { Transcoder::encode(name, rv); } void Logger::trace(const std::string& msg, const log4cxx::spi::LocationInfo& location) const { if (isTraceEnabled()) { forcedLog(log4cxx::Level::getTrace(), msg, location); } } void Logger::trace(const std::string& msg) const { if (isTraceEnabled()) { forcedLog(log4cxx::Level::getTrace(), msg); } } void Logger::debug(const std::string& msg, const log4cxx::spi::LocationInfo& location) const { if (isDebugEnabled()) { forcedLog(log4cxx::Level::getDebug(), msg, location); } } void Logger::debug(const std::string& msg) const { if (isDebugEnabled()) { forcedLog(log4cxx::Level::getDebug(), msg); } } void Logger::error(const std::string& msg, const log4cxx::spi::LocationInfo& location) const { if (isErrorEnabled()) { forcedLog(log4cxx::Level::getError(), msg, location); } } void Logger::error(const std::string& msg) const { if (isErrorEnabled()) { forcedLog(log4cxx::Level::getError(), msg); } } void Logger::fatal(const std::string& msg, const log4cxx::spi::LocationInfo& location) const { if (isFatalEnabled()) { forcedLog(log4cxx::Level::getFatal(), msg, location); } } void Logger::fatal(const std::string& msg) const { if (isFatalEnabled()) { forcedLog(log4cxx::Level::getFatal(), msg); } } void Logger::info(const std::string& msg, const log4cxx::spi::LocationInfo& location) const { if (isInfoEnabled()) { forcedLog(log4cxx::Level::getInfo(), msg, location); } } void Logger::info(const std::string& msg) const { if (isInfoEnabled()) { forcedLog(log4cxx::Level::getInfo(), msg); } } void Logger::log(const LevelPtr& level1, const std::string& message, const log4cxx::spi::LocationInfo& location) const { if (isEnabledFor(level1)) { forcedLog(level1, message, location); } } void Logger::log(const LevelPtr& level1, const std::string& message) const { if (isEnabledFor(level1)) { forcedLog(level1, message); } } void Logger::logLS(const LevelPtr& level1, const LogString& message, const log4cxx::spi::LocationInfo& location) const { if (isEnabledFor(level1)) { forcedLogLS(level1, message, location); } } void Logger::warn(const std::string& msg, const log4cxx::spi::LocationInfo& location) const { if (isWarnEnabled()) { forcedLog(log4cxx::Level::getWarn(), msg, location); } } void Logger::warn(const std::string& msg) const { if (isWarnEnabled()) { forcedLog(log4cxx::Level::getWarn(), msg); } } LoggerPtr Logger::getLoggerLS(const LogString& name) { return LogManager::getLoggerLS(name); } #if LOG4CXX_WCHAR_T_API void Logger::forcedLog(const LevelPtr& level1, const std::wstring& message, const LocationInfo& location) const { Pool p; LOG4CXX_DECODE_WCHAR(msg, message); LoggingEventPtr event(new LoggingEvent(name, level1, msg, location)); callAppenders(event, p); } void Logger::forcedLog(const LevelPtr& level1, const std::wstring& message) const { Pool p; LOG4CXX_DECODE_WCHAR(msg, message); LoggingEventPtr event(new LoggingEvent(name, level1, msg, LocationInfo::getLocationUnavailable())); callAppenders(event, p); } void Logger::getName(std::wstring& rv) const { Transcoder::encode(name, rv); } LoggerPtr Logger::getLogger(const std::wstring& name) { return LogManager::getLogger(name); } LoggerPtr Logger::getLogger(const wchar_t* const name) { return LogManager::getLogger(name); } void Logger::trace(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) const { if (isTraceEnabled()) { forcedLog(log4cxx::Level::getTrace(), msg, location); } } void Logger::trace(const std::wstring& msg) const { if (isTraceEnabled()) { forcedLog(log4cxx::Level::getTrace(), msg); } } void Logger::debug(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) const { if (isDebugEnabled()) { forcedLog(log4cxx::Level::getDebug(), msg, location); } } void Logger::debug(const std::wstring& msg) const { if (isDebugEnabled()) { forcedLog(log4cxx::Level::getDebug(), msg); } } void Logger::error(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) const { if (isErrorEnabled()) { forcedLog(log4cxx::Level::getError(), msg, location); } } void Logger::error(const std::wstring& msg) const { if (isErrorEnabled()) { forcedLog(log4cxx::Level::getError(), msg); } } void Logger::fatal(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) const { if (isFatalEnabled()) { forcedLog(log4cxx::Level::getFatal(), msg, location); } } void Logger::fatal(const std::wstring& msg) const { if (isFatalEnabled()) { forcedLog(log4cxx::Level::getFatal(), msg); } } void Logger::info(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) const { if (isInfoEnabled()) { forcedLog(log4cxx::Level::getInfo(), msg, location); } } void Logger::info(const std::wstring& msg) const { if (isInfoEnabled()) { forcedLog(log4cxx::Level::getInfo(), msg); } } void Logger::log(const LevelPtr& level1, const std::wstring& message, const log4cxx::spi::LocationInfo& location) const { if (isEnabledFor(level1)) { forcedLog(level1, message, location); } } void Logger::log(const LevelPtr& level1, const std::wstring& message) const { if (isEnabledFor(level1)) { forcedLog(level1, message); } } void Logger::warn(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) const { if (isWarnEnabled()) { forcedLog(log4cxx::Level::getWarn(), msg, location); } } void Logger::warn(const std::wstring& msg) const { if (isWarnEnabled()) { forcedLog(log4cxx::Level::getWarn(), msg); } } #endif #if LOG4CXX_UNICHAR_API || LOG4CXX_CFSTRING_API void Logger::forcedLog(const LevelPtr& level1, const std::basic_string& message, const LocationInfo& location) const { Pool p; LOG4CXX_DECODE_UNICHAR(msg, message); LoggingEventPtr event(new LoggingEvent(name, level1, msg, location)); callAppenders(event, p); } void Logger::forcedLog(const LevelPtr& level1, const std::basic_string& message) const { Pool p; LOG4CXX_DECODE_UNICHAR(msg, message); LoggingEventPtr event(new LoggingEvent(name, level1, msg, LocationInfo::getLocationUnavailable())); callAppenders(event, p); } #endif #if LOG4CXX_UNICHAR_API void Logger::getName(std::basic_string& rv) const { Transcoder::encode(name, rv); } LoggerPtr Logger::getLogger(const std::basic_string& name) { return LogManager::getLogger(name); } void Logger::trace(const std::basic_string& msg, const log4cxx::spi::LocationInfo& location) const { if (isTraceEnabled()) { forcedLog(log4cxx::Level::getTrace(), msg, location); } } void Logger::trace(const std::basic_string& msg) const { if (isTraceEnabled()) { forcedLog(log4cxx::Level::getTrace(), msg); } } void Logger::debug(const std::basic_string& msg, const log4cxx::spi::LocationInfo& location) const { if (isDebugEnabled()) { forcedLog(log4cxx::Level::getDebug(), msg, location); } } void Logger::debug(const std::basic_string& msg) const { if (isDebugEnabled()) { forcedLog(log4cxx::Level::getDebug(), msg); } } void Logger::error(const std::basic_string& msg, const log4cxx::spi::LocationInfo& location) const { if (isErrorEnabled()) { forcedLog(log4cxx::Level::getError(), msg, location); } } void Logger::error(const std::basic_string& msg) const { if (isErrorEnabled()) { forcedLog(log4cxx::Level::getError(), msg); } } void Logger::fatal(const std::basic_string& msg, const log4cxx::spi::LocationInfo& location) const { if (isFatalEnabled()) { forcedLog(log4cxx::Level::getFatal(), msg, location); } } void Logger::fatal(const std::basic_string& msg) const { if (isFatalEnabled()) { forcedLog(log4cxx::Level::getFatal(), msg); } } void Logger::info(const std::basic_string& msg, const log4cxx::spi::LocationInfo& location) const { if (isInfoEnabled()) { forcedLog(log4cxx::Level::getInfo(), msg, location); } } void Logger::info(const std::basic_string& msg) const { if (isInfoEnabled()) { forcedLog(log4cxx::Level::getInfo(), msg); } } void Logger::log(const LevelPtr& level1, const std::basic_string& message, const log4cxx::spi::LocationInfo& location) const { if (isEnabledFor(level1)) { forcedLog(level1, message, location); } } void Logger::log(const LevelPtr& level1, const std::basic_string& message) const { if (isEnabledFor(level1)) { forcedLog(level1, message); } } void Logger::warn(const std::basic_string& msg, const log4cxx::spi::LocationInfo& location) const { if (isWarnEnabled()) { forcedLog(log4cxx::Level::getWarn(), msg, location); } } void Logger::warn(const std::basic_string& msg) const { if (isWarnEnabled()) { forcedLog(log4cxx::Level::getWarn(), msg); } } #endif #if LOG4CXX_CFSTRING_API void Logger::forcedLog(const LevelPtr& level1, const CFStringRef& message, const LocationInfo& location) const { Pool p; LOG4CXX_DECODE_CFSTRING(msg, message); LoggingEventPtr event(new LoggingEvent(name, level1, msg, location)); callAppenders(event, p); } void Logger::forcedLog(const LevelPtr& level1, const CFStringRef& message) const { Pool p; LOG4CXX_DECODE_CFSTRING(msg, message); LoggingEventPtr event(new LoggingEvent(name, level1, msg, LocationInfo::getLocationUnavailable())); callAppenders(event, p); } void Logger::getName(CFStringRef& rv) const { rv = Transcoder::encode(name); } LoggerPtr Logger::getLogger(const CFStringRef& name) { return LogManager::getLogger(name); } void Logger::trace(const CFStringRef& msg, const log4cxx::spi::LocationInfo& location) const { if (isTraceEnabled()) { forcedLog(log4cxx::Level::getTrace(), msg, location); } } void Logger::trace(const CFStringRef& msg) const { if (isTraceEnabled()) { forcedLog(log4cxx::Level::getTrace(), msg); } } void Logger::debug(const CFStringRef& msg, const log4cxx::spi::LocationInfo& location) const { if (isDebugEnabled()) { forcedLog(log4cxx::Level::getDebug(), msg, location); } } void Logger::debug(const CFStringRef& msg) const { if (isDebugEnabled()) { forcedLog(log4cxx::Level::getDebug(), msg); } } void Logger::error(const CFStringRef& msg, const log4cxx::spi::LocationInfo& location) const { if (isErrorEnabled()) { forcedLog(log4cxx::Level::getError(), msg, location); } } void Logger::error(const CFStringRef& msg) const { if (isErrorEnabled()) { forcedLog(log4cxx::Level::getError(), msg); } } void Logger::fatal(const CFStringRef& msg, const log4cxx::spi::LocationInfo& location) const { if (isFatalEnabled()) { forcedLog(log4cxx::Level::getFatal(), msg, location); } } void Logger::fatal(const CFStringRef& msg) const { if (isFatalEnabled()) { forcedLog(log4cxx::Level::getFatal(), msg); } } void Logger::info(const CFStringRef& msg, const log4cxx::spi::LocationInfo& location) const { if (isInfoEnabled()) { forcedLog(log4cxx::Level::getInfo(), msg, location); } } void Logger::info(const CFStringRef& msg) const { if (isInfoEnabled()) { forcedLog(log4cxx::Level::getInfo(), msg); } } void Logger::log(const LevelPtr& level1, const CFStringRef& message, const log4cxx::spi::LocationInfo& location) const { if (isEnabledFor(level1)) { forcedLog(level1, message, location); } } void Logger::log(const LevelPtr& level1, const CFStringRef& message) const { if (isEnabledFor(level1)) { forcedLog(level1, message); } } void Logger::warn(const CFStringRef& msg, const log4cxx::spi::LocationInfo& location) const { if (isWarnEnabled()) { forcedLog(log4cxx::Level::getWarn(), msg, location); } } void Logger::warn(const CFStringRef& msg) const { if (isWarnEnabled()) { forcedLog(log4cxx::Level::getWarn(), msg); } } #endif apache-log4cxx-0.10.0/src/main/cpp/consoleappender.cpp100644 0 0 10045 10774263341 17737 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(ConsoleAppender) ConsoleAppender::ConsoleAppender() : target(getSystemOut()) { } ConsoleAppender::ConsoleAppender(const LayoutPtr& layout1) :target(getSystemOut()) { setLayout(layout1); WriterPtr wr(createWriter(getSystemOut())); setWriter(wr); Pool p; WriterAppender::activateOptions(p); } ConsoleAppender::ConsoleAppender(const LayoutPtr& layout1, const LogString& target1) : target(target1) { setLayout(layout1); WriterPtr wr(createWriter(target1)); setWriter(wr); Pool p; WriterAppender::activateOptions(p); } ConsoleAppender::~ConsoleAppender() { finalize(); } const LogString& ConsoleAppender::getSystemOut() { static const LogString name(LOG4CXX_STR("System.out")); return name; } const LogString& ConsoleAppender::getSystemErr() { static const LogString name(LOG4CXX_STR("System.err")); return name; } WriterPtr ConsoleAppender::createWriter(const LogString& value) { LogString v = StringHelper::trim(value); if (StringHelper::equalsIgnoreCase(v, LOG4CXX_STR("SYSTEM.ERR"), LOG4CXX_STR("system.err"))) { return new SystemErrWriter(); } return new SystemOutWriter(); } void ConsoleAppender::setTarget(const LogString& value) { LogString v = StringHelper::trim(value); if (StringHelper::equalsIgnoreCase(v, LOG4CXX_STR("SYSTEM.OUT"), LOG4CXX_STR("system.out"))) { target = getSystemOut(); } else if (StringHelper::equalsIgnoreCase(v, LOG4CXX_STR("SYSTEM.ERR"), LOG4CXX_STR("system.err"))) { target = getSystemErr(); } else { targetWarn(value); } } LogString ConsoleAppender::getTarget() const { return target; } void ConsoleAppender::targetWarn(const LogString& val) { LogLog::warn(((LogString) LOG4CXX_STR("[")) + val + LOG4CXX_STR("] should be system.out or system.err.")); LogLog::warn(LOG4CXX_STR("Using previously set target, System.out by default.")); } void ConsoleAppender::activateOptions(Pool& p) { if(StringHelper::equalsIgnoreCase(target, LOG4CXX_STR("SYSTEM.OUT"), LOG4CXX_STR("system.out"))) { WriterPtr writer1(new SystemOutWriter()); setWriter(writer1); } else if (StringHelper::equalsIgnoreCase(target, LOG4CXX_STR("SYSTEM.ERR"), LOG4CXX_STR("system.err"))) { WriterPtr writer1(new SystemErrWriter()); setWriter(writer1); } WriterAppender::activateOptions(p); } void ConsoleAppender::setOption(const LogString& option, const LogString& value) { if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("TARGET"), LOG4CXX_STR("target"))) { setTarget(value); } else { WriterAppender::setOption(option, value); } } apache-log4cxx-0.10.0/src/main/cpp/odbcappender.cpp100644 0 0 20543 10774263341 17210 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include #if !defined(LOG4CXX) #define LOG4CXX 1 #endif #include #if LOG4CXX_HAVE_ODBC #if defined(WIN32) || defined(_WIN32) #include #endif #include #endif using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::db; using namespace log4cxx::spi; SQLException::SQLException(short fHandleType, void* hInput, const char* prolog, log4cxx::helpers::Pool& p) : Exception(formatMessage(fHandleType, hInput, prolog, p)) { } SQLException::SQLException(const char* msg) : Exception(msg) { } SQLException::SQLException(const SQLException& src) : Exception(src) { } const char* SQLException::formatMessage(short fHandleType, void* hInput, const char* prolog, log4cxx::helpers::Pool& p) { std::string strReturn(prolog); strReturn.append(" - "); #if LOG4CXX_HAVE_ODBC SQLCHAR SqlState[6]; SQLCHAR Msg[SQL_MAX_MESSAGE_LENGTH]; SQLINTEGER NativeError; SQLSMALLINT i; SQLSMALLINT MsgLen; SQLRETURN rc2; // Get the status records. i = 1; while ((rc2 = SQLGetDiagRecA(fHandleType, hInput, i, SqlState, &NativeError, Msg, sizeof(Msg), &MsgLen)) != SQL_NO_DATA) { strReturn.append((char*) Msg); i++; } #else strReturn.append("log4cxx built without ODBC support"); #endif return apr_pstrdup((apr_pool_t*) p.getAPRPool(), strReturn.c_str()); } IMPLEMENT_LOG4CXX_OBJECT(ODBCAppender) ODBCAppender::ODBCAppender() : connection(0), env(0), bufferSize(1) { } ODBCAppender::~ODBCAppender() { finalize(); } void ODBCAppender::setOption(const LogString& option, const LogString& value) { if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("BUFFERSIZE"), LOG4CXX_STR("buffersize"))) { setBufferSize((size_t)OptionConverter::toInt(value, 1)); } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("PASSWORD"), LOG4CXX_STR("password"))) { setPassword(value); } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("SQL"), LOG4CXX_STR("sql"))) { setSql(value); } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("URL"), LOG4CXX_STR("url")) || StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("DSN"), LOG4CXX_STR("dsn")) || StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("CONNECTIONSTRING"), LOG4CXX_STR("connectionstring")) ) { setURL(value); } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("USER"), LOG4CXX_STR("user"))) { setUser(value); } else { AppenderSkeleton::setOption(option, value); } } void ODBCAppender::activateOptions(log4cxx::helpers::Pool&) { #if !LOG4CXX_HAVE_ODBC LogLog::error(LOG4CXX_STR("Can not activate ODBCAppender unless compiled with ODBC support.")); #endif } void ODBCAppender::append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p) { #if LOG4CXX_HAVE_ODBC buffer.push_back(event); if (buffer.size() >= bufferSize) flushBuffer(p); #endif } LogString ODBCAppender::getLogStatement(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p) const { LogString sbuf; getLayout()->format(sbuf, event, p); return sbuf; } void ODBCAppender::execute(const LogString& sql, log4cxx::helpers::Pool& p) { #if LOG4CXX_HAVE_ODBC SQLRETURN ret; SQLHDBC con = SQL_NULL_HDBC; SQLHSTMT stmt = SQL_NULL_HSTMT; try { con = getConnection(p); ret = SQLAllocHandle( SQL_HANDLE_STMT, con, &stmt); if (ret < 0) { throw SQLException( SQL_HANDLE_DBC, con, "Failed to allocate sql handle.", p); } SQLWCHAR* wsql = Transcoder::wencode(sql, p); ret = SQLExecDirectW(stmt, wsql, SQL_NTS); if (ret < 0) { throw SQLException(SQL_HANDLE_STMT, stmt, "Failed to execute sql statement.", p); } } catch (SQLException& e) { if (stmt != SQL_NULL_HSTMT) { SQLFreeHandle(SQL_HANDLE_STMT, stmt); } throw e; } SQLFreeHandle(SQL_HANDLE_STMT, stmt); closeConnection(con); #else throw SQLException("log4cxx build without ODBC support"); #endif } /* The default behavior holds a single connection open until the appender is closed (typically when garbage collected).*/ void ODBCAppender::closeConnection(ODBCAppender::SQLHDBC /* con */) { } ODBCAppender::SQLHDBC ODBCAppender::getConnection(log4cxx::helpers::Pool& p) { #if LOG4CXX_HAVE_ODBC SQLRETURN ret; if (env == SQL_NULL_HENV) { ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env); if (ret < 0) { SQLException ex(SQL_HANDLE_ENV, env, "Failed to allocate SQL handle.", p); env = SQL_NULL_HENV; throw ex; } ret = SQLSetEnvAttr(env, SQL_ATTR_ODBC_VERSION, (SQLPOINTER) SQL_OV_ODBC3, SQL_IS_INTEGER); if (ret < 0) { SQLException ex(SQL_HANDLE_ENV, env, "Failed to set odbc version.", p); SQLFreeHandle(SQL_HANDLE_ENV, env); env = SQL_NULL_HENV; throw ex; } } if (connection == SQL_NULL_HDBC) { ret = SQLAllocHandle(SQL_HANDLE_DBC, env, &connection); if (ret < 0) { SQLException ex(SQL_HANDLE_DBC, connection, "Failed to allocate sql handle.", p); connection = SQL_NULL_HDBC; throw ex; } SQLWCHAR* wURL = Transcoder::wencode(databaseURL, p); wchar_t szOutConnectionString[1024]; SQLSMALLINT nOutConnctionLength = 0; ret = SQLDriverConnectW( connection, NULL, wURL, SQL_NTS, szOutConnectionString, sizeof( szOutConnectionString ), &nOutConnctionLength, SQL_DRIVER_NOPROMPT ); if (ret < 0) { SQLException ex(SQL_HANDLE_DBC, connection, "Failed to connect to database.", p); SQLFreeHandle(SQL_HANDLE_DBC, connection); connection = SQL_NULL_HDBC; throw ex; } } return connection; #else return 0; #endif } void ODBCAppender::close() { if (closed) { return; } Pool p; try { flushBuffer(p); } catch (SQLException& e) { errorHandler->error(LOG4CXX_STR("Error closing connection"), e, ErrorCode::GENERIC_FAILURE); } #if LOG4CXX_HAVE_ODBC if (connection != SQL_NULL_HDBC) { SQLDisconnect(connection); SQLFreeHandle(SQL_HANDLE_DBC, connection); } if (env != SQL_NULL_HENV) { SQLFreeHandle(SQL_HANDLE_ENV, env); } #endif this->closed = true; } void ODBCAppender::flushBuffer(Pool& p) { std::list::iterator i; for (i = buffer.begin(); i != buffer.end(); i++) { try { const LoggingEventPtr& logEvent = *i; LogString sql = getLogStatement(logEvent, p); execute(sql, p); } catch (SQLException& e) { errorHandler->error(LOG4CXX_STR("Failed to excute sql"), e, ErrorCode::FLUSH_FAILURE); } } // clear the buffer of reported events buffer.clear(); } void ODBCAppender::setSql(const LogString& s) { sqlStatement = s; if (getLayout() == 0) { this->setLayout(new PatternLayout(s)); } else { PatternLayoutPtr patternLayout = this->getLayout(); if (patternLayout != 0) { patternLayout->setConversionPattern(s); } } } apache-log4cxx-0.10.0/src/main/cpp/condition.cpp100644 0 0 3660 10774263341 16531 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include using namespace log4cxx::helpers; using namespace log4cxx; Condition::Condition(Pool& p) { #if APR_HAS_THREADS apr_status_t stat = apr_thread_cond_create(&condition, p.getAPRPool()); if (stat != APR_SUCCESS) { throw RuntimeException(stat); } #endif } Condition::~Condition() { #if APR_HAS_THREADS apr_thread_cond_destroy(condition); #endif } log4cxx_status_t Condition::signalAll() { #if APR_HAS_THREADS return apr_thread_cond_broadcast(condition); #else return APR_SUCCESS; #endif } void Condition::await(Mutex& mutex) { #if APR_HAS_THREADS if (Thread::interrupted()) { throw InterruptedException(); } apr_status_t stat = apr_thread_cond_wait( condition, mutex.getAPRMutex()); if (stat != APR_SUCCESS) { throw InterruptedException(stat); } #endif } apache-log4cxx-0.10.0/src/main/cpp/throwableinformationpatternconverter.cpp100644 0 0 4343 10774263341 24325 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::pattern; using namespace log4cxx::spi; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(ThrowableInformationPatternConverter) ThrowableInformationPatternConverter::ThrowableInformationPatternConverter(bool shortReport1) : LoggingEventPatternConverter(LOG4CXX_STR("Throwable"), LOG4CXX_STR("throwable")), shortReport(shortReport1) { } PatternConverterPtr ThrowableInformationPatternConverter::newInstance( const std::vector& options) { if (options.size() > 0 && options[0].compare(LOG4CXX_STR("short")) == 0) { static PatternConverterPtr shortConverter(new ThrowableInformationPatternConverter(true)); return shortConverter; } static PatternConverterPtr converter(new ThrowableInformationPatternConverter(false)); return converter; } void ThrowableInformationPatternConverter::format( const LoggingEventPtr& /* event */, LogString& /* toAppendTo */, Pool& /* p */) const { } /** * This converter obviously handles throwables. * @return true. */ bool ThrowableInformationPatternConverter::handlesThrowable() const { return true; } apache-log4cxx-0.10.0/src/main/cpp/propertyresourcebundle.cpp100644 0 0 3330 10774263341 21363 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #if !defined(LOG4CXX) #define LOG4CXX 1 #endif #include using namespace log4cxx; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(PropertyResourceBundle) PropertyResourceBundle::PropertyResourceBundle(InputStreamPtr inStream) { properties.load(inStream); } LogString PropertyResourceBundle::getString(const LogString& key) const { LogString resource; PropertyResourceBundlePtr resourceBundle(const_cast(this)); do { resource = resourceBundle->properties.getProperty(key); if (!resource.empty()) { return resource; } resourceBundle = resourceBundle->parent; } while (resourceBundle != 0); throw MissingResourceException(key); #if LOG4CXX_RETURN_AFTER_THROW return resource; #endif } apache-log4cxx-0.10.0/src/main/cpp/objectimpl.cpp100644 0 0 2447 10774263341 16675 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #if !defined(LOG4CXX) #define LOG4CXX 1 #endif #include using namespace log4cxx::helpers; ObjectImpl::ObjectImpl() : ref( 0 ) { log4cxx::helpers::APRInitializer::initialize(); } ObjectImpl::~ObjectImpl() { } void ObjectImpl::addRef() const { apr_atomic_inc32( & ref ); } void ObjectImpl::releaseRef() const { if ( apr_atomic_dec32( & ref ) == 0 ) { delete this; } } apache-log4cxx-0.10.0/src/main/cpp/levelmatchfilter.cpp100644 0 0 4442 10774263341 20074 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::filter; using namespace log4cxx::spi; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(LevelMatchFilter) LevelMatchFilter::LevelMatchFilter() : acceptOnMatch(true) { } void LevelMatchFilter::setOption(const LogString& option, const LogString& value) { if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("LEVELTOMATCH"), LOG4CXX_STR("leveltomatch"))) { setLevelToMatch(value); } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("ACCEPTONMATCH"), LOG4CXX_STR("acceptonmatch"))) { acceptOnMatch = OptionConverter::toBoolean(value, acceptOnMatch); } } void LevelMatchFilter::setLevelToMatch(const LogString& levelToMatch1) { this->levelToMatch = OptionConverter::toLevel(levelToMatch1, this->levelToMatch); } LogString LevelMatchFilter::getLevelToMatch() const { return levelToMatch->toString(); } Filter::FilterDecision LevelMatchFilter::decide( const log4cxx::spi::LoggingEventPtr& event) const { if(levelToMatch != 0 && levelToMatch->equals(event->getLevel())) { if(acceptOnMatch) { return Filter::ACCEPT; } else { return Filter::DENY; } } else { return Filter::NEUTRAL; } } apache-log4cxx-0.10.0/src/main/cpp/writerappender.cpp100644 0 0 15270 10774263341 17616 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; using namespace log4cxx::spi; IMPLEMENT_LOG4CXX_OBJECT(WriterAppender) WriterAppender::WriterAppender() { synchronized sync(mutex); immediateFlush = true; } WriterAppender::WriterAppender(const LayoutPtr& layout1, log4cxx::helpers::WriterPtr& writer1) : AppenderSkeleton(layout1), writer(writer1) { Pool p; synchronized sync(mutex); immediateFlush = true; activateOptions(p); } WriterAppender::WriterAppender(const LayoutPtr& layout1) : AppenderSkeleton(layout1) { synchronized sync(mutex); immediateFlush = true; } WriterAppender::~WriterAppender() { finalize(); } void WriterAppender::activateOptions(Pool& p) { int errors = 0; if(layout == 0) { errorHandler->error( ((LogString) LOG4CXX_STR("No layout set for the appender named [")) + name+ LOG4CXX_STR("].")); errors++; } if(writer == 0) { errorHandler->error( ((LogString) LOG4CXX_STR("No writer set for the appender named [")) + name+ LOG4CXX_STR("].")); errors++; } if (errors == 0) { AppenderSkeleton::activateOptions(p); } } void WriterAppender::append(const spi::LoggingEventPtr& event, Pool& pool1) { if(!checkEntryConditions()) { return; } subAppend(event, pool1); } /** This method determines if there is a sense in attempting to append.

It checks whether there is a set output target and also if there is a set layout. If these checks fail, then the boolean value false is returned. */ bool WriterAppender::checkEntryConditions() const { static bool warnedClosed = false; static bool warnedNoWriter = false; if (closed) { if(!warnedClosed) { LogLog::warn(LOG4CXX_STR("Not allowed to write to a closed appender.")); warnedClosed = true; } return false; } if (writer == 0) { if (!warnedNoWriter) { LogLog::error( LogString(LOG4CXX_STR("No output stream or file set for the appender named [")) + name + LOG4CXX_STR("].")); warnedNoWriter = true; } return false; } return true; } /** Close this appender instance. The underlying stream or writer is also closed.

Closed appenders cannot be reused. @see #setWriter */ void WriterAppender::close() { synchronized sync(mutex); if(closed) { return; } closed = true; closeWriter(); } /** * Close the underlying {@link java.io.Writer}. * */ void WriterAppender::closeWriter() { if (writer != NULL) { try { // before closing we have to output out layout's footer // // Using the object's pool since this is a one-shot operation // and pool is likely to be reclaimed soon when appender is destructed. // writeFooter(pool); writer->close(pool); writer = 0; } catch (IOException& e) { LogLog::error(LogString(LOG4CXX_STR("Could not close writer for WriterAppender named "))+name, e); } } } /** Returns an OutputStreamWriter when passed an OutputStream. The encoding used will depend on the value of the encoding property. If the encoding value is specified incorrectly the writer will be opened using the default system encoding (an error message will be printed to the loglog. */ WriterPtr WriterAppender::createWriter(OutputStreamPtr& os) { LogString enc(getEncoding()); CharsetEncoderPtr encoder; if (enc.empty()) { encoder = CharsetEncoder::getDefaultEncoder(); } else { if(StringHelper::equalsIgnoreCase(enc, LOG4CXX_STR("utf-16"), LOG4CXX_STR("UTF-16"))) { encoder = CharsetEncoder::getEncoder(LOG4CXX_STR("UTF-16BE")); } else { encoder = CharsetEncoder::getEncoder(enc); } if (encoder == NULL) { encoder = CharsetEncoder::getDefaultEncoder(); LogLog::warn(LOG4CXX_STR("Error initializing output writer.")); LogLog::warn(LOG4CXX_STR("Unsupported encoding?")); } } return new OutputStreamWriter(os, encoder); } LogString WriterAppender::getEncoding() const { return encoding; } void WriterAppender::setEncoding(const LogString& enc) { encoding = enc; } void WriterAppender::subAppend(const spi::LoggingEventPtr& event, Pool& p) { LogString msg; layout->format(msg, event, p); { synchronized sync(mutex); if (writer != NULL) { writer->write(msg, p); if (immediateFlush) { writer->flush(p); } } } } void WriterAppender::writeFooter(Pool& p) { if (layout != NULL) { LogString foot; layout->appendFooter(foot, p); synchronized sync(mutex); writer->write(foot, p); } } void WriterAppender::writeHeader(Pool& p) { if(layout != NULL) { LogString header; layout->appendHeader(header, p); synchronized sync(mutex); writer->write(header, p); } } void WriterAppender::setWriter(const WriterPtr& newWriter) { synchronized sync(mutex); writer = newWriter; } bool WriterAppender::requiresLayout() const { return true; } void WriterAppender::setOption(const LogString& option, const LogString& value) { if(StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("ENCODING"), LOG4CXX_STR("encoding"))) { setEncoding(value); } else { AppenderSkeleton::setOption(option, value); } } void WriterAppender::setImmediateFlush(bool value) { synchronized sync(mutex); immediateFlush = value; } apache-log4cxx-0.10.0/src/main/cpp/levelpatternconverter.cpp100644 0 0 5010 10774263341 21167 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::pattern; using namespace log4cxx::spi; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(LevelPatternConverter) LevelPatternConverter::LevelPatternConverter() : LoggingEventPatternConverter(LOG4CXX_STR("Level"), LOG4CXX_STR("level")) { } PatternConverterPtr LevelPatternConverter::newInstance( const std::vector& /* options */) { static PatternConverterPtr def(new LevelPatternConverter()); return def; } void LevelPatternConverter::format( const LoggingEventPtr& event, LogString& toAppendTo, log4cxx::helpers::Pool& /* p */) const { toAppendTo.append(event->getLevel()->toString()); } /** * {@inheritDoc} */ LogString LevelPatternConverter::getStyleClass(const ObjectPtr& obj) const { LoggingEventPtr e(obj); if (e != NULL) { int lint = e->getLevel()->toInt(); switch (lint) { case Level::TRACE_INT: return LOG4CXX_STR("level trace"); case Level::DEBUG_INT: return LOG4CXX_STR("level debug"); case Level::INFO_INT: return LOG4CXX_STR("level info"); case Level::WARN_INT: return LOG4CXX_STR("level warn"); case Level::ERROR_INT: return LOG4CXX_STR("level error"); case Level::FATAL_INT: return LOG4CXX_STR("level fatal"); default: return LogString(LOG4CXX_STR("level ")) + e->getLevel()->toString(); } } return LOG4CXX_STR("level"); } apache-log4cxx-0.10.0/src/main/cpp/threadpatternconverter.cpp100644 0 0 3324 10774263341 21335 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if defined(_MSC_VER) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include using namespace log4cxx; using namespace log4cxx::pattern; using namespace log4cxx::spi; using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(ThreadPatternConverter) ThreadPatternConverter::ThreadPatternConverter() : LoggingEventPatternConverter(LOG4CXX_STR("Thread"), LOG4CXX_STR("Thread")) { } PatternConverterPtr ThreadPatternConverter::newInstance( const std::vector& /* options */) { static PatternConverterPtr def(new ThreadPatternConverter()); return def; } void ThreadPatternConverter::format( const LoggingEventPtr& event, LogString& toAppendTo, Pool& /* p */) const { toAppendTo.append(event->getThreadName()); } apache-log4cxx-0.10.0/src/main/include/log4cxx/db/odbcappender.h100644 0 0 27621 10774263341 21477 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_DB_ODBC_APPENDER_H #define _LOG4CXX_DB_ODBC_APPENDER_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include namespace log4cxx { namespace db { class LOG4CXX_EXPORT SQLException : public log4cxx::helpers::Exception { public: SQLException(short fHandleType, void* hInput, const char* prolog, log4cxx::helpers::Pool& p); SQLException(const char* msg); SQLException(const SQLException& src); private: const char* formatMessage(short fHandleType, void* hInput, const char* prolog, log4cxx::helpers::Pool& p); }; /**

WARNING: This version of ODBCAppender is very likely to be completely replaced in the future. Moreoever, it does not log exceptions.

The ODBCAppender provides for sending log events to a database.

Each append call adds to an ArrayList buffer. When the buffer is filled each log event is placed in a sql statement (configurable) and executed. BufferSize, db URL, User, & Password are configurable options in the standard log4j ways.

The setSql(String sql) sets the SQL statement to be used for logging -- this statement is sent to a PatternLayout (either created automaticly by the appender or added by the user). Therefore by default all the conversion patterns in PatternLayout can be used inside of the statement. (see the test cases for examples)

Overriding the {@link #getLogStatement} method allows more explicit control of the statement used for logging.

For use as a base class:

  • Override getConnection() to pass any connection you want. Typically this is used to enable application wide connection pooling.
  • Override closeConnection -- if you override getConnection make sure to implement closeConnection to handle the connection you generated. Typically this would return the connection to the pool it came from.
  • Override getLogStatement to produce specialized or dynamic statements. The default uses the sql option value.
*/ class LOG4CXX_EXPORT ODBCAppender : public AppenderSkeleton { protected: /** * URL of the DB for default connection handling */ LogString databaseURL; /** * User to connect as for default connection handling */ LogString databaseUser; /** * User to use for default connection handling */ LogString databasePassword; typedef void* SQLHDBC; typedef void* SQLHENV; typedef void* SQLHANDLE; typedef short SQLSMALLINT; /** * Connection used by default. The connection is opened the first time it * is needed and then held open until the appender is closed (usually at * garbage collection). This behavior is best modified by creating a * sub-class and overriding the getConnection and * closeConnection methods. */ SQLHDBC connection; SQLHENV env; /** * Stores the string given to the pattern layout for conversion into a SQL * statement, eg: insert into LogTable (Thread, File, Message) values * ("%t", "%F", "%m") * * Be careful of quotes in your messages! * * Also see PatternLayout. */ LogString sqlStatement; /** * size of LoggingEvent buffer before writing to the database. * Default is 1. */ size_t bufferSize; /** * ArrayList holding the buffer of Logging Events. */ std::list buffer; public: DECLARE_LOG4CXX_OBJECT(ODBCAppender) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(ODBCAppender) LOG4CXX_CAST_ENTRY_CHAIN(AppenderSkeleton) END_LOG4CXX_CAST_MAP() ODBCAppender(); virtual ~ODBCAppender(); /** Set options */ virtual void setOption(const LogString& option, const LogString& value); /** Activate the specified options. */ virtual void activateOptions(log4cxx::helpers::Pool& p); /** * Adds the event to the buffer. When full the buffer is flushed. */ void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool&); /** * By default getLogStatement sends the event to the required Layout object. * The layout will format the given pattern into a workable SQL string. * * Overriding this provides direct access to the LoggingEvent * when constructing the logging statement. * */ protected: LogString getLogStatement(const spi::LoggingEventPtr& event, helpers::Pool& p) const; /** * * Override this to provide an alertnate method of getting * connections (such as caching). One method to fix this is to open * connections at the start of flushBuffer() and close them at the * end. I use a connection pool outside of ODBCAppender which is * accessed in an override of this method. * */ virtual void execute(const LogString& sql, log4cxx::helpers::Pool& p) /*throw(SQLException)*/; /** * Override this to return the connection to a pool, or to clean up the * resource. * * The default behavior holds a single connection open until the appender * is closed (typically when garbage collected). */ virtual void closeConnection(SQLHDBC con); /** * Override this to link with your connection pooling system. * * By default this creates a single connection which is held open * until the object is garbage collected. */ virtual SQLHDBC getConnection(log4cxx::helpers::Pool& p) /*throw(SQLException)*/; /** * Closes the appender, flushing the buffer first then closing the default * connection if it is open. */ public: virtual void close(); /** * loops through the buffer of LoggingEvents, gets a * sql string from getLogStatement() and sends it to execute(). * Errors are sent to the errorHandler. * * If a statement fails the LoggingEvent stays in the buffer! */ virtual void flushBuffer(log4cxx::helpers::Pool& p); /** * ODBCAppender requires a layout. * */ virtual bool requiresLayout() const { return true; } /** * Set pre-formated statement eg: insert into LogTable (msg) values ("%m") */ void setSql(const LogString& s); /** * Returns pre-formated statement eg: insert into LogTable (msg) values ("%m") */ inline const LogString& getSql() const { return sqlStatement; } inline void setUser(const LogString& user) { databaseUser = user; } inline void setURL(const LogString& url) { databaseURL = url; } inline void setPassword(const LogString& password) { databasePassword = password; } inline void setBufferSize(size_t newBufferSize) { bufferSize = newBufferSize; } inline const LogString& getUser() const { return databaseUser; } inline const LogString& getURL() const { return databaseURL; } inline const LogString& getPassword() const { return databasePassword; } inline size_t getBufferSize() const { return bufferSize; } private: ODBCAppender(const ODBCAppender&); ODBCAppender& operator=(const ODBCAppender&); }; // class ODBCAppender LOG4CXX_PTR_DEF(ODBCAppender); } // namespace db } // namespace log4cxx #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif // _LOG4CXX_DB_ODBC_APPENDER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/db/Makefile.am100644 0 0 1562 10774263341 20710 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # dbincdir = $(includedir)/log4cxx/db dbinc_HEADERS= $(top_srcdir)/src/main/include/log4cxx/db/*.h apache-log4cxx-0.10.0/src/main/include/log4cxx/db/Makefile.in100644 0 0 32040 10774264475 20745 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/main/include/log4cxx/db DIST_COMMON = $(dbinc_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(dbincdir)" dbincHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(dbinc_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # dbincdir = $(includedir)/log4cxx/db dbinc_HEADERS = $(top_srcdir)/src/main/include/log4cxx/db/*.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/include/log4cxx/db/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/main/include/log4cxx/db/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-dbincHEADERS: $(dbinc_HEADERS) @$(NORMAL_INSTALL) test -z "$(dbincdir)" || $(mkdir_p) "$(DESTDIR)$(dbincdir)" @list='$(dbinc_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(dbincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(dbincdir)/$$f'"; \ $(dbincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(dbincdir)/$$f"; \ done uninstall-dbincHEADERS: @$(NORMAL_UNINSTALL) @list='$(dbinc_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(dbincdir)/$$f'"; \ rm -f "$(DESTDIR)$(dbincdir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(mkdir_p) $(distdir)/../../../../../src/main/include/log4cxx/db @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(dbincdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dbincHEADERS install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dbincHEADERS uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dbincHEADERS install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-dbincHEADERS \ uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/location/locationinfo.h100644 0 0 7164 10774263344 23536 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_SPI_LOCATION_LOCATIONINFO_H #define _LOG4CXX_SPI_LOCATION_LOCATIONINFO_H #include #include #include namespace log4cxx { namespace spi { /** * This class represents the location of a logging statement. * */ class LOG4CXX_EXPORT LocationInfo { public: /** * When location information is not available the constant * NA is returned. Current value of this string constant is ?. */ static const char * const NA; static const char * const NA_METHOD; static const LocationInfo& getLocationUnavailable(); /** * Constructor. * @remarks Used by LOG4CXX_LOCATION to generate * location info for current code site */ LocationInfo( const char * const fileName, const char * const functionName, int lineNumber); /** * Default constructor. */ LocationInfo(); /** * Copy constructor. * @param src source location */ LocationInfo( const LocationInfo & src ); /** * Assignment operator. * @param src source location */ LocationInfo & operator = ( const LocationInfo & src ); /** * Resets location info to default state. */ void clear(); /** Return the class name of the call site. */ const std::string getClassName() const; /** * Return the file name of the caller. * @returns file name, may be null. */ const char * getFileName() const; /** * Returns the line number of the caller. * @returns line number, -1 if not available. */ int getLineNumber() const; /** Returns the method name of the caller. */ const std::string getMethodName() const; void write(log4cxx::helpers::ObjectOutputStream& os, log4cxx::helpers::Pool& p) const; private: /** Caller's line number. */ int lineNumber; /** Caller's file name. */ const char * fileName; /** Caller's method name. */ const char * methodName; }; } } #if !defined(LOG4CXX_LOCATION) #if defined(_MSC_VER) #if _MSC_VER >= 1300 #define __LOG4CXX_FUNC__ __FUNCSIG__ #endif #else #if defined(__GNUC__) #define __LOG4CXX_FUNC__ __PRETTY_FUNCTION__ #endif #endif #if !defined(__LOG4CXX_FUNC__) #define __LOG4CXX_FUNC__ "" #endif #define LOG4CXX_LOCATION ::log4cxx::spi::LocationInfo(__FILE__, \ __LOG4CXX_FUNC__, \ __LINE__) #endif #endif //_LOG4CXX_SPI_LOCATION_LOCATIONINFO_H apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/location/Makefile.am100644 0 0 1610 10774263344 22723 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # spiincdir = $(includedir)/log4cxx/spi/location spiinc_HEADERS= $(top_srcdir)/src/main/include/log4cxx/spi/location/*.h apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/location/Makefile.in100644 0 0 32172 10774264476 22772 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/main/include/log4cxx/spi/location DIST_COMMON = $(spiinc_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(spiincdir)" spiincHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(spiinc_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # spiincdir = $(includedir)/log4cxx/spi/location spiinc_HEADERS = $(top_srcdir)/src/main/include/log4cxx/spi/location/*.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/include/log4cxx/spi/location/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/main/include/log4cxx/spi/location/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-spiincHEADERS: $(spiinc_HEADERS) @$(NORMAL_INSTALL) test -z "$(spiincdir)" || $(mkdir_p) "$(DESTDIR)$(spiincdir)" @list='$(spiinc_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(spiincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(spiincdir)/$$f'"; \ $(spiincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(spiincdir)/$$f"; \ done uninstall-spiincHEADERS: @$(NORMAL_UNINSTALL) @list='$(spiinc_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(spiincdir)/$$f'"; \ rm -f "$(DESTDIR)$(spiincdir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(mkdir_p) $(distdir)/../../../../../../src/main/include/log4cxx/spi/location @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(spiincdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-spiincHEADERS install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am uninstall-spiincHEADERS .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-spiincHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-info-am \ uninstall-spiincHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/hierarchyeventlistener.h100644 0 0 4303 10774263345 24021 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_SPI_HIERARCHY_EVENT_LISTENER_H #define _LOG4CXX_SPI_HIERARCHY_EVENT_LISTENER_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include namespace log4cxx { class Logger; class Appender; namespace spi { /** Listen to events occuring within a Hierarchy.*/ class LOG4CXX_EXPORT HierarchyEventListener : public virtual log4cxx::helpers::Object { public: virtual ~HierarchyEventListener() {} virtual void addAppenderEvent( const log4cxx::helpers::ObjectPtrT& logger, const log4cxx::helpers::ObjectPtrT& appender) = 0; virtual void removeAppenderEvent( const log4cxx::helpers::ObjectPtrT& logger, const log4cxx::helpers::ObjectPtrT& appender) = 0; }; LOG4CXX_PTR_DEF(HierarchyEventListener); LOG4CXX_LIST_DEF(HierarchyEventListenerList, HierarchyEventListenerPtr); } // namespace spi } // namespace log4cxx #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif //_LOG4CXX_SPI_HIERARCHY_EVENT_LISTENER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/loggerrepository.h100644 0 0 10550 10774263345 22673 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_SPI_LOG_REPOSITORY_H #define _LOG4CXX_SPI_LOG_REPOSITORY_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include namespace log4cxx { namespace spi { /** A LoggerRepository is used to create and retrieve Loggers. The relation between loggers in a repository depends on the repository but typically loggers are arranged in a named hierarchy.

In addition to the creational methods, a LoggerRepository can be queried for existing loggers, can act as a point of registry for events related to loggers. */ class LOG4CXX_EXPORT LoggerRepository : public virtual helpers::Object { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(LoggerRepository) virtual ~LoggerRepository() {} /** Add a {@link spi::HierarchyEventListener HierarchyEventListener} event to the repository. */ virtual void addHierarchyEventListener(const HierarchyEventListenerPtr& listener) = 0; /** Is the repository disabled for a given level? The answer depends on the repository threshold and the level parameter. See also #setThreshold method. */ virtual bool isDisabled(int level) const = 0; /** Set the repository-wide threshold. All logging requests below the threshold are immediately dropped. By default, the threshold is set to Level::getAll() which has the lowest possible rank. */ virtual void setThreshold(const LevelPtr& level) = 0; /** Another form of {@link #setThreshold(const LevelPtr&) setThreshold} accepting a string parameter instead of a Level. */ virtual void setThreshold(const LogString& val) = 0; virtual void emitNoAppenderWarning(const LoggerPtr& logger) = 0; /** Get the repository-wide threshold. See {@link #setThreshold(const LevelPtr&) setThreshold} for an explanation. */ virtual const LevelPtr& getThreshold() const = 0; virtual LoggerPtr getLogger(const LogString& name) = 0; virtual LoggerPtr getLogger(const LogString& name, const spi::LoggerFactoryPtr& factory) = 0; virtual LoggerPtr getRootLogger() const = 0; virtual LoggerPtr exists(const LogString& name) = 0; virtual void shutdown() = 0; virtual LoggerList getCurrentLoggers() const = 0; virtual void fireAddAppenderEvent(const LoggerPtr& logger, const AppenderPtr& appender) = 0; virtual void resetConfiguration() = 0; virtual bool isConfigured() = 0; virtual void setConfigured(bool configured) = 0; }; // class LoggerRepository } // namespace spi } // namespace log4cxx #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif //_LOG4CXX_SPI_LOG_REPOSITORY_H apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/repositoryselector.h100644 0 0 4160 10774263345 23214 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_SPI_REPOSITORY_SELECTOR_H #define _LOG4CXX_SPI_REPOSITORY_SELECTOR_H #include #include namespace log4cxx { namespace spi { class LoggerRepository; typedef helpers::ObjectPtrT LoggerRepositoryPtr; /** The LogManager uses one (and only one) RepositorySelector implementation to select the {@link log4cxx::spi::LoggerRepository LoggerRepository} for a particular application context.

It is the responsability of the RepositorySelector implementation to track the application context. log4cxx makes no assumptions about the application context or on its management.

See also LogManager. */ class LOG4CXX_EXPORT RepositorySelector : public virtual helpers::Object { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(RepositorySelector) virtual ~RepositorySelector() {} virtual LoggerRepositoryPtr& getLoggerRepository() = 0; }; LOG4CXX_PTR_DEF(RepositorySelector); } //namespace spi } //namespace log4cxx #endif //_LOG4CXX_SPI_REPOSITORY_SELECTOR_H apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/configurator.h100644 0 0 3561 10774263345 21742 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_SPI_CONFIGURATOR_H #define _LOG4CXX_SPI_CONFIGURATOR_H #include namespace log4cxx { class File; namespace spi { /** Implemented by classes capable of configuring log4j using a URL. */ class LOG4CXX_EXPORT Configurator : virtual public helpers::Object { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(Configurator) Configurator(); /** Interpret a resource pointed by a URL and set up log4j accordingly. The configuration is done relative to the hierarchy parameter. @param configFileName The file to parse @param repository The hierarchy to operation upon. */ virtual void doConfigure(const File& configFileName, spi::LoggerRepositoryPtr& repository) = 0; private: Configurator(const Configurator&); Configurator& operator=(const Configurator&); bool initialized; }; LOG4CXX_PTR_DEF(Configurator); } } #endif // _LOG4CXX_SPI_CONFIGURATOR_H apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/Makefile.am100644 0 0 1611 10774263345 21115 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # SUBDIRS = location spiincdir = $(includedir)/log4cxx/spi spiinc_HEADERS= $(top_srcdir)/src/main/include/log4cxx/spi/*.h apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/rootlogger.h100644 0 0 4245 10774263345 21423 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_SPI_ROOT_LOGGER_H #define _LOG4CXX_SPI_ROOT_LOGGER_H #include namespace log4cxx { namespace spi { /** RootLogger sits at the top of the logger hierachy. It is a regular logger except that it provides several guarantees.

First, it cannot be assigned a null level. Second, since root logger cannot have a parent, the #getEffectiveLevel method always returns the value of the level field without walking the hierarchy. */ class LOG4CXX_EXPORT RootLogger : public Logger { public: /** The root logger names itself as "root". However, the root logger cannot be retrieved by name. */ RootLogger(log4cxx::helpers::Pool& pool, const LevelPtr& level); /** Return the assigned level value without walking the logger hierarchy. */ virtual const LevelPtr& getEffectiveLevel() const; /** Setting a null value to the level of the root logger may have catastrophic results. We prevent this here. */ void setLevel(const LevelPtr& level); }; } // namespace spi } // namespace log4cxx #endif //_LOG4CXX_SPI_ROOT_LOGGER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/filter.h100644 0 0 12121 10774263345 20535 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_SPI_FILTER_H #define _LOG4CXX_SPI_FILTER_H #include #include #include #include namespace log4cxx { namespace spi { class Filter; LOG4CXX_PTR_DEF(Filter); /** Users should extend this class to implement customized logging event filtering. Note that Logger and AppenderSkeleton, the parent class of all standard appenders, have built-in filtering rules. It is suggested that you first use and understand the built-in rules before rushing to write your own custom filters.

This abstract class assumes and also imposes that filters be organized in a linear chain. The {@link #decide decide(LoggingEvent)} method of each filter is called sequentially, in the order of their addition to the chain.

The {@link #decide decide(LoggingEvent)} method must return one of the integer constants #DENY, #NEUTRAL or #ACCEPT.

If the value #DENY is returned, then the log event is dropped immediately without consulting with the remaining filters.

If the value #NEUTRAL is returned, then the next filter in the chain is consulted. If there are no more filters in the chain, then the log event is logged. Thus, in the presence of no filters, the default behaviour is to log all logging events.

If the value #ACCEPT is returned, then the log event is logged without consulting the remaining filters.

The philosophy of log4cxx filters is largely inspired from the Linux ipchains.

Note that filtering is only supported by the {@link xml::DOMConfigurator DOMConfigurator}. */ class LOG4CXX_EXPORT Filter : public virtual OptionHandler, public virtual helpers::ObjectImpl { /** Points to the next filter in the filter chain. */ FilterPtr next; public: Filter(); void addRef() const; void releaseRef() const; DECLARE_ABSTRACT_LOG4CXX_OBJECT(Filter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(Filter) LOG4CXX_CAST_ENTRY(spi::OptionHandler) END_LOG4CXX_CAST_MAP() log4cxx::spi::FilterPtr getNext() const; void setNext(const log4cxx::spi::FilterPtr& newNext); enum FilterDecision { /** The log event must be dropped immediately without consulting with the remaining filters, if any, in the chain. */ DENY = -1, /** This filter is neutral with respect to the log event. The remaining filters, if any, should be consulted for a final decision. */ NEUTRAL = 0, /** The log event must be logged immediately without consulting with the remaining filters, if any, in the chain. */ ACCEPT = 1 }; /** Usually filters options become active when set. We provide a default do-nothing implementation for convenience. */ void activateOptions(log4cxx::helpers::Pool& p); void setOption(const LogString& option, const LogString& value); /**

If the decision is DENY, then the event will be dropped. If the decision is NEUTRAL, then the next filter, if any, will be invoked. If the decision is ACCEPT then the event will be logged without consulting with other filters in the chain. @param event The LoggingEvent to decide upon. @return The decision of the filter. */ virtual FilterDecision decide(const LoggingEventPtr& event) const = 0; }; } } #endif //_LOG4CXX_SPI_FILTER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/optionhandler.h100644 0 0 5626 10774263345 22112 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_SPI_OPTION_HANDLER_H #define _LOG4CXX_SPI_OPTION_HANDLER_H #include #include #include namespace log4cxx { namespace spi { class OptionHandler; typedef helpers::ObjectPtrT OptionHandlerPtr; /** A string based interface to configure package components. */ class LOG4CXX_EXPORT OptionHandler : public virtual helpers::Object { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(OptionHandler) virtual ~OptionHandler() {} /** Activate the options that were previously set with calls to option setters.

This allows to defer activiation of the options until all options have been set. This is required for components which have related options that remain ambigous until all are set.

For example, the FileAppender has the {@link FileAppender#setFile File} and {@link FileAppender#setAppend Append} options both of which are ambigous until the other is also set. */ virtual void activateOptions(log4cxx::helpers::Pool& p) = 0; /** Set option to value.

The handling of each option depends on the OptionHandler instance. Some options may become active immediately whereas other may be activated only when #activateOptions is called. */ virtual void setOption(const LogString& option, const LogString& value) = 0; }; // class OptionConverter } // namespace spi } // namespace log4cxx #endif //_LOG4CXX_SPI_OPTION_HANDLER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/defaultrepositoryselector.h100644 0 0 3754 10774263345 24571 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_SPI_DEFAULT_REPOSITORY_SELECTOR_H #define _LOG4CXX_SPI_DEFAULT_REPOSITORY_SELECTOR_H #include #include #include namespace log4cxx { namespace spi { class LOG4CXX_EXPORT DefaultRepositorySelector : public virtual RepositorySelector, public virtual helpers::ObjectImpl { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(DefaultRepositorySelector) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(RepositorySelector) END_LOG4CXX_CAST_MAP() DefaultRepositorySelector(const LoggerRepositoryPtr& repository1); void addRef() const; void releaseRef() const; virtual LoggerRepositoryPtr& getLoggerRepository(); private: LoggerRepositoryPtr repository; }; } // namespace spi } // namespace log4cxx #endif //_LOG4CXX_SPI_DEFAULT_REPOSITORY_SELECTOR_H apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/Makefile.in100644 0 0 41507 10774264476 21164 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/main/include/log4cxx/spi DIST_COMMON = $(spiinc_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(spiincdir)" spiincHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(spiinc_HEADERS) ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # SUBDIRS = location spiincdir = $(includedir)/log4cxx/spi spiinc_HEADERS = $(top_srcdir)/src/main/include/log4cxx/spi/*.h all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/include/log4cxx/spi/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/main/include/log4cxx/spi/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-spiincHEADERS: $(spiinc_HEADERS) @$(NORMAL_INSTALL) test -z "$(spiincdir)" || $(mkdir_p) "$(DESTDIR)$(spiincdir)" @list='$(spiinc_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(spiincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(spiincdir)/$$f'"; \ $(spiincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(spiincdir)/$$f"; \ done uninstall-spiincHEADERS: @$(NORMAL_UNINSTALL) @list='$(spiinc_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(spiincdir)/$$f'"; \ rm -f "$(DESTDIR)$(spiincdir)/$$f"; \ done # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(mkdir_p) $(distdir)/../../../../../src/main/include/log4cxx/spi @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(HEADERS) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(spiincdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-spiincHEADERS install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-info-am uninstall-spiincHEADERS uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ clean clean-generic clean-libtool clean-recursive ctags \ ctags-recursive distclean distclean-generic distclean-libtool \ distclean-recursive distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-spiincHEADERS \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-generic \ mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am uninstall-info-am \ uninstall-spiincHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/triggeringeventevaluator.h100644 0 0 3755 10774263345 24373 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_SPI_TRIGGERING_EVENT_EVALUATOR_H #define _LOG4CXX_SPI_TRIGGERING_EVENT_EVALUATOR_H #include namespace log4cxx { namespace spi { /** Implementions of this interface allow certain appenders to decide when to perform an appender specific action.

For example the {@link net::SMTPAppender SMTPAppender} sends an email when the #isTriggeringEvent method returns true and adds the event to an internal buffer when the returned result is false. */ class LOG4CXX_EXPORT TriggeringEventEvaluator : public virtual helpers::Object { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(TriggeringEventEvaluator) /** Is this the triggering event? */ virtual bool isTriggeringEvent(const spi::LoggingEventPtr& event) = 0; }; LOG4CXX_PTR_DEF(TriggeringEventEvaluator); } } #endif // _LOG4CXX_SPI_TRIGGERING_EVENT_EVALUATOR_H apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/appenderattachable.h100644 0 0 5601 10774263345 23044 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_SPI_APPENDER_ATTACHABLE_H_ #define _LOG4CXX_SPI_APPENDER_ATTACHABLE_H_ #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include namespace log4cxx { namespace spi { /** * This Interface is for attaching Appenders to objects. */ class LOG4CXX_EXPORT AppenderAttachable : public virtual helpers::Object { public: // Methods DECLARE_ABSTRACT_LOG4CXX_OBJECT(AppenderAttachable) /** * Add an appender. */ virtual void addAppender(const AppenderPtr& newAppender) = 0; /** * Get all previously added appenders as an AppenderList. */ virtual AppenderList getAllAppenders() const = 0; /** * Get an appender by name. */ virtual AppenderPtr getAppender(const LogString& name) const = 0; /** Returns true if the specified appender is in list of attached attached, false otherwise. */ virtual bool isAttached(const AppenderPtr& appender) const = 0; /** * Remove all previously added appenders. */ virtual void removeAllAppenders() = 0; /** * Remove the appender passed as parameter from the list of appenders. */ virtual void removeAppender(const AppenderPtr& appender) = 0; /** * Remove the appender with the name passed as parameter from the * list of appenders. */ virtual void removeAppender(const LogString& name) = 0; // Dtor virtual ~AppenderAttachable(){} }; LOG4CXX_PTR_DEF(AppenderAttachable); } } #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif //_LOG4CXX_SPI_APPENDER_ATTACHABLE_H_ apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/errorhandler.h100644 0 0 12042 10774263345 21741 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_SPI_ERROR_HANDLER_H #define _LOG4CXX_SPI_ERROR_HANDLER_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include namespace log4cxx { namespace spi { class ErrorCode { public: enum { GENERIC_FAILURE = 0, WRITE_FAILURE = 1, FLUSH_FAILURE = 2, CLOSE_FAILURE = 3, FILE_OPEN_FAILURE = 4, MISSING_LAYOUT = 5, ADDRESS_PARSE_FAILURE = 6 }; }; /** Appenders may delegate their error handling to ErrorHandlers.

Error handling is a particularly tedious to get right because by definition errors are hard to predict and to reproduce.

Please take the time to contact the author in case you discover that errors are not properly handled. You are most welcome to suggest new error handling policies or criticize existing policies. */ class LOG4CXX_EXPORT ErrorHandler : public virtual OptionHandler { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(ErrorHandler) virtual ~ErrorHandler() {} /** Add a reference to a logger to which the failing appender might be attached to. The failing appender will be searched and replaced only in the loggers you add through this method. @param logger One of the loggers that will be searched for the failing appender in view of replacement. */ virtual void setLogger(const LoggerPtr& logger) = 0; /** Equivalent to the error(const String&, helpers::Exception&, int, spi::LoggingEvent&) with the the event parameteter set to null. */ virtual void error(const LogString& message, const std::exception& e, int errorCode) const = 0; /** This method is normally used to just print the error message passed as a parameter. */ virtual void error(const LogString& message) const = 0; /** This method is invoked to handle the error. @param message The message assoicated with the error. @param e The Exption that was thrown when the error occured. @param errorCode The error code associated with the error. @param event The logging event that the failing appender is asked to log. */ virtual void error(const LogString& message, const std::exception& e, int errorCode, const LoggingEventPtr& event) const = 0; /** Set the appender for which errors are handled. This method is usually called when the error handler is configured. */ virtual void setAppender(const AppenderPtr& appender) = 0; /** Set the appender to fallback upon in case of failure. */ virtual void setBackupAppender(const AppenderPtr& appender) = 0; }; LOG4CXX_PTR_DEF(ErrorHandler); } //namespace spi } //namespace log4cxx #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif //_LOG4CXX_SPI_ERROR_HANDLER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/loggerfactory.h100644 0 0 3177 10774263345 22112 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_SPI_LOGGERFACTORY_H #define _LOG4CXX_SPI_LOGGERFACTORY_H #include namespace log4cxx { namespace spi { /** Implement this interface to create new instances of Logger or a sub-class of Logger. */ class LOG4CXX_EXPORT LoggerFactory : public virtual helpers::Object { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(LoggerFactory) virtual ~LoggerFactory() {} virtual LoggerPtr makeNewLoggerInstance( log4cxx::helpers::Pool& pool, const LogString& name) const = 0; }; } // namespace spi } // namesapce log4cxx #endif //_LOG4CXX_SPI_LOGGERFACTORY_H apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/loggingevent.h100644 0 0 26165 10774263345 21755 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_SPI_LOGGING_EVENT_H #define _LOG4CXX_SPI_LOGGING_EVENT_H #if defined(_MSC_VER) #pragma warning (push) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include #include #include namespace log4cxx { namespace helpers { class ObjectOutputStream; } namespace spi { /** The internal representation of logging events. When an affirmative decision is made to log then a LoggingEvent instance is created. This instance is passed around to the different log4cxx components.

This class is of concern to those wishing to extend log4cxx. */ class LOG4CXX_EXPORT LoggingEvent : public virtual helpers::ObjectImpl { public: DECLARE_LOG4CXX_OBJECT(LoggingEvent) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(LoggingEvent) END_LOG4CXX_CAST_MAP() /** For serialization only */ LoggingEvent(); /** Instantiate a LoggingEvent from the supplied parameters.

Except timeStamp all the other fields of LoggingEvent are filled when actually needed.

@param logger The logger of this event. @param level The level of this event. @param message The message of this event. @param location location of logging request. */ LoggingEvent(const LogString& logger, const LevelPtr& level, const LogString& message, const log4cxx::spi::LocationInfo& location); ~LoggingEvent(); /** Return the level of this event. */ inline const LevelPtr& getLevel() const { return level; } /** Return the name of the logger. */ inline const LogString& getLoggerName() const { return logger; } /** Return the message for this logging event. */ inline const LogString& getMessage() const { return message; } /** Return the message for this logging event. */ inline const LogString& getRenderedMessage() const { return message; } /**Returns the time when the application started, in seconds elapsed since 01.01.1970. */ static log4cxx_time_t getStartTime(); /** Return the threadName of this event. */ inline const LogString& getThreadName() const { return threadName; } /** Return the timeStamp of this event. */ inline log4cxx_time_t getTimeStamp() const { return timeStamp; } /* Return the file where this log statement was written. */ inline const log4cxx::spi::LocationInfo& getLocationInformation() const { return locationInfo; } /** * This method appends the NDC for this event to passed string. It will return the * correct content even if the event was generated in a different * thread or even on a different machine. The NDC#get method * should never be called directly. * * @param dest destination for NDC, unchanged if NDC is not set. * @return true if NDC is set. */ bool getNDC(LogString& dest) const; /** * Writes the content of the LoggingEvent * in a format compatible with log4j's serialized form. */ void write(helpers::ObjectOutputStream& os, helpers::Pool& p) const; /** * Appends the the context corresponding to the key parameter. * If there is a local MDC copy, possibly because we are in a logging * server or running inside AsyncAppender, then we search for the key in * MDC copy, if a value is found it is returned. Otherwise, if the search * in MDC copy returns an empty result, then the current thread's * MDC is used. * *

* Note that both the local MDC copy and the current thread's MDC * are searched. *

* @param key key. * @param dest string to which value, if any, is appended. * @return true if key had a corresponding value. */ bool getMDC(const LogString& key, LogString& dest) const; LOG4CXX_LIST_DEF(KeySet, LogString); /** * Returns the set of of the key values in the MDC for the event. * The returned set is unmodifiable by the caller. * * @return Set an unmodifiable set of the MDC keys. * */ KeySet getMDCKeySet() const; /** Obtain a copy of this thread's MDC prior to serialization or asynchronous logging. */ void getMDCCopy() const; /** * Return a previously set property. * @param key key. * @param dest string to which value, if any, is appended. * @return true if key had a corresponding value. */ bool getProperty(const LogString& key, LogString& dest) const; /** * Returns the set of of the key values in the properties * for the event. The returned set is unmodifiable by the caller. * * @return Set an unmodifiable set of the property keys. */ KeySet getPropertyKeySet() const; /** * Set a string property using a key and a string value. since 1.3 */ void setProperty(const LogString& key, const LogString& value); private: /** * The logger of the logging event. **/ LogString logger; /** level of logging event. */ LevelPtr level; /** The nested diagnostic context (NDC) of logging event. */ mutable LogString* ndc; /** The mapped diagnostic context (MDC) of logging event. */ mutable MDC::Map* mdcCopy; /** * A map of String keys and String values. */ std::map * properties; /** Have we tried to do an NDC lookup? If we did, there is no need * to do it again. Note that its value is always false when * serialized. Thus, a receiving SocketNode will never use it's own * (incorrect) NDC. See also writeObject method. */ mutable bool ndcLookupRequired; /** * Have we tried to do an MDC lookup? If we did, there is no need to do it * again. Note that its value is always false when serialized. See also * the getMDC and getMDCCopy methods. */ mutable bool mdcCopyLookupRequired; /** The application supplied message of logging event. */ LogString message; /** The number of milliseconds elapsed from 1/1/1970 until logging event was created. */ log4cxx_time_t timeStamp; /** The is the location where this log statement was written. */ const log4cxx::spi::LocationInfo locationInfo; /** The identifier of thread in which this logging event was generated. */ const LogString threadName; // // prevent copy and assignment // LoggingEvent(const LoggingEvent&); LoggingEvent& operator=(const LoggingEvent&); static const LogString getCurrentThreadName(); static void writeProlog(log4cxx::helpers::ObjectOutputStream& os, log4cxx::helpers::Pool& p); }; LOG4CXX_PTR_DEF(LoggingEvent); LOG4CXX_LIST_DEF(LoggingEventList, LoggingEventPtr); } } #if defined(_MSC_VER) #pragma warning (pop) #endif #endif //_LOG4CXX_SPI_LOGGING_EVENT_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/systemerrwriter.h100644 0 0 4025 10774263362 23374 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_SYSTEMERRWRITER_H #define _LOG4CXX_HELPERS_SYSTEMERRWRITER_H #include namespace log4cxx { namespace helpers { /** * Abstract class for writing to character streams. */ class LOG4CXX_EXPORT SystemErrWriter : public Writer { public: DECLARE_LOG4CXX_OBJECT(SystemErrWriter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(SystemErrWriter) LOG4CXX_CAST_ENTRY_CHAIN(Writer) END_LOG4CXX_CAST_MAP() SystemErrWriter(); virtual ~SystemErrWriter(); virtual void close(Pool& p); virtual void flush(Pool& p); virtual void write(const LogString& str, Pool& p); static void write(const LogString& str); static void flush(); private: SystemErrWriter(const SystemErrWriter&); SystemErrWriter& operator=(const SystemErrWriter&); static bool isWide(); }; } // namespace helpers } //namespace log4cxx #endif //_LOG4CXX_HELPERS_SYSTEMERRWRITER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/charsetencoder.h100644 0 0 10751 10774263362 23116 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_CHARSETENCODER_H #define _LOG4CXX_HELPERS_CHARSETENCODER_H #include #include namespace log4cxx { namespace helpers { class ByteBuffer; class CharsetEncoder; LOG4CXX_PTR_DEF(CharsetEncoder); /** * An engine to transform LogStrings into bytes * for the specific character set. */ class LOG4CXX_EXPORT CharsetEncoder : public ObjectImpl { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(CharsetEncoder) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(CharsetEncoder) END_LOG4CXX_CAST_MAP() protected: /** * Protected constructor. */ CharsetEncoder(); public: /** * Destructor. */ virtual ~CharsetEncoder(); /** * Get encoder for default charset. */ static CharsetEncoderPtr getDefaultEncoder(); /** * Get encoder for specified character set. * @param charset the following values should be recognized: * "US-ASCII", "ISO-8859-1", "UTF-8", * "UTF-16BE", "UTF-16LE". * @return encoder. * @throws IllegalArgumentException if encoding is not recognized. */ static CharsetEncoderPtr getEncoder(const LogString& charset); /** * Get encoder for UTF-8. */ static CharsetEncoderPtr getUTF8Encoder(); /** * Encodes a string replacing unmappable * characters with escape sequences. * */ static void encode(CharsetEncoderPtr& enc, const LogString& src, LogString::const_iterator& iter, ByteBuffer& dst); /** * Encodes as many characters from the input string as possible * to the output buffer. * @param in input string * @param iter position in string to start. * @param out output buffer. * @return APR_SUCCESS unless a character can not be represented in * the encoding. */ virtual log4cxx_status_t encode(const LogString& in, LogString::const_iterator& iter, ByteBuffer& out) = 0; /** * Resets any internal state. */ virtual void reset(); /** * Flushes the encoder. */ virtual void flush(ByteBuffer& out); /** * Determines if the return value from encode indicates * an unconvertable character. */ inline static bool isError(log4cxx_status_t stat) { return (stat != 0); } private: /** * Private copy constructor. */ CharsetEncoder(const CharsetEncoder&); /** * Private assignment operator. */ CharsetEncoder& operator=(const CharsetEncoder&); static CharsetEncoder* createDefaultEncoder(); }; } // namespace helpers } //namespace log4cxx #endif //_LOG4CXX_HELPERS_CHARSETENCODER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/cyclicbuffer.h100644 0 0 7441 10774263362 22547 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_CYCLICBUFFER_H #define _LOG4CXX_HELPERS_CYCLICBUFFER_H #include namespace log4cxx { namespace helpers { /** CyclicBuffer is used by other appenders to hold instances of {@link log4cxx::spi::LoggingEvent LoggingEvent} for immediate or deferred display.

This buffer gives read access to any element in the buffer not just the first or last element. */ class LOG4CXX_EXPORT CyclicBuffer { log4cxx::spi::LoggingEventList ea; int first; int last; int numElems; int maxSize; public: /** Instantiate a new CyclicBuffer of at most maxSize events. The maxSize argument must a positive integer. @param maxSize The maximum number of elements in the buffer. @throws IllegalArgumentException if maxSize is negative. */ CyclicBuffer(int maxSize); ~CyclicBuffer(); /** Add an event as the last event in the buffer. */ void add(const spi::LoggingEventPtr& event); /** Get the ith oldest event currently in the buffer. If i is outside the range 0 to the number of elements currently in the buffer, then null is returned. */ spi::LoggingEventPtr get(int i); int getMaxSize() const { return maxSize; } /** Get the oldest (first) element in the buffer. The oldest element is removed from the buffer. */ spi::LoggingEventPtr get(); /** Get the number of elements in the buffer. This number is guaranteed to be in the range 0 to maxSize (inclusive). */ int length() const { return numElems; } /** Resize the cyclic buffer to newSize. @throws IllegalArgumentException if newSize is negative. */ void resize(int newSize); }; // class CyclicBuffer } //namespace helpers } //namespace log4cxx #endif //_LOG4CXX_HELPERS_CYCLICBUFFER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/properties.h100644 0 0 21553 10774263362 22323 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPER_PROPERTIES_H #define _LOG4CXX_HELPER_PROPERTIES_H #if defined(_MSC_VER) #pragma warning (push) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include #include #include namespace log4cxx { namespace helpers { class LOG4CXX_EXPORT Properties { private: typedef std::map PropertyMap; PropertyMap* properties; Properties(const Properties&); Properties& operator=(const Properties&); public: /** * Create new instance. */ Properties(); /** * Destructor. */ ~Properties(); /** Reads a property list (key and element pairs) from the input stream. The stream is assumed to be using the ISO 8859-1 character encoding.

Every property occupies one line of the input stream. Each line is terminated by a line terminator (\\n or \\r or \\r\\n). Lines from the input stream are processed until end of file is reached on the input stream.

A line that contains only whitespace or whose first non-whitespace character is an ASCII # or ! is ignored (thus, # or ! indicate comment lines).

Every line other than a blank line or a comment line describes one property to be added to the table (except that if a line ends with \, then the following line, if it exists, is treated as a continuation line, as described below). The key consists of all the characters in the line starting with the first non-whitespace character and up to, but not including, the first ASCII =, :, or whitespace character. All of the key termination characters may be included in the key by preceding them with a \\. Any whitespace after the key is skipped; if the first non-whitespace character after the key is = or :, then it is ignored and any whitespace characters after it are also skipped. All remaining characters on the line become part of the associated element string. Within the element string, the ASCII escape sequences \\t, \\n, \\r, \\, \\", \\', \\ (a backslash and a space), and \\uxxxx are recognized and converted to single characters. Moreover, if the last character on the line is \\, then the next line is treated as a continuation of the current line; the \\ and line terminator are simply discarded, and any leading whitespace characters on the continuation line are also discarded and are not part of the element string.

As an example, each of the following four lines specifies the key "Truth" and the associated element value "Beauty":

 Truth = Beauty
        Truth:Beauty
 Truth         :Beauty
                        
As another example, the following three lines specify a single property:
 fruits           apple, banana, pear, \
                                  cantaloupe, watermelon, \
                                  kiwi, mango
                        
The key is "fruits" and the associated element is:
"apple, banana, pear, cantaloupe, watermelon, kiwi, mango"
                        
Note that a space appears before each \ so that a space will appear after each comma in the final result; the \, line terminator, and leading whitespace on the continuation line are merely discarded and are not replaced by one or more other characters.

As a third example, the line:

cheeses
                        
specifies that the key is "cheeses" and the associated element is the empty string. @param inStream the input stream. @throw IOException if an error occurred when reading from the input stream. */ void load(InputStreamPtr inStream); /** * Calls Properties::put. * @param key the key to be placed into this property list. * @param value the value corresponding to key. * @return the previous value of the specified key in this * property list, or an empty string if it did not have one. */ LogString setProperty(const LogString& key, const LogString& value); /** * Puts a property value into the collection. * @param key the key to be placed into this property list. * @param value the value corresponding to key. * @return the previous value of the specified key in this * property list, or an empty string if it did not have one. */ LogString put(const LogString& key, const LogString& value); /** * Calls Properties::get. * @param key the property key. * @return the value in this property list with the specified * key value or empty string. */ LogString getProperty(const LogString& key) const; /** * Gets a property value. * @param key the property key. * @return the value in this property list with the specified * key value or empty string. */ LogString get(const LogString& key) const; /** Returns an enumeration of all the keys in this property list, including distinct keys in the default property list if a key of the same name has not already been found from the main properties list. @return an array of all the keys in this property list, including the keys in the default property list. */ std::vector propertyNames() const; }; // class Properties } // namespace helpers } // namespace log4cxx #if defined(_MSC_VER) #pragma warning (pop) #endif #endif //_LOG4CXX_HELPER_PROPERTIES_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/integer.h100644 0 0 2553 10774263362 21543 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_INTEGER_H #define _LOG4CXX_HELPERS_INTEGER_H #include namespace log4cxx { namespace helpers { class LOG4CXX_EXPORT Integer : public ObjectImpl { const int val; public: DECLARE_LOG4CXX_OBJECT(Integer) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(Integer) END_LOG4CXX_CAST_MAP() Integer(); Integer(int i); virtual ~Integer(); inline int intValue() const { return val; } }; LOG4CXX_PTR_DEF(Integer); } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datelayout.h100644 0 0 7262 10774263362 22263 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_DATE_LAYOUT_H #define _LOG4CXX_HELPERS_DATE_LAYOUT_H #include #include #include namespace log4cxx { namespace helpers { /** This abstract layout takes care of all the date related options and formatting work. */ class LOG4CXX_EXPORT DateLayout : public Layout { private: LogString timeZoneID; LogString dateFormatOption; protected: DateFormatPtr dateFormat; public: DateLayout(const LogString& dateLayoutOption); virtual ~DateLayout(); virtual void activateOptions(log4cxx::helpers::Pool& p); virtual void setOption(const LogString& option, const LogString& value); /** The value of the DateFormat option should be either an argument to the constructor of helpers::DateFormat or one of the strings "NULL", "RELATIVE", "ABSOLUTE", "DATE" or "ISO8601. */ inline void setDateFormat(const LogString& dateFormat1) { this->dateFormatOption.assign(dateFormat1); } /** Returns value of the DateFormat option. */ inline const LogString& getDateFormat() const { return dateFormatOption; } /** The TimeZoneID option is a time zone ID string in the format expected by the locale C++ standard class. */ inline void setTimeZone(const LogString& timeZone) { this->timeZoneID.assign(timeZone); } /** Returns value of the TimeZone option. */ inline const LogString& getTimeZone() const { return timeZoneID; } void formatDate(LogString &s, const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p) const; private: // // prevent copy and assignment DateLayout(const DateLayout&); DateLayout& operator=(const DateLayout&); }; } // namespace helpers } // namespace log4cxx #endif // _LOG4CXX_HELPERS_DATE_LAYOUT_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/xml.h100644 0 0 11464 10774263362 20727 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_XML_H #define _LOG4CXX_HELPERS_XML_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include namespace log4cxx { class File; namespace helpers { class XMLDOMNode; typedef helpers::ObjectPtrT XMLDOMNodePtr; class XMLDOMDocument; typedef helpers::ObjectPtrT XMLDOMDocumentPtr; class XMLDOMNodeList; typedef helpers::ObjectPtrT XMLDOMNodeListPtr; class LOG4CXX_EXPORT DOMException : public RuntimeException { public: DOMException() : RuntimeException(LOG4CXX_STR("DOM exception")) {} }; /** The XMLDOMNode interface is the primary datatype for the entire Document Object Model. */ class LOG4CXX_EXPORT XMLDOMNode : virtual public Object { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(XMLDOMNode) enum XMLDOMNodeType { NOT_IMPLEMENTED_NODE = 0, ELEMENT_NODE = 1, DOCUMENT_NODE = 9 }; virtual XMLDOMNodeListPtr getChildNodes() = 0; virtual XMLDOMNodeType getNodeType() = 0; virtual XMLDOMDocumentPtr getOwnerDocument() = 0; }; LOG4CXX_PTR_DEF(XMLDOMNode); /** The XMLDOMElement interface represents an element in an XML document */ class LOG4CXX_EXPORT XMLDOMElement : virtual public XMLDOMNode { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(XMLDOMElement) virtual LogString getTagName() = 0; virtual LogString getAttribute(const LogString& name) = 0; }; LOG4CXX_PTR_DEF(XMLDOMElement); /** The XMLDOMDocument interface represents an entire XML document. Conceptually, it is the root of the document tree, and provides the primary access to the document's data. */ class LOG4CXX_EXPORT XMLDOMDocument : virtual public XMLDOMNode { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(XMLDOMDocument) virtual void load(const File& fileName) = 0; virtual XMLDOMElementPtr getDocumentElement() = 0; virtual XMLDOMElementPtr getElementById(const LogString& tagName, const LogString& elementId) = 0; }; LOG4CXX_PTR_DEF(XMLDOMDocument); /** The XMLDOMNodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. XMLDOMNodeList objects in the DOM are live. The items in the XMLDOMNodeList are accessible via an integral index, starting from 0. */ class LOG4CXX_EXPORT XMLDOMNodeList : virtual public Object { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(XMLDOMNodeList) virtual int getLength() = 0; virtual XMLDOMNodePtr item(int index) = 0; }; LOG4CXX_PTR_DEF(XMLDOMNodeList); } // namespace helpers } // namespace log4cxx #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif // _LOG4CXX_HELPERS_XML_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bytearrayinputstream.h100644 0 0 6040 10774263362 24377 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_BYTEARRAYINPUTSTREAM_H #define _LOG4CXX_HELPERS_BYTEARRAYINPUTSTREAM_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include namespace log4cxx { namespace helpers { /** * InputStream implemented on top of a byte array. */ class LOG4CXX_EXPORT ByteArrayInputStream : public InputStream { private: LOG4CXX_LIST_DEF(ByteList, unsigned char); ByteList buf; size_t pos; public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(ByteArrayInputStream) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(ByteArrayInputStream) LOG4CXX_CAST_ENTRY_CHAIN(InputStream) END_LOG4CXX_CAST_MAP() /** * Creates a ByteArrayInputStream. * * @param bytes array of bytes to copy into stream. */ ByteArrayInputStream(const ByteList& bytes); virtual ~ByteArrayInputStream(); /** * Closes this file input stream and releases any system * resources associated with the stream. */ virtual void close(); /** * Reads a sequence of bytes into the given buffer. * * @param buf The buffer into which bytes are to be transferred. * @return the total number of bytes read into the buffer, or -1 if there * is no more data because the end of the stream has been reached. */ virtual int read(ByteBuffer& buf); private: ByteArrayInputStream(const ByteArrayInputStream&); ByteArrayInputStream& operator=(const ByteArrayInputStream&); }; LOG4CXX_PTR_DEF(ByteArrayInputStream); } // namespace helpers } //namespace log4cxx #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif //_LOG4CXX_HELPERS_BYTEARRAYINPUTSTREAM_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bytearrayoutputstream.h100644 0 0 4610 10774263362 24601 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_BYTEARRAYOUTPUTSTREAM_H #define _LOG4CXX_HELPERS_BYTEARRAYOUTPUTSTREAM_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include namespace log4cxx { namespace helpers { class Pool; /** * OutputStream implemented on top of std::vector */ class LOG4CXX_EXPORT ByteArrayOutputStream : public OutputStream { private: LOG4CXX_LIST_DEF(ByteList, unsigned char); ByteList array; public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(ByteArrayOutputStream) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(ByteArrayOutputStream) LOG4CXX_CAST_ENTRY_CHAIN(OutputStream) END_LOG4CXX_CAST_MAP() ByteArrayOutputStream(); virtual ~ByteArrayOutputStream(); virtual void close(Pool& p); virtual void flush(Pool& p); virtual void write(ByteBuffer& buf, Pool& p); ByteList toByteArray() const; private: ByteArrayOutputStream(const ByteArrayOutputStream&); ByteArrayOutputStream& operator=(const ByteArrayOutputStream&); }; LOG4CXX_PTR_DEF(ByteArrayOutputStream); } // namespace helpers } //namespace log4cxx #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif //_LOG4CXX_HELPERS_BYTEARRAYOUTPUTSTREAM_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/class.h100644 0 0 4227 10774263362 21213 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_CLASS_H #define _LOG4CXX_HELPERS_CLASS_H #if defined(_MSC_VER) #pragma warning (push) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include namespace log4cxx { namespace helpers { class Object; typedef ObjectPtrT ObjectPtr; class LOG4CXX_EXPORT Class { public: virtual ~Class(); virtual ObjectPtr newInstance() const; LogString toString() const; virtual LogString getName() const = 0; static const Class& forName(const LogString& className); static bool registerClass(const Class& newClass); protected: Class(); private: Class(const Class&); Class& operator=(const Class&); typedef std::map ClassMap; static ClassMap& getRegistry(); static void registerClasses(); }; } // namespace log4cxx } // namespace helper #if defined(_MSC_VER) #pragma warning (pop) #endif #endif //_LOG4CXX_HELPERS_CLASS_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/loader.h100644 0 0 2776 10774263362 21363 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_LOADER_H #define _LOG4CXX_HELPERS_LOADER_H #include #include #include #include namespace log4cxx { namespace helpers { class Class; class LOG4CXX_EXPORT Loader { public: static const Class& loadClass(const LogString& clazz); static InputStreamPtr getResourceAsStream( const LogString& name); }; } // namespace helpers } // namespace log4cxx #endif //_LOG4CXX_HELPERS_LOADER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/objectoutputstream.h100644 0 0 7077 10774263362 24057 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_OBJECTOUTPUTSTREAM_H #define _LOG4CXX_HELPERS_OBJECTOUTPUTSTREAM_H #include #include #include #include namespace log4cxx { namespace helpers { /** * Emulates java serialization. */ class LOG4CXX_EXPORT ObjectOutputStream : public ObjectImpl { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(ObjectOutputStream) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(ObjectOutputStream) END_LOG4CXX_CAST_MAP() ObjectOutputStream(OutputStreamPtr os, Pool& p); virtual ~ObjectOutputStream(); void close(Pool& p); void flush(Pool& p); void writeObject(const LogString&, Pool& p); void writeUTFString(const std::string&, Pool& p); void writeObject(const MDC::Map& mdc, Pool& p); void writeInt(int val, Pool& p); void writeLong(log4cxx_time_t val, Pool& p); void writeProlog(const char* className, int classDescIncrement, char* bytes, size_t len, Pool& p); void writeNull(Pool& p); enum { STREAM_MAGIC = 0xACED }; enum { STREAM_VERSION = 5 }; enum { TC_NULL = 0x70, TC_REFERENCE = 0x71, TC_CLASSDESC = 0x72, TC_OBJECT = 0x73, TC_STRING = 0x74, TC_ARRAY = 0x75, TC_CLASS = 0x76, TC_BLOCKDATA = 0x77, TC_ENDBLOCKDATA = 0x78 }; enum { SC_WRITE_METHOD = 0x01, SC_SERIALIZABLE = 0x02 }; void writeByte(char val, Pool& p); void writeBytes(const char* bytes, size_t len, Pool& p); private: ObjectOutputStream(const ObjectOutputStream&); ObjectOutputStream& operator=(const ObjectOutputStream&); OutputStreamPtr os; log4cxx::helpers::CharsetEncoderPtr utf8Encoder; unsigned int objectHandle; typedef std::map ClassDescriptionMap; ClassDescriptionMap* classDescriptions; }; LOG4CXX_PTR_DEF(ObjectOutputStream); } // namespace helpers } //namespace log4cxx #endif //_LOG4CXX_HELPERS_OUTPUTSTREAM_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/strftimedateformat.h100644 0 0 4274 10774263362 24014 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_STRFTIME_DATE_FORMAT_H #define _LOG4CXX_HELPERS_STRFTIME_DATE_FORMAT_H #include namespace log4cxx { namespace helpers { /** Concrete class for formatting and parsing dates in a locale-sensitive manner. */ class LOG4CXX_EXPORT StrftimeDateFormat : public DateFormat { public: /** Constructs a DateFormat using the given pattern and the default time zone. @param pattern the pattern describing the date and time format */ StrftimeDateFormat(const LogString& pattern); ~StrftimeDateFormat(); virtual void format(LogString& s, log4cxx_time_t tm, log4cxx::helpers::Pool& p) const; /** * Set time zone. * @param zone new time zone. */ void setTimeZone(const TimeZonePtr& zone); private: /** * Time zone. */ TimeZonePtr timeZone; std::string pattern; }; } // namespace helpers } // namespace log4cxx #endif // _LOG4CXX_HELPERS_STRFTIME_DATE_FORMAT_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/outputstreamwriter.h100644 0 0 4466 10774263362 24124 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_OUTPUTSTREAMWRITER_H #define _LOG4CXX_HELPERS_OUTPUTSTREAMWRITER_H #include #include #include namespace log4cxx { namespace helpers { /** * Abstract class for writing to character streams. */ class LOG4CXX_EXPORT OutputStreamWriter : public Writer { private: OutputStreamPtr out; CharsetEncoderPtr enc; public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(OutputStreamWriter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(OutputStreamWriter) LOG4CXX_CAST_ENTRY_CHAIN(Writer) END_LOG4CXX_CAST_MAP() OutputStreamWriter(OutputStreamPtr& out); OutputStreamWriter(OutputStreamPtr& out, CharsetEncoderPtr &enc); ~OutputStreamWriter(); virtual void close(Pool& p); virtual void flush(Pool& p); virtual void write(const LogString& str, Pool& p); LogString getEncoding() const; private: OutputStreamWriter(const OutputStreamWriter&); OutputStreamWriter& operator=(const OutputStreamWriter&); }; LOG4CXX_PTR_DEF(OutputStreamWriter); } // namespace helpers } //namespace log4cxx #endif //_LOG4CXX_HELPERS_OUTPUTSTREAMWRITER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/inetaddress.h100644 0 0 7277 10774263362 22423 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPER_INETADDRESS_H #define _LOG4CXX_HELPER_INETADDRESS_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include namespace log4cxx { namespace helpers { class LOG4CXX_EXPORT UnknownHostException : public Exception { public: UnknownHostException(const LogString& msg); UnknownHostException(const UnknownHostException& src); UnknownHostException& operator=(const UnknownHostException& src); }; class InetAddress; LOG4CXX_PTR_DEF(InetAddress); LOG4CXX_LIST_DEF(InetAddressList, InetAddressPtr); class LOG4CXX_EXPORT InetAddress : public ObjectImpl { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(InetAddress) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(InetAddress) END_LOG4CXX_CAST_MAP() InetAddress(const LogString& hostName, const LogString& hostAddr); /** Determines all the IP addresses of a host, given the host's name. */ static InetAddressList getAllByName(const LogString& host); /** Determines the IP address of a host, given the host's name. */ static InetAddressPtr getByName(const LogString& host); /** Returns the IP address string "%d.%d.%d.%d". */ LogString getHostAddress() const; /** Gets the host name for this IP address. */ LogString getHostName() const; /** Returns the local host. */ static InetAddressPtr getLocalHost(); /** Returns an InetAddress which can be used as any * address, for example when listening on a port from any * remote addresss. */ static InetAddressPtr anyAddress(); /** Converts this IP address to a String. */ LogString toString() const; private: LogString ipAddrString; LogString hostNameString; }; // class InetAddress } // namespace helpers } // namespace log4cxx #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif // _LOG4CXX_HELPER_INETADDRESS_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datagrampacket.h100644 0 0 14027 10774263362 23075 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_DATAGRAM_PACKET #define _LOG4CXX_HELPERS_DATAGRAM_PACKET #include #include #include namespace log4cxx { namespace helpers { /** This class represents a datagram packet.

Datagram packets are used to implement a connectionless packet delivery service. Each message is routed from one machine to another based solely on information contained within that packet. Multiple packets sent from one machine to another might be routed differently, and might arrive in any order. */ class LOG4CXX_EXPORT DatagramPacket : public helpers::ObjectImpl { protected: /** the data for this packet. */ void * buf; /** The offset of the data for this packet. */ int offset; /** The length of the data for this packet. */ int length; /** The IP address for this packet. */ InetAddressPtr address; /** The UDP port number of the remote host. */ int port; public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(DatagramPacket) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(DatagramPacket) END_LOG4CXX_CAST_MAP() /** Constructs a DatagramPacket for receiving packets of length length. */ DatagramPacket(void * buf, int length); /** Constructs a datagram packet for sending packets of length length to the specified port number on the specified host. */ DatagramPacket(void * buf, int length, InetAddressPtr address, int port); /** Constructs a DatagramPacket for receiving packets of length length, specifying an offset into the buffer. */ DatagramPacket(void * buf, int offset, int length); /** Constructs a datagram packet for sending packets of length length with offset offset to the specified port number on the specified host. */ DatagramPacket(void * buf, int offset, int length, InetAddressPtr address, int port); ~DatagramPacket(); /** Returns the IP address of the machine to which this datagram is being sent or from which the datagram was received. */ inline InetAddressPtr getAddress() const { return address; } /** Returns the data received or the data to be sent. */ inline void * getData() const { return buf; } /** Returns the length of the data to be sent or the length of the data received. */ inline int getLength() const { return length; } /** Returns the offset of the data to be sent or the offset of the data received. */ inline int getOffset() const { return offset; } /** Returns the port number on the remote host to which this datagram is being sent or from which the datagram was received. */ inline int getPort() const { return port; } inline void setAddress(InetAddressPtr address1) { this->address = address1; } /** Set the data buffer for this packet. */ inline void setData(void * buf1) { this->buf = buf1; } /** Set the data buffer for this packet. */ inline void setData(void * buf1, int offset1, int length1) { this->buf = buf1; this->offset = offset1; this->length = length1; } /** Set the length for this packet. */ inline void setLength(int length1) { this->length = length1; } inline void setPort(int port1) { this->port = port1; } private: // // prevent copy and assignment statements DatagramPacket(const DatagramPacket&); DatagramPacket& operator=(const DatagramPacket&); }; // class DatagramPacket LOG4CXX_PTR_DEF(DatagramPacket); } // namespace helpers } // namespace log4cxx #endif // _LOG4CXX_HELPERS_DATAGRAM_PACKET apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/propertyresourcebundle.h100644 0 0 4746 10774263362 24742 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_PROPERTY_RESOURCE_BUNDLE_H #define _LOG4CXX_HELPERS_PROPERTY_RESOURCE_BUNDLE_H #include #include #include namespace log4cxx { namespace helpers { /** PropertyResourceBundle is a concrete subclass of ResourceBundle that manages resources for a locale using a set of static strings from a property file. */ class LOG4CXX_EXPORT PropertyResourceBundle : public ResourceBundle { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(PropertyResourceBundle) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(PropertyResourceBundle) LOG4CXX_CAST_ENTRY_CHAIN(ResourceBundle) END_LOG4CXX_CAST_MAP() /** Creates a property resource bundle. @param inStream property file to read from. @throw IOException if an error occurred when reading from the input stream. */ PropertyResourceBundle(InputStreamPtr inStream); virtual LogString getString(const LogString& key) const; protected: Properties properties; }; // class PropertyResourceBundle LOG4CXX_PTR_DEF(PropertyResourceBundle); } // namespace helpers } // namespace log4cxx #endif // _LOG4CXX_HELPERS_PROPERTY_RESOURCE_BUNDLE_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/fileinputstream.h100644 0 0 6623 10774263362 23323 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_FILEINPUTSTREAM_H #define _LOG4CXX_HELPERS_FILEINPUTSTREAM_H #include #include #include namespace log4cxx { namespace helpers { /** * InputStream implemented on top of APR file IO. * */ class LOG4CXX_EXPORT FileInputStream : public InputStream { private: Pool pool; apr_file_t* fileptr; public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(FileInputStream) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(FileInputStream) LOG4CXX_CAST_ENTRY_CHAIN(InputStream) END_LOG4CXX_CAST_MAP() /** * Creates a FileInputStream by opening a connection to an actual * file, the file named by the path name name in the file system. * * @param filename The system-dependent file name. */ FileInputStream(const LogString& filename); FileInputStream(const logchar* filename); /** * Creates a FileInputStream by opening a connection to an actual * file, the file named by the File object file in the file system. * * @param aFile The file to be opened for reading. */ FileInputStream(const File& aFile); virtual ~FileInputStream(); /** * Closes this file input stream and releases any system * resources associated with the stream. */ virtual void close(); /** * Reads a sequence of bytes into the given buffer. * * @param buf The buffer into which bytes are to be transferred. * @return the total number of bytes read into the buffer, or -1 if there * is no more data because the end of the stream has been reached. */ virtual int read(ByteBuffer& buf); private: FileInputStream(const FileInputStream&); FileInputStream& operator=(const FileInputStream&); void open(const LogString&); }; LOG4CXX_PTR_DEF(FileInputStream); } // namespace helpers } //namespace log4cxx #endif //_LOG4CXX_HELPERS_FILEINPUTSTREAM_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/outputstream.h100644 0 0 3664 10774263362 22666 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_OUTPUTSTREAM_H #define _LOG4CXX_HELPERS_OUTPUTSTREAM_H #include namespace log4cxx { namespace helpers { class ByteBuffer; /** * Abstract class for writing to character streams. */ class LOG4CXX_EXPORT OutputStream : public ObjectImpl { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(OutputStream) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(OutputStream) END_LOG4CXX_CAST_MAP() protected: OutputStream(); virtual ~OutputStream(); public: virtual void close(Pool& p) = 0; virtual void flush(Pool& p) = 0; virtual void write(ByteBuffer& buf, Pool& p) = 0; private: OutputStream(const OutputStream&); OutputStream& operator=(const OutputStream&); }; LOG4CXX_PTR_DEF(OutputStream); } // namespace helpers } //namespace log4cxx #endif //_LOG4CXX_HELPERS_OUTPUTSTREAM_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/writer.h100644 0 0 3517 10774263362 21423 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_WRITER_H #define _LOG4CXX_HELPERS_WRITER_H #include namespace log4cxx { namespace helpers { /** * Abstract class for writing to character streams. */ class LOG4CXX_EXPORT Writer : public ObjectImpl { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(Writer) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(Writer) END_LOG4CXX_CAST_MAP() protected: Writer(); virtual ~Writer(); public: virtual void close(Pool& p) = 0; virtual void flush(Pool& p) = 0; virtual void write(const LogString& str, Pool& p) = 0; private: Writer(const Writer&); Writer& operator=(const Writer&); }; LOG4CXX_PTR_DEF(Writer); } // namespace helpers } //namespace log4cxx #endif //_LOG4CXX_HELPERS_WRITER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/syslogwriter.h100644 0 0 3266 10774263362 22665 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_SYSLOG_WRITER_H #define _LOG4CXX_SYSLOG_WRITER_H #include #include #include namespace log4cxx { namespace helpers { /** SyslogWriter is a wrapper around the DatagramSocket class it writes text to the specified host on the port 514 (UNIX syslog) */ class LOG4CXX_EXPORT SyslogWriter { public: SyslogWriter(const LogString& syslogHost); void write(const LogString& string); private: LogString syslogHost; InetAddressPtr address; DatagramSocketPtr ds; }; } // namespace helpers } // namespace log4cxx #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/charsetdecoder.h100644 0 0 7701 10774263362 23065 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_CHARSETDECODER_H #define _LOG4CXX_HELPERS_CHARSETDECODER_H #include namespace log4cxx { namespace helpers { class CharsetDecoder; LOG4CXX_PTR_DEF(CharsetDecoder); class ByteBuffer; /** * An abstract engine to transform a sequences of bytes in a specific charset * into a LogString. */ class LOG4CXX_EXPORT CharsetDecoder : public ObjectImpl { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(CharsetDecoder) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(CharsetDecoder) END_LOG4CXX_CAST_MAP() protected: /** * Protected constructor. */ CharsetDecoder(); public: /** * Destructor. */ virtual ~CharsetDecoder(); /** * Get decoder for default charset. */ static CharsetDecoderPtr getDefaultDecoder(); /** * Get decoder for specified character set. * @param charset the following values should be recognized: * "US-ASCII", "ISO-8859-1", "UTF-8", * "UTF-16BE", "UTF-16LE". * @return decoder * @throws IllegalArgumentException if charset is not recognized. */ static CharsetDecoderPtr getDecoder(const LogString& charset); /** * Get decoder for UTF-8. */ static CharsetDecoderPtr getUTF8Decoder(); /** * Get decoder for ISO-8859-1. */ static CharsetDecoderPtr getISOLatinDecoder(); /** * Decodes as many bytes as possible from the given * input buffer, writing the results to the given output string. * @param in input buffer. * @param out output string. * @return APR_SUCCESS if not encoding errors were found. */ virtual log4cxx_status_t decode(ByteBuffer& in, LogString& out) = 0; /** * Determins if status value indicates an invalid byte sequence. */ inline static bool isError(log4cxx_status_t stat) { return (stat != 0); } private: /** * Private copy constructor. */ CharsetDecoder(const CharsetDecoder&); /** * Private assignment operator. */ CharsetDecoder& operator=(const CharsetDecoder&); /** * Creates a new decoder for the default charset. */ static CharsetDecoder* createDefaultDecoder(); }; } // namespace helpers } //namespace log4cxx #endif //_LOG4CXX_HELPERS_CHARSETENCODER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bufferedwriter.h100644 0 0 4177 10774263362 23131 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_BUFFEREDWRITER_H #define _LOG4CXX_HELPERS_BUFFEREDWRITER_H #include namespace log4cxx { namespace helpers { /** * Writes text to a character-output stream buffering * requests to increase efficiency. */ class LOG4CXX_EXPORT BufferedWriter : public Writer { private: WriterPtr out; size_t sz; LogString buf; public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(BufferedWriter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(BufferedWriter) LOG4CXX_CAST_ENTRY_CHAIN(Writer) END_LOG4CXX_CAST_MAP() BufferedWriter(WriterPtr& out); BufferedWriter(WriterPtr& out, size_t sz); virtual ~BufferedWriter(); virtual void close(Pool& p); virtual void flush(Pool& p); virtual void write(const LogString& str, Pool& p); private: BufferedWriter(const BufferedWriter&); BufferedWriter& operator=(const BufferedWriter&); }; } // namespace helpers } //namespace log4cxx #endif //_LOG4CXX_HELPERS_BUFFEREDWRITER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/iso8601dateformat.h100644 0 0 3376 10774263362 23272 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_ISO_8601_DATE_FORMAT_H #define _LOG4CXX_HELPERS_ISO_8601_DATE_FORMAT_H #include namespace log4cxx { namespace helpers { /** Formats a date in the format yyyy-MM-dd HH:mm:ss,SSS for example "1999-11-27 15:49:37,459".

Refer to the summary of the International Standard Date and Time Notation for more information on this format. */ class LOG4CXX_EXPORT ISO8601DateFormat : public SimpleDateFormat { public: ISO8601DateFormat() : SimpleDateFormat(LOG4CXX_STR("yyyy-MM-dd HH:mm:ss,SSS")) {} }; } // namespace helpers } // namespace log4cxx #endif // _LOG4CXX_HELPERS_ISO_8601_DATE_FORMAT_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/stringhelper.h100644 0 0 4405 10774263362 22612 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_STRING_HELPER_H #define _LOG4CXX_HELPERS_STRING_HELPER_H #include #include namespace log4cxx { namespace helpers { class Pool; /** String manipulation routines */ class LOG4CXX_EXPORT StringHelper { public: static LogString trim(const LogString& s); static bool startsWith(const LogString& s, const LogString& suffix); static bool endsWith(const LogString& s, const LogString& suffix); static bool equalsIgnoreCase(const LogString& s1, const logchar* upper, const logchar* lower); static bool equalsIgnoreCase(const LogString& s1, const LogString& upper, const LogString& lower); static int toInt(const LogString& s); static log4cxx_int64_t toInt64(const LogString& s); static void toString(int i, log4cxx::helpers::Pool& pool, LogString& dst); static void toString(log4cxx_int64_t i, log4cxx::helpers::Pool& pool, LogString& dst); static void toString(size_t i, log4cxx::helpers::Pool& pool, LogString& dst); static void toString(bool val, LogString& dst); static LogString toLowerCase(const LogString& s); static LogString format(const LogString& pattern, const std::vector& params); }; } } #endif //_LOG4CXX_HELPERS_STRING_HELPER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/condition.h100644 0 0 5472 10774263362 22077 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_CONDITION_H #define _LOG4CXX_HELPERS_CONDITION_H #include #include extern "C" { struct apr_thread_cond_t; } namespace log4cxx { namespace helpers { class Pool; /** * This class provides a means for one thread to suspend exception until * notified by another thread to resume. This class should have * similar semantics to java.util.concurrent.locks.Condition. */ class LOG4CXX_EXPORT Condition { public: /** * Create new instance. * @param p pool on which condition will be created. Needs to be * longer-lived than created instance. */ Condition(log4cxx::helpers::Pool& p); /** * Destructor. */ ~Condition(); /** * Signal all waiting threads. */ log4cxx_status_t signalAll(); /** * Await signaling of condition. * @param lock lock associated with condition, calling thread must * own lock. Lock will be released while waiting and reacquired * before returning from wait. * @throws InterruptedException if thread is interrupted. */ void await(Mutex& lock); private: apr_thread_cond_t* condition; Condition(const Condition&); Condition& operator=(const Condition&); }; } // namespace helpers } // namespace log4cxx #endif //_LOG4CXX_HELPERS_CONDITION_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/objectimpl.h100644 0 0 3006 10774263362 22230 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_OBJECT_IMPL_H #define _LOG4CXX_HELPERS_OBJECT_IMPL_H #include namespace log4cxx { namespace helpers { /** Implementation class for Object.*/ class LOG4CXX_EXPORT ObjectImpl : public virtual Object { public: ObjectImpl(); virtual ~ObjectImpl(); void addRef() const; void releaseRef() const; protected: mutable unsigned int volatile ref; private: // // prevent object copy and assignment // ObjectImpl(const ObjectImpl&); ObjectImpl& operator=(const ObjectImpl&); }; } } #endif //_LOG4CXX_HELPERS_OBJECT_IMPL_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/timezone.h100644 0 0 4020 10774263362 21727 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_TIMEZONE_H #define _LOG4CXX_HELPERS_TIMEZONE_H #include #include #include struct apr_time_exp_t; namespace log4cxx { namespace helpers { class TimeZone; LOG4CXX_PTR_DEF(TimeZone); class LOG4CXX_EXPORT TimeZone : public helpers::ObjectImpl { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(TimeZone) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(TimeZone) END_LOG4CXX_CAST_MAP() static const TimeZonePtr& getDefault(); static const TimeZonePtr& getGMT(); static const TimeZonePtr getTimeZone(const LogString& ID); const LogString getID() const { return id; } /** * Expand an APR time into the human readable * components for this timezone. */ virtual log4cxx_status_t explode(apr_time_exp_t* result, log4cxx_time_t input) const = 0; protected: TimeZone(const LogString& ID); virtual ~TimeZone(); const LogString id; }; } } #endif //_LOG4CXX_HELPERS_TIMEZONE_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/locale.h100644 0 0 3607 10774263362 21346 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_LOCALE_H #define _LOG4CXX_HELPERS_LOCALE_H #include namespace log4cxx { namespace helpers { class LOG4CXX_EXPORT Locale { public: Locale(const LogString& language); Locale(const LogString& language, const LogString& country); Locale(const LogString& language, const LogString& country, const LogString& variant); const LogString& getLanguage() const; const LogString& getCountry() const; const LogString& getVariant() const; protected: Locale(const Locale&); Locale& operator=(const Locale&); const LogString language; const LogString country; const LogString variant; }; // class Locale } // namespace helpers } // namespace log4cxx #endif // _LOG4CXX_HELPERS_LOCALE_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/appenderattachableimpl.h100644 0 0 10005 10774263362 24606 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_APPENDER_ATTACHABLE_IMPL_H #define _LOG4CXX_HELPERS_APPENDER_ATTACHABLE_IMPL_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include namespace log4cxx { namespace spi { class LoggingEvent; typedef helpers::ObjectPtrT LoggingEventPtr; } namespace helpers { class LOG4CXX_EXPORT AppenderAttachableImpl : public virtual spi::AppenderAttachable, public virtual helpers::ObjectImpl { protected: /** Array of appenders. */ AppenderList appenderList; public: /** * Create new instance. * @param pool pool, must be longer-lived than instance. */ AppenderAttachableImpl(Pool& pool); DECLARE_ABSTRACT_LOG4CXX_OBJECT(AppenderAttachableImpl) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(AppenderAttachableImpl) LOG4CXX_CAST_ENTRY(spi::AppenderAttachable) END_LOG4CXX_CAST_MAP() void addRef() const; void releaseRef() const; // Methods /** * Add an appender. */ virtual void addAppender(const AppenderPtr& newAppender); /** Call the doAppend method on all attached appenders. */ int appendLoopOnAppenders(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p); /** * Get all previously added appenders as an Enumeration. */ virtual AppenderList getAllAppenders() const; /** * Get an appender by name. */ virtual AppenderPtr getAppender(const LogString& name) const; /** Returns true if the specified appender is in the list of attached appenders, false otherwise. */ virtual bool isAttached(const AppenderPtr& appender) const; /** * Remove all previously added appenders. */ virtual void removeAllAppenders(); /** * Remove the appender passed as parameter from the list of appenders. */ virtual void removeAppender(const AppenderPtr& appender); /** * Remove the appender with the name passed as parameter from the * list of appenders. */ virtual void removeAppender(const LogString& name); inline const log4cxx::helpers::Mutex& getMutex() const { return mutex; } private: log4cxx::helpers::Mutex mutex; AppenderAttachableImpl(const AppenderAttachableImpl&); AppenderAttachableImpl& operator=(const AppenderAttachableImpl&); }; LOG4CXX_PTR_DEF(AppenderAttachableImpl); } } #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif //_LOG4CXX_HELPERS_APPENDER_ATTACHABLE_IMPL_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bytebuffer.h100644 0 0 4303 10774263362 22236 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_BYTEBUFFER_H #define _LOG4CXX_HELPERS_BYTEBUFFER_H #include #include namespace log4cxx { namespace helpers { /** * A byte buffer. */ class LOG4CXX_EXPORT ByteBuffer { private: char* base; size_t pos; size_t lim; size_t cap; public: ByteBuffer(char* data, size_t capacity); ~ByteBuffer(); void clear(); void flip(); inline char* data() { return base; } inline const char* data() const { return base; } inline char* current() { return base + pos; } inline const char* current() const { return base + pos; } inline size_t limit() const { return lim; } void limit(size_t newLimit); inline size_t position() const { return pos; } inline size_t remaining() const { return lim - pos; } void position(size_t newPosition); bool put(char byte); private: ByteBuffer(const ByteBuffer&); ByteBuffer& operator=(const ByteBuffer&); }; } // namespace helpers } //namespace log4cxx #endif //_LOG4CXX_HELPERS_BYTEBUFFER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/tchar.h100644 0 0 16260 10774263362 21227 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_TCHAR_H #define _LOG4CXX_HELPERS_TCHAR_H #error log4cxx/helpers/tchar.h is obsolete, see details following this line. /** * A short history of log4cxx's tchar.h * * The previous log4cxx/helpers/tchar.h contained macros that * attempted to replicate macros and functions defined by * the Microsoft SDK's tchar.h and related header files * such as _T() and TCHAR. * * When building apps using both log4cxx and Microsoft SDK's tchar.h, * these definitions could conflict and, for example, the code generated * by _T("Foo") would depend on the include order of the two * tchar.h's. * * The motivation of tchar.h in the Microsoft SDK was to * support presenting either a wide-char or multi-byte char * facade to a C API depending on the presence of * the _UNICODE or _MBCS preprocessor macros. When _UNICODE * was set then tchar was typedef'd as wchar_t and, for example, * the CreateProcess macro was defined to be CreateProcessW, If * _MBCS was defined, then tchar was typedef'd as char * and CreateProcess macro was defined to be CreateProcessA. * * In either case, the setting of _UNICODE or _MBCS * didn't affect the implementation of the operating system. * If you were running the Windows NT family, all the multi-byte * methods delegated to a wide-char implementation. * In the Windows 9x family, most wide-char methods delegated * to a multi-byte implementation. * * In practice, most Microsoft Windows executables were either * wide-char or multi-byte centric. However, they did not * have to be exclusively so. An application built with * _UNICODE, could still call multi-byte API functions, * they would just need to explicitly call CreateProcessA * instead of using the facade macro. An executable could * also use both a multi-byte centric and wide-char centric * DLL's since all the calls eventually hit the same * underlying implementation be it a wide-char on in * Windows NT or multi-char in Windows 9x. * * The use of log4cxx/helpers/tchar.h in log4cxx 0.9.7 was * undesirable because it made log4cxx either exclusively * wide-char or exclusively multi-byte and had to be consistant * with the character model of the calling executable. * This would make it extremely difficult to use * log4cxx when DLL's with different character models * where called by the same application. Since log4cxx * was C++, not C, function overloading could be * used instead of the CreateProcess et al macros * used in the Windows headers. * * In the rework before the 0.9.8, the following changes * were made to log4cxx: * * 1. All inclusions of log4cxx/helpers/tchar.h * and use of TCHAR, log4cxx::String and _T * were removed from log4cxx. * 2. log4cxx/logstring.h was added to define the * implementation character model using the log4cxx::logchar * and log4cxx::LogString typedefs and LOG4CXX_STR macro. * 3. Methods commonly used by calling applications were defined * in both wide-char and multi-byte and both pointer and string * forms with conversion to the implementation character * model delayed as long as possible. * 4. Use of Standard Template Library streams within * log4cxx was substantially reduced (but not totally * elminated). * 5. The LOG4CXX_DEBUG and similar macros were simplified * and now only take arguments that evaluate to * character pointers or strings and no longer take * the right hand side of an insertion operation: * * // This used to work, but no longer * LOG4CXX_DEBUG(logger, "foo" << i); * * If you extensively used this idiom, please consider * migrating to stream-like API defined in log4cxx/stream.h. * * 6. The LOG4CXX_DEBUG and similar use the LOG4CXX_LOCATION * macro to define the log statement location instead of * using __FILE__ and __LINE__. Logger::debug and * similar now take const LocationInfo& instead of * separate const char* and int arguments. This allows * class and method names to appear in location info. * 7. log4cxx include files no longer include config.h * or related files. config.h and related files * may be used by log4cxx implementation, but have * no effect on the exposed API. * * It is expected that the default implementation character * model will be wchar_t. However this may vary by platform * and may be changed based on feedback. * * Developers using log4cxx should seldom be concerned * with the internal character model of log4cxx unless * writing custom appenders or layouts. An application * should not be using log4cxx::logchar, log4cxx::LogString * or LOG4CXX_STR unless dealing with something that is * clearly a log4cxx internal. If you find something * defined as using or returning LogString that you * don't consider a log4cxx internal, please file a * bug report or post a message to one of the mailing lists. * * wchar_t literals should be preferred in log requests since * since they eliminate potential encoding confusion * when the development and deployment encodings are different. * * Migration strategies: * * If you followed the examples in the previous log4cxx versions, * you may have _T() macros littered through your code * and inclusions of this file. If you are on the Microsoft * platform, the simplest solution is to just include * the Platform SDK's tchar.h which would result your log * statements matching the character model of your application. * * If you targetting another platform and your only use of * _T() in related to log4cxx, then I would recommend replacing * all _T() with another macro (say MYAPP_LOGSTR()) * and defining that macro in a commonly included header file * or defining _T() in a commonly included header file. * * I would first try defining these macros as * * #define _T(str) L ## str * * If that results in too many compilation errors, then try: * * #define _T(str) str * * Using the first form will result in wchar_t literals which * will avoid potential encoding confusion and is expected * to result in slightly better performance when logging. * * Since the best choice for _T() depends on the application, * there is not a definition within log4cxx. * * Use encoding conversion macros A2T, W2T, et al should * not longer be necessary. If you are doing a lot of * work converting between encodings, you might consider * using the stream-like interface in log4cxx/stream.h * which defines insertion operators for multi-byte * strings in addition to exposing all the * insertion operations defined for * std::basic_ostream. * */ #endif //_LOG4CXX_HELPERS_TCHAR_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/pool.h100644 0 0 3734 10774263362 21061 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_POOL_H #define _LOG4CXX_HELPERS_POOL_H #include #include extern "C" { struct apr_pool_t; } namespace log4cxx { namespace helpers { class LOG4CXX_EXPORT Pool { public: Pool(); Pool(apr_pool_t* pool, bool release); ~Pool(); apr_pool_t* getAPRPool(); apr_pool_t* create(); void* palloc(size_t length); char* pstralloc(size_t length); char* itoa(int n); char* pstrndup(const char* s, size_t len); char* pstrdup(const char*s); char* pstrdup(const std::string&); protected: apr_pool_t* pool; const bool release; private: Pool(const log4cxx::helpers::Pool&); Pool& operator=(const Pool&); }; } // namespace helpers } // namespace log4cxx #endif //_LOG4CXX_HELPERS_POOL_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/simpledateformat.h100644 0 0 6074 10774263362 23450 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_SIMPLE_DATE_FORMAT_H #define _LOG4CXX_HELPERS_SIMPLE_DATE_FORMAT_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include namespace std { class locale; } namespace log4cxx { namespace helpers { namespace SimpleDateFormatImpl { class PatternToken; } /** * Concrete class for formatting and parsing dates in a * locale-sensitive manner. */ class LOG4CXX_EXPORT SimpleDateFormat : public DateFormat { public: /** * Constructs a DateFormat using the given pattern and the default * time zone. * * @param pattern the pattern describing the date and time format */ SimpleDateFormat(const LogString& pattern); SimpleDateFormat(const LogString& pattern, const std::locale* locale); ~SimpleDateFormat(); virtual void format(LogString& s, log4cxx_time_t tm, log4cxx::helpers::Pool& p) const; /** * Set time zone. * @param zone new time zone. */ void setTimeZone(const TimeZonePtr& zone); private: /** * Time zone. */ TimeZonePtr timeZone; /** * List of tokens. */ LOG4CXX_LIST_DEF(PatternTokenList, log4cxx::helpers::SimpleDateFormatImpl::PatternToken*); PatternTokenList pattern; static void addToken(const logchar spec, const int repeat, const std::locale* locale, PatternTokenList& pattern); static void parsePattern(const LogString& spec, const std::locale* locale, PatternTokenList& pattern); }; } // namespace helpers } // namespace log4cxx #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif // _LOG4CXX_HELPERS_SIMPLE_DATE_FORMAT_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/threadlocal.h100644 0 0 5507 10774263362 22372 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_THREAD_LOCAL_H #define _LOG4CXX_HELPERS_THREAD_LOCAL_H #include #include #if !defined(LOG4CXX_THREAD_FUNC) #if defined(_WIN32) #define LOG4CXX_THREAD_FUNC __stdcall #else #define LOG4CXX_THREAD_FUNC #endif #endif extern "C" { struct apr_threadkey_t; } namespace log4cxx { namespace helpers { /** * This class provides thread-local variables. This class is similar in function * to java.lang.ThreadLocal. */ class LOG4CXX_EXPORT ThreadLocal { public: /** * Create new instance. */ ThreadLocal(); /** * Destructor. */ ~ThreadLocal(); /** * Sets the value in the current thread's copy of this thread-local variable. * @param priv new value. */ void set(void* priv); /** * Returns the value in the current thread's copy of this thread-local variable. * @return value of thread-local variable for the current thread. */ void* get(); private: /** * Prevent use of default copy constructor. */ ThreadLocal(const ThreadLocal&); /** * Prevent use of default assignment operator. */ ThreadLocal& operator=(const ThreadLocal&); static apr_threadkey_t* create(Pool& p); Pool p; apr_threadkey_t* key; }; } // namespace helpers } // namespace log4cxx #endif //_LOG4CXX_HELPERS_THREAD_LOCAL_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/transform.h100644 0 0 5415 10774263362 22121 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_TRANSFORM_H #define _LOG4CXX_HELPERS_TRANSFORM_H #include namespace log4cxx { namespace helpers { /** Utility class for transforming strings. */ class LOG4CXX_EXPORT Transform { public: /** * This method takes a string which may contain HTML tags (ie, * <b>, <table>, etc) and replaces any '<' and '>' * characters with respective predefined entity references. * * @param buf output stream where to write the modified string. * @param input The text to be converted. * @return The input string with the characters '<' and '>' replaced with * &lt; and &gt; respectively. * */ static void appendEscapingTags( LogString& buf, const LogString& input); /** * Ensures that embeded CDEnd strings (]]>) are handled properly * within message, NDC and throwable tag text. * * @param buf output stream holding the XML data to this point. The * initial CDStart () of the CDATA * section are the responsibility of the calling method. * @param input The String that is inserted into an existing CDATA * Section within buf. */ static void appendEscapingCDATA( LogString& buf, const LogString& input); }; // class Transform } // namespace helpers } //namespace log4cxx #endif // _LOG4CXX_HELPERS_TRANSFORM_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/date.h100644 0 0 3376 10774263362 21027 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_DATE_H #define _LOG4CXX_HELPERS_DATE_H #include #include namespace log4cxx { namespace helpers { /** * Simple transcoder for converting between * external char and wchar_t strings and * internal strings. * */ class LOG4CXX_EXPORT Date : public ObjectImpl { const log4cxx_time_t time; public: DECLARE_LOG4CXX_OBJECT(Date) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(Date) END_LOG4CXX_CAST_MAP() Date(); Date(log4cxx_time_t time); virtual ~Date(); inline log4cxx_time_t getTime() const { return time; } /** * Get start of next second */ log4cxx_time_t getNextSecond() const; static log4cxx_time_t getMicrosecondsPerDay(); static log4cxx_time_t getMicrosecondsPerSecond(); }; LOG4CXX_PTR_DEF(Date); } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/reader.h100644 0 0 4343 10774263362 21347 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_READER_H #define _LOG4CXX_HELPERS_READER_H #include namespace log4cxx { namespace helpers { /** * Abstract class for reading from character streams. * */ class LOG4CXX_EXPORT Reader : public ObjectImpl { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(Reader) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(Reader) END_LOG4CXX_CAST_MAP() protected: /** * Creates a new character-stream reader. */ Reader(); virtual ~Reader(); public: /** * Closes the stream. * @param p The memory pool associated with the reader. */ virtual void close(Pool& p) = 0; /** * @return The complete stream contents as a LogString. * @param p The memory pool associated with the reader. */ virtual LogString read(Pool& p) = 0; private: Reader(const Reader&); Reader& operator=(const Reader&); }; LOG4CXX_PTR_DEF(Reader); } // namespace helpers } //namespace log4cxx #endif //_LOG4CXX_HELPERS_READER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/fileoutputstream.h100644 0 0 4544 10774263362 23524 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_FILEOUTPUTSTREAM_H #define _LOG4CXX_HELPERS_FILEOUTPUTSTREAM_H #include #include #include namespace log4cxx { namespace helpers { /** * OutputStream implemented on top of APR file IO. */ class LOG4CXX_EXPORT FileOutputStream : public OutputStream { private: Pool pool; apr_file_t* fileptr; public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(FileOutputStream) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(FileOutputStream) LOG4CXX_CAST_ENTRY_CHAIN(OutputStream) END_LOG4CXX_CAST_MAP() FileOutputStream(const LogString& filename, bool append = false); FileOutputStream(const logchar* filename, bool append = false); virtual ~FileOutputStream(); virtual void close(Pool& p); virtual void flush(Pool& p); virtual void write(ByteBuffer& buf, Pool& p); private: FileOutputStream(const FileOutputStream&); FileOutputStream& operator=(const FileOutputStream&); static apr_file_t* open(const LogString& fn, bool append, log4cxx::helpers::Pool& p); }; LOG4CXX_PTR_DEF(FileOutputStream); } // namespace helpers } //namespace log4cxx #endif //_LOG4CXX_HELPERS_FILEOUTPUTSTREAM_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/strictmath.h100644 0 0 3455 10774263362 22272 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_STRICTMATH_H #define _LOG4CXX_HELPERS_STRICTMATH_H #include namespace log4cxx { namespace helpers { /** The class StrictMath contains methods for performing basic numeric operations */ class StrictMath { public: template static inline const _type& minimum(const _type& a, const _type& b) { return (a < b) ? a : b; } template static inline const _type& maximum(const _type& a, const _type& b) { return (a > b) ? a : b; } }; // class StrictMath } // namespace helpers } // namespace log4cx #endif //_LOG4CXX_HELPERS_STRICTMATH_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/onlyonceerrorhandler.h100644 0 0 7467 10774263362 24355 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_ONLY_ONCE_ERROR_HANDLER_H #define _LOG4CXX_HELPERS_ONLY_ONCE_ERROR_HANDLER_H #include #include namespace log4cxx { namespace helpers { /** The OnlyOnceErrorHandler implements log4cxx's default error handling policy which consists of emitting a message for the first error in an appender and ignoring all following errors.

The error message is printed on System.err.

This policy aims at protecting an otherwise working application from being flooded with error messages when logging fails */ class LOG4CXX_EXPORT OnlyOnceErrorHandler : public virtual spi::ErrorHandler, public virtual ObjectImpl { private: LogString WARN_PREFIX; LogString ERROR_PREFIX; mutable bool firstTime; public: DECLARE_LOG4CXX_OBJECT(OnlyOnceErrorHandler) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(spi::OptionHandler) LOG4CXX_CAST_ENTRY(spi::ErrorHandler) END_LOG4CXX_CAST_MAP() OnlyOnceErrorHandler(); void addRef() const; void releaseRef() const; /** Does not do anything. */ void setLogger(const LoggerPtr& logger); /** No options to activate. */ void activateOptions(log4cxx::helpers::Pool& p); void setOption(const LogString& option, const LogString& value); /** Prints the message and the stack trace of the exception on System.err. */ void error(const LogString& message, const std::exception& e, int errorCode) const; /** Prints the message and the stack trace of the exception on System.err. */ void error(const LogString& message, const std::exception& e, int errorCode, const spi::LoggingEventPtr& event) const; /** Print a the error message passed as parameter on System.err. */ void error(const LogString& message) const; /** Does not do anything. */ void setAppender(const AppenderPtr& appender); /** Does not do anything. */ void setBackupAppender(const AppenderPtr& appender); }; } // namespace helpers } // namespace log4cxx #endif //_LOG4CXX_HELPERS_ONLY_ONCE_ERROR_HANDLER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/socketoutputstream.h100644 0 0 5035 10774263362 24071 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_SOCKET_OUTPUT_STREAM_H #define _LOG4CXX_HELPERS_SOCKET_OUTPUT_STREAM_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include namespace log4cxx { namespace helpers { class LOG4CXX_EXPORT SocketOutputStream : public OutputStream { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(SocketOutputStream) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(SocketOutputStream) LOG4CXX_CAST_ENTRY_CHAIN(OutputStream) END_LOG4CXX_CAST_MAP() SocketOutputStream(const SocketPtr& socket); ~SocketOutputStream(); virtual void close(Pool& p); virtual void flush(Pool& p); virtual void write(ByteBuffer& buf, Pool& p); private: LOG4CXX_LIST_DEF(ByteList, unsigned char); ByteList array; SocketPtr socket; // // prevent copy and assignment statements SocketOutputStream(const SocketOutputStream&); SocketOutputStream& operator=(const SocketOutputStream&); }; LOG4CXX_PTR_DEF(SocketOutputStream); } // namespace helpers } // namespace log4cxx #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif // _LOG4CXX_HELPERS_SOCKET_OUTPUT_STREAM_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/aprinitializer.h100644 0 0 3332 10774263362 23130 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_APRINITIALIZER_H #define _LOG4CXX_HELPERS_APRINITIALIZER_H #ifndef LOG4CXX #error "aprinitializer.h should only be included by log4cxx implementation" #endif #include #include #include namespace log4cxx { namespace helpers { class APRInitializer { public: static log4cxx_time_t initialize(); static apr_pool_t* getRootPool(); static apr_threadkey_t* getTlsKey(); static bool isDestructed; private: APRInitializer(); APRInitializer(const APRInitializer&); APRInitializer& operator=(const APRInitializer&); apr_pool_t* p; log4cxx_time_t startTime; apr_threadkey_t* tlsKey; static APRInitializer& getInstance(); static void tlsDestruct(void*); public: ~APRInitializer(); }; } // namespace helpers } // namespace log4cxx #endif //_LOG4CXX_HELPERS_APRINITIALIZER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datagramsocket.h100644 0 0 12252 10774263362 23114 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_DATAGRAM_SOCKET_H #define _LOG4CXX_HELPERS_DATAGRAM_SOCKET_H #include #include #include #include #include extern "C" { struct apr_socket_t; } namespace log4cxx { namespace helpers { /** This class represents a socket for sending and receiving datagram packets.*/ class LOG4CXX_EXPORT DatagramSocket : public helpers::ObjectImpl { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(DatagramSocket) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(DatagramSocket) END_LOG4CXX_CAST_MAP() /** Constructs a datagram socket and binds it to any available port on the local host machine.*/ DatagramSocket(); /** Constructs a datagram socket and binds it to the specified port on the local host machine. */ DatagramSocket(int port); /** Creates a datagram socket, bound to the specified local address. */ DatagramSocket(int port, InetAddressPtr laddr); /** ensure the socket is closed. */ ~DatagramSocket(); /** Binds a datagram socket to a local port and address.*/ void bind(int lport, InetAddressPtr laddress); /** Creates a datagram socket.*/ void create(); /** Closes this datagram socket */ void close(); /** Connects the socket to a remote address for this socket. */ void connect(InetAddressPtr address, int port); /** Returns the address to which this socket is connected. */ inline InetAddressPtr getInetAddress() const { return address; } /** Gets the local address to which the socket is bound. */ inline InetAddressPtr getLocalAddress() const { return localAddress; } /** Returns the port number on the local host to which this socket is bound. */ inline int getLocalPort() const { return localPort; } /** Returns the port for this socket */ inline int getPort() const { return port; } /** Returns the binding state of the socket. **/ inline bool isBound() const { return localPort != 0; } /** Returns wether the socket is closed or not. */ inline bool isClosed() const { return socket != 0; } /** Returns the connection state of the socket. */ inline bool isConnected() const { return port != 0; } /** Receives a datagram packet from this socket. */ void receive(DatagramPacketPtr& p); /** Sends a datagram packet from this socket. */ void send(DatagramPacketPtr& p); private: DatagramSocket(const DatagramSocket&); DatagramSocket& operator=(const DatagramSocket&); /** The APR socket */ apr_socket_t *socket; /** The memory pool for the socket */ Pool socketPool; InetAddressPtr address; InetAddressPtr localAddress; int port; /** The local port number to which this socket is connected. */ int localPort; }; LOG4CXX_PTR_DEF(DatagramSocket); } // namespace helpers } // namespace log4cxx #endif //_LOG4CXX_HELPERS_DATAGRAM_SOCKET_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/objectptr.h100644 0 0 12752 10774263362 22124 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_OBJECT_PTR_H #define _LOG4CXX_HELPERS_OBJECT_PTR_H #include // // Helgrind (race detection tool for Valgrind) will complain if pointer // is not initialized in an atomic operation. Static analysis tools // (gcc's -Weffc++, for example) will complain if pointer is not initialized // in member initialization list. The use of a macro allows quick // switching between the initialization styles. // #if LOG4CXX_HELGRIND #define _LOG4CXX_OBJECTPTR_INIT(x) { exchange(x); #else #define _LOG4CXX_OBJECTPTR_INIT(x) : p(x) { #endif namespace log4cxx { namespace helpers { class Class; class LOG4CXX_EXPORT ObjectPtrBase { public: ObjectPtrBase(); virtual ~ObjectPtrBase(); static void checkNull(const int& null); static void* exchange(void** destination, void* newValue); virtual void* cast(const Class& cls) const = 0; }; /** smart pointer to a Object descendant */ template class ObjectPtrT : public ObjectPtrBase { public: ObjectPtrT(const int& null) _LOG4CXX_OBJECTPTR_INIT(0) ObjectPtrBase::checkNull(null); } ObjectPtrT() _LOG4CXX_OBJECTPTR_INIT(0) } ObjectPtrT(T * p1) _LOG4CXX_OBJECTPTR_INIT(p1) if (this->p != 0) { this->p->addRef(); } } ObjectPtrT(const ObjectPtrT& p1) _LOG4CXX_OBJECTPTR_INIT(p1.p) if (this->p != 0) { this->p->addRef(); } } ObjectPtrT(const ObjectPtrBase& p1) _LOG4CXX_OBJECTPTR_INIT(reinterpret_cast(p1.cast(T::getStaticClass()))) if (this->p != 0) { this->p->addRef(); } } ObjectPtrT(ObjectPtrBase& p1) _LOG4CXX_OBJECTPTR_INIT(reinterpret_cast(p1.cast(T::getStaticClass()))) if (this->p != 0) { this->p->addRef(); } } ~ObjectPtrT() { if (p != 0) { p->releaseRef(); } } ObjectPtrT& operator=(const ObjectPtrT& p1) { T* newPtr = p1.p; if (newPtr != 0) { newPtr->addRef(); } T* oldPtr = exchange(newPtr); if (oldPtr != 0) { oldPtr->releaseRef(); } return *this; } ObjectPtrT& operator=(const int& null) //throw(IllegalArgumentException) { // // throws IllegalArgumentException if null != 0 // ObjectPtrBase::checkNull(null); T* oldPtr = exchange(0); if (oldPtr != 0) { oldPtr->releaseRef(); } return *this; } ObjectPtrT& operator=(T* p1) { if (p1 != 0) { p1->addRef(); } T* oldPtr = exchange(p1); if (oldPtr != 0) { oldPtr->releaseRef(); } return *this; } ObjectPtrT& operator=(ObjectPtrBase& p1) { T* newPtr = reinterpret_cast(p1.cast(T::getStaticClass())); return operator=(newPtr); } ObjectPtrT& operator=(const ObjectPtrBase& p1) { T* newPtr = reinterpret_cast(p1.cast(T::getStaticClass())); return operator=(newPtr); } bool operator==(const ObjectPtrT& p1) const { return (this->p == p1.p); } bool operator!=(const ObjectPtrT& p1) const { return (this->p != p1.p); } bool operator<(const ObjectPtrT& p1) const { return (this->p < p1.p); } bool operator==(const T* p1) const { return (this->p == p1); } bool operator!=(const T* p1) const { return (this->p != p1); } bool operator<(const T* p1) const { return (this->p < p1); } T* operator->() const {return p; } T& operator*() const {return *p; } operator T*() const {return p; } private: T * p; virtual void* cast(const Class& cls) const { if (p != 0) { return const_cast(p->cast(cls)); } return 0; } T* exchange(const T* newValue) { return static_cast(ObjectPtrBase::exchange( reinterpret_cast(&p), const_cast(newValue))); } }; } } #endif //_LOG4CXX_HELPERS_OBJECT_PTR_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/relativetimedateformat.h100644 0 0 3426 10774263362 24647 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_RELATIVE_TIME_DATE_FORMAT_H #define _LOG4CXX_HELPERS_RELATIVE_TIME_DATE_FORMAT_H #include namespace log4cxx { namespace helpers { /** Formats a date by printing the number of seconds elapsed since the start of the application. This is the fastest printing DateFormat in the package. */ class LOG4CXX_EXPORT RelativeTimeDateFormat : public DateFormat { public: RelativeTimeDateFormat(); virtual void format(LogString &s, log4cxx_time_t tm, log4cxx::helpers::Pool& p) const; private: log4cxx_time_t startTime; }; } // namespace helpers } // namespace log4cxx #endif // _LOG4CXX_HELPERS_RELATIVE_TIME_DATE_FORMAT_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/classregistration.h100644 0 0 3003 10774263362 23635 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_CLASSREGISTRATION_H #define _LOG4CXX_HELPERS_CLASSREGISTRATION_H #include namespace log4cxx { namespace helpers { class Class; class LOG4CXX_EXPORT ClassRegistration { public: typedef const Class& (*ClassAccessor)(); ClassRegistration(ClassAccessor classAccessor); private: ClassRegistration(const ClassRegistration&); ClassRegistration& operator=(const ClassRegistration&); }; } // namespace log4cxx } // namespace helper #endif //_LOG4CXX_HELPERS_CLASSREGISTRATION_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/filewatchdog.h100644 0 0 6041 10774263362 22542 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_FILEWATCHDOG_H #define _LOG4CXX_HELPERS_FILEWATCHDOG_H #include #include #include #include #include namespace log4cxx { namespace helpers { /** Check every now and then that a certain file has not changed. If it has, then call the #doOnChange method. */ class LOG4CXX_EXPORT FileWatchdog { public: virtual ~FileWatchdog(); /** The default delay between every file modification check, set to 60 seconds. */ static long DEFAULT_DELAY /*= 60000*/; protected: /** The name of the file to observe for changes. */ File file; /** The delay to observe between every check. By default set DEFAULT_DELAY.*/ long delay; log4cxx_time_t lastModif; bool warnedAlready; volatile unsigned int interrupted; protected: FileWatchdog(const File& filename); virtual void doOnChange() = 0; void checkAndConfigure(); public: /** Set the delay to observe between each check of the file changes. */ void setDelay(long delay1) { this->delay = delay1; } void start(); private: static void* LOG4CXX_THREAD_FUNC run(apr_thread_t* thread, void* data); Pool pool; Thread thread; FileWatchdog(const FileWatchdog&); FileWatchdog& operator=(const FileWatchdog&); }; } // namespace helpers } // namespace log4cxx #endif // _LOG4CXX_HELPERS_FILEWATCHDOG_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/stringtokenizer.h100644 0 0 3517 10774263362 23350 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_STRING_TOKENIZER_H #define _LOG4CXX_HELPERS_STRING_TOKENIZER_H #include #include namespace log4cxx { namespace helpers { class LOG4CXX_EXPORT StringTokenizer { public: StringTokenizer(const LogString& str, const LogString& delim); ~StringTokenizer(); bool hasMoreTokens() const; LogString nextToken(); protected: LogString src; LogString delim; size_t pos; private: // prevent copy and assignment statements StringTokenizer(const StringTokenizer&); StringTokenizer& operator=(const StringTokenizer&); }; // class StringTokenizer } // namespace helpers; } // namespace log4cxx; #endif //_LOG4CXX_HELPERS_STRING_TOKENIZER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/transcoder.h100644 0 0 20236 10774263362 22270 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_TRANSCODER_H #define _LOG4CXX_HELPERS_TRANSCODER_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include namespace log4cxx { namespace helpers { class ByteBuffer; class Pool; /** * Simple transcoder for converting between * external char and wchar_t strings and * internal strings. * */ class LOG4CXX_EXPORT Transcoder { public: /** * Appends this specified string of UTF-8 characters to LogString. */ static void decodeUTF8(const std::string& src, LogString& dst); /** * Converts the LogString to a UTF-8 string. */ static void encodeUTF8(const LogString& src, std::string& dst); /** * Converts the LogString to a UTF-8 string. */ static char* encodeUTF8(const LogString& src, log4cxx::helpers::Pool& p); /** * Append UCS-4 code point to a byte buffer as UTF-8. */ static void encodeUTF8(unsigned int sv, ByteBuffer& dst); /** * Append UCS-4 code point to a byte buffer as UTF-16LE. */ static void encodeUTF16LE(unsigned int sv, ByteBuffer& dst); /** * Append UCS-4 code point to a byte buffer as UTF-16BE. */ static void encodeUTF16BE(unsigned int sv, ByteBuffer& dst); /** * Decodes next character from a UTF-8 string. * @param in string from which the character is extracted. * @param iter iterator addressing start of character, will be * advanced to next character if successful. * @return scalar value (UCS-4) or 0xFFFF if invalid sequence. */ static unsigned int decode(const std::string& in, std::string::const_iterator& iter); /** * Appends UCS-4 value to a UTF-8 string. * @param ch UCS-4 value. * @param dst destination. */ static void encode(unsigned int ch, std::string& dst); /** * Appends string in the current code-page * to a LogString. */ static void decode(const std::string& src, LogString& dst); /** * Appends a LogString to a string in the current * code-page. Unrepresentable characters may be * replaced with loss characters. */ static void encode(const LogString& src, std::string& dst); /** * Encodes the specified LogString to the current * character set. * @param src string to encode. * @param p pool from which to allocate return value. * @return pool allocated string. */ static char* encode(const LogString& src, log4cxx::helpers::Pool& p); #if LOG4CXX_WCHAR_T_API || LOG4CXX_LOGCHAR_IS_WCHAR_T || defined(WIN32) || defined(_WIN32) static void decode(const std::wstring& src, LogString& dst); static void encode(const LogString& src, std::wstring& dst); static wchar_t* wencode(const LogString& src, log4cxx::helpers::Pool& p); /** * Decodes next character from a wstring. * @param in string from which the character is extracted. * @param iter iterator addressing start of character, will be * advanced to next character if successful. * @return scalar value (UCS-4) or 0xFFFF if invalid sequence. */ static unsigned int decode(const std::wstring& in, std::wstring::const_iterator& iter); /** * Appends UCS-4 value to a UTF-8 string. * @param ch UCS-4 value. * @param dst destination. */ static void encode(unsigned int ch, std::wstring& dst); #endif #if LOG4CXX_UNICHAR_API || LOG4CXX_CFSTRING_API || LOG4CXX_LOGCHAR_IS_UNICHAR static void decode(const std::basic_string& src, LogString& dst); static void encode(const LogString& src, std::basic_string& dst); /** * Decodes next character from a UniChar string. * @param in string from which the character is extracted. * @param iter iterator addressing start of character, will be * advanced to next character if successful. * @return scalar value (UCS-4) or 0xFFFF if invalid sequence. */ static unsigned int decode(const std::basic_string& in, std::basic_string::const_iterator& iter); /** * Appends UCS-4 value to a UTF-8 string. * @param ch UCS-4 value. * @param dst destination. */ static void encode(unsigned int ch, std::basic_string& dst); #endif #if LOG4CXX_CFSTRING_API static void decode(const CFStringRef& src, LogString& dst); static CFStringRef encode(const LogString& src); #endif enum { LOSSCHAR = 0x3F }; /** * Returns a logchar value given a character literal in the ASCII charset. * Used to implement the LOG4CXX_STR macro for EBCDIC and UNICHAR. */ static logchar decode(char v); /** * Returns a LogString given a string literal in the ASCII charset. * Used to implement the LOG4CXX_STR macro for EBCDIC and UNICHAR. */ static LogString decode(const char* v); /** * Encodes a charset name in the default encoding * without using a CharsetEncoder (which could trigger recursion). */ static std::string encodeCharsetName(const LogString& charsetName); private: private: Transcoder(); Transcoder(const Transcoder&); Transcoder& operator=(const Transcoder&); enum { BUFSIZE = 256 }; static size_t encodeUTF8(unsigned int ch, char* dst); static size_t encodeUTF16BE(unsigned int ch, char* dst); static size_t encodeUTF16LE(unsigned int ch, char* dst); }; } } #define LOG4CXX_ENCODE_CHAR(var, src) \ std::string var; \ log4cxx::helpers::Transcoder::encode(src, var) #define LOG4CXX_DECODE_CHAR(var, src) \ log4cxx::LogString var; \ log4cxx::helpers::Transcoder::decode(src, var) #define LOG4CXX_DECODE_CFSTRING(var, src) \ log4cxx::LogString var; \ log4cxx::helpers::Transcoder::decode(src, var) #define LOG4CXX_ENCODE_CFSTRING(var, src) \ CFStringRef var = log4cxx::helpers::Transcoder::encode(src) #if LOG4CXX_LOGCHAR_IS_WCHAR #define LOG4CXX_ENCODE_WCHAR(var, src) \ const std::wstring& var = src #define LOG4CXX_DECODE_WCHAR(var, src) \ const log4cxx::LogString& var = src #else #define LOG4CXX_ENCODE_WCHAR(var, src) \ std::wstring var; \ log4cxx::helpers::Transcoder::encode(src, var) #define LOG4CXX_DECODE_WCHAR(var, src) \ log4cxx::LogString var; \ log4cxx::helpers::Transcoder::decode(src, var) #endif #if LOG4CXX_LOGCHAR_IS_UNICHAR #define LOG4CXX_ENCODE_UNICHAR(var, src) \ const std::basic_string& var = src #define LOG4CXX_DECODE_UNICHAR(var, src) \ const log4cxx::LogString& var = src #else #define LOG4CXX_ENCODE_UNICHAR(var, src) \ std::basic_string var; \ log4cxx::helpers::Transcoder::encode(src, var) #define LOG4CXX_DECODE_UNICHAR(var, src) \ log4cxx::LogString var; \ log4cxx::helpers::Transcoder::decode(src, var) #endif #if defined(_MSC_VER) #pragma warning (pop) #endif #endif //_LOG4CXX_HELPERS_TRANSCODER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/mutex.h100644 0 0 3135 10774263362 21245 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_MUTEX_H #define _LOG4CXX_HELPERS_MUTEX_H #include extern "C" { struct apr_thread_mutex_t; struct apr_pool_t; } namespace log4cxx { namespace helpers { class Pool; class LOG4CXX_EXPORT Mutex { public: Mutex(log4cxx::helpers::Pool& p); Mutex(apr_pool_t* p); ~Mutex(); apr_thread_mutex_t* getAPRMutex() const; private: Mutex(const Mutex&); Mutex& operator=(const Mutex&); apr_thread_mutex_t* mutex; }; } // namespace helpers } // namespace log4cxx #endif //_LOG4CXX_HELPERS_MUTEX_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/absolutetimedateformat.h100644 0 0 3011 10774263362 24640 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_ABSOLUTE_TIME_DATE_FORMAT_H #define _LOG4CXX_HELPERS_ABSOLUTE_TIME_DATE_FORMAT_H #include namespace log4cxx { namespace helpers { /** Formats a date in the format HH:mm:ss,SSS for example, "15:49:37,459". */ class LOG4CXX_EXPORT AbsoluteTimeDateFormat : public SimpleDateFormat { public: AbsoluteTimeDateFormat() : SimpleDateFormat(LOG4CXX_STR("HH:mm:ss,SSS")) {} }; } // namespace helpers } // namespace log4cxx #endif // _LOG4CXX_HELPERS_ABSOLUTE_TIME_DATE_FORMAT_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datetimedateformat.h100644 0 0 3275 10774263362 23753 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_DATE_TIME_DATE_FORMAT_H #define _LOG4CXX_HELPERS_DATE_TIME_DATE_FORMAT_H #include namespace log4cxx { namespace helpers { /** Formats a date in the format dd MMM yyyy HH:mm:ss,SSS for example, "06 Nov 1994 15:49:37,459". */ class LOG4CXX_EXPORT DateTimeDateFormat : public SimpleDateFormat { public: DateTimeDateFormat() : SimpleDateFormat(LOG4CXX_STR("dd MMM yyyy HH:mm:ss,SSS")) {} DateTimeDateFormat(const std::locale* locale) : SimpleDateFormat(LOG4CXX_STR("dd MMM yyyy HH:mm:ss,SSS"), locale) {} }; } // namespace helpers } // namespace log4cxx #endif // _LOG4CXX_HELPERS_DATE_TIME_DATE_FORMAT_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/dateformat.h100644 0 0 6530 10774263362 22233 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_DATE_FORMAT_H #define _LOG4CXX_HELPERS_DATE_FORMAT_H #include namespace log4cxx { namespace helpers { /** * DateFormat is an abstract class for date/time formatting * patterned after java.text.DateFormat. */ class LOG4CXX_EXPORT DateFormat : public ObjectImpl { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(DateFormat) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(DateFormat) END_LOG4CXX_CAST_MAP() /** * Destructor */ virtual ~DateFormat(); /** * Formats an log4cxx_time_t into a date/time string. * @param s string to which the date/time string is appended. * @param tm date to be formatted. * @param p memory pool used during formatting. */ virtual void format(LogString &s, log4cxx_time_t tm, log4cxx::helpers::Pool& p) const = 0; /** * Sets the time zone. * @param zone the given new time zone. */ virtual void setTimeZone(const TimeZonePtr& zone); /** * Format an integer consistent with the format method. * @param s string to which the numeric string is appended. * @param n integer value. * @param p memory pool used during formatting. * @remarks This method is used by CachedDateFormat to * format the milliseconds. */ virtual void numberFormat(LogString& s, int n, log4cxx::helpers::Pool& p) const; protected: /** * Constructor. */ DateFormat(); private: /** * Copy constructor definition to prevent copying. */ DateFormat(const DateFormat&); /** * Assignment definition to prevent assignment. */ DateFormat& operator=(const DateFormat&); }; LOG4CXX_PTR_DEF(DateFormat); } // namespace helpers } // namespace log4cxx #endif //_LOG4CXX_HELPERS_DATE_FORMAT_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/object.h100644 0 0 12120 10774263362 21363 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_OBJECT_H #define _LOG4CXX_HELPERS_OBJECT_H #include #include #include #include #define DECLARE_ABSTRACT_LOG4CXX_OBJECT(object)\ public:\ class Clazz##object : public helpers::Class\ {\ public:\ Clazz##object() : helpers::Class() {}\ virtual ~Clazz##object() {}\ virtual log4cxx::LogString getName() const { return LOG4CXX_STR(#object); } \ };\ virtual const helpers::Class& getClass() const;\ static const helpers::Class& getStaticClass(); \ static const log4cxx::helpers::ClassRegistration& registerClass(); #define DECLARE_LOG4CXX_OBJECT(object)\ public:\ class Clazz##object : public helpers::Class\ {\ public:\ Clazz##object() : helpers::Class() {}\ virtual ~Clazz##object() {}\ virtual log4cxx::LogString getName() const { return LOG4CXX_STR(#object); } \ virtual helpers::ObjectPtr newInstance() const\ {\ return new object();\ }\ };\ virtual const helpers::Class& getClass() const;\ static const helpers::Class& getStaticClass(); \ static const log4cxx::helpers::ClassRegistration& registerClass(); #define DECLARE_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS(object, class)\ public:\ virtual const helpers::Class& getClass() const;\ static const helpers::Class& getStaticClass();\ static const log4cxx::helpers::ClassRegistration& registerClass(); #define IMPLEMENT_LOG4CXX_OBJECT(object)\ const log4cxx::helpers::Class& object::getClass() const { return getStaticClass(); }\ const log4cxx::helpers::Class& object::getStaticClass() { \ static Clazz##object theClass; \ return theClass; \ } \ const log4cxx::helpers::ClassRegistration& object::registerClass() { \ static log4cxx::helpers::ClassRegistration classReg(object::getStaticClass); \ return classReg; \ }\ namespace log4cxx { namespace classes { \ const log4cxx::helpers::ClassRegistration& object##Registration = object::registerClass(); \ } } #define IMPLEMENT_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS(object, class)\ const log4cxx::helpers::Class& object::getClass() const { return getStaticClass(); }\ const log4cxx::helpers::Class& object::getStaticClass() { \ static class theClass; \ return theClass; \ } \ const log4cxx::helpers::ClassRegistration& object::registerClass() { \ static log4cxx::helpers::ClassRegistration classReg(object::getStaticClass); \ return classReg; \ }\ namespace log4cxx { namespace classes { \ const log4cxx::helpers::ClassRegistration& object##Registration = object::registerClass(); \ } } namespace log4cxx { class AppenderSkeleton; class Logger; namespace helpers { class Pool; /** base class for java-like objects.*/ class LOG4CXX_EXPORT Object { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(Object) virtual ~Object() {} virtual void addRef() const = 0; virtual void releaseRef() const = 0; virtual bool instanceof(const Class& clazz) const = 0; virtual const void * cast(const Class& clazz) const = 0; }; LOG4CXX_PTR_DEF(Object); } } #define BEGIN_LOG4CXX_CAST_MAP()\ const void * cast(const helpers::Class& clazz) const\ {\ const void * object = 0;\ if (&clazz == &helpers::Object::getStaticClass()) return (const helpers::Object *)this; #define END_LOG4CXX_CAST_MAP()\ return object;\ }\ bool instanceof(const helpers::Class& clazz) const\ { return cast(clazz) != 0; } #define LOG4CXX_CAST_ENTRY(Interface)\ if (&clazz == &Interface::getStaticClass()) return (const Interface *)this; #define LOG4CXX_CAST_ENTRY2(Interface, interface2)\ if (&clazz == &Interface::getStaticClass()) return (Interface *)(interface2 *)this; #define LOG4CXX_CAST_ENTRY_CHAIN(Interface)\ object = Interface::cast(clazz);\ if (object != 0) return object; #endif //_LOG4CXX_HELPERS_OBJECT_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bufferedoutputstream.h100644 0 0 4226 10774263362 24364 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_BUFFEREDOUTPUTSTREAM_H #define _LOG4CXX_HELPERS_BUFFEREDOUTPUTSTREAM_H #include namespace log4cxx { namespace helpers { /** * Abstract class for writing to character streams. */ class LOG4CXX_EXPORT BufferedOutputStream : public OutputStream { private: size_t count; LogString buf; public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(BufferedOutputStream) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(BufferedOutputStream) LOG4CXX_CAST_ENTRY_CHAIN(OutputStream) END_LOG4CXX_CAST_MAP() protected: BufferedOutputStream(OutputStreamPtr& out, size_t size = 4096); ~BufferedOutputStream(); public: void close(Pool& p); void flush(Pool& p); void write(ByteBuffer& buf, Pool& p); private: BufferedOutputStream(const BufferedOutputStream&); BufferedOutputStream& operator=(const BufferedOutputStream&); }; LOG4CXX_PTR_DEF(BufferedOutputStream); } // namespace helpers } //namespace log4cxx #endif //_LOG4CXX_HELPERS_BUFFEREDOUTPUTSTREAM_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/threadspecificdata.h100644 0 0 4763 10774263362 23722 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_THREAD_SPECIFIC_DATA_H #define _LOG4CXX_HELPERS_THREAD_SPECIFIC_DATA_H #include #include namespace log4cxx { namespace helpers { /** * This class contains all the thread-specific * data in use by log4cxx. */ class LOG4CXX_EXPORT ThreadSpecificData { public: ThreadSpecificData(); ~ThreadSpecificData(); /** * Gets current thread specific data. * @return thread specific data, may be null. */ static ThreadSpecificData* getCurrentData(); /** * Release this ThreadSpecficData if empty. */ void recycle(); static void put(const LogString& key, const LogString& val); static void push(const LogString& val); static void inherit(const log4cxx::NDC::Stack& stack); log4cxx::NDC::Stack& getStack(); log4cxx::MDC::Map& getMap(); private: static ThreadSpecificData& getDataNoThreads(); static ThreadSpecificData* createCurrentData(); log4cxx::NDC::Stack ndcStack; log4cxx::MDC::Map mdcMap; }; } // namespace helpers } // namespace log4cxx #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/cacheddateformat.h100644 0 0 20002 10774263362 23371 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_CACHED_DATE_FORMAT_H #define _LOG4CXX_HELPERS_CACHED_DATE_FORMAT_H #include namespace log4cxx { namespace pattern { class LOG4CXX_EXPORT CachedDateFormat : public log4cxx::helpers::DateFormat { public: enum { /* * Constant used to represent that there was no change * observed when changing the millisecond count. */ NO_MILLISECONDS = -2, /* * Constant used to represent that there was an * observed change, but was an expected change. */ UNRECOGNIZED_MILLISECONDS = -1 }; private: /** * Supported digit set. If the wrapped DateFormat uses * a different unit set, the millisecond pattern * will not be recognized and duplicate requests * will use the cache. */ static const logchar digits[]; enum { /** * First magic number used to detect the millisecond position. */ magic1 = 654000, /** * Second magic number used to detect the millisecond position. */ magic2 = 987000 }; /** * Expected representation of first magic number. */ static const logchar magicString1[]; /** * Expected representation of second magic number. */ static const logchar magicString2[]; /** * Expected representation of 0 milliseconds. */ static const logchar zeroString[]; /** * Wrapped formatter. */ log4cxx::helpers::DateFormatPtr formatter; /** * Index of initial digit of millisecond pattern or * UNRECOGNIZED_MILLISECONDS or NO_MILLISECONDS. */ mutable int millisecondStart; /** * Integral second preceding the previous convered Date. */ mutable log4cxx_time_t slotBegin; /** * Cache of previous conversion. */ mutable LogString cache; /** * Maximum validity period for the cache. * Typically 1, use cache for duplicate requests only, or * 1000000, use cache for requests within the same integral second. */ const int expiration; /** * Date requested in previous conversion. */ mutable log4cxx_time_t previousTime; public: /** * Creates a new CachedDateFormat object. * @param dateFormat Date format, may not be null. * @param expiration maximum cached range in microseconds. * If the dateFormat is known to be incompatible with the * caching algorithm, use a value of 0 to totally disable * caching or 1 to only use cache for duplicate requests. */ CachedDateFormat(const log4cxx::helpers::DateFormatPtr& dateFormat, int expiration); /** * Finds start of millisecond field in formatted time. * @param time long time, must be integral number of seconds * @param formatted String corresponding formatted string * @param formatter DateFormat date format * @param pool pool. * @return int position in string of first digit of milliseconds, * -1 indicates no millisecond field, -2 indicates unrecognized * field (likely RelativeTimeDateFormat) */ static int findMillisecondStart( log4cxx_time_t time, const LogString& formatted, const log4cxx::helpers::DateFormatPtr& formatter, log4cxx::helpers::Pool& pool); /** * Formats a Date into a date/time string. * * @param date the date to format. * @param sbuf the string buffer to write to. * @param p memory pool. */ virtual void format(LogString &sbuf, log4cxx_time_t date, log4cxx::helpers::Pool& p) const; private: /** * Formats a count of milliseconds (0-999) into a numeric representation. * @param millis Millisecond coun between 0 and 999. * @buf String buffer, may not be null. * @offset Starting position in buffer, the length of the * buffer must be at least offset + 3. */ static void millisecondFormat(int millis, LogString& buf, int offset); public: /** * Set timezone. * * @remarks Setting the timezone using getCalendar().setTimeZone() * will likely cause caching to misbehave. * @param zone TimeZone new timezone */ virtual void setTimeZone(const log4cxx::helpers::TimeZonePtr& zone); /** * Format an integer consistent with the format method. * @param s string to which the numeric string is appended. * @param n integer value. * @param p memory pool used during formatting. */ virtual void numberFormat(LogString& s, int n, log4cxx::helpers::Pool& p) const; /** * Gets maximum cache validity for the specified SimpleDateTime * conversion pattern. * @param pattern conversion pattern, may not be null. * @returns Duration in microseconds from an integral second * that the cache will return consistent results. */ static int getMaximumCacheValidity(const LogString& pattern); private: CachedDateFormat(const CachedDateFormat&); CachedDateFormat& operator=(const CachedDateFormat&); /** * Tests if two string regions are equal. * @param target target string. * @param toffset character position in target to start comparison. * @param other other string. * @param ooffset character position in other to start comparison. * @param len length of region. * @return true if regions are equal. */ static bool regionMatches( const LogString& target, size_t toffset, const LogString& other, size_t ooffset, size_t len); }; } // namespace helpers } // namespace log4cxx #endif // _LOG4CXX_HELPERS_SIMPLE_DATE_FORMAT_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/serversocket.h100644 0 0 4346 10774263362 22627 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_SERVER_SOCKET_H #define _LOG4CXX_HELPERS_SERVER_SOCKET_H #include #include namespace log4cxx { namespace helpers { class LOG4CXX_EXPORT ServerSocket { public: /** Creates a server socket on a specified port. */ ServerSocket(int port); virtual ~ServerSocket(); /** Listens for a connection to be made to this socket and accepts it */ SocketPtr accept(); /** Closes this socket. */ void close(); /** Retrive setting for SO_TIMEOUT. */ int getSoTimeout() const; /** Enable/disable SO_TIMEOUT with the specified timeout, in milliseconds. */ void setSoTimeout(int timeout); private: Pool pool; Mutex mutex; apr_socket_t* socket; int timeout; }; } // namespace helpers } // namespace log4cxx #endif //_LOG4CXX_HELPERS_SERVER_SOCKET_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/loglog.h100644 0 0 10603 10774263362 21404 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_LOG_LOG_H #define _LOG4CXX_HELPERS_LOG_LOG_H #include #include #include namespace log4cxx { namespace helpers { /** This class used to output log statements from within the log4cxx package.

Log4cxx components cannot make log4cxx logging calls. However, it is sometimes useful for the user to learn about what log4cxx is doing. You can enable log4cxx internal logging by calling the #setInternalDebugging method.

All log4cxx internal debug calls go to standard output where as internal error messages are sent to standard error output. All internal messages are prepended with the string "log4cxx: ". */ class LOG4CXX_EXPORT LogLog { private: bool debugEnabled; /** In quietMode not even errors generate any output. */ bool quietMode; Mutex mutex; LogLog(); LogLog(const LogLog&); LogLog& operator=(const LogLog&); static LogLog& getInstance(); public: /** Allows to enable/disable log4cxx internal logging. */ static void setInternalDebugging(bool enabled); /** This method is used to output log4cxx internal debug statements. Output goes to the standard output. */ static void debug(const LogString& msg); static void debug(const LogString& msg, const std::exception& e); /** This method is used to output log4cxx internal error statements. There is no way to disable error statements. Output goes to stderr. */ static void error(const LogString& msg); static void error(const LogString& msg, const std::exception& e); /** In quiet mode LogLog generates strictly no output, not even for errors. @param quietMode true for no output. */ static void setQuietMode(bool quietMode); /** This method is used to output log4cxx internal warning statements. There is no way to disable warning statements. Output goes to stderr. */ static void warn(const LogString& msg); static void warn(const LogString& msg, const std::exception& e); private: static void emit(const LogString& msg); static void emit(const std::exception& ex); }; } // namespace helpers } // namespace log4cxx #define LOGLOG_DEBUG(log) { \ log4cxx::helpers::LogLog::debug(log) ; } #define LOGLOG_WARN(log) { \ log4cxx::helpers::LogLog::warn(log) ; } #define LOGLOG_ERROR(log) { \ log4cxx::helpers::LogLog::warn(log); } #endif //_LOG4CXX_HELPERS_LOG_LOG_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/resourcebundle.h100644 0 0 7100 10774263362 23120 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_RESOURCE_BUNDLE_H #define _LOG4CXX_HELPERS_RESOURCE_BUNDLE_H #include #include namespace log4cxx { namespace helpers { class Locale; class ResourceBundle; LOG4CXX_PTR_DEF(ResourceBundle); /** Resource bundles contain locale-specific objects */ class LOG4CXX_EXPORT ResourceBundle : public ObjectImpl { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(ResourceBundle) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(ResourceBundle) END_LOG4CXX_CAST_MAP() /** Gets a string for the given key from this resource bundle or one of its parents. Calling this method is equivalent to calling @param key the key for the desired string @return the string for the given key @throw MissingResourceException - if no object for the given key can be found */ virtual LogString getString(const LogString& key) const = 0; /** Gets a resource bundle using the specified base name and locale @param baseName the base name of the resource bundle, a fully qualified class name or property filename @param locale the locale for which a resource bundle is desired */ static ResourceBundlePtr getBundle(const LogString& baseName, const Locale& locale); protected: /* Sets the parent bundle of this bundle. The parent bundle is searched by #getString when this bundle does not contain a particular resource. Parameters: parent - this bundle's parent bundle. */ inline void setParent(const ResourceBundlePtr& parent1) { this->parent = parent1; } /** The parent bundle of this bundle. The parent bundle is searched by #getString when this bundle does not contain a particular resource. */ ResourceBundlePtr parent; }; // class ResourceBundle } // namespace helpers } // namespace log4cxx #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/system.h100644 0 0 3456 10774263362 21435 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_SYSTEM_H #define _LOG4CXX_HELPERS_SYSTEM_H #include #include namespace log4cxx { namespace helpers { class Properties; /** The System class contains several useful class fields and methods. It cannot be instantiated. */ class LOG4CXX_EXPORT System { public: /** Gets the system property indicated by the specified key. @param key the name of the system property. @return the string value of the system property, or the default value if there is no property with that key. @throws IllegalArgumentException if key is empty. */ static LogString getProperty(const LogString& key); }; } // namespace helpers } // namespace log4cxx #endif //_LOG4CXX_HELPERS_SYSTEM_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/inputstream.h100644 0 0 4665 10774263362 22467 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_INPUTSTREAM_H #define _LOG4CXX_HELPERS_INPUTSTREAM_H #include namespace log4cxx { namespace helpers { class ByteBuffer; /** * Abstract class for reading from character streams. * */ class LOG4CXX_EXPORT InputStream : public ObjectImpl { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(InputStream) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(InputStream) END_LOG4CXX_CAST_MAP() protected: InputStream(); virtual ~InputStream(); public: /** * Reads a sequence of bytes into the given buffer. * * @param dst The buffer into which bytes are to be transferred. * @return the total number of bytes read into the buffer, or -1 if there * is no more data because the end of the stream has been reached. */ virtual int read(ByteBuffer& dst) = 0; /** * Closes this input stream and releases any system * resources associated with the stream. */ virtual void close() = 0; private: InputStream(const InputStream&); InputStream& operator=(const InputStream&); }; LOG4CXX_PTR_DEF(InputStream); } // namespace helpers } //namespace log4cxx #endif //_LOG4CXX_HELPERS_INPUTSTREAM_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/exception.h100644 0 0 32177 10774263362 22131 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_EXCEPTION_H #define _LOG4CXX_HELPERS_EXCEPTION_H #include #include #include namespace log4cxx { namespace helpers { /** The class Exception and its subclasses indicate conditions that a reasonable application might want to catch. */ class LOG4CXX_EXPORT Exception : public ::std::exception { public: Exception(const char* msg); Exception(const LogString& msg); Exception(const Exception& src); Exception& operator=(const Exception& src); const char* what() const throw(); private: enum { MSG_SIZE = 128 }; char msg[MSG_SIZE + 1]; }; // class Exception /** RuntimeException is the parent class of those exceptions that can be thrown during the normal operation of the process. */ class LOG4CXX_EXPORT RuntimeException : public Exception { public: RuntimeException(log4cxx_status_t stat); RuntimeException(const LogString& msg); RuntimeException(const RuntimeException& msg); RuntimeException& operator=(const RuntimeException& src); private: static LogString formatMessage(log4cxx_status_t stat); }; // class RuntimeException /** Thrown when an application attempts to use null in a case where an object is required. */ class LOG4CXX_EXPORT NullPointerException : public RuntimeException { public: NullPointerException(const LogString& msg); NullPointerException(const NullPointerException& msg); NullPointerException& operator=(const NullPointerException& src); }; // class NullPointerException /** Thrown to indicate that a method has been passed an illegal or inappropriate argument.*/ class LOG4CXX_EXPORT IllegalArgumentException : public RuntimeException { public: IllegalArgumentException(const LogString& msg); IllegalArgumentException(const IllegalArgumentException&); IllegalArgumentException& operator=(const IllegalArgumentException&); }; // class IllegalArgumentException /** Signals that an I/O exception of some sort has occurred. This class is the general class of exceptions produced by failed or interrupted I/O operations. */ class LOG4CXX_EXPORT IOException : public Exception { public: IOException(); IOException(log4cxx_status_t stat); IOException(const LogString& msg); IOException(const IOException &src); IOException& operator=(const IOException&); private: static LogString formatMessage(log4cxx_status_t stat); }; class LOG4CXX_EXPORT MissingResourceException : public Exception { public: MissingResourceException(const LogString& key); MissingResourceException(const MissingResourceException &src); MissingResourceException& operator=(const MissingResourceException&); private: static LogString formatMessage(const LogString& key); }; class LOG4CXX_EXPORT PoolException : public Exception { public: PoolException(log4cxx_status_t stat); PoolException(const PoolException &src); PoolException& operator=(const PoolException&); private: static LogString formatMessage(log4cxx_status_t stat); }; class LOG4CXX_EXPORT MutexException : public Exception { public: MutexException(log4cxx_status_t stat); MutexException(const MutexException &src); MutexException& operator=(const MutexException&); private: static LogString formatMessage(log4cxx_status_t stat); }; class LOG4CXX_EXPORT InterruptedException : public Exception { public: InterruptedException(); InterruptedException(log4cxx_status_t stat); InterruptedException(const InterruptedException &src); InterruptedException& operator=(const InterruptedException&); private: static LogString formatMessage(log4cxx_status_t stat); }; class LOG4CXX_EXPORT ThreadException : public Exception { public: ThreadException(log4cxx_status_t stat); ThreadException(const LogString& msg); ThreadException(const ThreadException &src); ThreadException& operator=(const ThreadException&); private: static LogString formatMessage(log4cxx_status_t stat); }; class LOG4CXX_EXPORT TranscoderException : public Exception { public: TranscoderException(log4cxx_status_t stat); TranscoderException(const TranscoderException &src); TranscoderException& operator=(const TranscoderException&); private: static LogString formatMessage(log4cxx_status_t stat); }; class LOG4CXX_EXPORT IllegalMonitorStateException : public Exception { public: IllegalMonitorStateException(const LogString& msg); IllegalMonitorStateException(const IllegalMonitorStateException& msg); IllegalMonitorStateException& operator=(const IllegalMonitorStateException& msg); }; /** Thrown when an application tries to create an instance of a class using the newInstance method in class Class, but the specified class object cannot be instantiated because it is an interface or is an abstract class. */ class LOG4CXX_EXPORT InstantiationException : public Exception { public: InstantiationException(const LogString& msg); InstantiationException(const InstantiationException& msg); InstantiationException& operator=(const InstantiationException& msg); }; /** Thrown when an application tries to load in a class through its string name but no definition for the class with the specified name could be found. */ class LOG4CXX_EXPORT ClassNotFoundException : public Exception { public: ClassNotFoundException(const LogString& className); ClassNotFoundException(const ClassNotFoundException& msg); ClassNotFoundException& operator=(const ClassNotFoundException& msg); private: static LogString formatMessage(const LogString& className); }; class NoSuchElementException : public Exception { public: NoSuchElementException(); NoSuchElementException(const NoSuchElementException&); NoSuchElementException& operator=(const NoSuchElementException&); }; class IllegalStateException : public Exception { public: IllegalStateException(); IllegalStateException(const IllegalStateException&); IllegalStateException& operator=(const IllegalStateException&); }; /** Thrown to indicate that there is an error in the underlying protocol, such as a TCP error. */ class LOG4CXX_EXPORT SocketException : public IOException { public: SocketException(const LogString& msg); SocketException(log4cxx_status_t status); SocketException(const SocketException&); SocketException& operator=(const SocketException&); }; /** Signals that an error occurred while attempting to connect a socket to a remote address and port. Typically, the connection was refused remotely (e.g., no process is listening on the remote address/port). */ class LOG4CXX_EXPORT ConnectException : public SocketException { public: ConnectException(log4cxx_status_t status); ConnectException(const ConnectException& src); ConnectException& operator=(const ConnectException&); }; class LOG4CXX_EXPORT ClosedChannelException : public SocketException { public: ClosedChannelException(); ClosedChannelException(const ClosedChannelException& src); ClosedChannelException& operator=(const ClosedChannelException&); }; /** Signals that an error occurred while attempting to bind a socket to a local address and port. Typically, the port is in use, or the requested local address could not be assigned. */ class LOG4CXX_EXPORT BindException : public SocketException { public: BindException(log4cxx_status_t status); BindException(const BindException&); BindException& operator=(const BindException&); }; /** Signals that an I/O operation has been interrupted. An InterruptedIOException is thrown to indicate that an input or output transfer has been terminated because the thread performing it was interrupted. The field bytesTransferred indicates how many bytes were successfully transferred before the interruption occurred. */ class LOG4CXX_EXPORT InterruptedIOException : public IOException { public: InterruptedIOException(const LogString& msg); InterruptedIOException(const InterruptedIOException&); InterruptedIOException& operator=(const InterruptedIOException&); }; /** Signals that an I/O operation has been interrupted. An InterruptedIOException is thrown to indicate that an input or output transfer has been terminated because the thread performing it was interrupted. The field bytesTransferred indicates how many bytes were successfully transferred before the interruption occurred. */ class LOG4CXX_EXPORT SocketTimeoutException : public InterruptedIOException { public: SocketTimeoutException(); SocketTimeoutException(const SocketTimeoutException&); SocketTimeoutException& operator=(const SocketTimeoutException&); }; } // namespace helpers } // namespace log4cxx #endif // _LOG4CXX_HELPERS_EXCEPTION_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/thread.h100644 0 0 17260 10774263362 21376 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_THREAD_H #define _LOG4CXX_HELPERS_THREAD_H #include #include #if !defined(LOG4CXX_THREAD_FUNC) #if defined(_WIN32) #define LOG4CXX_THREAD_FUNC __stdcall #else #define LOG4CXX_THREAD_FUNC #endif #endif extern "C" { typedef struct apr_thread_t apr_thread_t; } namespace log4cxx { namespace helpers { class Pool; class ThreadLocal; typedef void* (LOG4CXX_THREAD_FUNC *Runnable)(apr_thread_t* thread, void* data); /** * This class implements an approximation of java.util.Thread. */ class LOG4CXX_EXPORT Thread { public: /** * Create new instance. */ Thread(); /** * Destructor. */ ~Thread(); /** * Runs the specified method on a newly created thread. */ void run(Runnable start, void* data); void join(); inline bool isActive() { return thread != 0; } /** * Causes the currently executing thread to sleep for the * specified number of milliseconds. * @param millis milliseconds. * @throws Interrupted Exception if the thread is interrupted. */ static void sleep(int millis); /** * Sets interrupted status for current thread to true. */ static void currentThreadInterrupt(); /** * Sets interrupted status to true. */ void interrupt(); /** * Tests if the current thread has been interrupted and * sets the interrupted status to false. */ static bool interrupted(); bool isAlive(); bool isCurrentThread() const; void ending(); private: Pool p; apr_thread_t* thread; volatile unsigned int alive; volatile unsigned int interruptedStatus; Thread(const Thread&); Thread& operator=(const Thread&); /** * This class is used to encapsulate the parameters to * Thread::run when they are passed to Thread::launcher. * */ class LaunchPackage { public: /** * Placement new to create LaunchPackage in specified pool. * LaunchPackage needs to be dynamically allocated since * since a stack allocated instance may go out of scope * before thread is launched. */ static void* operator new(size_t, Pool& p); /** * operator delete would be called if exception during construction. */ static void operator delete(void*, Pool& p); /** * Create new instance. */ LaunchPackage(Thread* thread, Runnable runnable, void* data); /** * Gets thread parameter. * @return thread. */ Thread* getThread() const; /** * Gets runnable parameter. * @return runnable. */ Runnable getRunnable() const; /** * gets data parameter. * @return thread. */ void* getData() const; private: LaunchPackage(const LaunchPackage&); LaunchPackage& operator=(const LaunchPackage&); Thread* thread; Runnable runnable; void* data; }; /** * This object atomically sets the specified memory location * to non-zero on construction and to zero on destruction. * Used to maintain Thread.alive. */ class LaunchStatus { public: /* * Construct new instance. * @param p address of memory to set to non-zero on construction, zero on destruction. */ LaunchStatus(volatile unsigned int* p); /** * Destructor. */ ~LaunchStatus(); private: LaunchStatus(const LaunchStatus&); LaunchStatus& operator=(const LaunchStatus&); volatile unsigned int* alive; }; /** * This method runs on the created thread and sets up thread-local storage * used to keep the reference to the corresponding Thread object and * is responsible for maintaining Thread.alive. */ static void* LOG4CXX_THREAD_FUNC launcher(apr_thread_t* thread, void* data); /** * Get a key to the thread local storage used to hold the reference to * the corresponding Thread object. */ static ThreadLocal& getThreadLocal(); }; } // namespace helpers } // namespace log4cxx #endif //_LOG4CXX_HELPERS_THREAD_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/socket.h100644 0 0 6625 10774263362 21402 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_SOCKET_H #define _LOG4CXX_HELPERS_SOCKET_H extern "C" { struct apr_socket_t; } #include #include namespace log4cxx { namespace helpers { class ByteBuffer; /**

This class implements client sockets (also called just "sockets"). A socket is an endpoint for communication between two machines.

The actual work of the socket is performed by an instance of the SocketImpl class. An application, by changing the socket factory that creates the socket implementation, can configure itself to create sockets appropriate to the local firewall. */ class LOG4CXX_EXPORT Socket : public helpers::ObjectImpl { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(Socket) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(Socket) END_LOG4CXX_CAST_MAP() /** Creates a stream socket and connects it to the specified port number at the specified IP address. */ Socket(InetAddressPtr& address, int port); Socket(apr_socket_t* socket, apr_pool_t* pool); ~Socket(); size_t write(ByteBuffer&); /** Closes this socket. */ void close(); /** Returns the value of this socket's address field. */ InetAddressPtr getInetAddress() const; /** Returns the value of this socket's port field. */ int getPort() const; private: Socket(const Socket&); Socket& operator=(const Socket&); Pool pool; apr_socket_t* socket; /** The IP address of the remote end of this socket. */ InetAddressPtr address; /** The port number on the remote host to which this socket is connected. */ int port; }; LOG4CXX_PTR_DEF(Socket); } // namespace helpers } // namespace log4cxx #endif // _LOG4CXX_HELPERS_SOCKET_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/inputstreamreader.h100644 0 0 6516 10774263362 23647 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_INPUTSTREAMREADER_H #define _LOG4CXX_HELPERS_INPUTSTREAMREADER_H #include #include #include namespace log4cxx { namespace helpers { /** * Class for reading from character streams. * Decorates a byte based InputStream and provides appropriate * conversion to characters. */ class LOG4CXX_EXPORT InputStreamReader : public Reader { private: InputStreamPtr in; CharsetDecoderPtr dec; public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(InputStreamReader) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(InputStreamReader) LOG4CXX_CAST_ENTRY_CHAIN(Reader) END_LOG4CXX_CAST_MAP() /** * Creates an InputStreamReader that uses the default charset. * * @param in The input stream to decorate. */ InputStreamReader(const InputStreamPtr& in); /** * Creates an InputStreamReader that uses the given charset decoder. * * @param in The input stream to decorate. * @param enc The charset decoder to use for the conversion. */ InputStreamReader(const InputStreamPtr& in, const CharsetDecoderPtr &enc); ~InputStreamReader(); /** * Closes the stream. * * @param p The memory pool associated with the reader. */ virtual void close(Pool& p); /** * @return The complete stream contents as a LogString. * @param p The memory pool associated with the reader. */ virtual LogString read(Pool& p); /** * @return The name of the character encoding being used by this stream. */ LogString getEncoding() const; private: InputStreamReader(const InputStreamReader&); InputStreamReader& operator=(const InputStreamReader&); }; LOG4CXX_PTR_DEF(InputStreamReader); } // namespace helpers } //namespace log4cxx #endif //_LOG4CXX_HELPERS_INPUTSTREAMREADER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/optionconverter.h100644 0 0 16065 10774263362 23371 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPER_OPTION_CONVERTER_H #define _LOG4CXX_HELPER_OPTION_CONVERTER_H #include #include namespace log4cxx { class Level; class File; typedef helpers::ObjectPtrT LevelPtr; namespace spi { class LoggerRepository; typedef helpers::ObjectPtrT LoggerRepositoryPtr; } namespace helpers { class Properties; class Object; typedef ObjectPtrT ObjectPtr; class Class; /** A convenience class to convert property values to specific types.*/ class LOG4CXX_EXPORT OptionConverter { /** OptionConverter is a static class. */ private: OptionConverter() {} public: static LogString convertSpecialChars(const LogString& s); /** If value is "true", then true is returned. If value is "false", then true is returned. Otherwise, default is returned.

Case of value is unimportant. */ static bool toBoolean(const LogString& value, bool dEfault); static int toInt(const LogString& value, int dEfault); static long toFileSize(const LogString& value, long dEfault); static LevelPtr toLevel(const LogString& value, const LevelPtr& defaultValue); /** Find the value corresponding to key in props. Then perform variable substitution on the found value. */ static LogString findAndSubst(const LogString& key, Properties& props); /** Perform variable substitution in string val from the values of keys found in the system propeties.

The variable substitution delimeters are ${ and }.

For example, if the System properties contains "key=value", then the call

String s = OptionConverter.substituteVars("Value of key is ${key}.");
will set the variable s to "Value of key is value.".

If no value could be found for the specified key, then the props parameter is searched, if the value could not be found there, then substitution defaults to the empty string.

For example, if system propeties contains no value for the key "inexistentKey", then the call

String s = OptionConverter.subsVars("Value of inexistentKey is [${inexistentKey}]");
will set s to "Value of inexistentKey is []"

An IllegalArgumentException is thrown if val contains a start delimeter "${" which is not balanced by a stop delimeter "}".

@param val The string on which variable substitution is performed. @param props The properties from which variable substitution is performed. @throws IllegalArgumentException if val is malformed. */ static LogString substVars(const LogString& val, Properties& props); /** * Gets the specified system property. @param key The key to search for. @param def The default value to return. @return the string value of the system property, or the default value if there is no property with that key. */ static LogString getSystemProperty(const LogString& key, const LogString& def); /** Instantiate an object given a class name. Check that the className is a subclass of superClass. If that test fails or the object could not be instantiated, then defaultValue is returned. @param className The fully qualified class name of the object to instantiate. @param superClass The class to which the new object should belong. @param defaultValue The object to return in case of non-fulfillment */ static ObjectPtr instantiateByClassName(const LogString& className, const Class& superClass, const ObjectPtr& defaultValue); static ObjectPtr instantiateByKey(Properties& props, const LogString& key, const Class& superClass, const ObjectPtr& defaultValue); /** Configure log4cxx given a configFileName.

The configFileName must point to a file which will be interpreted by a new instance of a log4cxx configurator.

All configurations steps are taken on the hierarchy passed as a parameter.

@param configFileName The location of the configuration file. @param clazz The classname, of the log4cxx configurator which will parse the file configFileName. This must be a subclass of Configurator, or null. If this value is null then a default configurator of PropertyConfigurator is used, unless the filename pointed to by configFileName ends in '.xml', in which case DOMConfigurator is used. @param hierarchy The Hierarchy to act on. */ static void selectAndConfigure(const File& configFileName, const LogString& clazz, spi::LoggerRepositoryPtr& hierarchy); }; } // namespace helpers } // namespace log4cxx #endif //_LOG4CXX_HELPER_OPTION_CONVERTER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/Makefile.in100644 0 0 32266 10774264475 22034 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/main/include/log4cxx/helpers DIST_COMMON = $(helpersinc_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(helpersincdir)" helpersincHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(helpersinc_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # helpersincdir = $(includedir)/log4cxx/helpers helpersinc_HEADERS = $(top_srcdir)/src/main/include/log4cxx/helpers/*.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/include/log4cxx/helpers/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/main/include/log4cxx/helpers/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-helpersincHEADERS: $(helpersinc_HEADERS) @$(NORMAL_INSTALL) test -z "$(helpersincdir)" || $(mkdir_p) "$(DESTDIR)$(helpersincdir)" @list='$(helpersinc_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(helpersincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(helpersincdir)/$$f'"; \ $(helpersincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(helpersincdir)/$$f"; \ done uninstall-helpersincHEADERS: @$(NORMAL_UNINSTALL) @list='$(helpersinc_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(helpersincdir)/$$f'"; \ rm -f "$(DESTDIR)$(helpersincdir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(mkdir_p) $(distdir)/../../../../../src/main/include/log4cxx/helpers @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(helpersincdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-helpersincHEADERS install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-helpersincHEADERS uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am \ install-helpersincHEADERS install-info install-info-am \ install-man install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags uninstall uninstall-am \ uninstall-helpersincHEADERS uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/systemoutwriter.h100644 0 0 4056 10774263362 23417 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_SYSTEMOUTWRITER_H #define _LOG4CXX_HELPERS_SYSTEMOUTWRITER_H #include namespace log4cxx { namespace helpers { /** * Abstract class for writing to character streams. */ class LOG4CXX_EXPORT SystemOutWriter : public Writer { public: DECLARE_LOG4CXX_OBJECT(SystemOutWriter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(SystemOutWriter) LOG4CXX_CAST_ENTRY_CHAIN(Writer) END_LOG4CXX_CAST_MAP() SystemOutWriter(); ~SystemOutWriter(); virtual void close(Pool& p); virtual void flush(Pool& p); virtual void write(const LogString& str, Pool& p); static void write(const LogString& str); static void flush(); private: SystemOutWriter(const SystemOutWriter&); SystemOutWriter& operator=(const SystemOutWriter&); static bool isWide(); }; } // namespace helpers } //namespace log4cxx #endif //_LOG4CXX_HELPERS_SYSTEMOUTWRITER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/messagebuffer.h100644 0 0 62623 10774263362 22750 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_MESSAGE_BUFFER_H #define _LOG4CXX_MESSAGE_BUFFER_H #include #include #include namespace log4cxx { namespace helpers { typedef std::ios_base& (*ios_base_manip)(std::ios_base&); /** * This class is used by the LOG4CXX_INFO and similar * macros to support insertion operators in the message parameter. * The class is not intended for use outside of that context. */ class LOG4CXX_EXPORT CharMessageBuffer { public: /** * Creates a new instance. */ CharMessageBuffer(); /** * Destructor. */ ~CharMessageBuffer(); /** * Appends string to buffer. * @param msg string append. * @return this buffer. */ CharMessageBuffer& operator<<(const std::basic_string& msg); /** * Appends string to buffer. * @param msg string to append. * @return this buffer. */ CharMessageBuffer& operator<<(const char* msg); /** * Appends string to buffer. * @param msg string to append. * @return this buffer. */ CharMessageBuffer& operator<<(char* msg); /** * Appends character to buffer. * @param msg character to append. * @return this buffer. */ CharMessageBuffer& operator<<(const char msg); /** * Insertion operator for STL manipulators such as std::fixed. * @param manip manipulator. * @return encapsulated STL stream. */ std::ostream& operator<<(ios_base_manip manip); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ std::ostream& operator<<(bool val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ std::ostream& operator<<(short val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ std::ostream& operator<<(int val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ std::ostream& operator<<(unsigned int val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ std::ostream& operator<<(long val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ std::ostream& operator<<(unsigned long val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ std::ostream& operator<<(float val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ std::ostream& operator<<(double val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ std::ostream& operator<<(long double val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ std::ostream& operator<<(void* val); /** * Cast to ostream. */ operator std::basic_ostream&(); /** * Get content of buffer. * @param os used only to signal that * the embedded stream was used. */ const std::basic_string& str(std::basic_ostream& os); /** * Get content of buffer. * @param buf used only to signal that * the embedded stream was not used. */ const std::basic_string& str(CharMessageBuffer& buf); /** * Returns true if buffer has an encapsulated STL stream. * @return true if STL stream was created. */ bool hasStream() const; private: /** * Prevent use of default copy constructor. */ CharMessageBuffer(const CharMessageBuffer&); /** * Prevent use of default assignment operator. */ CharMessageBuffer& operator=(const CharMessageBuffer&); /** * Encapsulated std::string. */ std::basic_string buf; /** * Encapsulated stream, created on demand. */ std::basic_ostringstream* stream; }; template std::basic_ostream& operator<<(CharMessageBuffer& os, const V& val) { return ((std::basic_ostream&) os) << val; } #if LOG4CXX_UNICHAR_API || LOG4CXX_CFSTRING_API || LOG4CXX_LOGCHAR_IS_UNICHAR /** * This class is designed to support insertion operations * in the message argument to the LOG4CXX_INFO and similar * macros and is not designed for general purpose use. */ class LOG4CXX_EXPORT UniCharMessageBuffer { public: /** * Creates a new instance. */ UniCharMessageBuffer(); /** * Destructor. */ ~UniCharMessageBuffer(); typedef std::basic_ostream uostream; /** * Appends string to buffer. * @param msg string append. * @return this buffer. */ UniCharMessageBuffer& operator<<(const std::basic_string& msg); /** * Appends string to buffer. * @param msg string to append. * @return this buffer. */ UniCharMessageBuffer& operator<<(const UniChar* msg); /** * Appends string to buffer. * @param msg string to append. * @return this buffer. */ UniCharMessageBuffer& operator<<(UniChar* msg); /** * Appends character to buffer. * @param msg character to append. * @return this buffer. */ UniCharMessageBuffer& operator<<(const UniChar msg); #if LOG4CXX_CFSTRING_API /** * Appends a string into the buffer and * fixes the buffer to use char characters. * @param msg message to append. * @return encapsulated CharMessageBuffer. */ UniCharMessageBuffer& operator<<(const CFStringRef& msg); #endif /** * Insertion operator for STL manipulators such as std::fixed. * @param manip manipulator. * @return encapsulated STL stream. */ uostream& operator<<(ios_base_manip manip); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ uostream& operator<<(bool val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ uostream& operator<<(short val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ uostream& operator<<(int val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ uostream& operator<<(unsigned int val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ uostream& operator<<(long val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ uostream& operator<<(unsigned long val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ uostream& operator<<(float val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ uostream& operator<<(double val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ uostream& operator<<(long double val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ uostream& operator<<(void* val); /** * Cast to ostream. */ operator uostream&(); /** * Get content of buffer. * @param os used only to signal that * the embedded stream was used. */ const std::basic_string& str(uostream& os); /** * Get content of buffer. * @param buf used only to signal that * the embedded stream was not used. */ const std::basic_string& str(UniCharMessageBuffer& buf); /** * Returns true if buffer has an encapsulated STL stream. * @return true if STL stream was created. */ bool hasStream() const; private: /** * Prevent use of default copy constructor. */ UniCharMessageBuffer(const UniCharMessageBuffer&); /** * Prevent use of default assignment operator. */ UniCharMessageBuffer& operator=(const UniCharMessageBuffer&); /** * Encapsulated std::string. */ std::basic_string buf; /** * Encapsulated stream, created on demand. */ std::basic_ostringstream* stream; }; template UniCharMessageBuffer::uostream& operator<<(UniCharMessageBuffer& os, const V& val) { return ((UniCharMessageBuffer::uostream&) os) << val; } #endif #if LOG4CXX_WCHAR_T_API /** * This class is designed to support insertion operations * in the message argument to the LOG4CXX_INFO and similar * macros and is not designed for general purpose use. */ class LOG4CXX_EXPORT WideMessageBuffer { public: /** * Creates a new instance. */ WideMessageBuffer(); /** * Destructor. */ ~WideMessageBuffer(); /** * Appends string to buffer. * @param msg string append. * @return this buffer. */ WideMessageBuffer& operator<<(const std::basic_string& msg); /** * Appends string to buffer. * @param msg string to append. * @return this buffer. */ WideMessageBuffer& operator<<(const wchar_t* msg); /** * Appends string to buffer. * @param msg string to append. * @return this buffer. */ WideMessageBuffer& operator<<(wchar_t* msg); /** * Appends character to buffer. * @param msg character to append. * @return this buffer. */ WideMessageBuffer& operator<<(const wchar_t msg); /** * Insertion operator for STL manipulators such as std::fixed. * @param manip manipulator. * @return encapsulated STL stream. */ std::basic_ostream& operator<<(ios_base_manip manip); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ std::basic_ostream& operator<<(bool val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ std::basic_ostream& operator<<(short val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ std::basic_ostream& operator<<(int val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ std::basic_ostream& operator<<(unsigned int val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ std::basic_ostream& operator<<(long val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ std::basic_ostream& operator<<(unsigned long val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ std::basic_ostream& operator<<(float val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ std::basic_ostream& operator<<(double val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ std::basic_ostream& operator<<(long double val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ std::basic_ostream& operator<<(void* val); /** * Cast to ostream. */ operator std::basic_ostream&(); /** * Get content of buffer. * @param os used only to signal that * the embedded stream was used. */ const std::basic_string& str(std::basic_ostream& os); /** * Get content of buffer. * @param buf used only to signal that * the embedded stream was not used. */ const std::basic_string& str(WideMessageBuffer& buf); /** * Returns true if buffer has an encapsulated STL stream. * @return true if STL stream was created. */ bool hasStream() const; private: /** * Prevent use of default copy constructor. */ WideMessageBuffer(const WideMessageBuffer&); /** * Prevent use of default assignment operator. */ WideMessageBuffer& operator=(const WideMessageBuffer&); /** * Encapsulated std::string. */ std::basic_string buf; /** * Encapsulated stream, created on demand. */ std::basic_ostringstream* stream; }; template std::basic_ostream& operator<<(WideMessageBuffer& os, const V& val) { return ((std::basic_ostream&) os) << val; } /** * This class is used by the LOG4CXX_INFO and similar * macros to support insertion operators in the message parameter. * The class is not intended for use outside of that context. */ class LOG4CXX_EXPORT MessageBuffer { public: /** * Creates a new instance. */ MessageBuffer(); /** * Destructor. */ ~MessageBuffer(); /** * Cast to ostream. */ operator std::ostream&(); /** * Appends a string into the buffer and * fixes the buffer to use char characters. * @param msg message to append. * @return encapsulated CharMessageBuffer. */ CharMessageBuffer& operator<<(const std::string& msg); /** * Appends a string into the buffer and * fixes the buffer to use char characters. * @param msg message to append. * @return encapsulated CharMessageBuffer. */ CharMessageBuffer& operator<<(const char* msg); /** * Appends a string into the buffer and * fixes the buffer to use char characters. * @param msg message to append. * @return encapsulated CharMessageBuffer. */ CharMessageBuffer& operator<<(char* msg); /** * Appends a string into the buffer and * fixes the buffer to use char characters. * @param msg message to append. * @return encapsulated CharMessageBuffer. */ CharMessageBuffer& operator<<(const char msg); /** * Get content of buffer. * @param buf used only to signal * the character type and that * the embedded stream was not used. */ const std::string& str(CharMessageBuffer& buf); /** * Get content of buffer. * @param os used only to signal * the character type and that * the embedded stream was used. */ const std::string& str(std::ostream& os); /** * Appends a string into the buffer and * fixes the buffer to use char characters. * @param msg message to append. * @return encapsulated CharMessageBuffer. */ WideMessageBuffer& operator<<(const std::wstring& msg); /** * Appends a string into the buffer and * fixes the buffer to use char characters. * @param msg message to append. * @return encapsulated CharMessageBuffer. */ WideMessageBuffer& operator<<(const wchar_t* msg); /** * Appends a string into the buffer and * fixes the buffer to use char characters. * @param msg message to append. * @return encapsulated CharMessageBuffer. */ WideMessageBuffer& operator<<(wchar_t* msg); /** * Appends a string into the buffer and * fixes the buffer to use char characters. * @param msg message to append. * @return encapsulated CharMessageBuffer. */ WideMessageBuffer& operator<<(const wchar_t msg); #if LOG4CXX_UNICHAR_API || LOG4CXX_CFSTRING_API /** * Appends a string into the buffer and * fixes the buffer to use char characters. * @param msg message to append. * @return encapsulated CharMessageBuffer. */ UniCharMessageBuffer& operator<<(const std::basic_string& msg); /** * Appends a string into the buffer and * fixes the buffer to use char characters. * @param msg message to append. * @return encapsulated CharMessageBuffer. */ UniCharMessageBuffer& operator<<(const UniChar* msg); /** * Appends a string into the buffer and * fixes the buffer to use char characters. * @param msg message to append. * @return encapsulated CharMessageBuffer. */ UniCharMessageBuffer& operator<<(UniChar* msg); /** * Appends a string into the buffer and * fixes the buffer to use char characters. * @param msg message to append. * @return encapsulated CharMessageBuffer. */ UniCharMessageBuffer& operator<<(const UniChar msg); #endif #if LOG4CXX_CFSTRING_API /** * Appends a string into the buffer and * fixes the buffer to use char characters. * @param msg message to append. * @return encapsulated CharMessageBuffer. */ UniCharMessageBuffer& operator<<(const CFStringRef& msg); #endif /** * Insertion operator for STL manipulators such as std::fixed. * @param manip manipulator. * @return encapsulated STL stream. */ std::ostream& operator<<(ios_base_manip manip); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ std::ostream& operator<<(bool val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ std::ostream& operator<<(short val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ std::ostream& operator<<(int val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ std::ostream& operator<<(unsigned int val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ std::ostream& operator<<(long val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ std::ostream& operator<<(unsigned long val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ std::ostream& operator<<(float val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ std::ostream& operator<<(double val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ std::ostream& operator<<(long double val); /** * Insertion operator for built-in type. * @param val build in type. * @return encapsulated STL stream. */ std::ostream& operator<<(void* val); /** * Get content of buffer. * @param buf used only to signal * the character type and that * the embedded stream was not used. */ const std::wstring& str(WideMessageBuffer& buf); /** * Get content of buffer. * @param os used only to signal * the character type and that * the embedded stream was used. */ const std::wstring& str(std::basic_ostream& os); #if LOG4CXX_UNICHAR_API || LOG4CXX_CFSTRING_API /** * Get content of buffer. * @param buf used only to signal * the character type and that * the embedded stream was not used. */ const std::basic_string& str(UniCharMessageBuffer& buf); /** * Get content of buffer. * @param os used only to signal * the character type and that * the embedded stream was used. */ const std::basic_string& str(UniCharMessageBuffer::uostream& os); #endif /** * Returns true if buffer has an encapsulated STL stream. * @return true if STL stream was created. */ bool hasStream() const; private: /** * Prevent use of default copy constructor. */ MessageBuffer(const MessageBuffer&); /** * Prevent use of default assignment operator. */ MessageBuffer& operator=(const MessageBuffer&); /** * Character message buffer. */ CharMessageBuffer cbuf; /** * Encapsulated wide message buffer, created on demand. */ WideMessageBuffer* wbuf; #if LOG4CXX_UNICHAR_API || LOG4CXX_CFSTRING_API /** * Encapsulated wide message buffer, created on demand. */ UniCharMessageBuffer* ubuf; #endif }; template std::ostream& operator<<(MessageBuffer& os, const V& val) { return ((std::ostream&) os) << val; } #if LOG4CXX_LOGCHAR_IS_UTF8 typedef CharMessageBuffer LogCharMessageBuffer; #endif #if LOG4CXX_LOGCHAR_IS_WCHAR typedef WideMessageBuffer LogCharMessageBuffer; #endif #if LOG4CXX_LOGCHAR_IS_UNICHAR typedef UniCharMessageBuffer LogCharMessageBuffer; #endif #else typedef CharMessageBuffer MessageBuffer; typedef CharMessageBuffer LogCharMessageBuffer; #endif }} #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/synchronized.h100644 0 0 3006 10774263362 22617 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPERS_SYNCHRONIZED_H #define _LOG4CXX_HELPERS_SYNCHRONIZED_H #include namespace log4cxx { namespace helpers { class Mutex; /** utility class for objects multi-thread synchronization.*/ class LOG4CXX_EXPORT synchronized { public: synchronized(const Mutex& mutex); ~synchronized(); private: void* mutex; // prevent use of copy and assignment synchronized(const synchronized&); synchronized& operator=(const synchronized&); }; } } #endif //_LOG4CXX_HELPERS_SYNCHRONIZED_H apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/Makefile.am100644 0 0 1606 10774263362 21767 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # helpersincdir = $(includedir)/log4cxx/helpers helpersinc_HEADERS= $(top_srcdir)/src/main/include/log4cxx/helpers/*.h apache-log4cxx-0.10.0/src/main/include/log4cxx/varia/Makefile.in100644 0 0 32172 10774264476 21471 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/main/include/log4cxx/varia DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(variainc_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(variaincdir)" variaincHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(variainc_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # variaincdir = $(includedir)/log4cxx/varia variainc_HEADERS = $(top_srcdir)/src/main/include/log4cxx/varia/*.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/include/log4cxx/varia/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/main/include/log4cxx/varia/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-variaincHEADERS: $(variainc_HEADERS) @$(NORMAL_INSTALL) test -z "$(variaincdir)" || $(mkdir_p) "$(DESTDIR)$(variaincdir)" @list='$(variainc_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(variaincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(variaincdir)/$$f'"; \ $(variaincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(variaincdir)/$$f"; \ done uninstall-variaincHEADERS: @$(NORMAL_UNINSTALL) @list='$(variainc_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(variaincdir)/$$f'"; \ rm -f "$(DESTDIR)$(variaincdir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(mkdir_p) $(distdir)/../../../../../src/main/include/log4cxx/varia @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(variaincdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-variaincHEADERS install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am uninstall-variaincHEADERS .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-strip \ install-variaincHEADERS installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags uninstall uninstall-am uninstall-info-am \ uninstall-variaincHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/main/include/log4cxx/varia/Makefile.am100644 0 0 1576 10774263362 21435 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # variaincdir = $(includedir)/log4cxx/varia variainc_HEADERS= $(top_srcdir)/src/main/include/log4cxx/varia/*.h apache-log4cxx-0.10.0/src/main/include/log4cxx/varia/fallbackerrorhandler.h100644 0 0 11042 10774263362 23726 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_VARIA_FALLBACK_ERROR_HANDLER_H #define _LOG4CXX_VARIA_FALLBACK_ERROR_HANDLER_H #include #include #include #include #include namespace log4cxx { namespace varia { /** The FallbackErrorHandler implements the ErrorHandler interface such that a secondary appender may be specified. This secondary appender takes over if the primary appender fails for whatever reason.

The error message is printed on System.err, and logged in the new secondary appender. */ class LOG4CXX_EXPORT FallbackErrorHandler : public virtual spi::ErrorHandler, public virtual helpers::ObjectImpl { private: AppenderPtr backup; AppenderPtr primary; std::vector loggers; public: DECLARE_LOG4CXX_OBJECT(FallbackErrorHandler) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(spi::OptionHandler) LOG4CXX_CAST_ENTRY(spi::ErrorHandler) END_LOG4CXX_CAST_MAP() FallbackErrorHandler(); void addRef() const; void releaseRef() const; /** Adds the logger passed as parameter to the list of loggers that we need to search for in case of appender failure. */ void setLogger(const LoggerPtr& logger); /** No options to activate. */ void activateOptions(log4cxx::helpers::Pool& p); void setOption(const LogString& option, const LogString& value); /** Prints the message and the stack trace of the exception on System.err. */ void error(const LogString& message, const std::exception& e, int errorCode) const; /** Prints the message and the stack trace of the exception on System.err. */ void error(const LogString& message, const std::exception& e, int errorCode, const spi::LoggingEventPtr& event) const; /** Print a the error message passed as parameter on System.err. */ void error(const LogString& /* message */) const {} /** Return the backup appender. */ const AppenderPtr& getBackupAppender() const { return backup; } /** The appender to which this error handler is attached. */ void setAppender(const AppenderPtr& primary); /** Set the backup appender. */ void setBackupAppender(const AppenderPtr& backup); }; } // namespace varia } // namespace log4cxx #endif //_LOG4CXX_VARIA_FALLBACK_ERROR_HANDLER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/Makefile.am100644 0 0 1606 10774263365 21776 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # rollingincdir = $(includedir)/log4cxx/rolling rollinginc_HEADERS= $(top_srcdir)/src/main/include/log4cxx/rolling/*.h apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/action.h100644 0 0 4355 10774263365 21374 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if !defined(_LOG4CXX_ROLLING_ACTION_H) #define _LOG4CXX_ROLLING_ACTION_H #include #include #include #include namespace log4cxx { namespace rolling { /** * A file system action performed as part of a rollover event. */ class Action : public virtual log4cxx::helpers::ObjectImpl { DECLARE_ABSTRACT_LOG4CXX_OBJECT(Action) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(Action) END_LOG4CXX_CAST_MAP() /** * Is action complete. */ bool complete; /** * Is action interrupted. */ bool interrupted; log4cxx::helpers::Pool pool; log4cxx::helpers::Mutex mutex; protected: /** * Constructor. */ Action(); virtual ~Action(); public: /** * Perform action. * * @return true if successful. */ virtual bool execute(log4cxx::helpers::Pool& pool) const = 0; void run(log4cxx::helpers::Pool& pool); void close(); /** * Tests if the action is complete. * @return true if action is complete. */ bool isComplete() const; void reportException(const std::exception&); }; LOG4CXX_PTR_DEF(Action); } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingfileappenderskeleton.h100644 0 0 12000 10774263365 25713 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if !defined(_LOG4CXX_ROLLING_ROLLING_FILE_APPENDER_SKELETON_H) #define _LOG4CXX_ROLLING_ROLLING_FILE_APPENDER_SKELETON_H #include #include #include #include #include #include namespace log4cxx { namespace rolling { /** * Base class for log4cxx::rolling::RollingFileAppender and log4cxx::RollingFileAppender * (analogues of org.apache.log4j.rolling.RFA from extras companion and * org.apache.log4j.RFA from log4j 1.2, respectively). * * */ class LOG4CXX_EXPORT RollingFileAppenderSkeleton : public FileAppender { DECLARE_LOG4CXX_OBJECT(RollingFileAppenderSkeleton) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(RollingFileAppenderSkeleton) LOG4CXX_CAST_ENTRY_CHAIN(FileAppender) END_LOG4CXX_CAST_MAP() /** * Triggering policy. */ TriggeringPolicyPtr triggeringPolicy; /** * Rolling policy. */ RollingPolicyPtr rollingPolicy; /** * Length of current active log file. */ size_t fileLength; public: /** * The default constructor simply calls its {@link * FileAppender#FileAppender parents constructor}. * */ RollingFileAppenderSkeleton(); void activateOptions(log4cxx::helpers::Pool&); /** Implements the usual roll over behaviour.

If MaxBackupIndex is positive, then files {File.1, ..., File.MaxBackupIndex -1} are renamed to {File.2, ..., File.MaxBackupIndex}. Moreover, File is renamed File.1 and closed. A new File is created to receive further log output.

If MaxBackupIndex is equal to zero, then the File is truncated with no backup files created. */ bool rollover(log4cxx::helpers::Pool& p); protected: /** Actual writing occurs here. */ virtual void subAppend(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p); protected: RollingPolicyPtr getRollingPolicy() const; TriggeringPolicyPtr getTriggeringPolicy() const; /** * Sets the rolling policy. In case the 'policy' argument also implements * {@link TriggeringPolicy}, then the triggering policy for this appender * is automatically set to be the policy argument. * @param policy */ void setRollingPolicy(const RollingPolicyPtr& policy); void setTriggeringPolicy(const TriggeringPolicyPtr& policy); public: /** * Close appender. Waits for any asynchronous file compression actions to be completed. */ void close(); protected: /** Returns an OutputStreamWriter when passed an OutputStream. The encoding used will depend on the value of the encoding property. If the encoding value is specified incorrectly the writer will be opened using the default system encoding (an error message will be printed to the loglog. @param os output stream, may not be null. @return new writer. */ log4cxx::helpers::WriterPtr createWriter(log4cxx::helpers::OutputStreamPtr& os); public: /** * Get byte length of current active log file. * @return byte length of current active log file. */ size_t getFileLength() const; /** * Increments estimated byte length of current active log file. * @param increment additional bytes written to log file. */ void incrementFileLength(size_t increment); }; LOG4CXX_PTR_DEF(RollingFileAppenderSkeleton); } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/gzcompressaction.h100644 0 0 4063 10774263365 23505 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if !defined(_LOG4CXX_ROLLING_GZ_COMPRESS_ACTION_H) #define _LOG4CXX_ROLLING_GZ_COMPRESS_ACTION_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include namespace log4cxx { namespace rolling { class GZCompressAction : public Action { const File source; const File destination; bool deleteSource; public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(GZCompressAction) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(GZCompressAction) LOG4CXX_CAST_ENTRY_CHAIN(Action) END_LOG4CXX_CAST_MAP() /** * Constructor. */ GZCompressAction(const File& source, const File& destination, bool deleteSource); /** * Perform action. * * @return true if successful. */ virtual bool execute(log4cxx::helpers::Pool& pool) const; private: GZCompressAction(const GZCompressAction&); GZCompressAction& operator=(const GZCompressAction&); }; LOG4CXX_PTR_DEF(GZCompressAction); } } #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/fixedwindowrollingpolicy.h100644 0 0 11673 10774263365 25276 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if !defined(_LOG4CXX_ROLLING_FIXED_WINDOW_ROLLING_POLICY_H) #define _LOG4CXX_ROLLING_FIXED_WINDOW_ROLLING_POLICY_H #include namespace log4cxx { namespace helpers { class Pool; } namespace rolling { /** * When rolling over, FixedWindowRollingPolicy renames files * according to a fixed window algorithm as described below. * *

The ActiveFileName property, which is required, represents the name * of the file where current logging output will be written. * The FileNamePattern option represents the file name pattern for the * archived (rolled over) log files. If present, the FileNamePattern * option must include an integer token, that is the string "%i" somwhere * within the pattern. * *

Let max and min represent the values of respectively * the MaxIndex and MinIndex options. Let "foo.log" be the value * of the ActiveFile option and "foo.%i.log" the value of * FileNamePattern. Then, when rolling over, the file * foo.max.log will be deleted, the file * foo.max-1.log will be renamed as * foo.max.log, the file foo.max-2.log * renamed as foo.max-1.log, and so on, * the file foo.min+1.log renamed as * foo.min+2.log. Lastly, the active file foo.log * will be renamed as foo.min.log and a new active file name * foo.log will be created. * *

Given that this rollover algorithm requires as many file renaming * operations as the window size, large window sizes are discouraged. The * current implementation will automatically reduce the window size to 12 when * larger values are specified by the user. * * * * * */ class LOG4CXX_EXPORT FixedWindowRollingPolicy : public RollingPolicyBase { DECLARE_LOG4CXX_OBJECT(FixedWindowRollingPolicy) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(FixedWindowRollingPolicy) LOG4CXX_CAST_ENTRY_CHAIN(RollingPolicyBase) END_LOG4CXX_CAST_MAP() int minIndex; int maxIndex; bool explicitActiveFile; /** * It's almost always a bad idea to have a large window size, say over 12. */ enum { MAX_WINDOW_SIZE = 12 }; bool purge(int purgeStart, int maxIndex, log4cxx::helpers::Pool& p) const; public: FixedWindowRollingPolicy(); void activateOptions(log4cxx::helpers::Pool& p); void setOption(const LogString& option, const LogString& value); void rollover(); int getMaxIndex() const; int getMinIndex() const; void setMaxIndex(int newVal); void setMinIndex(int newVal); /** * Initialize the policy and return any initial actions for rolling file appender. * * @param file current value of RollingFileAppender::getFile(). * @param append current value of RollingFileAppender::getAppend(). * @param p pool used for any required memory allocations. * @return Description of the initialization, may be null to indicate * no initialization needed. * @throws SecurityException if denied access to log files. */ virtual RolloverDescriptionPtr initialize( const LogString& file, const bool append, log4cxx::helpers::Pool& p); /** * Prepare for a rollover. This method is called prior to * closing the active log file, performs any necessary * preliminary actions and describes actions needed * after close of current log file. * * @param activeFile file name for current active log file. * @param p pool used for any required memory allocations. * @return Description of pending rollover, may be null to indicate no rollover * at this time. * @throws SecurityException if denied access to log files. */ virtual RolloverDescriptionPtr rollover(const LogString& activeFile, log4cxx::helpers::Pool& p); protected: log4cxx::pattern::PatternMap getFormatSpecifiers() const; }; LOG4CXX_PTR_DEF(FixedWindowRollingPolicy); } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/timebasedrollingpolicy.h100644 0 0 22724 10774263365 24703 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if !defined(_LOG4CXX_ROLLING_TIME_BASED_ROLLING_POLICY_H) #define _LOG4CXX_ROLLING_TIME_BASED_ROLLING_POLICY_H #include #include #include namespace log4cxx { namespace rolling { /** * TimeBasedRollingPolicy is both easy to configure and quite * powerful. * *

In order to use TimeBasedRollingPolicy, the * FileNamePattern option must be set. It basically specifies the name of the * rolled log files. The value FileNamePattern should consist of * the name of the file, plus a suitably placed %d conversion * specifier. The %d conversion specifier may contain a date and * time pattern as specified by the {@link log4cxx::helpers::SimpleDateFormat} class. If * the date and time pattern is ommitted, then the default pattern of * "yyyy-MM-dd" is assumed. The following examples should clarify the point. * *

* * * * * * * * * * * * * * * * *
FileNamePattern valueRollover scheduleExample
/wombat/folder/foo.%dDaily rollover (at midnight). Due to the omission of the optional * time and date pattern for the %d token specifier, the default pattern * of "yyyy-MM-dd" is assumed, which corresponds to daily rollover. * During November 23rd, 2004, logging output will go to * the file /wombat/foo.2004-11-23. At midnight and for * the rest of the 24th, logging output will be directed to * /wombat/foo.2004-11-24. *
/wombat/foo.%d{yyyy-MM}.logRollover at the beginning of each month.During the month of October 2004, logging output will go to * /wombat/foo.2004-10.log. After midnight of October 31st * and for the rest of November, logging output will be directed to * /wombat/foo.2004-11.log. *
*

Automatic file compression

* TimeBasedRollingPolicy supports automatic file compression. * This feature is enabled if the value of the FileNamePattern option * ends with .gz or .zip. *

* * * * * * * * * * * *
FileNamePattern valueRollover scheduleExample
/wombat/foo.%d.gzDaily rollover (at midnight) with automatic GZIP compression of the * arcived files.During November 23rd, 2004, logging output will go to * the file /wombat/foo.2004-11-23. However, at midnight that * file will be compressed to become /wombat/foo.2004-11-23.gz. * For the 24th of November, logging output will be directed to * /wombat/folder/foo.2004-11-24 until its rolled over at the * beginning of the next day. *
* *

Decoupling the location of the active log file and the archived log files

*

The active file is defined as the log file for the current period * whereas archived files are thos files which have been rolled over * in previous periods. * *

By setting the ActiveFileName option you can decouple the location * of the active log file and the location of the archived log files. *

* * * * * * * * * * * * * * *
FileNamePattern valueActiveFileNameRollover scheduleExample
/wombat/foo.log.%d/wombat/foo.logDaily rollover.During November 23rd, 2004, logging output will go to * the file /wombat/foo.log. However, at midnight that file * will archived as /wombat/foo.log.2004-11-23. For the 24th * of November, logging output will be directed to * /wombat/folder/foo.log until its archived as * /wombat/foo.log.2004-11-24 at the beginning of the next * day. *
*

* If configuring programatically, do not forget to call {@link #activateOptions} * method before using this policy. Moreover, {@link #activateOptions} of * TimeBasedRollingPolicy must be called before calling * the {@link #activateOptions} method of the owning * RollingFileAppender. * * * */ class LOG4CXX_EXPORT TimeBasedRollingPolicy : public RollingPolicyBase, public TriggeringPolicy { DECLARE_LOG4CXX_OBJECT(TimeBasedRollingPolicy) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(TimeBasedRollingPolicy) LOG4CXX_CAST_ENTRY_CHAIN(RollingPolicyBase) LOG4CXX_CAST_ENTRY_CHAIN(TriggeringPolicy) END_LOG4CXX_CAST_MAP() private: /** * Time for next determination if time for rollover. */ log4cxx_time_t nextCheck; /** * File name at last rollover. */ LogString lastFileName; /** * Length of any file type suffix (.gz, .zip). */ int suffixLength; public: TimeBasedRollingPolicy(); void addRef() const; void releaseRef() const; void activateOptions(log4cxx::helpers::Pool& ); /** * Initialize the policy and return any initial actions for rolling file appender. * * @param file current value of RollingFileAppender.getFile(). * @param append current value of RollingFileAppender.getAppend(). * @param pool pool for any required allocations. * @return Description of the initialization, may be null to indicate * no initialization needed. * @throws SecurityException if denied access to log files. */ RolloverDescriptionPtr initialize( const LogString& file, const bool append, log4cxx::helpers::Pool& pool); /** * Prepare for a rollover. This method is called prior to * closing the active log file, performs any necessary * preliminary actions and describes actions needed * after close of current log file. * * @param activeFile file name for current active log file. * @param pool pool for any required allocations. * @return Description of pending rollover, may be null to indicate no rollover * at this time. * @throws SecurityException if denied access to log files. */ RolloverDescriptionPtr rollover(const LogString& activeFile, log4cxx::helpers::Pool& pool); /** * Determines if a rollover may be appropriate at this time. If * true is returned, RolloverPolicy.rollover will be called but it * can determine that a rollover is not warranted. * * @param appender A reference to the appender. * @param event A reference to the currently event. * @param filename The filename for the currently active log file. * @param fileLength Length of the file in bytes. * @return true if a rollover should occur. */ virtual bool isTriggeringEvent( Appender* appender, const log4cxx::spi::LoggingEventPtr& event, const LogString& filename, size_t fileLength); protected: log4cxx::pattern::PatternMap getFormatSpecifiers() const; }; LOG4CXX_PTR_DEF(TimeBasedRollingPolicy); } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/filerenameaction.h100644 0 0 3426 10774263365 23422 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if !defined(_LOG4CXX_ROLLING_FILE_RENAME_ACTION_H) #define _LOG4CXX_ROLLING_FILE_RENAME_ACTION_H #include #include namespace log4cxx { namespace rolling { class FileRenameAction : public Action { const File source; const File destination; bool renameEmptyFile; public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(FileRenameAction) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(FileRenameAction) LOG4CXX_CAST_ENTRY_CHAIN(Action) END_LOG4CXX_CAST_MAP() /** * Constructor. */ FileRenameAction(const File& toRename, const File& renameTo, bool renameEmptyFile); /** * Perform action. * * @return true if successful. */ virtual bool execute(log4cxx::helpers::Pool& pool) const; }; LOG4CXX_PTR_DEF(FileRenameAction); } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rolloverdescription.h100644 0 0 6624 10774263365 24230 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if !defined(_LOG4CXX_ROLLING_ROLLOVER_DESCRIPTION_H) #define _LOG4CXX_ROLLING_ROLLOVER_DESCRIPTION_H #include #include namespace log4cxx { namespace rolling { class RolloverDescription : public log4cxx::helpers::ObjectImpl { DECLARE_LOG4CXX_OBJECT(RolloverDescription) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(RolloverDescription) END_LOG4CXX_CAST_MAP() /** * Active log file name after rollover. */ LogString activeFileName; /** * Should active file be opened for appending. */ bool append; /** * Action to be completed after close of current active log file * before returning control to caller. */ ActionPtr synchronous; /** * Action to be completed after close of current active log file * and before next rollover attempt, may be executed asynchronously. */ ActionPtr asynchronous; public: RolloverDescription(); /** * Create new instance. * @param activeFileName active log file name after rollover, may not be null. * @param append true if active log file after rollover should be opened for appending. * @param synchronous action to be completed after close of current active log file, may be null. * @param asynchronous action to be completed after close of current active log file and * before next rollover attempt. */ RolloverDescription( const LogString& activeFileName, const bool append, const ActionPtr& synchronous, const ActionPtr& asynchronous); /** * Active log file name after rollover. * @return active log file name after rollover. */ LogString getActiveFileName() const; bool getAppend() const; /** * Action to be completed after close of current active log file * before returning control to caller. * * @return action, may be null. */ ActionPtr getSynchronous() const; /** * Action to be completed after close of current active log file * and before next rollover attempt, may be executed asynchronously. * * @return action, may be null. */ ActionPtr getAsynchronous() const; }; LOG4CXX_PTR_DEF(RolloverDescription); } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/sizebasedtriggeringpolicy.h100644 0 0 5340 10774263365 25365 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if !defined(_LOG4CXX_ROLLING_SIZE_BASED_TRIGGERING_POLICY_H) #define _LOG4CXX_ROLLING_SIZE_BASED_TRIGGERING_POLICY_H #include namespace log4cxx { class File; namespace helpers { class Pool; } namespace rolling { /** * SizeBasedTriggeringPolicy looks at size of the file being * currently written to. * * * */ class LOG4CXX_EXPORT SizeBasedTriggeringPolicy : public TriggeringPolicy { DECLARE_LOG4CXX_OBJECT(SizeBasedTriggeringPolicy) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(SizeBasedTriggeringPolicy) LOG4CXX_CAST_ENTRY_CHAIN(TriggeringPolicy) END_LOG4CXX_CAST_MAP() protected: size_t maxFileSize; public: SizeBasedTriggeringPolicy(); /** * Determines if a rollover may be appropriate at this time. If * true is returned, RolloverPolicy.rollover will be called but it * can determine that a rollover is not warranted. * * @param appender A reference to the appender. * @param event A reference to the currently event. * @param filename The filename for the currently active log file. * @param fileLength Length of the file in bytes. * @return true if a rollover should occur. */ virtual bool isTriggeringEvent( Appender* appender, const log4cxx::spi::LoggingEventPtr& event, const LogString& filename, size_t fileLength); size_t getMaxFileSize(); void setMaxFileSize(size_t l); void activateOptions(log4cxx::helpers::Pool&); void setOption(const LogString& option, const LogString& value); }; LOG4CXX_PTR_DEF(SizeBasedTriggeringPolicy); } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/zipcompressaction.h100644 0 0 4107 10774263365 23666 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if !defined(_LOG4CXX_ROLLING_ZIP_COMPRESS_ACTION_H) #define _LOG4CXX_ROLLING_ZIP_COMPRESS_ACTION_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include namespace log4cxx { namespace rolling { class ZipCompressAction : public Action { const File source; const File destination; bool deleteSource; public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(ZipCompressAction) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(ZipCompressAction) LOG4CXX_CAST_ENTRY_CHAIN(Action) END_LOG4CXX_CAST_MAP() /** * Constructor. */ ZipCompressAction(const File& source, const File& destination, bool deleteSource); /** * Perform action. * * @return true if successful. */ virtual bool execute(log4cxx::helpers::Pool& pool) const; private: ZipCompressAction(const ZipCompressAction&); ZipCompressAction& operator=(const ZipCompressAction&); }; LOG4CXX_PTR_DEF(ZipCompressAction); } #if defined(_MSC_VER) #pragma warning ( pop ) #endif } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/Makefile.in100644 0 0 32266 10774264476 22041 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/main/include/log4cxx/rolling DIST_COMMON = $(rollinginc_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(rollingincdir)" rollingincHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(rollinginc_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # rollingincdir = $(includedir)/log4cxx/rolling rollinginc_HEADERS = $(top_srcdir)/src/main/include/log4cxx/rolling/*.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/include/log4cxx/rolling/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/main/include/log4cxx/rolling/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-rollingincHEADERS: $(rollinginc_HEADERS) @$(NORMAL_INSTALL) test -z "$(rollingincdir)" || $(mkdir_p) "$(DESTDIR)$(rollingincdir)" @list='$(rollinginc_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(rollingincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(rollingincdir)/$$f'"; \ $(rollingincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(rollingincdir)/$$f"; \ done uninstall-rollingincHEADERS: @$(NORMAL_UNINSTALL) @list='$(rollinginc_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(rollingincdir)/$$f'"; \ rm -f "$(DESTDIR)$(rollingincdir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(mkdir_p) $(distdir)/../../../../../src/main/include/log4cxx/rolling @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(rollingincdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-rollingincHEADERS install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am uninstall-rollingincHEADERS .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-rollingincHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-info-am \ uninstall-rollingincHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/manualtriggeringpolicy.h100644 0 0 5036 10774263365 24673 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if !defined(_LOG4CXX_ROLLING_MANUAL_TRIGGERING_POLICY_H) #define _LOG4CXX_ROLLING_MANUAL_TRIGGERING_POLICY_H #include namespace log4cxx { class File; namespace helpers { class Pool; } namespace rolling { /** * ManualTriggeringPolicy only rolls over on explicit calls to * RollingFileAppender.rollover(). * * * */ class LOG4CXX_EXPORT ManualTriggeringPolicy : public TriggeringPolicy { DECLARE_LOG4CXX_OBJECT(ManualTriggeringPolicy) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(ManualTriggeringPolicy) LOG4CXX_CAST_ENTRY_CHAIN(TriggeringPolicy) END_LOG4CXX_CAST_MAP() public: ManualTriggeringPolicy(); /** * Determines if a rollover may be appropriate at this time. If * true is returned, RolloverPolicy.rollover will be called but it * can determine that a rollover is not warranted. * * @param appender A reference to the appender. * @param event A reference to the currently event. * @param filename The filename for the currently active log file. * @param fileLength Length of the file in bytes. * @return true if a rollover should occur. */ virtual bool isTriggeringEvent( Appender* appender, const log4cxx::spi::LoggingEventPtr& event, const LogString& filename, size_t fileLength); void activateOptions(log4cxx::helpers::Pool&); void setOption(const LogString& option, const LogString& value); }; } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/triggeringpolicy.h100644 0 0 5352 10774263365 23476 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if !defined(_LOG4CXX_ROLLING_TRIGGER_POLICY_H) #define _LOG4CXX_ROLLING_TRIGGER_POLICY_H #include #include #include #include namespace log4cxx { class File; namespace rolling { /** * A TriggeringPolicy controls the conditions under which rollover * occurs. Such conditions include time of day, file size, an * external event or a combination thereof. * * * * */ class LOG4CXX_EXPORT TriggeringPolicy : public virtual spi::OptionHandler, public virtual helpers::ObjectImpl { DECLARE_ABSTRACT_LOG4CXX_OBJECT(TriggeringPolicy) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(TriggeringPolicy) LOG4CXX_CAST_ENTRY(spi::OptionHandler) END_LOG4CXX_CAST_MAP() public: virtual ~TriggeringPolicy(); void addRef() const; void releaseRef() const; /** * Determines if a rollover may be appropriate at this time. If * true is returned, RolloverPolicy.rollover will be called but it * can determine that a rollover is not warranted. * * @param appender A reference to the appender. * @param event A reference to the currently event. * @param filename The filename for the currently active log file. * @param fileLength Length of the file in bytes. * @return true if a rollover should occur. */ virtual bool isTriggeringEvent( Appender* appender, const log4cxx::spi::LoggingEventPtr& event, const LogString& filename, size_t fileLength) = 0; }; LOG4CXX_PTR_DEF(TriggeringPolicy); } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingpolicybase.h100644 0 0 7527 10774263365 23644 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if !defined(_LOG4CXX_ROLLING_ROLLING_POLICY_BASE_H) #define _LOG4CXX_ROLLING_ROLLING_POLICY_BASE_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include #include #include namespace log4cxx { namespace rolling { /** * Implements methods common to most, it not all, rolling * policies. * * * */ class LOG4CXX_EXPORT RollingPolicyBase : public virtual RollingPolicy, public virtual helpers::ObjectImpl { protected: DECLARE_ABSTRACT_LOG4CXX_OBJECT(RollingPolicyBase) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(RollingPolicy) LOG4CXX_CAST_ENTRY(spi::OptionHandler) END_LOG4CXX_CAST_MAP() private: /** * File name pattern converters. */ LOG4CXX_LIST_DEF(PatternConverterList, log4cxx::pattern::PatternConverterPtr); PatternConverterList patternConverters; /** * File name field specifiers. */ LOG4CXX_LIST_DEF(FormattingInfoList, log4cxx::pattern::FormattingInfoPtr); FormattingInfoList patternFields; /** * File name pattern. */ LogString fileNamePatternStr; public: RollingPolicyBase(); virtual ~RollingPolicyBase(); void addRef() const; void releaseRef() const; virtual void activateOptions(log4cxx::helpers::Pool& p) = 0; virtual log4cxx::pattern::PatternMap getFormatSpecifiers() const = 0; virtual void setOption(const LogString& option, const LogString& value); /** * Set file name pattern. * @param fnp file name pattern. */ void setFileNamePattern(const LogString& fnp); /** * Get file name pattern. * @return file name pattern. */ LogString getFileNamePattern() const; protected: /** * Parse file name pattern. */ void parseFileNamePattern(); /** * Format file name. * * @param obj object to be evaluted in formatting, may not be null. * @param buf string buffer to which formatted file name is appended, may not be null. * @param p memory pool. */ void formatFileName(log4cxx::helpers::ObjectPtr& obj, LogString& buf, log4cxx::helpers::Pool& p) const; log4cxx::pattern::PatternConverterPtr getIntegerPatternConverter() const; log4cxx::pattern::PatternConverterPtr getDatePatternConverter() const; }; } } #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingfileappender.h100644 0 0 7745 10774263365 24152 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if !defined(_LOG4CXX_ROLLING_ROLLING_FILE_APPENDER_H) #define _LOG4CXX_ROLLING_ROLLING_FILE_APPENDER_H #include namespace log4cxx { namespace rolling { /** * RollingFileAppender extends {@link log4cxx::FileAppender} to backup the log files * depending on {@link log4cxx::rolling::RollingPolicy RollingPolicy} and {@link log4cxx::rolling::TriggeringPolicy TriggeringPolicy}. *

* To be of any use, a RollingFileAppender instance must have both * a RollingPolicy and a TriggeringPolicy set up. * However, if its RollingPolicy also implements the * TriggeringPolicy interface, then only the former needs to be * set up. For example, {@link log4cxx::rolling::TimeBasedRollingPolicy TimeBasedRollingPolicy} acts both as a * RollingPolicy and a TriggeringPolicy. * *

RollingFileAppender can be configured programattically or * using {@link log4cxx::xml::DOMConfigurator}. Here is a sample * configration file:

<?xml version="1.0" encoding="UTF-8" ?>
        <!DOCTYPE log4j:configuration>

        <log4j:configuration debug="true">

          <appender name="ROLL" class="org.apache.log4j.rolling.RollingFileAppender">
            <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
              <param name="FileNamePattern" value="/wombat/foo.%d{yyyy-MM}.gz"/>
            </rollingPolicy>

            <layout class="org.apache.log4j.PatternLayout">
              <param name="ConversionPattern" value="%c{1} - %m%n"/>
            </layout>
          </appender>

          <root">
            <appender-ref ref="ROLL"/>
          </root>

        </log4j:configuration>
        
*

This configuration file specifies a monthly rollover schedule including * automatic compression of the archived files. See * {@link TimeBasedRollingPolicy} for more details. * * * * * */ class LOG4CXX_EXPORT RollingFileAppender : public RollingFileAppenderSkeleton { DECLARE_LOG4CXX_OBJECT(RollingFileAppender) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(RollingFileAppender) LOG4CXX_CAST_ENTRY_CHAIN(RollingFileAppenderSkeleton) END_LOG4CXX_CAST_MAP() public: RollingFileAppender(); using RollingFileAppenderSkeleton::getRollingPolicy; using RollingFileAppenderSkeleton::getTriggeringPolicy; /** * Sets the rolling policy. In case the 'policy' argument also implements * {@link TriggeringPolicy}, then the triggering policy for this appender * is automatically set to be the policy argument. * @param policy */ using RollingFileAppenderSkeleton::setRollingPolicy; using RollingFileAppenderSkeleton::setTriggeringPolicy; }; LOG4CXX_PTR_DEF(RollingFileAppender); } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingpolicy.h100644 0 0 5745 10774263365 23011 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if !defined(_LOG4CXX_ROLLING_ROLLING_POLICY_H) #define _LOG4CXX_ROLLING_ROLLING_POLICY_H #include #include #include #include namespace log4cxx { namespace rolling { /** * A RollingPolicy is responsible for performing the * rolling over of the active log file. The RollingPolicy * is also responsible for providing the active log file, * that is the live file where logging output will be directed. * * * * */ class LOG4CXX_EXPORT RollingPolicy : public virtual spi::OptionHandler { DECLARE_ABSTRACT_LOG4CXX_OBJECT(RollingPolicy) public: virtual ~RollingPolicy() {} /** * Initialize the policy and return any initial actions for rolling file appender. * * @param file current value of RollingFileAppender.getFile(). * @param append current value of RollingFileAppender.getAppend(). * @param p pool for memory allocations during call. * @return Description of the initialization, may be null to indicate * no initialization needed. * @throws SecurityException if denied access to log files. */ virtual RolloverDescriptionPtr initialize( const LogString& file, const bool append, log4cxx::helpers::Pool& p) = 0; /** * Prepare for a rollover. This method is called prior to * closing the active log file, performs any necessary * preliminary actions and describes actions needed * after close of current log file. * * @param activeFile file name for current active log file. * @param p pool for memory allocations during call. * @return Description of pending rollover, may be null to indicate no rollover * at this time. * @throws SecurityException if denied access to log files. */ virtual RolloverDescriptionPtr rollover(const LogString& activeFile, log4cxx::helpers::Pool& p) = 0; }; LOG4CXX_PTR_DEF(RollingPolicy); } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/filterbasedtriggeringpolicy.h100644 0 0 6173 10774263365 25705 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #if !defined(_LOG4CXX_ROLLING_FILTER_BASED_TRIGGERING_POLICY_H) #define _LOG4CXX_ROLLING_FILTER_BASED_TRIGGERING_POLICY_H #include #include namespace log4cxx { class File; namespace helpers { class Pool; } namespace rolling { /** * FilterBasedTriggeringPolicy determines if rolling should be triggered * by evaluating the current message against a set of filters. Unless a * filter rejects a message, a rolling event will be triggered. * * * * */ class LOG4CXX_EXPORT FilterBasedTriggeringPolicy : public TriggeringPolicy { DECLARE_LOG4CXX_OBJECT(FilterBasedTriggeringPolicy) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(FilterBasedTriggeringPolicy) LOG4CXX_CAST_ENTRY_CHAIN(TriggeringPolicy) END_LOG4CXX_CAST_MAP() /** * The first filter in the filter chain. Set to null initially. */ log4cxx::spi::FilterPtr headFilter; /** * The last filter in the filter chain. */ log4cxx::spi::FilterPtr tailFilter; public: /** * Creates a new FilterBasedTriggeringPolicy. */ FilterBasedTriggeringPolicy(); virtual ~FilterBasedTriggeringPolicy(); /** * Determines if a rollover may be appropriate at this time. If * true is returned, RolloverPolicy.rollover will be called but it * can determine that a rollover is not warranted. * * @param appender A reference to the appender. * @param event A reference to the currently event. * @param filename The filename for the currently active log file. * @param fileLength Length of the file in bytes. * @return true if a rollover should occur. */ virtual bool isTriggeringEvent( Appender* appender, const log4cxx::spi::LoggingEventPtr& event, const LogString& filename, size_t fileLength); /** * Add a filter to end of the filter list. * @param newFilter filter to add to end of list. */ void addFilter(const log4cxx::spi::FilterPtr& newFilter); /** * Clear the filters chain. * */ void clearFilters(); /** * Returns the head Filter. * */ log4cxx::spi::FilterPtr& getFilter(); /** * Prepares the instance for use. */ void activateOptions(log4cxx::helpers::Pool&); void setOption(const LogString& option, const LogString& value); }; LOG4CXX_PTR_DEF(FilterBasedTriggeringPolicy); } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/classnamepatternconverter.h100644 0 0 3707 10774263367 25424 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_PATTERN_CLASSNAME_PATTERN_CONVERTER_H #define _LOG4CXX_PATTERN_CLASSNAME_PATTERN_CONVERTER_H #include namespace log4cxx { namespace pattern { /** * Formats the class name of the site of the logging request. * * * */ class LOG4CXX_EXPORT ClassNamePatternConverter : public NamePatternConverter { /** * Private constructor. * @param options options, may be null. * @param logger logger for diagnostic messages, may be null. */ ClassNamePatternConverter( const std::vector& options); public: DECLARE_LOG4CXX_PATTERN(ClassNamePatternConverter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(ClassNamePatternConverter) LOG4CXX_CAST_ENTRY_CHAIN(NamePatternConverter) END_LOG4CXX_CAST_MAP() /** * Gets an instance of ClassNamePatternConverter. * @param options options, may be null. * @return instance of pattern converter. */ static PatternConverterPtr newInstance( const std::vector& options); void format(const log4cxx::spi::LoggingEventPtr&event, LogString& toAppendTo, log4cxx::helpers::Pool& p) const; }; } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/ndcpatternconverter.h100644 0 0 3400 10774263367 24210 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_PATTERN_NDC_PATTERN_CONVERTER #define _LOG4CXX_PATTERN_NDC_PATTERN_CONVERTER #include namespace log4cxx { namespace pattern { /** * Return the event's NDC in a StringBuffer. * * * */ class LOG4CXX_EXPORT NDCPatternConverter : public LoggingEventPatternConverter { /** * Private constructor. */ NDCPatternConverter(); public: DECLARE_LOG4CXX_PATTERN(NDCPatternConverter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(NDCPatternConverter) LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter) END_LOG4CXX_CAST_MAP() /** * Obtains an instance of NDCPatternConverter. * @param options options, may be null. * @return instance of NDCPatternConverter. */ static PatternConverterPtr newInstance( const std::vector& options); void format(const log4cxx::spi::LoggingEventPtr& event, LogString& toAppendTo, log4cxx::helpers::Pool& p) const; }; } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/patternparser.h100644 0 0 12455 10774263367 23042 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPER_PATTERN_CONVERTER_H #define _LOG4CXX_HELPER_PATTERN_CONVERTER_H #if defined(_MSC_VER) #pragma warning (push) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include namespace log4cxx { namespace pattern { typedef PatternConverterPtr (*PatternConstructor)(const std::vector& options); typedef std::map PatternMap; // Contributors: Nelson Minar <(nelson@monkey.org> // Igor E. Poteryaev // Reinhard Deschler /** * Most of the work of the {@link log4cxx::PatternLayout PatternLayout} class * is delegated to the PatternParser class. *

It is this class that parses conversion patterns and creates * a chained list of {@link PatternConverter PatternConverters}. * * */ class LOG4CXX_EXPORT PatternParser { /** * Escape character for format specifier. */ static const logchar ESCAPE_CHAR; enum { LITERAL_STATE = 0, CONVERTER_STATE = 1, DOT_STATE = 3, MIN_STATE = 4, MAX_STATE = 5 }; /** * Private constructor. */ PatternParser(); private: /** Extract the converter identifier found at position i. * * After this function returns, the variable i will point to the * first char after the end of the converter identifier. * * If i points to a char which is not a character acceptable at the * start of a unicode identifier, the value null is returned. * * @param lastChar last processed character. * @param pattern format string. * @param i current index into pattern format. * @param convBuf buffer to receive conversion specifier. * @param currentLiteral literal to be output in case format specifier in unrecognized. * @return position in pattern after converter. */ static int extractConverter( logchar lastChar, const LogString& pattern, LogString::size_type i, LogString& convBuf, LogString& currentLiteral); /** * Extract options. * @param pattern conversion pattern. * @param i start of options. * @param options array to receive extracted options * @return position in pattern after options. */ static int extractOptions(const LogString& pattern, LogString::size_type i, std::vector& options); public: /** * Parse a format specifier. * @param pattern pattern to parse. * @param patternConverters list to receive pattern converters. * @param formattingInfos list to receive field specifiers corresponding to pattern converters. * @param rules map of stock pattern converters keyed by format specifier. */ static void parse( const LogString& pattern, std::vector& patternConverters, std::vector& formattingInfos, const PatternMap& rules); private: /** * Creates a new PatternConverter. * * * @param converterId converterId. * @param currentLiteral literal to be used if converter is unrecognized or following converter * if converterId contains extra characters. * @param rules map of stock pattern converters keyed by format specifier. * @param options converter options. * @return converter or null. */ static PatternConverterPtr createConverter( const LogString& converterId, LogString& currentLiteral, const PatternMap& rules, std::vector& options); /** * Processes a format specifier sequence. * * @param c initial character of format specifier. * @param pattern conversion pattern * @param i current position in conversion pattern. * @param currentLiteral current literal. * @param formattingInfo current field specifier. * @param rules map of stock pattern converters keyed by format specifier. * @param patternConverters list to receive parsed pattern converter. * @param formattingInfos list to receive corresponding field specifier. * @return position after format specifier sequence. */ static int finalizeConverter( logchar c, const LogString& pattern, int i, LogString& currentLiteral, const FormattingInfoPtr& formattingInfo, const PatternMap& rules, std::vector& patternConverters, std::vector& formattingInfos); static bool isUnicodeIdentifierStart(logchar c); static bool isUnicodeIdentifierPart(logchar c); }; } } #if defined(_MSC_VER) #pragma warning (pop) #endif #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/filedatepatternconverter.h100644 0 0 3036 10774263367 25226 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_PATTERN_FILE_DATE_PATTERN_CONVERTER #define _LOG4CXX_PATTERN_FILE_DATE_PATTERN_CONVERTER #include namespace log4cxx { namespace pattern { /** * Formats an date by delegating to DatePatternConverter. The default * date pattern for a %d specifier in a file name is different than * the %d pattern in pattern layout. * * * */ class LOG4CXX_EXPORT FileDatePatternConverter { /** * Private constructor. */ FileDatePatternConverter(); public: /** * Obtains an instance of pattern converter. * @param options options, may be null. * @return instance of pattern converter. */ static PatternConverterPtr newInstance( const std::vector& options); }; } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/levelpatternconverter.h100644 0 0 3536 10774263367 24565 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_PATTERN_LEVEL_PATTERN_CONVERTER #define _LOG4CXX_PATTERN_LEVEL_PATTERN_CONVERTER #include namespace log4cxx { namespace pattern { /** * Return the event's level in a StringBuffer. * * * */ class LOG4CXX_EXPORT LevelPatternConverter : public LoggingEventPatternConverter { /** * Private constructor. */ LevelPatternConverter(); public: DECLARE_LOG4CXX_PATTERN(LevelPatternConverter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(LevelPatternConverter) LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter) END_LOG4CXX_CAST_MAP() /** * Obtains an instance of pattern converter. * @param options options, may be null. * @return instance of pattern converter. */ static PatternConverterPtr newInstance( const std::vector& options); void format(const log4cxx::spi::LoggingEventPtr& event, LogString& toAppendTo, log4cxx::helpers::Pool& p) const; LogString getStyleClass(const log4cxx::helpers::ObjectPtr& e) const; }; } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/threadpatternconverter.h100644 0 0 3446 10774263367 24725 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_PATTERN_THREAD_PATTERN_CONVERTER #define _LOG4CXX_PATTERN_THREAD_PATTERN_CONVERTER #include namespace log4cxx { namespace pattern { /** * Formats the event thread name. * * * */ class LOG4CXX_EXPORT ThreadPatternConverter : public LoggingEventPatternConverter { /** * Private constructor. */ ThreadPatternConverter(); public: DECLARE_LOG4CXX_PATTERN(ThreadPatternConverter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(ThreadPatternConverter) LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter) END_LOG4CXX_CAST_MAP() /** * Obtains an instance of ThreadPatternConverter. * @param options options, currently ignored, may be null. * @return instance of ThreadPatternConverter. */ static PatternConverterPtr newInstance( const std::vector& options); void format(const log4cxx::spi::LoggingEventPtr& event, LogString& toAppendTo, log4cxx::helpers::Pool& p) const; }; } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/nameabbreviator.h100644 0 0 4643 10774263367 23271 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_PATTERN_NAME_ABBREVIATOR #define _LOG4CXX_PATTERN_NAME_ABBREVIATOR #include #include #include namespace log4cxx { namespace pattern { class NameAbbreviator; LOG4CXX_PTR_DEF(NameAbbreviator); /** * NameAbbreviator generates abbreviated logger and class names. * * * */ class LOG4CXX_EXPORT NameAbbreviator : public log4cxx::helpers::ObjectImpl { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(NameAbbreviator) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(NameAbbreviator) END_LOG4CXX_CAST_MAP() protected: NameAbbreviator(); public: virtual ~NameAbbreviator(); /** * Gets an abbreviator. * * For example, "%logger{2}" will output only 2 elements of the logger name, * "%logger{1.}" will output only the first character of the non-final elements in the name, * "%logger(1~.2~} will output the first character of the first element, two characters of * the second and subsequent elements and will use a tilde to indicate abbreviated characters. * * @param pattern abbreviation pattern. * @return abbreviator, will not be null. */ static NameAbbreviatorPtr getAbbreviator(const LogString& pattern); /** * Gets default abbreviator. * * @return default abbreviator. */ static NameAbbreviatorPtr getDefaultAbbreviator(); /** * Abbreviates a name in a StringBuffer. * * @param nameStart starting position of name in buf. * @param buf buffer, may not be null. */ virtual void abbreviate(LogString::size_type nameStart, LogString& buf) const = 0; }; } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/lineseparatorpatternconverter.h100644 0 0 3655 10774263367 26330 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_PATTERN_LINE_SEPARATOR_PATTERN_CONVERTER #define _LOG4CXX_PATTERN_LINE_SEPARATOR_PATTERN_CONVERTER #include namespace log4cxx { namespace pattern { /** * Formats a line separator. * * * */ class LOG4CXX_EXPORT LineSeparatorPatternConverter : public LoggingEventPatternConverter { /** * Private constructor. */ LineSeparatorPatternConverter(); public: DECLARE_LOG4CXX_PATTERN(LineSeparatorPatternConverter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(LineSeparatorPatternConverter) LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter) END_LOG4CXX_CAST_MAP() /** * Obtains an instance of pattern converter. * @param options options, may be null. * @return instance of pattern converter. */ static PatternConverterPtr newInstance( const std::vector& options); void format(const log4cxx::spi::LoggingEventPtr& event, LogString& toAppendTo, log4cxx::helpers::Pool& p) const; void format(const log4cxx::helpers::ObjectPtr& obj, LogString& toAppendTo, log4cxx::helpers::Pool& p) const; }; } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/filelocationpatternconverter.h100644 0 0 3534 10774263367 26124 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_PATTERN_FILE_LOCATION_PATTERN_CONVERTER #define _LOG4CXX_PATTERN_FILE_LOCATION_PATTERN_CONVERTER #include namespace log4cxx { namespace pattern { /** * Return the event's line location information in a StringBuffer. * * * */ class LOG4CXX_EXPORT FileLocationPatternConverter : public LoggingEventPatternConverter { /** * Private constructor. */ FileLocationPatternConverter(); public: DECLARE_LOG4CXX_PATTERN(FileLocationPatternConverter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(FileLocationPatternConverter) LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter) END_LOG4CXX_CAST_MAP() /** * Obtains an instance of pattern converter. * @param options options, may be null. * @return instance of pattern converter. */ static PatternConverterPtr newInstance( const std::vector& options); void format(const log4cxx::spi::LoggingEventPtr& event, LogString& toAppendTo, log4cxx::helpers::Pool& p) const; }; } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/methodlocationpatternconverter.h100644 0 0 3562 10774263367 26466 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_PATTERN_METHOD_LOCATION_PATTERN_CONVERTER #define _LOG4CXX_PATTERN_METHOD_LOCATION_PATTERN_CONVERTER #include namespace log4cxx { namespace pattern { /** * Return the event's line location information in a StringBuffer. * * * */ class LOG4CXX_EXPORT MethodLocationPatternConverter : public LoggingEventPatternConverter { /** * Private constructor. */ MethodLocationPatternConverter(); public: DECLARE_LOG4CXX_PATTERN(MethodLocationPatternConverter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(MethodLocationPatternConverter) LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter) END_LOG4CXX_CAST_MAP() /** * Obtains an instance of MethodLocationPatternConverter. * @param options options, may be null. * @return instance of MethodLocationPatternConverter. */ static PatternConverterPtr newInstance( const std::vector& options); void format(const log4cxx::spi::LoggingEventPtr& event, LogString& toAppendTo, log4cxx::helpers::Pool& p) const; }; } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/messagepatternconverter.h100644 0 0 3425 10774263367 25077 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_PATTERN_MESSAGE_PATTERN_CONVERTER #define _LOG4CXX_PATTERN_MESSAGE_PATTERN_CONVERTER #include namespace log4cxx { namespace pattern { /** * Formats the message of an logging event. * * * */ class LOG4CXX_EXPORT MessagePatternConverter : public LoggingEventPatternConverter { /** * Private constructor. */ MessagePatternConverter(); public: DECLARE_LOG4CXX_PATTERN(MessagePatternConverter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(MessagePatternConverter) LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter) END_LOG4CXX_CAST_MAP() /** * Obtains an instance of pattern converter. * @param options options, may be null. * @return instance of pattern converter. */ static PatternConverterPtr newInstance( const std::vector& options); void format(const log4cxx::spi::LoggingEventPtr& event, LogString& toAppendTo, log4cxx::helpers::Pool& p) const; }; } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/datepatternconverter.h100644 0 0 4660 10774263367 24372 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_PATTERN_DATE_PATTERN_CONVERTER #define _LOG4CXX_PATTERN_DATE_PATTERN_CONVERTER #include #include #include #include namespace log4cxx { namespace pattern { /** * Convert and format the event's date in a StringBuffer. * * * */ class LOG4CXX_EXPORT DatePatternConverter : public LoggingEventPatternConverter { /** * Date format. */ log4cxx::helpers::DateFormatPtr df; /** * Private constructor. * @param options options, may be null. * @param logger logger for diagnostic messages, may be null. */ DatePatternConverter(const OptionsList& options); /** * Obtains an instance of pattern converter. * @param options options, may be null. * @return instance of pattern converter. */ static log4cxx::helpers::DateFormatPtr getDateFormat(const OptionsList& options); public: DECLARE_LOG4CXX_PATTERN(DatePatternConverter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(DatePatternConverter) LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter) END_LOG4CXX_CAST_MAP() static PatternConverterPtr newInstance( const std::vector& options); void format(const log4cxx::spi::LoggingEventPtr& event, LogString& output, log4cxx::helpers::Pool& p) const; void format(const log4cxx::helpers::ObjectPtr& obj, LogString& output, log4cxx::helpers::Pool& p) const; void format(const log4cxx::helpers::DatePtr& date, LogString& toAppendTo, log4cxx::helpers::Pool& p) const; }; LOG4CXX_PTR_DEF(DatePatternConverter); } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/loggerpatternconverter.h100644 0 0 3616 10774263367 24734 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_PATTERN_LOGGER_PATTERN_CONVERTER_H #define _LOG4CXX_PATTERN_LOGGER_PATTERN_CONVERTER_H #include namespace log4cxx { namespace pattern { /** * Formats a logger name. * * * * */ class LOG4CXX_EXPORT LoggerPatternConverter : public NamePatternConverter { /** * Private constructor. * @param options options, may be null. * @param logger logger for diagnostic messages, may be null. */ LoggerPatternConverter(const std::vector& options); public: DECLARE_LOG4CXX_PATTERN(LoggerPatternConverter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(LoggerPatternConverter) LOG4CXX_CAST_ENTRY_CHAIN(NamePatternConverter) END_LOG4CXX_CAST_MAP() /** * Obtains an instance of pattern converter. * @param options options, may be null. * @return instance of pattern converter. */ static PatternConverterPtr newInstance( const std::vector& options); void format(const log4cxx::spi::LoggingEventPtr& event, LogString& toAppendTo, log4cxx::helpers::Pool& p) const; }; } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/patternconverter.h100644 0 0 6721 10774263367 23534 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_PATTERN_PATTERN_CONVERTER_H #define _LOG4CXX_PATTERN_PATTERN_CONVERTER_H #include #include #include #ifdef _MSC_VER // disable identifier too wide for debugging warning #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #define DECLARE_LOG4CXX_PATTERN(cls) DECLARE_ABSTRACT_LOG4CXX_OBJECT(cls) namespace log4cxx { namespace pattern { typedef std::vector OptionsList; /**

PatternConverter is an abstract class that provides the formatting functionality that derived classes need.

Conversion specifiers in a conversion patterns are parsed to individual PatternConverters. Each of which is responsible for converting an object in a converter specific manner. */ class LOG4CXX_EXPORT PatternConverter : public virtual log4cxx::helpers::ObjectImpl { /** * Converter name. */ const LogString name; /** * Converter style name. */ const LogString style; protected: /** * Create a new pattern converter. * @param name name for pattern converter. * @param style CSS style for formatted output. */ PatternConverter(const LogString& name, const LogString& style); virtual ~PatternConverter(); public: DECLARE_LOG4CXX_PATTERN(PatternConverter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(PatternConverter) END_LOG4CXX_CAST_MAP() /** * Formats an object into a string buffer. * @param obj event to format, may not be null. * @param toAppendTo string buffer to which the formatted event will be appended. May not be null. * @param p pool for any allocations necessary during formatting. */ virtual void format(const log4cxx::helpers::ObjectPtr& obj, LogString& toAppendTo, log4cxx::helpers::Pool& p) const = 0; /** * This method returns the name of the conversion pattern. * * The name can be useful to certain Layouts such as HTMLLayout. * * @return the name of the conversion pattern */ LogString getName() const; /** * This method returns the CSS style class that should be applied to * the LoggingEvent passed as parameter, which can be null. * * This information is currently used only by HTMLLayout. * * @param e null values are accepted * @return the name of the conversion pattern */ virtual LogString getStyleClass(const log4cxx::helpers::ObjectPtr& e) const; protected: /** * Appends content in the locale code page to a LogString. * @param toAppendTo string to which content is appended. * @param src content. */ static void append(LogString& toAppendTo, const std::string& src); }; LOG4CXX_PTR_DEF(PatternConverter); } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/namepatternconverter.h100644 0 0 4247 10774263367 24376 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_PATTERN_NAMED_PATTERN_CONVERTER_H #define _LOG4CXX_PATTERN_NAMED_PATTERN_CONVERTER_H #include #include #include namespace log4cxx { namespace pattern { /** * * Base class for other pattern converters which can return only parts of their name. * */ class LOG4CXX_EXPORT NamePatternConverter : public LoggingEventPatternConverter { /** * Abbreviator. */ const NameAbbreviatorPtr abbreviator; public: DECLARE_LOG4CXX_PATTERN(NamePatternConverter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(NamePatternConverter) LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter) END_LOG4CXX_CAST_MAP() protected: /** * Constructor. * @param name name of converter. * @param style style name for associated output. * @param options options, may be null, first element will be interpreted as an abbreviation pattern. */ NamePatternConverter( const LogString& name, const LogString& style, const std::vector& options); /** * Abbreviate name in string buffer. * @param nameStart starting position of name to abbreviate. * @param buf string buffer containing name. */ void abbreviate(int nameStart, LogString& buf) const; private: NameAbbreviatorPtr getAbbreviator(const std::vector& options); }; } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/linelocationpatternconverter.h100644 0 0 3506 10774263367 26133 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_PATTERN_LINE_LOCATION_PATTERN_CONVERTER #define _LOG4CXX_PATTERN_LINE_LOCATION_PATTERN_CONVERTER #include namespace log4cxx { namespace pattern { /** * Format the event's line location information. * * * */ class LOG4CXX_EXPORT LineLocationPatternConverter : public LoggingEventPatternConverter { /** * Private constructor. */ LineLocationPatternConverter(); public: DECLARE_LOG4CXX_PATTERN(LineLocationPatternConverter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(LineLocationPatternConverter) LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter) END_LOG4CXX_CAST_MAP() /** * Obtains an instance of pattern converter. * @param options options, may be null. * @return instance of pattern converter. */ static PatternConverterPtr newInstance( const std::vector& options); void format(const log4cxx::spi::LoggingEventPtr& event, LogString& toAppendTo, log4cxx::helpers::Pool& p) const; }; } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/formattinginfo.h100644 0 0 5151 10774263367 23151 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HELPER_FORMATTING_INFO_H #define _LOG4CXX_HELPER_FORMATTING_INFO_H #include #include namespace log4cxx { namespace pattern { class FormattingInfo; typedef helpers::ObjectPtrT FormattingInfoPtr; /** * Modifies the output of a pattern converter for a specified minimum * and maximum width and alignment. * * * * */ class LOG4CXX_EXPORT FormattingInfo : public virtual log4cxx::helpers::ObjectImpl { /** * Minimum length. */ const int minLength; /** * Maximum length. */ const int maxLength; /** * Alignment. */ const bool leftAlign; public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(FormattingInfo) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(FormattingInfo) END_LOG4CXX_CAST_MAP() /** * Creates new instance. * @param leftAlign left align if true. * @param minLength minimum length. * @param maxLength maximum length. */ FormattingInfo( const bool leftAlign, const int minLength, const int maxLength); /** * Gets default instance. * @return default instance. */ static FormattingInfoPtr getDefault(); /** * Determine if left aligned. * @return true if left aligned. */ inline bool isLeftAligned() const { return leftAlign; } /** * Get minimum length. * @return minimum length. */ inline int getMinLength() const { return minLength; } /** * Get maximum length. * @return maximum length. */ inline int getMaxLength() const { return maxLength; } /** * Adjust the content of the buffer based on the specified lengths and alignment. * * @param fieldStart start of field in buffer. * @param buffer buffer to be modified. */ void format(const int fieldStart, LogString& buffer) const; }; LOG4CXX_PTR_DEF(FormattingInfo); } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/Makefile.am100644 0 0 1606 10774263367 22007 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # patternincdir = $(includedir)/log4cxx/pattern patterninc_HEADERS= $(top_srcdir)/src/main/include/log4cxx/pattern/*.h apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/loggingeventpatternconverter.h100644 0 0 5262 10774263367 26144 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_PATTERN_LOGGING_EVENT_PATTERN_CONVERTER_H #define _LOG4CXX_PATTERN_LOGGING_EVENT_PATTERN_CONVERTER_H #include #include namespace log4cxx { namespace pattern { /** * LoggingEventPatternConverter is a base class for pattern converters * that can format information from instances of LoggingEvent. * * * * */ class LOG4CXX_EXPORT LoggingEventPatternConverter : public PatternConverter { protected: /** * Constructs an instance of LoggingEventPatternConverter. * @param name name of converter. * @param style CSS style for output. */ LoggingEventPatternConverter( const LogString& name, const LogString& style); public: DECLARE_LOG4CXX_PATTERN(LoggingEventPatternConverter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(LoggingEventPatternConverter) LOG4CXX_CAST_ENTRY_CHAIN(PatternConverter) END_LOG4CXX_CAST_MAP() /** * Formats an event into a string buffer. * @param event event to format, may not be null. * @param toAppendTo string buffer to which the formatted event will be appended. May not be null. * @param p pool for memory allocations needing during format. */ virtual void format( const log4cxx::spi::LoggingEventPtr& event, LogString& toAppendTo, log4cxx::helpers::Pool& p) const = 0; void format(const log4cxx::helpers::ObjectPtr& obj, LogString& toAppendTo, log4cxx::helpers::Pool& p) const; /** * Normally pattern converters are not meant to handle Exceptions although * few pattern converters might. * * By examining the return values for this method, the containing layout will * determine whether it handles throwables or not. * @return true if this PatternConverter handles throwables */ virtual bool handlesThrowable() const; }; LOG4CXX_PTR_DEF(LoggingEventPatternConverter); } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/relativetimepatternconverter.h100644 0 0 3536 10774263367 26150 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_PATTERN_RELATIVE_TIME_PATTERN_CONVERTER #define _LOG4CXX_PATTERN_RELATIVE_TIME_PATTERN_CONVERTER #include namespace log4cxx { namespace pattern { /** * Format the relative time in milliseconds. * * * */ class LOG4CXX_EXPORT RelativeTimePatternConverter : public LoggingEventPatternConverter { public: DECLARE_LOG4CXX_PATTERN(RelativeTimePatternConverter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(RelativeTimePatternConverter) LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter) END_LOG4CXX_CAST_MAP() /** * Private constructor. */ RelativeTimePatternConverter(); /** * Obtains an instance of RelativeTimePatternConverter. * @param options options, currently ignored, may be null. * @return instance of RelativeTimePatternConverter. */ static PatternConverterPtr newInstance( const std::vector& options); void format(const log4cxx::spi::LoggingEventPtr& event, LogString& toAppendTo, log4cxx::helpers::Pool& p) const; }; } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/fulllocationpatternconverter.h100644 0 0 3507 10774263367 26147 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_PATTERN_FULL_LOCATION_PATTERN_CONVERTER #define _LOG4CXX_PATTERN_FULL_LOCATION_PATTERN_CONVERTER #include namespace log4cxx { namespace pattern { /** * Format the event's line location information. * * * */ class LOG4CXX_EXPORT FullLocationPatternConverter : public LoggingEventPatternConverter { /** * Private constructor. */ FullLocationPatternConverter(); public: DECLARE_LOG4CXX_PATTERN(FullLocationPatternConverter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(FullLocationPatternConverter) LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter) END_LOG4CXX_CAST_MAP() /** * Obtains an instance of pattern converter. * @param options options, may be null. * @return instance of pattern converter. */ static PatternConverterPtr newInstance( const std::vector& options); void format(const log4cxx::spi::LoggingEventPtr& event, LogString& toAppendTo, log4cxx::helpers::Pool& p) const; }; } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/literalpatternconverter.h100644 0 0 3552 10774263367 25110 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_PATTERN_LITERAL_PATTERN_CONVERTER_H #define _LOG4CXX_PATTERN_LITERAL_PATTERN_CONVERTER_H #include namespace log4cxx { namespace pattern { /** * Formats a string literal. * * * * */ class LOG4CXX_EXPORT LiteralPatternConverter : public LoggingEventPatternConverter { /** * String literal. */ const LogString literal; /** * Create a new instance. * @param literal string literal. */ LiteralPatternConverter(const LogString& literal); public: DECLARE_LOG4CXX_PATTERN(LiteralPatternConverter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(LiteralPatternConverter) LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter) END_LOG4CXX_CAST_MAP() static PatternConverterPtr newInstance(const LogString& literal); void format(const log4cxx::spi::LoggingEventPtr& event, LogString& toAppendTo, log4cxx::helpers::Pool& p) const; void format(const log4cxx::helpers::ObjectPtr& obj, LogString& toAppendTo, log4cxx::helpers::Pool& p) const; }; } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/propertiespatternconverter.h100644 0 0 4545 10774263367 25653 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_PATTERN_PROPERTIES_PATTERN_CONVERTER #define _LOG4CXX_PATTERN_PROPERTIES_PATTERN_CONVERTER #include namespace log4cxx { namespace pattern { /** * Able to handle the contents of the LoggingEvent's Property bundle and either * output the entire contents of the properties in a similar format to the * java.util.Hashtable.toString(), or to output the value of a specific key * within the property bundle * when this pattern converter has the option set. * * * */ class LOG4CXX_EXPORT PropertiesPatternConverter : public LoggingEventPatternConverter { /** * Name of property to output. */ const LogString option; /** * Private constructor. * @param options options, may be null. * @param logger logger for diagnostic messages, may be null. */ PropertiesPatternConverter(const LogString& name, const LogString& option); public: DECLARE_LOG4CXX_PATTERN(PropertiesPatternConverter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(PropertiesPatternConverter) LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter) END_LOG4CXX_CAST_MAP() /** * Obtains an instance of PropertiesPatternConverter. * @param options options, may be null or first element contains name of property to format. * @return instance of PropertiesPatternConverter. */ static PatternConverterPtr newInstance( const std::vector& options); void format(const log4cxx::spi::LoggingEventPtr& event, LogString& toAppendTo, log4cxx::helpers::Pool& p) const; }; } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/integerpatternconverter.h100644 0 0 3417 10774263367 25111 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_PATTERN_INTEGER_PATTERN_CONVERTER #define _LOG4CXX_PATTERN_INTEGER_PATTERN_CONVERTER #include namespace log4cxx { namespace pattern { /** * Formats an integer. * * * */ class LOG4CXX_EXPORT IntegerPatternConverter : public PatternConverter { /** * Private constructor. */ IntegerPatternConverter(); public: DECLARE_LOG4CXX_PATTERN(IntegerPatternConverter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(IntegerPatternConverter) LOG4CXX_CAST_ENTRY_CHAIN(PatternConverter) END_LOG4CXX_CAST_MAP() /** * Obtains an instance of pattern converter. * @param options options, may be null. * @return instance of pattern converter. */ static PatternConverterPtr newInstance( const std::vector& options); void format(const log4cxx::helpers::ObjectPtr& obj, LogString& toAppendTo, log4cxx::helpers::Pool& p) const; }; LOG4CXX_PTR_DEF(IntegerPatternConverter); } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/Makefile.in100644 0 0 32266 10774264476 22050 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/main/include/log4cxx/pattern DIST_COMMON = $(patterninc_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(patternincdir)" patternincHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(patterninc_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # patternincdir = $(includedir)/log4cxx/pattern patterninc_HEADERS = $(top_srcdir)/src/main/include/log4cxx/pattern/*.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/include/log4cxx/pattern/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/main/include/log4cxx/pattern/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-patternincHEADERS: $(patterninc_HEADERS) @$(NORMAL_INSTALL) test -z "$(patternincdir)" || $(mkdir_p) "$(DESTDIR)$(patternincdir)" @list='$(patterninc_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(patternincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(patternincdir)/$$f'"; \ $(patternincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(patternincdir)/$$f"; \ done uninstall-patternincHEADERS: @$(NORMAL_UNINSTALL) @list='$(patterninc_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(patternincdir)/$$f'"; \ rm -f "$(DESTDIR)$(patternincdir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(mkdir_p) $(distdir)/../../../../../src/main/include/log4cxx/pattern @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(patternincdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-patternincHEADERS install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am uninstall-patternincHEADERS .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-patternincHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-info-am \ uninstall-patternincHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/throwableinformationpatternconverter.h100644 0 0 4461 10774263367 27711 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_PATTERN_THROWABLE_INFORMATION_PATTERN_CONVERTER #define _LOG4CXX_PATTERN_THROWABLE_INFORMATION_PATTERN_CONVERTER #include namespace log4cxx { namespace pattern { /** * Outputs the ThrowableInformation portion of the LoggingiEvent as a full stacktrace * unless this converter's option is 'short', where it just outputs the first line of the trace. * * * * */ class LOG4CXX_EXPORT ThrowableInformationPatternConverter : public LoggingEventPatternConverter { /** * If "short", only first line of throwable report will be formatted. */ const bool shortReport; /** * Private constructor. */ ThrowableInformationPatternConverter(bool shortReport); public: DECLARE_LOG4CXX_PATTERN(ThrowableInformationPatternConverter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(ThrowableInformationPatternConverter) LOG4CXX_CAST_ENTRY_CHAIN(LoggingEventPatternConverter) END_LOG4CXX_CAST_MAP() /** * Gets an instance of the class. * @param options pattern options, may be null. If first element is "short", * only the first line of the throwable will be formatted. * @return instance of class. */ static PatternConverterPtr newInstance( const std::vector& options); void format(const log4cxx::spi::LoggingEventPtr& event, LogString& toAppendTo, log4cxx::helpers::Pool& p) const; /** * This converter obviously handles throwables. * @return true. */ bool handlesThrowable() const; }; } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/Makefile.in100644 0 0 32035 10774264476 21006 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/main/include/log4cxx/nt DIST_COMMON = $(ntinc_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(ntincdir)" ntincHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(ntinc_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # ntincdir = $(includedir)/log4cxx/nt ntinc_HEADERS = $(top_srcdir)/src/main/include/log4cxx/nt/*.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/include/log4cxx/nt/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/main/include/log4cxx/nt/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-ntincHEADERS: $(ntinc_HEADERS) @$(NORMAL_INSTALL) test -z "$(ntincdir)" || $(mkdir_p) "$(DESTDIR)$(ntincdir)" @list='$(ntinc_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(ntincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(ntincdir)/$$f'"; \ $(ntincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(ntincdir)/$$f"; \ done uninstall-ntincHEADERS: @$(NORMAL_UNINSTALL) @list='$(ntinc_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(ntincdir)/$$f'"; \ rm -f "$(DESTDIR)$(ntincdir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(mkdir_p) $(distdir)/../../../../../src/main/include/log4cxx/nt @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(ntincdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-ntincHEADERS install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am uninstall-ntincHEADERS .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-ntincHEADERS install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ uninstall-am uninstall-info-am uninstall-ntincHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/outputdebugstringappender.h100644 0 0 3414 10774263367 24404 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_NT_OUTPUTDEBUGSTRING_APPENDER_HEADER_ #define _LOG4CXX_NT_OUTPUTDEBUGSTRING_APPENDER_HEADER_ #include namespace log4cxx { namespace nt { class LOG4CXX_EXPORT OutputDebugStringAppender : public AppenderSkeleton { public: DECLARE_LOG4CXX_OBJECT(OutputDebugStringAppender) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(OutputDebugStringAppender) LOG4CXX_CAST_ENTRY_CHAIN(AppenderSkeleton) END_LOG4CXX_CAST_MAP() OutputDebugStringAppender(); bool requiresLayout() const { return true; } virtual void close() {} virtual void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p); }; } } #endif //_LOG4CXX_NT_OUTPUTDEBUGSTRING_APPENDER_HEADER_ apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/EventLogCategories.mc100644 0 0 2016 10774263367 22765 0ustar 0 0 ; ; Licensed to the Apache Software Foundation (ASF) under one ; or more contributor license agreements. See the NOTICE file ; distributed with this work for additional information ; regarding copyright ownership. The ASF licenses this file ; to you 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. ; MessageId=0x0001 Language=English Fatal . MessageId=0x0002 Language=English Error . MessageId=0x0003 Language=English Warn . MessageId=0x0004 Language=English Info . MessageId=0x0005 Language=English Debug . MessageId=0x1000 Language=English %1 . apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/Makefile.am100644 0 0 1562 10774263367 20754 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # ntincdir = $(includedir)/log4cxx/nt ntinc_HEADERS= $(top_srcdir)/src/main/include/log4cxx/nt/*.h apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/nteventlogappender.h100644 0 0 11015 10774263367 23007 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_NT_EVENT_LOG_APPENDER_HEADER_ #define _LOG4CXX_NT_EVENT_LOG_APPENDER_HEADER_ #include namespace log4cxx { namespace nt { /** * Appends log events to NT EventLog. */ class LOG4CXX_EXPORT NTEventLogAppender : public AppenderSkeleton { public: DECLARE_LOG4CXX_OBJECT(NTEventLogAppender) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(NTEventLogAppender) LOG4CXX_CAST_ENTRY_CHAIN(AppenderSkeleton) END_LOG4CXX_CAST_MAP() NTEventLogAppender(); NTEventLogAppender(const LogString& server, const LogString& log, const LogString& source, const LayoutPtr& layout); virtual ~NTEventLogAppender(); virtual void activateOptions(log4cxx::helpers::Pool& p); virtual void close(); virtual void setOption(const LogString& option, const LogString& value); /** * The SocketAppender does not use a layout. Hence, this method * returns false. * */ bool requiresLayout() const { return true; } void setSource(const LogString& source) { this->source.assign(source); } const LogString& getSource() const { return source; } void setLog(const LogString& log) { this->log.assign(log); } const LogString& getLog() const { return log; } void setServer(const LogString& server) { this->server.assign(server); } const LogString& getServer() const { return server; } protected: // // these typedef are proxies for the real Win32 definitions // and need to be cast to the global definitions before // use with a Win32 API call typedef void SID; typedef void* HANDLE; virtual void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p); static unsigned short getEventType(const spi::LoggingEventPtr& event); static unsigned short getEventCategory(const spi::LoggingEventPtr& event); /* * Add this source with appropriate configuration keys to the registry. */ void addRegistryInfo(); // Data LogString server; LogString log; LogString source; HANDLE hEventLog; SID * pCurrentUserSID; static LogString getErrorString(const LogString& function); private: NTEventLogAppender(const NTEventLogAppender&); NTEventLogAppender& operator=(const NTEventLogAppender&); }; // class NTEventLogAppender LOG4CXX_PTR_DEF(NTEventLogAppender); } // namespace nt } // namespace log4cxx #endif //_LOG4CXX_NT_EVENT_LOG_APPENDER_HEADER_ apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/Makefile.in100644 0 0 32230 10774264475 21646 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/main/include/log4cxx/filter DIST_COMMON = $(filterinc_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(filterincdir)" filterincHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(filterinc_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # filterincdir = $(includedir)/log4cxx/filter filterinc_HEADERS = $(top_srcdir)/src/main/include/log4cxx/filter/*.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/include/log4cxx/filter/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/main/include/log4cxx/filter/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-filterincHEADERS: $(filterinc_HEADERS) @$(NORMAL_INSTALL) test -z "$(filterincdir)" || $(mkdir_p) "$(DESTDIR)$(filterincdir)" @list='$(filterinc_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(filterincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(filterincdir)/$$f'"; \ $(filterincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(filterincdir)/$$f"; \ done uninstall-filterincHEADERS: @$(NORMAL_UNINSTALL) @list='$(filterinc_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(filterincdir)/$$f'"; \ rm -f "$(DESTDIR)$(filterincdir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(mkdir_p) $(distdir)/../../../../../src/main/include/log4cxx/filter @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(filterincdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-filterincHEADERS install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-filterincHEADERS uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am \ install-filterincHEADERS install-info install-info-am \ install-man install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags uninstall uninstall-am \ uninstall-filterincHEADERS uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/stringmatchfilter.h100644 0 0 7754 10774263370 23471 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_FILTER_STRING_MATCH_FILTER_H #define _LOG4CXX_FILTER_STRING_MATCH_FILTER_H #include namespace log4cxx { namespace filter { /** This is a very simple filter based on string matching.

The filter admits two options StringToMatch and AcceptOnMatch. If there is a match between the value of the StringToMatch option and the message of the {@link spi::LoggingEvent LoggingEvent}, then the #decide method returns {@link log4cxx::spi::Filter#ACCEPT ACCEPT} if the AcceptOnMatch option value is true, if it is false then {@link log4cxx::spi::Filter#DENY DENY} is returned. If there is no match, {@link log4cxx::spi::Filter#NEUTRAL NEUTRAL} is returned.

See configuration files test6.xml, test7.xml, test8.xml, test9.xml, and test10.xml for examples of seeting up a StringMatchFilter. */ class LOG4CXX_EXPORT StringMatchFilter : public spi::Filter { private: bool acceptOnMatch; LogString stringToMatch; public: typedef spi::Filter BASE_CLASS; DECLARE_LOG4CXX_OBJECT(StringMatchFilter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(StringMatchFilter) LOG4CXX_CAST_ENTRY_CHAIN(BASE_CLASS) END_LOG4CXX_CAST_MAP() StringMatchFilter(); /** Set options */ virtual void setOption(const LogString& option, const LogString& value); inline void setStringToMatch(const LogString& stringToMatch1) { this->stringToMatch.assign(stringToMatch1); } inline const LogString& getStringToMatch() const { return stringToMatch; } inline void setAcceptOnMatch(bool acceptOnMatch1) { this->acceptOnMatch = acceptOnMatch1; } inline bool getAcceptOnMatch() const { return acceptOnMatch; } /** Returns {@link log4cxx::spi::Filter#NEUTRAL NEUTRAL} is there is no string match. */ FilterDecision decide(const spi::LoggingEventPtr& event) const; }; // class StringMatchFilter LOG4CXX_PTR_DEF(StringMatchFilter); } // namespace filter } // namespace log4cxx #endif // _LOG4CXX_FILTER_STRING_MATCH_FILTER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/levelmatchfilter.h100644 0 0 10071 10774263370 23274 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_FILTER_LEVEL_MATCH_FILTER_H #define _LOG4CXX_FILTER_LEVEL_MATCH_FILTER_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include namespace log4cxx { class Level; namespace filter { /** This is a very simple filter based on level matching.

The filter admits two options LevelToMatch and AcceptOnMatch. If there is an exact match between the value of the LevelToMatch option and the level of the {@link spi::LoggingEvent LoggingEvent}, then the #decide method returns {@link spi::Filter#ACCEPT ACCEPT} in case the AcceptOnMatch option value is set to true, if it is false then {@link spi::Filter#DENY DENY} is returned. If there is no match, {@link spi::Filter#NEUTRAL NEUTRAL} is returned. */ class LOG4CXX_EXPORT LevelMatchFilter : public spi::Filter { private: bool acceptOnMatch; LevelPtr levelToMatch; public: typedef spi::Filter BASE_CLASS; DECLARE_LOG4CXX_OBJECT(LevelMatchFilter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(LevelMatchFilter) LOG4CXX_CAST_ENTRY_CHAIN(BASE_CLASS) END_LOG4CXX_CAST_MAP() LevelMatchFilter(); /** Set options */ virtual void setOption(const LogString& option, const LogString& value); void setLevelToMatch(const LogString& levelToMatch); LogString getLevelToMatch() const; inline void setAcceptOnMatch(bool acceptOnMatch1) { this->acceptOnMatch = acceptOnMatch1; } inline bool getAcceptOnMatch() const { return acceptOnMatch; } /** Return the decision of this filter. Returns {@link spi::Filter#NEUTRAL NEUTRAL} if the LevelToMatch option is not set or if there is not match. Otherwise, if there is a match, then the returned decision is {@link spi::Filter#ACCEPT ACCEPT} if the AcceptOnMatch property is set to true. The returned decision is {@link spi::Filter#DENY DENY} if the AcceptOnMatch property is set to false. */ FilterDecision decide(const spi::LoggingEventPtr& event) const; }; // class LevelMatchFilter LOG4CXX_PTR_DEF(LevelMatchFilter); } // namespace filter } // namespace log4cxx #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif // _LOG4CXX_FILTER_STRING_MATCH_FILTER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/levelrangefilter.h100644 0 0 13673 10774263370 23307 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_FILTER_LEVEL_RANGE_FILTER_H #define _LOG4CXX_FILTER_LEVEL_RANGE_FILTER_H #include #include namespace log4cxx { namespace filter { /** This is a very simple filter based on level matching, which can be used to reject messages with priorities outside a certain range.

The filter admits three options LevelMin, LevelMax and AcceptOnMatch.

If the level of the {@link spi::LoggingEvent LoggingEvent} is not between Min and Max (inclusive), then {@link spi::Filter#DENY DENY} is returned.

If the Logging event level is within the specified range, then if AcceptOnMatch is true, {@link spi::Filter#ACCEPT ACCEPT} is returned, and if AcceptOnMatch is false, {@link spi::Filter#NEUTRAL NEUTRAL} is returned.

If LevelMinw is not defined, then there is no minimum acceptable level (ie a level is never rejected for being too "low"/unimportant). If LevelMax is not defined, then there is no maximum acceptable level (ie a level is never rejected for beeing too "high"/important).

Refer to the {@link AppenderSkeleton#setThreshold setThreshold} method available to all appenders extending AppenderSkeleton for a more convenient way to filter out events by level. */ class LOG4CXX_EXPORT LevelRangeFilter : public spi::Filter { private: /** Do we return ACCEPT when a match occurs. Default is false, so that later filters get run by default */ bool acceptOnMatch; LevelPtr levelMin; LevelPtr levelMax; public: typedef spi::Filter BASE_CLASS; DECLARE_LOG4CXX_OBJECT(LevelRangeFilter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(LevelRangeFilter) LOG4CXX_CAST_ENTRY_CHAIN(BASE_CLASS) END_LOG4CXX_CAST_MAP() LevelRangeFilter(); /** Set options */ virtual void setOption(const LogString& option, const LogString& value); /** Set the LevelMin option. */ void setLevelMin(const LevelPtr& levelMin1) { this->levelMin = levelMin1; } /** Get the value of the LevelMin option. */ const LevelPtr& getLevelMin() const { return levelMin; } /** Set the LevelMax option. */ void setLevelMax(const LevelPtr& levelMax1) { this->levelMax = levelMax1; } /** Get the value of the LevelMax option. */ const LevelPtr& getLevelMax() const { return levelMax; } /** Set the AcceptOnMatch option. */ inline void setAcceptOnMatch(bool acceptOnMatch1) { this->acceptOnMatch = acceptOnMatch1; } /** Get the value of the AcceptOnMatch option. */ inline bool getAcceptOnMatch() const { return acceptOnMatch; } /** Return the decision of this filter. Returns {@link spi::Filter#NEUTRAL NEUTRAL} if the LevelToMatch option is not set or if there is not match. Otherwise, if there is a match, then the returned decision is {@link spi::Filter#ACCEPT ACCEPT} if the AcceptOnMatch property is set to true. The returned decision is {@link spi::Filter#DENY DENY} if the AcceptOnMatch property is set to false. */ FilterDecision decide(const spi::LoggingEventPtr& event) const; }; // class LevelRangeFilter LOG4CXX_PTR_DEF(LevelRangeFilter); } // namespace filter } // namespace log4cxx #endif // _LOG4CXX_FILTER_LEVEL_RANGE_FILTER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/locationinfofilter.h100644 0 0 6017 10774263370 23621 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_FILTER_LOCATIONINFOFILTER_H #define _LOG4CXX_FILTER_LOCATIONINFOFILTER_H #include namespace log4cxx { namespace rule { class ExpressionRule; class Rule; typedef helpers::ObjectPtrT < Rule > RulePtr; typedef helpers::ObjectPtrT < ExpressionRule > ExpressionRulePtr; } namespace filter { /** * Location information is usually specified at the appender level - all events associated * with an appender either create and parse stack traces or they do not. This is * an expensive operation and in some cases not needed for all events associated with * an appender. * * This filter creates event-level location information only if the provided expression evaluates to true. * * For information on expression syntax, see org.apache.log4j.rule.ExpressionRule * * */ class LOG4CXX_EXPORT LocationInfoFilter:public log4cxx::spi::Filter { bool convertInFixToPostFix; LogString expression; log4cxx::rule::RulePtr expressionRule; //HACK: Category is the last of the internal layers - pass this in as the class name //in order for parsing to work correctly LogString className; public: DECLARE_LOG4CXX_OBJECT(LocationInfoFilter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(log4cxx::spi::Filter) END_LOG4CXX_CAST_MAP() LocationInfoFilter(); void activateOptions(log4cxx::helpers::Pool &); void setExpression(const LogString & expression); LogString getExpression() const; void setConvertInFixToPostFix(bool convertInFixToPostFix); bool getConvertInFixToPostFix() const; /** * If this event does not already contain location information, * evaluate the event against the expression. * * If the expression evaluates to true, generate a LocationInfo instance * by creating an exception and set this LocationInfo on the event. * * Returns {@link log4cxx::spi::Filter#NEUTRAL} */ FilterDecision decide(const spi::LoggingEventPtr & event) const; }; } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/propertyfilter.h100644 0 0 4712 10774263370 23021 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_FILTER_PROPERTYFILTER_H #define _LOG4CXX_FILTER_PROPERTYFILTER_H #if defined(_MSC_VER) #pragma warning (push) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include namespace log4cxx { namespace filter { /** * NOTE: This filter modifies logging events by adding properties to the event. * * The 'properties' param is converted to event properties, which are * set on every event processed by the filter. * * Individual properties are only set if they do not already exist on the * logging event (will not override existing properties). * * This class relies on the convention that property name/value pairs are * equals-symbol delimited, and each name/value pair is comma-delimited * * Example properties param: * somename=somevalue,anothername=anothervalue,thirdname=third value * * */ class LOG4CXX_EXPORT PropertyFilter : public log4cxx::spi::Filter { typedef std::map < LogString, LogString > PropertyMap; PropertyMap* properties; PropertyFilter(const PropertyFilter &); PropertyFilter & operator=(const PropertyFilter &); public: DECLARE_LOG4CXX_OBJECT(PropertyFilter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(log4cxx::spi::Filter) END_LOG4CXX_CAST_MAP() PropertyFilter(); ~PropertyFilter(); void setProperties(const LogString & props); FilterDecision decide(const spi::LoggingEventPtr & event) const; }; } } #if defined(_MSC_VER) #pragma warning (pop) #endif #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/denyallfilter.h100644 0 0 5320 10774263370 22561 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_FILTER_DENY_ALL_FILTER_H #define _LOG4CXX_FILTER_DENY_ALL_FILTER_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include namespace log4cxx { namespace filter { /** This filter drops all logging events.

You can add this filter to the end of a filter chain to switch from the default "accept all unless instructed otherwise" filtering behaviour to a "deny all unless instructed otherwise" behaviour. */ class LOG4CXX_EXPORT DenyAllFilter : public spi::Filter { public: DenyAllFilter() : spi::Filter() { } typedef spi::Filter BASE_CLASS; DECLARE_LOG4CXX_OBJECT(DenyAllFilter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(DenyAllFilter) LOG4CXX_CAST_ENTRY_CHAIN(BASE_CLASS) END_LOG4CXX_CAST_MAP() /** Always returns the integer constant {@link spi::Filter#DENY DENY} regardless of the {@link spi::LoggingEvent LoggingEvent} parameter. @param event The LoggingEvent to filter. @return Always returns {@link spi::Filter#DENY DENY}. */ FilterDecision decide(const spi::LoggingEventPtr& /* event */) const { return spi::Filter::DENY; } }; // class DenyAllFilter LOG4CXX_PTR_DEF(DenyAllFilter); } // namespace filter } // namespace log4cxx #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif // _LOG4CXX_FILTER_DENY_ALL_FILTER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/Makefile.am100644 0 0 1602 10774263370 21605 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # filterincdir = $(includedir)/log4cxx/filter filterinc_HEADERS= $(top_srcdir)/src/main/include/log4cxx/filter/*.h apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/mapfilter.h100644 0 0 2514 10774263370 21710 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_FILTER_MAPFILTER_H #define _LOG4CXX_FILTER_MAPFILTER_H #include namespace log4cxx { namespace filter { class LOG4CXX_EXPORT MapFilter:public log4cxx::spi::Filter { public: DECLARE_LOG4CXX_OBJECT(MapFilter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(log4cxx::spi::Filter) END_LOG4CXX_CAST_MAP() MapFilter(); FilterDecision decide(const spi::LoggingEventPtr & event) const; }; } } #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/expressionfilter.h100644 0 0 10413 10774263370 23347 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_FILTER_EXPRESSIONFILTER_H #define _LOG4CXX_FILTER_EXPRESSIONFILTER_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include namespace log4cxx { namespace rule { class Rule; typedef helpers::ObjectPtrT < Rule > RulePtr; } namespace filter { /** *A filter supporting complex expressions - supports both infix and postfix * expressions (infix expressions must first be converted to postfix prior * to processing). * *

See org.apache.log4j.chainsaw.LoggingEventFieldResolver.java * for the correct names for logging event fields used when building expressions. * *

See org.apache.log4j.chainsaw.rule package for a list of available * rules which can be applied using the expression syntax. * *

See org.apache.log4j.chainsaw.RuleFactory for the symbols * used to activate the corresponding rules. * *NOTE: Grouping using parentheses is supported - all tokens must be separated by spaces, and *operands which contain spaces are not yet supported. * *Example: * *In order to build a filter that displays all messages with infomsg-45 or infomsg-44 in the message, *as well as all messages with a level of WARN or higher, build an expression using *the LikeRule (supports ORO-based regular expressions) and the InequalityRule. * ( MSG LIKE infomsg-4[4,5] ) && ( LEVEL >= WARN ) * *Three options are required: * Expression - the expression to match * ConvertInFixToPostFix - convert from infix to posfix (default true) * AcceptOnMatch - true or false (default true) * * Meaning of AcceptToMatch: * If there is a match between the value of the * Expression option and the {@link log4cxx::spi::LoggingEvent} and AcceptOnMatch is true, * the {@link #decide} method returns {@link log4cxx::spi::Filter#ACCEPT}. * * If there is a match between the value of the * Expression option and the {@link log4cxx::spi::LoggingEvent} and AcceptOnMatch is false, * {@link log4cxx::spi::Filter#DENY} is returned. * * If there is no match, {@link log4cxx::spi::Filter#NEUTRAL} is returned. * * */ class LOG4CXX_EXPORT ExpressionFilter:public log4cxx::spi::Filter { private: bool acceptOnMatch; bool convertInFixToPostFix; LogString expression; log4cxx::rule::RulePtr expressionRule; ExpressionFilter(const ExpressionFilter &); ExpressionFilter & operator=(const ExpressionFilter &); public: DECLARE_LOG4CXX_OBJECT(ExpressionFilter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(log4cxx::spi::Filter) END_LOG4CXX_CAST_MAP() ExpressionFilter(); void activateOptions(log4cxx::helpers::Pool & p); void setExpression(const LogString & expression); LogString getExpression() const; void setConvertInFixToPostFix(bool convertInFixToPostFix); bool getConvertInFixToPostFix() const; void setAcceptOnMatch(bool acceptOnMatch); bool getAcceptOnMatch() const; /** Returns {@link log4cxx::spi::Filter#NEUTRAL} is there is no string match. */ FilterDecision decide(const spi::LoggingEventPtr & event) const; }; } } #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/andfilter.h100644 0 0 7176 10774263370 21706 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_FILTER_ANDFILTER_H #define _LOG4CXX_FILTER_ANDFILTER_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include namespace log4cxx { namespace filter { /** * A filter that 'and's the results of any number of contained filters together. * * For the filter to process events, all contained filters must return Filter::ACCEPT. * * If the contained filters do not return Filter::ACCEPT, Filter::NEUTRAL is returned. * * If acceptOnMatch is set to true, Filter::ACCEPT is returned. * If acceptOnMatch is set to false, Filter::DENY is returned. * * Here is an example config that will accept only events that contain BOTH * a DEBUG level AND 'test' in the message: * *<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> * <filter class="org.apache.log4j.filter.AndFilter"> * <filter class="org.apache.log4j.filter.LevelMatchFilter"> * <param name="levelToMatch" value="DEBUG" /> * <param name="acceptOnMatch" value="true" /> * </filter> * <filter class="org.apache.log4j.filter.StringMatchFilter"> * <param name="stringToMatch" value="test" /> * <param name="acceptOnMatch" value="true" /> * </filter> * <param name="acceptOnMatch" value="false"/> * </filter> * <filter class="org.apache.log4j.filter.DenyAllFilter"/> *<layout class="org.apache.log4j.SimpleLayout"/> *</appender> * * To accept all events EXCEPT those events that contain a * DEBUG level and 'test' in the message: * change the AndFilter's acceptOnMatch param to false and remove the DenyAllFilter * * NOTE: If you are defining a filter that is only relying on logging event content * (no external or filter-managed state), you could opt instead * to use an ExpressionFilter with one of the following expressions: * * LEVEL == DEBUG && MSG ~= 'test' * or * ! ( LEVEL == DEBUG && MSG ~= 'test' ) * * */ class LOG4CXX_EXPORT AndFilter:public log4cxx::spi::Filter { private: log4cxx::spi::FilterPtr headFilter; log4cxx::spi::FilterPtr tailFilter; bool acceptOnMatch; AndFilter(const AndFilter &); AndFilter & operator=(const AndFilter &); public: DECLARE_LOG4CXX_OBJECT(AndFilter) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(log4cxx::spi::Filter) END_LOG4CXX_CAST_MAP() AndFilter(); void addFilter(const log4cxx::spi::FilterPtr & filter); void setAcceptOnMatch(bool acceptOnMatch); FilterDecision decide(const spi::LoggingEventPtr & event) const; }; } } #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/net/sockethubappender.h100644 0 0 21467 10774263400 22756 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_NET_SOCKET_HUB_APPENDER_H #define _LOG4CXX_NET_SOCKET_HUB_APPENDER_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include namespace log4cxx { namespace helpers { class ObjectOutputStream; typedef ObjectPtrT ObjectOutputStreamPtr; } namespace net { /** Sends {@link log4cxx::spi::LoggingEvent LoggingEvent} objects to a set of remote log servers, usually a SocketNode.

Acts just like SocketAppender except that instead of connecting to a given remote log server, SocketHubAppender accepts connections from the remote log servers as clients. It can accept more than one connection. When a log event is received, the event is sent to the set of currently connected remote log servers. Implemented this way it does not require any update to the configuration file to send data to another remote log server. The remote log server simply connects to the host and port the SocketHubAppender is running on.

The SocketHubAppender does not store events such that the remote side will events that arrived after the establishment of its connection. Once connected, events arrive in order as guaranteed by the TCP protocol.

This implementation borrows heavily from the SocketAppender.

The SocketHubAppender has the following characteristics: - If sent to a SocketNode, logging is non-intrusive as far as the log event is concerned. In other words, the event will be logged with the same time stamp, NDC, location info as if it were logged locally. - SocketHubAppender does not use a layout. It ships a serialized spi::LoggingEvent object to the remote side. - SocketHubAppender relies on the TCP protocol. Consequently, if the remote side is reachable, then log events will eventually arrive at remote client. - If no remote clients are attached, the logging requests are simply dropped. - Logging events are automatically buffered by the native TCP implementation. This means that if the link to remote client is slow but still faster than the rate of (log) event production, the application will not be affected by the slow network connection. However, if the network connection is slower then the rate of event production, then the local application can only progress at the network rate. In particular, if the network link to the the remote client is down, the application will be blocked. @n @n On the other hand, if the network link is up, but the remote client is down, the client will not be blocked when making log requests but the log events will be lost due to client unavailability. @n @n The single remote client case extends to multiple clients connections. The rate of logging will be determined by the slowest link. - If the application hosting the SocketHubAppender exits before the SocketHubAppender is closed either explicitly or subsequent to garbage collection, then there might be untransmitted data in the pipe which might be lost. This is a common problem on Windows based systems. @n @n To avoid lost data, it is usually sufficient to #close the SocketHubAppender either explicitly or by calling the LogManager#shutdown method before exiting the application. */ class LOG4CXX_EXPORT SocketHubAppender : public AppenderSkeleton { private: /** The default port number of the ServerSocket will be created on. */ static int DEFAULT_PORT; int port; LOG4CXX_LIST_DEF(ObjectOutputStreamList, log4cxx::helpers::ObjectOutputStreamPtr); ObjectOutputStreamList streams; bool locationInfo; public: DECLARE_LOG4CXX_OBJECT(SocketHubAppender) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(SocketHubAppender) LOG4CXX_CAST_ENTRY_CHAIN(AppenderSkeleton) END_LOG4CXX_CAST_MAP() SocketHubAppender(); ~SocketHubAppender(); /** Connects to remote server at address and port. */ SocketHubAppender(int port) ; /** Set up the socket server on the specified port. */ virtual void activateOptions(log4cxx::helpers::Pool& p); /** Set options */ virtual void setOption(const LogString& option, const LogString& value); virtual void close(); /** Append an event to all of current connections. */ virtual void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p); /** The SocketHubAppender does not use a layout. Hence, this method returns false. */ virtual bool requiresLayout() const { return false; } /** The Port option takes a positive integer representing the port where the server is waiting for connections. */ inline void setPort(int port1) { this->port = port1; } /** Returns value of the Port option. */ inline int getPort() const { return port; } /** The LocationInfo option takes a boolean value. If true, the information sent to the remote host will include location information. By default no location information is sent to the server. */ inline void setLocationInfo(bool locationInfo1) { this->locationInfo = locationInfo1; } /** Returns value of the LocationInfo option. */ inline bool getLocationInfo() const { return locationInfo; } /** Start the ServerMonitor thread. */ private: void startServer(); helpers::Thread thread; static void* LOG4CXX_THREAD_FUNC monitor(apr_thread_t* thread, void* data); }; // class SocketHubAppender LOG4CXX_PTR_DEF(SocketHubAppender); } // namespace net } // namespace log4cxx #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif // _LOG4CXX_NET_SOCKET_HUB_APPENDER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/net/telnetappender.h100644 0 0 14075 10774263400 22257 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_NET_TELNET_APPENDER_H #define _LOG4CXX_NET_TELNET_APPENDER_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include #include namespace log4cxx { namespace helpers { class ByteBuffer; } namespace net { /**

The TelnetAppender is a log4cxx appender that specializes in writing to a read-only socket. The output is provided in a telnet-friendly way so that a log can be monitored over TCP/IP. Clients using telnet connect to the socket and receive log data. This is handy for remote monitoring, especially when monitoring a servlet.

Here is a list of the available configuration options:
Name Requirement Description Sample Value
Port optional This parameter determines the port to use for announcing log events. The default port is 23 (telnet). 5875
*/ class LOG4CXX_EXPORT TelnetAppender : public AppenderSkeleton { class SocketHandler; friend class SocketHandler; private: static const int DEFAULT_PORT; static const int MAX_CONNECTIONS; int port; public: DECLARE_LOG4CXX_OBJECT(TelnetAppender) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(TelnetAppender) LOG4CXX_CAST_ENTRY_CHAIN(AppenderSkeleton) END_LOG4CXX_CAST_MAP() TelnetAppender(); ~TelnetAppender(); /** This appender requires a layout to format the text to the attached client(s). */ virtual bool requiresLayout() const { return true; } LogString getEncoding() const; void setEncoding(const LogString& value); /** all of the options have been set, create the socket handler and wait for connections. */ void activateOptions(log4cxx::helpers::Pool& p); /** Set options */ virtual void setOption(const LogString& option, const LogString& value); /** Returns value of the Port option. */ int getPort() const { return port; } /** The Port option takes a positive integer representing the port where the server is waiting for connections. */ void setPort(int port1) { this->port = port1; } /** shuts down the appender. */ void close(); protected: /** Handles a log event. For this appender, that means writing the message to each connected client. */ virtual void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p) ; //---------------------------------------------------------- SocketHandler: private: // prevent copy and assignment statements TelnetAppender(const TelnetAppender&); TelnetAppender& operator=(const TelnetAppender&); typedef log4cxx::helpers::SocketPtr Connection; LOG4CXX_LIST_DEF(ConnectionList, Connection); void write(log4cxx::helpers::ByteBuffer&); void writeStatus(const log4cxx::helpers::SocketPtr& socket, const LogString& msg, log4cxx::helpers::Pool& p); ConnectionList connections; LogString encoding; log4cxx::helpers::CharsetEncoderPtr encoder; helpers::ServerSocket* serverSocket; helpers::Thread sh; size_t activeConnections; static void* LOG4CXX_THREAD_FUNC acceptConnections(apr_thread_t* thread, void* data); }; // class TelnetAppender LOG4CXX_PTR_DEF(TelnetAppender); } // namespace net } // namespace log4cxx #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif // _LOG4CXX_NET_TELNET_APPENDER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/net/syslogappender.h100644 0 0 14435 10774263400 22304 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_NET_SYSLOG_APPENDER_H #define _LOG4CXX_NET_SYSLOG_APPENDER_H #include #include namespace log4cxx { namespace net { /** Use SyslogAppender to send log messages to a remote syslog daemon.*/ class LOG4CXX_EXPORT SyslogAppender : public AppenderSkeleton { public: DECLARE_LOG4CXX_OBJECT(SyslogAppender) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(SyslogAppender) LOG4CXX_CAST_ENTRY_CHAIN(AppenderSkeleton) END_LOG4CXX_CAST_MAP() SyslogAppender(); SyslogAppender(const LayoutPtr& layout, int syslogFacility); SyslogAppender(const LayoutPtr& layout, const LogString& syslogHost, int syslogFacility); ~SyslogAppender(); /** Release any resources held by this SyslogAppender.*/ void close(); /** Returns the specified syslog facility as a lower-case String, e.g. "kern", "user", etc. */ static LogString getFacilityString(int syslogFacility); /** Returns the integer value corresponding to the named syslog facility, or -1 if it couldn't be recognized. @param facilityName one of the strings KERN, USER, MAIL, DAEMON, AUTH, SYSLOG, LPR, NEWS, UUCP, CRON, AUTHPRIV, FTP, LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7. The matching is case-insensitive. */ static int getFacility(const LogString &facilityName); void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p); /** This method returns immediately as options are activated when they are set. */ void activateOptions(log4cxx::helpers::Pool& p); void setOption(const LogString& option, const LogString& value); /** The SyslogAppender requires a layout. Hence, this method returns true. */ virtual bool requiresLayout() const { return true; } /** The SyslogHost option is the name of the the syslog host where log output should go. WARNING If the SyslogHost is not set, then this appender will fail. */ void setSyslogHost(const LogString& syslogHost); /** Returns the value of the SyslogHost option. */ inline const LogString& getSyslogHost() const { return syslogHost; } /** Set the syslog facility. This is the Facility option.

The facilityName parameter must be one of the strings KERN, USER, MAIL, DAEMON, AUTH, SYSLOG, LPR, NEWS, UUCP, CRON, AUTHPRIV, FTP, LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7. Case is unimportant. */ void setFacility(const LogString& facilityName); /** Returns the value of the Facility option. */ inline LogString getFacility() const { return getFacilityString(syslogFacility); } /** If the FacilityPrinting option is set to true, the printed message will include the facility name of the application. It is false by default. */ inline void setFacilityPrinting(bool facilityPrinting1) { this->facilityPrinting = facilityPrinting1; } /** Returns the value of the FacilityPrinting option. */ inline bool getFacilityPrinting() const { return facilityPrinting; } protected: void initSyslogFacilityStr(); int syslogFacility; // Have LOG_USER as default LogString facilityStr; bool facilityPrinting; helpers::SyslogWriter * sw; LogString syslogHost; private: SyslogAppender(const SyslogAppender&); SyslogAppender& operator=(const SyslogAppender&); }; // class SyslogAppender LOG4CXX_PTR_DEF(SyslogAppender); } // namespace net } // namespace log4cxx #endif // _LOG4CXX_NET_SYSLOG_APPENDER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/net/socketappenderskeleton.h100644 0 0 15250 10774263400 24015 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_NET_SOCKET_APPENDER_SKELETON_H #define _LOG4CXX_NET_SOCKET_APPENDER_SKELETON_H #include #include #include #include namespace log4cxx { namespace net { /** * Abstract base class for SocketAppender and XMLSocketAppender */ class LOG4CXX_EXPORT SocketAppenderSkeleton : public AppenderSkeleton { private: /** host name */ LogString remoteHost; /** IP address */ helpers::InetAddressPtr address; int port; int reconnectionDelay; bool locationInfo; public: SocketAppenderSkeleton(int defaultPort, int reconnectionDelay); ~SocketAppenderSkeleton(); /** Connects to remote server at address and port. */ SocketAppenderSkeleton(helpers::InetAddressPtr address, int port, int reconnectionDelay); /** Connects to remote server at host and port. */ SocketAppenderSkeleton(const LogString& host, int port, int reconnectionDelay); /** Connect to the specified RemoteHost and Port. */ void activateOptions(log4cxx::helpers::Pool& p); void close(); /** * This appender does not use a layout. Hence, this method * returns false. * */ bool requiresLayout() const { return false; } /** * The RemoteHost option takes a string value which should be * the host name of the server where a * Apache Chainsaw or compatible is running. * */ inline void setRemoteHost(const LogString& host) { address = helpers::InetAddress::getByName(host); remoteHost.assign(host); } /** Returns value of the RemoteHost option. */ inline const LogString& getRemoteHost() const { return remoteHost; } /** The Port option takes a positive integer representing the port where the server is waiting for connections. */ void setPort(int port1) { this->port = port1; } /** Returns value of the Port option. */ int getPort() const { return port; } /** The LocationInfo option takes a boolean value. If true, the information sent to the remote host will include location information. By default no location information is sent to the server. */ void setLocationInfo(bool locationInfo1) { this->locationInfo = locationInfo1; } /** Returns value of the LocationInfo option. */ bool getLocationInfo() const { return locationInfo; } /** The ReconnectionDelay option takes a positive integer representing the number of milliseconds to wait between each failed connection attempt to the server. The default value of this option is 30000 which corresponds to 30 seconds.

Setting this option to zero turns off reconnection capability. */ void setReconnectionDelay(int reconnectionDelay1) { this->reconnectionDelay = reconnectionDelay1; } /** Returns value of the ReconnectionDelay option. */ int getReconnectionDelay() const { return reconnectionDelay; } void fireConnector(); void setOption(const LogString& option, const LogString& value); protected: virtual void setSocket(log4cxx::helpers::SocketPtr& socket, log4cxx::helpers::Pool& p) = 0; virtual void cleanUp(log4cxx::helpers::Pool& p) = 0; virtual int getDefaultDelay() const = 0; virtual int getDefaultPort() const = 0; private: void connect(log4cxx::helpers::Pool& p); /** The Connector will reconnect when the server becomes available again. It does this by attempting to open a new connection every reconnectionDelay milliseconds.

It stops trying whenever a connection is established. It will restart to try reconnect to the server when previpously open connection is droppped. */ helpers::Thread thread; static void* LOG4CXX_THREAD_FUNC monitor(apr_thread_t* thread, void* data); SocketAppenderSkeleton(const SocketAppenderSkeleton&); SocketAppenderSkeleton& operator=(const SocketAppenderSkeleton&); }; // class SocketAppenderSkeleton } // namespace net } // namespace log4cxx #endif // _LOG4CXX_NET_SOCKET_APPENDER_SKELETON_H apache-log4cxx-0.10.0/src/main/include/log4cxx/net/smtpappender.h100644 0 0 27540 10774263400 21750 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_NET_SMTP_H #define _LOG4CXX_NET_SMTP_H #include #include #include namespace log4cxx { namespace net { /** Send an e-mail when a specific logging event occurs, typically on errors or fatal errors.

The number of logging events delivered in this e-mail depend on the value of BufferSize option. The SMTPAppender keeps only the last BufferSize logging events in its cyclic buffer. This keeps memory requirements at a reasonable level while still delivering useful application context. */ class LOG4CXX_EXPORT SMTPAppender : public AppenderSkeleton { private: private: SMTPAppender(const SMTPAppender&); SMTPAppender& operator=(const SMTPAppender&); static bool asciiCheck(const LogString& value, const LogString& label); /** This method determines if there is a sense in attempting to append.

It checks whether there is a set output target and also if there is a set layout. If these checks fail, then the boolean value false is returned. */ bool checkEntryConditions(); LogString to; LogString cc; LogString bcc; LogString from; LogString subject; LogString smtpHost; LogString smtpUsername; LogString smtpPassword; int smtpPort; int bufferSize; // 512 bool locationInfo; helpers::CyclicBuffer cb; spi::TriggeringEventEvaluatorPtr evaluator; public: DECLARE_LOG4CXX_OBJECT(SMTPAppender) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(SMTPAppender) LOG4CXX_CAST_ENTRY_CHAIN(AppenderSkeleton) END_LOG4CXX_CAST_MAP() SMTPAppender(); /** The default constructor will instantiate the appender with a spi::TriggeringEventEvaluator that will trigger on events with level ERROR or higher.*/ SMTPAppender(log4cxx::helpers::Pool& p); /** Use evaluator passed as parameter as the spi::TriggeringEventEvaluator for this net::SMTPAppender. */ SMTPAppender(spi::TriggeringEventEvaluatorPtr evaluator); ~SMTPAppender(); /** Set options */ virtual void setOption(const LogString& option, const LogString& value); /** Activate the specified options, such as the smtp host, the recipient, from, etc. */ virtual void activateOptions(log4cxx::helpers::Pool& p); /** Perform SMTPAppender specific appending actions, mainly adding the event to a cyclic buffer and checking if the event triggers an e-mail to be sent. */ virtual void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p); virtual void close(); /** Returns value of the To option. */ LogString getTo() const; /** Returns value of the cc option. */ LogString getCc() const; /** Returns value of the bcc option. */ LogString getBcc() const; /** The SMTPAppender requires a {@link Layout layout}. */ virtual bool requiresLayout() const; /** Send the contents of the cyclic buffer as an e-mail message. */ void sendBuffer(log4cxx::helpers::Pool& p); /** Returns value of the EvaluatorClass option. */ LogString getEvaluatorClass(); /** Returns value of the From option. */ LogString getFrom() const; /** Returns value of the Subject option. */ LogString getSubject() const; /** The From option takes a string value which should be a e-mail address of the sender. */ void setFrom(const LogString& from); /** The Subject option takes a string value which should be a the subject of the e-mail message. */ void setSubject(const LogString& subject); /** The BufferSize option takes a positive integer representing the maximum number of logging events to collect in a cyclic buffer. When the BufferSize is reached, oldest events are deleted as new events are added to the buffer. By default the size of the cyclic buffer is 512 events. */ void setBufferSize(int bufferSize); /** The SMTPHost option takes a string value which should be a the host name of the SMTP server that will send the e-mail message. */ void setSMTPHost(const LogString& smtpHost); /** Returns value of the SMTPHost option. */ LogString getSMTPHost() const; /** The SMTPPort option takes a string value which should be a the port of the SMTP server that will send the e-mail message. */ void setSMTPPort(int port); /** Returns value of the SMTPHost option. */ int getSMTPPort() const; /** The To option takes a string value which should be a comma separated list of e-mail address of the recipients. */ void setTo(const LogString& to); /** The Cc option takes a string value which should be a comma separated list of e-mail address of the cc'd recipients. */ void setCc(const LogString& to); /** The Bcc option takes a string value which should be a comma separated list of e-mail address of the bcc'd recipients. */ void setBcc(const LogString& to); /** The SMTPUsername option takes a string value which should be a the user name for the SMTP server. */ void setSMTPUsername(const LogString& newVal); /** Returns value of the SMTPUsername option. */ LogString getSMTPUsername() const; /** The SMTPPassword option takes a string value which should be a the password for the SMTP server. */ void setSMTPPassword(const LogString& newVal); /** Returns value of the SMTPPassword option. */ LogString getSMTPPassword() const; /** Returns value of the BufferSize option. */ inline int getBufferSize() const { return bufferSize; } /** * Gets the current triggering evaluator. * @return triggering evaluator. */ log4cxx::spi::TriggeringEventEvaluatorPtr getEvaluator() const; /** * Sets the triggering evaluator. * @param trigger triggering evaluator. */ void setEvaluator(log4cxx::spi::TriggeringEventEvaluatorPtr& trigger); /** The EvaluatorClass option takes a string value representing the name of the class implementing the spi::TriggeringEventEvaluator interface. A corresponding object will be instantiated and assigned as the triggering event evaluator for the SMTPAppender. */ void setEvaluatorClass(const LogString& value); /** The LocationInfo option is provided for compatibility with log4j and has no effect in log4cxx. */ void setLocationInfo(bool locationInfo); /** Returns value of the LocationInfo option. */ bool getLocationInfo() const; }; // class SMTPAppender LOG4CXX_PTR_DEF(SMTPAppender); } // namespace net } // namespace log4cxx #endif // _LOG4CXX_NET_SMTP_H apache-log4cxx-0.10.0/src/main/include/log4cxx/net/Makefile.am100644 0 0 1566 10774263400 21111 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # netincdir = $(includedir)/log4cxx/net netinc_HEADERS= $(top_srcdir)/src/main/include/log4cxx/net/*.h apache-log4cxx-0.10.0/src/main/include/log4cxx/net/xmlsocketappender.h100644 0 0 14333 10774263400 22772 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_NET_XML_SOCKET_APPENDER_H #define _LOG4CXX_NET_XML_SOCKET_APPENDER_H #include #include namespace log4cxx { namespace net { /** Sends {@link log4cxx::spi::LoggingEvent LoggingEvent} objects in XML format to a remote a log server, usually a XMLSocketNode.

The XMLSocketAppender has the following properties: - If sent to a XMLSocketNode, remote logging is non-intrusive as far as the log event is concerned. In other words, the event will be logged with the same time stamp, {@link NDC NDC}, location info as if it were logged locally by the client. - XMLSocketAppenders use exclusively an XMLLayout. They ship an XML stream representing a {@link spi::LoggingEvent LoggingEvent} object to the server side. - Remote logging uses the TCP protocol. Consequently, if the server is reachable, then log events will eventually arrive at the server. - If the remote server is down, the logging requests are simply dropped. However, if and when the server comes back up, then event transmission is resumed transparently. This transparent reconneciton is performed by a connector thread which periodically attempts to connect to the server. - Logging events are automatically buffered by the native TCP implementation. This means that if the link to server is slow but still faster than the rate of (log) event production by the client, the client will not be affected by the slow network connection. However, if the network connection is slower then the rate of event production, then the client can only progress at the network rate. In particular, if the network link to the the server is down, the client will be blocked. @n @n On the other hand, if the network link is up, but the server is down, the client will not be blocked when making log requests but the log events will be lost due to server unavailability. - Even if an XMLSocketAppender is no longer attached to any logger, it will not be destroyed in the presence of a connector thread. A connector thread exists only if the connection to the server is down. To avoid this destruction problem, you should #close the the XMLSocketAppender explicitly. See also next item. @n @n Long lived applications which create/destroy many XMLSocketAppender instances should be aware of this destruction problem. Most other applications can safely ignore it. - If the application hosting the XMLSocketAppender exits before the XMLSocketAppender is closed either explicitly or subsequent to destruction, then there might be untransmitted data in the pipe which might be lost. @n @n To avoid lost data, it is usually sufficient to #close the XMLSocketAppender either explicitly or by calling the LogManager#shutdown method before exiting the application. */ class LOG4CXX_EXPORT XMLSocketAppender : public SocketAppenderSkeleton { public: /** The default port number of remote logging server (4560). */ static int DEFAULT_PORT; /** The default reconnection delay (30000 milliseconds or 30 seconds). */ static int DEFAULT_RECONNECTION_DELAY; /** An event XML stream cannot exceed 1024 bytes. */ static const int MAX_EVENT_LEN; DECLARE_LOG4CXX_OBJECT(XMLSocketAppender) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(XMLSocketAppender) LOG4CXX_CAST_ENTRY_CHAIN(AppenderSkeleton) END_LOG4CXX_CAST_MAP() XMLSocketAppender(); ~XMLSocketAppender(); /** Connects to remote server at address and port. */ XMLSocketAppender(helpers::InetAddressPtr address, int port); /** Connects to remote server at host and port. */ XMLSocketAppender(const LogString& host, int port); protected: virtual void setSocket(log4cxx::helpers::SocketPtr& socket, log4cxx::helpers::Pool& p); virtual void cleanUp(log4cxx::helpers::Pool& p); virtual int getDefaultDelay() const; virtual int getDefaultPort() const; void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& pool); private: log4cxx::helpers::WriterPtr writer; // prevent copy and assignment statements XMLSocketAppender(const XMLSocketAppender&); XMLSocketAppender& operator=(const XMLSocketAppender&); }; // class XMLSocketAppender LOG4CXX_PTR_DEF(XMLSocketAppender); } // namespace net } // namespace log4cxx #endif // _LOG4CXX_NET_XML_SOCKET_APPENDER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/net/socketappender.h100644 0 0 13473 10774263400 22255 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_NET_SOCKET_APPENDER_H #define _LOG4CXX_NET_SOCKET_APPENDER_H #include #include namespace log4cxx { namespace net { /** Sends {@link log4cxx::spi::LoggingEvent LoggingEvent} objects to a remote a log server, usually Apache Chainsaw.

The SocketAppender has the following properties: - If sent to Apache Chainsaw, remote logging is non-intrusive as far as the log event is concerned. In other words, the event will be logged with the same time stamp, {@link NDC NDC}, location info as if it were logged locally by the client. - SocketAppenders do not use a layout. They ship a serialized {@link log4cxx::spi::LoggingEvent LoggingEvent} object to the server side. - Remote logging uses the TCP protocol. Consequently, if the server is reachable, then log events will eventually arrive at the server. - If the remote server is down, the logging requests are simply dropped. However, if and when the server comes back up, then event transmission is resumed transparently. This transparent reconneciton is performed by a connector thread which periodically attempts to connect to the server. - Logging events are automatically buffered by the native TCP implementation. This means that if the link to server is slow but still faster than the rate of (log) event production by the client, the client will not be affected by the slow network connection. However, if the network connection is slower then the rate of event production, then the client can only progress at the network rate. In particular, if the network link to the the server is down, the client will be blocked. @n @n On the other hand, if the network link is up, but the server is down, the client will not be blocked when making log requests but the log events will be lost due to server unavailability. - Even if a SocketAppender is no longer attached to any logger, it will not be destroyed in the presence of a connector thread. A connector thread exists only if the connection to the server is down. To avoid this destruction problem, you should #close the the SocketAppender explicitly. See also next item. @n @n Long lived applications which create/destroy many SocketAppender instances should be aware of this destruction problem. Most other applications can safely ignore it. - If the application hosting the SocketAppender exits before the SocketAppender is closed either explicitly or subsequent to destruction, then there might be untransmitted data in the pipe which might be lost. @n @n To avoid lost data, it is usually sufficient to #close the SocketAppender either explicitly or by calling the LogManager#shutdown method before exiting the application. */ class LOG4CXX_EXPORT SocketAppender : public SocketAppenderSkeleton { public: /** The default port number of remote logging server (4560). */ static int DEFAULT_PORT; /** The default reconnection delay (30000 milliseconds or 30 seconds). */ static int DEFAULT_RECONNECTION_DELAY; DECLARE_LOG4CXX_OBJECT(SocketAppender) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(SocketAppender) LOG4CXX_CAST_ENTRY_CHAIN(AppenderSkeleton) END_LOG4CXX_CAST_MAP() SocketAppender(); ~SocketAppender(); /** Connects to remote server at address and port. */ SocketAppender(helpers::InetAddressPtr& address, int port); /** Connects to remote server at host and port. */ SocketAppender(const LogString& host, int port); protected: virtual void setSocket(log4cxx::helpers::SocketPtr& socket, log4cxx::helpers::Pool& p); virtual void cleanUp(log4cxx::helpers::Pool& p); virtual int getDefaultDelay() const; virtual int getDefaultPort() const; void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& pool); private: log4cxx::helpers::ObjectOutputStreamPtr oos; }; // class SocketAppender LOG4CXX_PTR_DEF(SocketAppender); } // namespace net } // namespace log4cxx #endif // _LOG4CXX_NET_SOCKET_APPENDER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/net/Makefile.in100644 0 0 32076 10774264475 21157 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/main/include/log4cxx/net DIST_COMMON = $(netinc_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(netincdir)" netincHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(netinc_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # netincdir = $(includedir)/log4cxx/net netinc_HEADERS = $(top_srcdir)/src/main/include/log4cxx/net/*.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/include/log4cxx/net/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/main/include/log4cxx/net/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-netincHEADERS: $(netinc_HEADERS) @$(NORMAL_INSTALL) test -z "$(netincdir)" || $(mkdir_p) "$(DESTDIR)$(netincdir)" @list='$(netinc_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(netincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(netincdir)/$$f'"; \ $(netincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(netincdir)/$$f"; \ done uninstall-netincHEADERS: @$(NORMAL_UNINSTALL) @list='$(netinc_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(netincdir)/$$f'"; \ rm -f "$(DESTDIR)$(netincdir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(mkdir_p) $(distdir)/../../../../../src/main/include/log4cxx/net @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(netincdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-netincHEADERS install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am uninstall-netincHEADERS .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-netincHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-info-am \ uninstall-netincHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/Makefile.in100644 0 0 32076 10774264476 21172 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/main/include/log4cxx/xml DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(xmlinc_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(xmlincdir)" xmlincHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(xmlinc_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # xmlincdir = $(includedir)/log4cxx/xml xmlinc_HEADERS = $(top_srcdir)/src/main/include/log4cxx/xml/*.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/include/log4cxx/xml/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/main/include/log4cxx/xml/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-xmlincHEADERS: $(xmlinc_HEADERS) @$(NORMAL_INSTALL) test -z "$(xmlincdir)" || $(mkdir_p) "$(DESTDIR)$(xmlincdir)" @list='$(xmlinc_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(xmlincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(xmlincdir)/$$f'"; \ $(xmlincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(xmlincdir)/$$f"; \ done uninstall-xmlincHEADERS: @$(NORMAL_UNINSTALL) @list='$(xmlinc_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(xmlincdir)/$$f'"; \ rm -f "$(DESTDIR)$(xmlincdir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(mkdir_p) $(distdir)/../../../../../src/main/include/log4cxx/xml @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(xmlincdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-xmlincHEADERS install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am uninstall-xmlincHEADERS .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-strip \ install-xmlincHEADERS installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-info-am \ uninstall-xmlincHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/xmllayout.h100644 0 0 13006 10774263400 21306 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_XML_LAYOUT_H #define _LOG4CXX_XML_LAYOUT_H #include namespace log4cxx { namespace xml { /** The output of the XMLLayout consists of a series of log4j:event elements. It does not output a complete well-formed XML file. The output is designed to be included as an external entity in a separate file to form a correct XML file.

For example, if abc is the name of the file where the XMLLayout ouput goes, then a well-formed XML file would be: ]> @&data;

This approach enforces the independence of the XMLLayout and the appender where it is embedded. */ class LOG4CXX_EXPORT XMLLayout : public Layout { private: // Print no location info by default bool locationInfo; //= false bool properties; // = false public: DECLARE_LOG4CXX_OBJECT(XMLLayout) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(XMLLayout) LOG4CXX_CAST_ENTRY_CHAIN(Layout) END_LOG4CXX_CAST_MAP() XMLLayout(); /** The LocationInfo option takes a boolean value. By default, it is set to false which means there will be no location information output by this layout. If the the option is set to true, then the file name and line number of the statement at the origin of the log statement will be output.

If you are embedding this layout within a SMTPAppender then make sure to set the LocationInfo option of that appender as well. */ inline void setLocationInfo(bool locationInfo1) { this->locationInfo = locationInfo1; } /** Returns the current value of the LocationInfo option. */ inline bool getLocationInfo() const { return locationInfo; } /** * Sets whether MDC key-value pairs should be output, default false. * @param flag new value. * */ inline void setProperties(bool flag) { properties = flag; } /** * Gets whether MDC key-value pairs should be output. * @return true if MDC key-value pairs are output. * */ inline bool getProperties() { return properties; } /** No options to activate. */ void activateOptions(log4cxx::helpers::Pool& /* p */) { } /** Set options */ virtual void setOption(const LogString& option, const LogString& value); /** * Formats a {@link spi::LoggingEvent LoggingEvent} * in conformance with the log4cxx.dtd. **/ virtual void format(LogString& output, const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p) const; /** The XMLLayout prints and does not ignore exceptions. Hence the return value false. */ virtual bool ignoresThrowable() const { return false; } }; // class XMLLayout LOG4CXX_PTR_DEF(XMLLayout); } // namespace xml } // namespace log4cxx #endif // _LOG4CXX_XML_LAYOUT_H apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/Makefile.am100644 0 0 1566 10774263400 21123 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # xmlincdir = $(includedir)/log4cxx/xml xmlinc_HEADERS= $(top_srcdir)/src/main/include/log4cxx/xml/*.h apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/domconfigurator.h100644 0 0 33216 10774263400 22457 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_XML_DOM_CONFIGURATOR_H #define _LOG4CXX_XML_DOM_CONFIGURATOR_H #if defined(_MSC_VER) #pragma warning (push) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include #include #include #include #include #include #include #include #include extern "C" { struct apr_xml_doc; struct apr_xml_elem; } namespace log4cxx { namespace xml { /** Use this class to initialize the log4cxx environment using a DOM tree.

Sometimes it is useful to see how log4cxx is reading configuration files. You can enable log4cxx internal logging by setting the debug attribute in the log4cxx element. As in

                      <log4j:configuration debug="true" xmlns:log4j="http://jakarta.apache.org/log4j/">
                      ...
                      </log4j:configuration>
              

There are sample XML files included in the package. */ class LOG4CXX_EXPORT DOMConfigurator : virtual public spi::Configurator, virtual public helpers::ObjectImpl { protected: typedef std::map AppenderMap; /** Used internally to parse appenders by IDREF name. */ AppenderPtr findAppenderByName( log4cxx::helpers::Pool& p, log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* elem, apr_xml_doc* doc, const LogString& appenderName, AppenderMap& appenders); /** Used internally to parse appenders by IDREF element. */ AppenderPtr findAppenderByReference( log4cxx::helpers::Pool& p, log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* appenderRef, apr_xml_doc* doc, AppenderMap& appenders); /** Used internally to parse an appender element. */ AppenderPtr parseAppender( log4cxx::helpers::Pool& p, log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* appenderElement, apr_xml_doc* doc, AppenderMap& appenders); /** Used internally to parse an {@link spi::ErrorHandler ErrorHandler } element. */ void parseErrorHandler( log4cxx::helpers::Pool& p, log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* element, AppenderPtr& appender, apr_xml_doc* doc, AppenderMap& appenders); /** Used internally to parse a filter element. */ void parseFilters( log4cxx::helpers::Pool& p, log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* element, std::vector& filters); /** Used internally to parse a logger element. */ void parseLogger( log4cxx::helpers::Pool& p, log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* loggerElement, apr_xml_doc* doc, AppenderMap& appenders); /** Used internally to parse the logger factory element. */ void parseLoggerFactory( log4cxx::helpers::Pool& p, log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* factoryElement); /** Used internally to parse the logger factory element. */ log4cxx::helpers::ObjectPtr parseTriggeringPolicy( log4cxx::helpers::Pool& p, log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* factoryElement); /** Used internally to parse the logger factory element. */ log4cxx::rolling::RollingPolicyPtr parseRollingPolicy( log4cxx::helpers::Pool& p, log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* factoryElement); /** Used internally to parse the root logger element. */ void parseRoot(log4cxx::helpers::Pool& p, log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* rootElement, apr_xml_doc* doc, AppenderMap& appenders); /** Used internally to parse the children of a logger element. */ void parseChildrenOfLoggerElement( log4cxx::helpers::Pool& p, log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* catElement, LoggerPtr logger, bool isRoot, apr_xml_doc* doc, AppenderMap& appenders); /** Used internally to parse a layout element. */ LayoutPtr parseLayout( log4cxx::helpers::Pool& p, log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* layout_element); /** Used internally to parse a level element. */ void parseLevel( log4cxx::helpers::Pool& p, log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* element, LoggerPtr logger, bool isRoot); void setParameter( log4cxx::helpers::Pool& p, log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* elem, log4cxx::config::PropertySetter& propSetter); /** Used internally to configure the log4cxx framework from an in-memory representation of an XML document. */ void parse( log4cxx::helpers::Pool& p, log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem* element, apr_xml_doc* doc, AppenderMap& appenders); public: DOMConfigurator(); DECLARE_LOG4CXX_OBJECT(DOMConfigurator) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(spi::Configurator) END_LOG4CXX_CAST_MAP() DOMConfigurator(log4cxx::helpers::Pool& p); void addRef() const; void releaseRef() const; /** A static version of #doConfigure. */ static void configure(const std::string& filename); #if LOG4CXX_WCHAR_T_API static void configure(const std::wstring& filename); #endif #if LOG4CXX_UNICHAR_API static void configure(const std::basic_string& filename); #endif #if LOG4CXX_CFSTRING_API static void configure(const CFStringRef& filename); #endif /** Like #configureAndWatch(const std::string& configFilename, long delay) except that the default delay as defined by log4cxx::helpers::FileWatchdog#DEFAULT_DELAY is used. @param configFilename A log4j configuration file in XML format. */ static void configureAndWatch(const std::string& configFilename); #if LOG4CXX_WCHAR_T_API static void configureAndWatch(const std::wstring& configFilename); #endif #if LOG4CXX_UNICHAR_API static void configureAndWatch(const std::basic_string& configFilename); #endif #if LOG4CXX_CFSTRING_API static void configureAndWatch(const CFStringRef& configFilename); #endif /** Read the configuration file configFilename if it exists. Moreover, a thread will be created that will periodically check if configFilename has been created or modified. The period is determined by the delay argument. If a change or file creation is detected, then configFilename is read to configure log4cxx. @param configFilename A log4j configuration file in XML format. @param delay The delay in milliseconds to wait between each check. */ static void configureAndWatch(const std::string& configFilename, long delay); #if LOG4CXX_WCHAR_T_API static void configureAndWatch(const std::wstring& configFilename, long delay); #endif #if LOG4CXX_UNICHAR_API static void configureAndWatch(const std::basic_string& configFilename, long delay); #endif #if LOG4CXX_CFSTRING_API static void configureAndWatch(const CFStringRef& configFilename, long delay); #endif /** Interpret the XML file pointed by filename and set up log4cxx accordingly.

The configuration is done relative to the hierarchy parameter. @param filename The file to parse. @param repository The hierarchy to operation upon. */ void doConfigure(const File& filename, spi::LoggerRepositoryPtr& repository); protected: static LogString getAttribute( log4cxx::helpers::CharsetDecoderPtr& utf8Decoder, apr_xml_elem*, const std::string& attrName); LogString subst(const LogString& value); protected: helpers::Properties props; spi::LoggerRepositoryPtr repository; spi::LoggerFactoryPtr loggerFactory; private: // prevent assignment or copy statements DOMConfigurator(const DOMConfigurator&); DOMConfigurator& operator=(const DOMConfigurator&); }; LOG4CXX_PTR_DEF(DOMConfigurator); } // namespace xml } // namespace log4cxx #if defined(_MSC_VER) #pragma warning (pop) #endif #endif // _LOG4CXX_XML_DOM_CONFIGURATOR_H apache-log4cxx-0.10.0/src/main/include/log4cxx/config/Makefile.in100644 0 0 32230 10774264475 21626 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/main/include/log4cxx/config DIST_COMMON = $(configinc_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(configincdir)" configincHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(configinc_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # configincdir = $(includedir)/log4cxx/config configinc_HEADERS = $(top_srcdir)/src/main/include/log4cxx/config/*.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/include/log4cxx/config/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/main/include/log4cxx/config/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-configincHEADERS: $(configinc_HEADERS) @$(NORMAL_INSTALL) test -z "$(configincdir)" || $(mkdir_p) "$(DESTDIR)$(configincdir)" @list='$(configinc_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(configincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(configincdir)/$$f'"; \ $(configincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(configincdir)/$$f"; \ done uninstall-configincHEADERS: @$(NORMAL_UNINSTALL) @list='$(configinc_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(configincdir)/$$f'"; \ rm -f "$(DESTDIR)$(configincdir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(mkdir_p) $(distdir)/../../../../../src/main/include/log4cxx/config @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(configincdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-configincHEADERS install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-configincHEADERS uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am \ install-configincHEADERS install-data install-data-am \ install-exec install-exec-am install-info install-info-am \ install-man install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags uninstall uninstall-am \ uninstall-configincHEADERS uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/main/include/log4cxx/config/propertysetter.h100644 0 0 11061 10774263402 23031 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_CONFIG_PROPERTYSETTER_H #define _LOG4CXX_CONFIG_PROPERTYSETTER_H #include #include namespace log4cxx { namespace helpers { class Object; typedef ObjectPtrT ObjectPtr; class Properties; class Pool; } namespace config { /** General purpose Object property setter. Clients repeatedly invokes {@link #setProperty setProperty(name,value)} in order to invoke setters on the Object specified in the constructor.

Usage:

                PropertySetter ps(anObject);
                ps.set("name", "Joe");
                ps.set("age", "32");
                ps.set("isMale", "true");
                
will cause the invocations anObject->setOption("name", "Joe"), anObject->setOption("age", "32") and anObject->setOption("isMale", "true") if the spi::OptionHandler interface is supported by anObject. */ class LOG4CXX_EXPORT PropertySetter { protected: helpers::ObjectPtr obj; public: /** Create a new PropertySetter for the specified Object. This is done in prepartion for invoking #setProperty one or more times. @param obj the object for which to set properties */ PropertySetter(const helpers::ObjectPtr& obj); /** Set the properties of an object passed as a parameter in one go. The properties are parsed relative to a prefix. @param obj The object to configure. @param properties A java.util.Properties containing keys and values. @param prefix Only keys having the specified prefix will be set. @param p pool to use for any allocations required during call. */ static void setProperties(const helpers::ObjectPtr& obj, helpers::Properties& properties, const LogString& prefix, log4cxx::helpers::Pool& p); /** Set the properites for the object that match the prefix passed as parameter. */ void setProperties(helpers::Properties& properties, const LogString& prefix, log4cxx::helpers::Pool& p); /** Set a property on this PropertySetter's Object. If the underlying Object supports the spi::OptionHandler interface, the {@link spi::OptionHandler#setOption setOption} method is called. @param option name of the property @param value String value of the property @param p pool to use for any allocations required during call. */ void setProperty(const LogString& option, const LogString& value, log4cxx::helpers::Pool& p); void activate(log4cxx::helpers::Pool& p); }; // class PropertySetter } // namespace config; } // namespace log4cxx #endif //_LOG4CXX_CONFIG_PROPERTYSETTER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/config/Makefile.am100644 0 0 1602 10774263402 21561 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # configincdir = $(includedir)/log4cxx/config configinc_HEADERS= $(top_srcdir)/src/main/include/log4cxx/config/*.h apache-log4cxx-0.10.0/src/main/include/log4cxx/private/Makefile.in100644 0 0 33237 10774264476 22044 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/main/include/log4cxx/private DIST_COMMON = $(privateinc_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/log4cxx_private.h.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = log4cxx_private.h SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(privateincdir)" privateincHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(privateinc_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # privateincdir = $(includedir)/log4cxx/private privateinc_HEADERS = $(top_builddir)/src/main/include/log4cxx/private/*.h log4cxx_private.h DISTCLEANFILES = log4cxx_private.h EXTRA_DIST = log4cxx_private.hw all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/include/log4cxx/private/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/main/include/log4cxx/private/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh log4cxx_private.h: $(top_builddir)/config.status $(srcdir)/log4cxx_private.h.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-privateincHEADERS: $(privateinc_HEADERS) @$(NORMAL_INSTALL) test -z "$(privateincdir)" || $(mkdir_p) "$(DESTDIR)$(privateincdir)" @list='$(privateinc_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(privateincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(privateincdir)/$$f'"; \ $(privateincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(privateincdir)/$$f"; \ done uninstall-privateincHEADERS: @$(NORMAL_UNINSTALL) @list='$(privateinc_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(privateincdir)/$$f'"; \ rm -f "$(DESTDIR)$(privateincdir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(mkdir_p) $(distdir)/$(top_builddir)/src/main/include/log4cxx/private @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(privateincdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-privateincHEADERS install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am uninstall-privateincHEADERS .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags dist-hook distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-privateincHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-info-am \ uninstall-privateincHEADERS dist-hook: -rm -f $(distdir)/log4cxx_private.h # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/main/include/log4cxx/private/log4cxx_private.hw100644 0 0 4150 10774263402 23415 0ustar 0 0 /* Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef LOG4CXX_PRIVATE_LOG4CXX_H #define LOG4CXX_PRIVATE_LOG4CXX_H /* GENERATED FILE WARNING! DO NOT EDIT log4cxx.h * * You must modify log4cxx.hw instead. * * * This is the Win32 specific version of log4cxx.h. */ #include #if !defined(LOG4CXX) && !defined(LOG4CXX_TEST) #error "log4cxx/private/log4cxx.h should only be used within log4cxx and tests implementation" #endif #if !defined(__BORLANDC__) #define LOG4CXX_RETURN_AFTER_THROW 1 #else #define LOG4CXX_RETURN_AFTER_THROW 0 #endif #if defined(_WIN32_WCE) #define LOG4CXX_HAS_STD_LOCALE 0 #else #define LOG4CXX_HAS_STD_LOCALE 1 #endif #define LOG4CXX_FORCE_WIDE_CONSOLE 1 #define LOG4CXX_FORCE_BYTE_CONSOLE 0 #if defined(_MSC_VER) #define LOG4CXX_MEMSET_IOS_BASE 1 #endif #if !defined(_WIN32_WCE) #define LOG4CXX_HAVE_ODBC 1 #if defined(__BORLANDC__) #define LOG4CXX_HAS_MBSRTOWCS 0 #else #define LOG4CXX_HAS_MBSRTOWCS 1 #endif #else #define LOG4CXX_HAVE_ODBC 0 #define LOG4CXX_HAS_MBSRTOWCS 0 #endif #define LOG4CXX_HAS_FWIDE 1 #define LOG4CXX_HAS_WCSTOMBS 1 #define LOG4CXX_CHARSET_UTF8 0 #define LOG4CXX_CHARSET_ISO88591 0 #define LOG4CXX_CHARSET_USASCII 0 #define LOG4CXX_CHARSET_EBCDIC 0 #define LOG4CXX_HAVE_LIBESMTP 0 #define LOG4CXX_HAVE_SYSLOG 0 #define LOG4CXX_WIN32_THREAD_FMTSPEC "0x%.8x" #define LOG4CXX_APR_THREAD_FMTSPEC "0x%pt" #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/private/Makefile.am100644 0 0 2016 10774263402 21766 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # privateincdir = $(includedir)/log4cxx/private privateinc_HEADERS= $(top_builddir)/src/main/include/log4cxx/private/*.h log4cxx_private.h DISTCLEANFILES = log4cxx_private.h EXTRA_DIST = log4cxx_private.hw dist-hook: -rm -f $(distdir)/log4cxx_private.h apache-log4cxx-0.10.0/src/main/include/log4cxx/private/log4cxx_private.h.in100644 0 0 3574 10774263402 23644 0ustar 0 0 /* Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef LOG4CXX_PRIVATE_LOG4CXX_H #define LOG4CXX_PRIVATE_LOG4CXX_H /* GENERATED FILE WARNING! DO NOT EDIT log4cxx_private.h * * You must modify log4cxx_private.h.in instead. * */ #include #if !defined(LOG4CXX) && !defined(LOG4CXX_TEST) #error "log4cxx/private/log4cxx_private.h should only be used within log4cxx implementation or tests" #endif #define LOG4CXX_RETURN_AFTER_THROW 0 #define LOG4CXX_HAS_STD_LOCALE @HAS_STD_LOCALE@ #define LOG4CXX_FORCE_WIDE_CONSOLE 0 #define LOG4CXX_FORCE_BYTE_CONSOLE 0 #define LOG4CXX_MEMSET_IOS_BASE 0 #define LOG4CXX_HAVE_ODBC @HAS_ODBC@ #define LOG4CXX_HAS_MBSRTOWCS @HAS_MBSRTOWCS@ #define LOG4CXX_HAS_WCSTOMBS @HAS_WCSTOMBS@ #define LOG4CXX_HAS_FWIDE @HAS_FWIDE@ #define LOG4CXX_CHARSET_UTF8 @CHARSET_UTF8@ #define LOG4CXX_CHARSET_ISO88591 @CHARSET_ISO88591@ #define LOG4CXX_CHARSET_USASCII @CHARSET_USASCII@ #define LOG4CXX_CHARSET_EBCDIC @CHARSET_EBCDIC@ #define LOG4CXX_HAVE_LIBESMTP @HAS_LIBESMTP@ #define LOG4CXX_HAVE_SYSLOG @HAS_SYSLOG@ #define LOG4CXX_WIN32_THREAD_FMTSPEC "0x%.8x" #define LOG4CXX_APR_THREAD_FMTSPEC "0x%pt" #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/fileappender.h100644 0 0 21213 10774263402 21107 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_FILE_APPENDER_H #define _LOG4CXX_FILE_APPENDER_H #include #include #include #include #include namespace log4cxx { namespace helpers { class Pool; } /** * FileAppender appends log events to a file. * *

Support for java.io.Writer and console appending * has been deprecated and then removed. See the replacement * solutions: WriterAppender and ConsoleAppender. */ class LOG4CXX_EXPORT FileAppender : public WriterAppender { protected: /** Append to or truncate the file? The default value for this variable is true, meaning that by default a FileAppender will append to an existing file and not truncate it.

This option is meaningful only if the FileAppender opens the file. */ bool fileAppend; /** The name of the log file. */ LogString fileName; /** Do we do bufferedIO? */ bool bufferedIO; /** How big should the IO buffer be? Default is 8K. */ int bufferSize; public: DECLARE_LOG4CXX_OBJECT(FileAppender) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(FileAppender) LOG4CXX_CAST_ENTRY_CHAIN(WriterAppender) END_LOG4CXX_CAST_MAP() /** The default constructor does not do anything. */ FileAppender(); /** Instantiate a FileAppender and open the file designated by filename. The opened filename will become the output destination for this appender.

If the append parameter is true, the file will be appended to. Otherwise, the file designated by filename will be truncated before being opened.

If the bufferedIO parameter is true, then buffered IO will be used to write to the output file. */ FileAppender(const LayoutPtr& layout, const LogString& filename, bool append, bool bufferedIO, int bufferSize); /** Instantiate a FileAppender and open the file designated by filename. The opened filename will become the output destination for this appender.

If the append parameter is true, the file will be appended to. Otherwise, the file designated by filename will be truncated before being opened. */ FileAppender(const LayoutPtr& layout, const LogString& filename, bool append); /** Instantiate a FileAppender and open the file designated by filename. The opened filename will become the output destination for this appender.

The file will be appended to. */ FileAppender(const LayoutPtr& layout, const LogString& filename); ~FileAppender(); /** The File property takes a string value which should be the name of the file to append to.

Note that the special values "System.out" or "System.err" are no longer honored.

Note: Actual opening of the file is made when #activateOptions is called, not when the options are set. */ virtual void setFile(const LogString& file); /** Sets and opens the file where the log output will go. The specified file must be writable.

If there was already an opened file, then the previous file is closed first.

Do not use this method directly. To configure a FileAppender or one of its subclasses, set its properties one by one and then call activateOptions. @param file The path to the log file. @param append If true will append to fileName. Otherwise will truncate fileName. @param bufferedIO Do we do bufferedIO? @param bufferSize How big should the IO buffer be? @param p memory pool for operation. */ virtual void setFile(const LogString& file, bool append, bool bufferedIO, size_t bufferSize, log4cxx::helpers::Pool& p); /** Returns the value of the Append option. */ inline bool getAppend() const { return fileAppend; } /** Returns the value of the File option. */ inline LogString getFile() const { return fileName; } /**

Sets and opens the file where the log output will go. The specified file must be writable.

If there was already an opened file, then the previous file is closed first.*/ void activateOptions(log4cxx::helpers::Pool& p); void setOption(const LogString& option, const LogString& value); /** Get the value of the BufferedIO option.

BufferedIO will significatnly increase performance on heavily loaded systems. */ inline bool getBufferedIO() const { return bufferedIO; } /** Get the size of the IO buffer. */ inline int getBufferSize() const { return bufferSize; } /** The Append option takes a boolean value. It is set to true by default. If true, then File will be opened in append mode by #setFile (see above). Otherwise, setFile will open File in truncate mode.

Note: Actual opening of the file is made when #activateOptions is called, not when the options are set. */ void setAppend(bool fileAppend1); /** The BufferedIO option takes a boolean value. It is set to false by default. If true, then File will be opened in buffered mode. BufferedIO will significantly increase performance on heavily loaded systems. */ void setBufferedIO(bool bufferedIO); /** Set the size of the IO buffer. */ void setBufferSize(int bufferSize1) { this->bufferSize = bufferSize1; } /** * Replaces double backslashes with single backslashes * for compatibility with paths from earlier XML configurations files. * @param name file name * @return corrected file name */ static LogString stripDuplicateBackslashes(const LogString& name); private: FileAppender(const FileAppender&); FileAppender& operator=(const FileAppender&); }; // class FileAppender LOG4CXX_PTR_DEF(FileAppender); } // namespace log4cxx #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/ttcclayout.h100644 0 0 16017 10774263402 20652 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_TTCC_LAYOUT_H #define _LOG4CXX_TTCC_LAYOUT_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include namespace log4cxx { /** TTCC layout format consists of time, thread, logger name and nested diagnostic context information, hence the name.

Each of the four fields can be individually enabled or disabled. The time format depends on the DateFormat used.

Here is an example TTCCLayout output with the {@link helpers::RelativeTimeDateFormat RelativeTimeDateFormat}.

    176 [main] INFO  examples.Sort - Populating an array of 2 elements in reverse order.
    225 [main] INFO  examples.SortAlgo - Entered the sort method.
    262 [main] DEBUG examples.SortAlgo.OUTER i=1 - Outer loop.
    276 [main] DEBUG examples.SortAlgo.SWAP i=1 j=0 - Swapping intArray[0] = 1 and intArray[1] = 0
    290 [main] DEBUG examples.SortAlgo.OUTER i=0 - Outer loop.
    304 [main] INFO  examples.SortAlgo.DUMP - Dump of interger array:
    317 [main] INFO  examples.SortAlgo.DUMP - Element [0] = 0
    331 [main] INFO  examples.SortAlgo.DUMP - Element [1] = 1
    343 [main] INFO  examples.Sort - The next log statement should be an error message.
    346 [main] ERROR examples.SortAlgo.DUMP - Tried to dump an uninitialized array.
    467 [main] INFO  examples.Sort - Exiting main method.
    

The first field is the number of milliseconds elapsed since the start of the program. The second field is the thread outputting the log statement. The third field is the level, the fourth field is the logger to which the statement belongs.

The fifth field (just before the '-') is the nested diagnostic context. Note the nested diagnostic context may be empty as in the first two statements. The text after the '-' is the message of the statement.

WARNING Do not use the same TTCCLayout instance from within different appenders. The TTCCLayout is not thread safe when used in his way. However, it is perfectly safe to use a TTCCLayout instance from just one appender.

PatternLayout offers a much more flexible alternative. */ class LOG4CXX_EXPORT TTCCLayout : public helpers::DateLayout { private: // Internal representation of options bool threadPrinting; bool categoryPrefixing; bool contextPrinting; bool filePrinting; public: DECLARE_LOG4CXX_OBJECT(TTCCLayout) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(TTCCLayout) LOG4CXX_CAST_ENTRY_CHAIN(Layout) END_LOG4CXX_CAST_MAP() /** Instantiate a TTCCLayout object with {@link helpers::RelativeTimeDateFormat RelativeTimeDateFormat} as the date formatter in the local time zone. */ TTCCLayout(); /** Instantiate a TTCCLayout object using the local time zone. The DateFormat used will depend on the dateFormatType.

This constructor just calls the {@link helpers::DateLayout#setDateFormat DateLayout::setDateFormat} method. */ TTCCLayout(const LogString& dateFormatType); /** The ThreadPrinting option specifies whether the name of the current thread is part of log output or not. This is true by default. */ inline void setThreadPrinting(bool threadPrinting1) { this->threadPrinting = threadPrinting1; } /** Returns value of the ThreadPrinting option. */ inline bool getThreadPrinting() const { return threadPrinting; } /** The CategoryPrefixing option specifies whether Logger name is part of log output or not. This is true by default. */ inline void setCategoryPrefixing(bool categoryPrefixing1) { this->categoryPrefixing = categoryPrefixing1; } /** Returns value of the CategoryPrefixing option. */ inline bool getCategoryPrefixing() const { return categoryPrefixing; } /** The ContextPrinting option specifies log output will include the nested context information belonging to the current thread. This is true by default. */ inline void setContextPrinting(bool contextPrinting1) { this->contextPrinting = contextPrinting1; } /** Returns value of the ContextPrinting option. */ inline bool getContextPrinting() const { return contextPrinting; } /** The FilePrinting option specifies log output will include the file and the line where the log statement was written. */ inline void setFilePrinting(bool filePrinting1) { this->filePrinting = filePrinting1; } /** Returns value of the ContextPrinting option. */ inline bool getFilePrinting() const { return filePrinting; } /** In addition to the level of the statement and message, this function writes to the ouput stream time, thread, logger and NDC information.

Time, thread, logger and diagnostic context are printed depending on options. @param output destination to receive formatted output. @param event event to format. @param pool pool used to allocate memory needed during formatting. */ virtual void format(LogString& output, const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& pool) const; /** The TTCCLayout does not handle the throwable contained within {@link spi::LoggingEvent LoggingEvents}. Thus, it returns true. */ virtual bool ignoresThrowable() const { return true; } }; LOG4CXX_PTR_DEF(TTCCLayout); } #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/log4cxx.h.in100644 0 0 3172 10774263402 20432 0ustar 0 0 /* Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef LOG4CXX_LOG4CXX_H #define LOG4CXX_LOG4CXX_H /* GENERATED FILE WARNING! DO NOT EDIT log4cxx.h * * Edit log4cxx.h.in instead * */ #define LOG4CXX_LOGCHAR_IS_UNICHAR @LOGCHAR_IS_UNICHAR@ #define LOG4CXX_LOGCHAR_IS_UTF8 @LOGCHAR_IS_UTF8@ #define LOG4CXX_LOGCHAR_IS_WCHAR @LOGCHAR_IS_WCHAR@ #define LOG4CXX_CHAR_API @CHAR_API@ #define LOG4CXX_WCHAR_T_API @WCHAR_T_API@ #define LOG4CXX_UNICHAR_API @UNICHAR_API@ #define LOG4CXX_CFSTRING_API @CFSTRING_API@ typedef long long log4cxx_int64_t; #define LOG4CXX_USE_GLOBAL_SCOPE_TEMPLATE 0 #define LOG4CXX_LOGSTREAM_ADD_NOP 0 typedef log4cxx_int64_t log4cxx_time_t; typedef int log4cxx_status_t; typedef unsigned int log4cxx_uint32_t; #define LOG4CXX_EXPORT #define LOG4CXX_PTR_DEF(T) typedef log4cxx::helpers::ObjectPtrT T##Ptr #define LOG4CXX_LIST_DEF(N, T) typedef std::vector N #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/patternlayout.h100644 0 0 33630 10774263402 21372 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_PATTERN_LAYOUT_H #define _LOG4CXX_PATTERN_LAYOUT_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include namespace log4cxx { /** A flexible layout configurable with pattern string.

The goal of this class is to #format a {@link spi::LoggingEvent LoggingEvent} and return the results as a string. The results depend on the conversion pattern.

The conversion pattern is closely related to the conversion pattern of the printf function in C. A conversion pattern is composed of literal text and format control expressions called conversion specifiers.

You are free to insert any literal text within the conversion pattern.

Each conversion specifier starts with a percent sign (\%) and is followed by optional format modifiers and a conversion character. The conversion character specifies the type of data, e.g. logger, level, date, thread name. The format modifiers control such things as field width, padding, left and right justification. The following is a simple example.

Let the conversion pattern be "\%-5p [\%t]: \%m\%n" and assume that the log4cxx environment was set to use a PatternLayout. Then the statements

        LoggerPtr root = Logger::getRoot();
        root->debug("Message 1");
        root->warn("Message 2");
        
would yield the output
        DEBUG [main]: Message 1
        WARN  [main]: Message 2
        

Note that there is no explicit separator between text and conversion specifiers. The pattern parser knows when it has reached the end of a conversion specifier when it reads a conversion character. In the example above the conversion specifier \%-5p means the level of the logging event should be left justified to a width of five characters. The recognized conversion characters are

Conversion Character Effect
c Used to output the logger of the logging event. The logger conversion specifier can be optionally followed by precision specifier, that is a decimal constant in brackets.

If a precision specifier is given, then only the corresponding number of right most components of the logger name will be printed. By default the logger name is printed in full.

For example, for the logger name "a.b.c" the pattern \%c{2} will output "b.c".

d Used to output the date of the logging event. The date conversion specifier may be followed by a set of braces containing a date and time pattern string compatible with java.text.SimpleDateFormat, ABSOLUTE, DATE or ISO8601. For example, %d{HH:mm:ss,SSS}, %d{dd MMM yyyy HH:mm:ss,SSS} or %d{DATE}. If no date format specifier is given then ISO8601 format is assumed.
F Used to output the file name where the logging request was issued.
l Used to output location information of the caller which generated the logging event.
L Used to output the line number from where the logging request was issued.
m Used to output the application supplied message associated with the logging event.
n Outputs the platform dependent line separator character or characters.

This conversion character offers practically the same performance as using non-portable line separator strings such as "\n", or "\r\n". Thus, it is the preferred way of specifying a line separator.

p Used to output the level of the logging event.
r Used to output the number of milliseconds elapsed since the start of the application until the creation of the logging event.
t Used to output the name of the thread that generated the logging event.
x Used to output the NDC (nested diagnostic context) associated with the thread that generated the logging event.
X

Used to output the MDC (mapped diagnostic context) associated with the thread that generated the logging event. The X conversion character must be followed by the key for the map placed between braces, as in \%X{clientNumber} where clientNumber is the key. The value in the MDC corresponding to the key will be output.

See MDC class for more details.

\% The sequence \%\% outputs a single percent sign.

By default the relevant information is output as is. However, with the aid of format modifiers it is possible to change the minimum field width, the maximum field width and justification.

The optional format modifier is placed between the percent sign and the conversion character.

The first optional format modifier is the left justification flag which is just the minus (-) character. Then comes the optional minimum field width modifier. This is a decimal constant that represents the minimum number of characters to output. If the data item requires fewer characters, it is padded on either the left or the right until the minimum width is reached. The default is to pad on the left (right justify) but you can specify right padding with the left justification flag. The padding character is space. If the data item is larger than the minimum field width, the field is expanded to accommodate the data. The value is never truncated.

This behavior can be changed using the maximum field width modifier which is designated by a period followed by a decimal constant. If the data item is longer than the maximum field, then the extra characters are removed from the beginning of the data item and not from the end. For example, it the maximum field width is eight and the data item is ten characters long, then the first two characters of the data item are dropped. This behavior deviates from the printf function in C where truncation is done from the end.

Below are various format modifier examples for the logger conversion specifier.

Format modifier left justify minimum width maximum width comment
\%20c false 20 none Left pad with spaces if the logger name is less than 20 characters long.
\%-20c true 20 none Right pad with spaces if the logger name is less than 20 characters long.
\%.30c NA none 30 Truncate from the beginning if the logger name is longer than 30 characters.
\%20.30c false 20 30 Left pad with spaces if the logger name is shorter than 20 characters. However, if logger name is longer than 30 characters, then truncate from the beginning.
\%-20.30c true 20 30 Right pad with spaces if the logger name is shorter than 20 characters. However, if logger name is longer than 30 characters, then truncate from the beginning.

Below are some examples of conversion patterns.

\%r [\%t] \%-5p \%c \%x - \%m\n

This is essentially the TTCC layout.

\%-6r [\%15.15t] \%-5p \%30.30c \%x - \%m\n

Similar to the TTCC layout except that the relative time is right padded if less than 6 digits, thread name is right padded if less than 15 characters and truncated if longer and the logger name is left padded if shorter than 30 characters and truncated if longer.

The above text is largely inspired from Peter A. Darnell and Philip E. Margolis' highly recommended book "C -- a Software Engineering Approach", ISBN 0-387-97389-3. */ class LOG4CXX_EXPORT PatternLayout : public Layout { /** * Conversion pattern. */ LogString conversionPattern; /** * Pattern converters. */ LOG4CXX_LIST_DEF(LoggingEventPatternConverterList, log4cxx::pattern::LoggingEventPatternConverterPtr); LoggingEventPatternConverterList patternConverters; /** * Field widths and alignment corresponding to pattern converters. */ LOG4CXX_LIST_DEF(FormattingInfoList, log4cxx::pattern::FormattingInfoPtr); FormattingInfoList patternFields; public: DECLARE_LOG4CXX_OBJECT(PatternLayout) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(PatternLayout) LOG4CXX_CAST_ENTRY_CHAIN(Layout) END_LOG4CXX_CAST_MAP() /** Does nothing */ PatternLayout(); /** Constructs a PatternLayout using the supplied conversion pattern. */ PatternLayout(const LogString& pattern); /** Set the ConversionPattern option. This is the string which controls formatting and consists of a mix of literal content and conversion specifiers. */ void setConversionPattern(const LogString& conversionPattern); /** Returns the value of the ConversionPattern option. */ inline LogString getConversionPattern() const { return conversionPattern; } /** Call createPatternParser */ virtual void activateOptions(log4cxx::helpers::Pool& p); virtual void setOption(const LogString& option, const LogString& value); /** The PatternLayout does not handle the throwable contained within {@link spi::LoggingEvent LoggingEvents}. Thus, it returns true. */ virtual bool ignoresThrowable() const { return true; } /** Produces a formatted string as specified by the conversion pattern. */ virtual void format(LogString& output, const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& pool) const; protected: virtual log4cxx::pattern::PatternMap getFormatSpecifiers(); }; LOG4CXX_PTR_DEF(PatternLayout); } // namespace log4cxx #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif //_LOG4CXX_PATTERN_LAYOUT_H apache-log4cxx-0.10.0/src/main/include/log4cxx/htmllayout.h100644 0 0 11215 10774263402 20654 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HTML_LAYOUT_H #define _LOG4CXX_HTML_LAYOUT_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include namespace log4cxx { /** This layout outputs events in a HTML table. */ class LOG4CXX_EXPORT HTMLLayout : public Layout { private: // Print no location info by default bool locationInfo; //= false LogString title; helpers::ISO8601DateFormat dateFormat; public: DECLARE_LOG4CXX_OBJECT(HTMLLayout) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(HTMLLayout) LOG4CXX_CAST_ENTRY_CHAIN(Layout) END_LOG4CXX_CAST_MAP() HTMLLayout(); /** The LocationInfo option takes a boolean value. By default, it is set to false which means there will be no location information output by this layout. If the the option is set to true, then the file name and line number of the statement at the origin of the log statement will be output.

If you are embedding this layout within an {@link net::SMTPAppender SMTPAppender} then make sure to set the LocationInfo option of that appender as well. */ inline void setLocationInfo(bool locationInfoFlag) { this->locationInfo = locationInfoFlag; } /** Returns the current value of the LocationInfo option. */ inline bool getLocationInfo() const { return locationInfo; } /** The Title option takes a String value. This option sets the document title of the generated HTML document.

Defaults to 'Log4cxx Log Messages'. */ inline void setTitle(const LogString& title1) { this->title.assign(title1); } /** Returns the current value of the Title option. */ inline const LogString& getTitle() const { return title; } /** Returns the content type output by this layout, i.e "text/html". */ virtual LogString getContentType() const { return LOG4CXX_STR("text/html"); } /** No options to activate. */ virtual void activateOptions(log4cxx::helpers::Pool& /* p */) {} /** Set options */ virtual void setOption(const LogString& option, const LogString& value); virtual void format(LogString& output, const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& pool) const; /** Append appropriate HTML headers. */ virtual void appendHeader(LogString& output, log4cxx::helpers::Pool& pool); /** Append the appropriate HTML footers. */ virtual void appendFooter(LogString& output, log4cxx::helpers::Pool& pool); /** The HTML layout handles the throwable contained in logging events. Hence, this method return false. */ virtual bool ignoresThrowable() const { return false; } }; // class HtmlLayout LOG4CXX_PTR_DEF(HTMLLayout); } // namespace log4cxx #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif // _LOG4CXX_HTML_LAYOUT_H apache-log4cxx-0.10.0/src/main/include/log4cxx/mdc.h100644 0 0 24146 10774263402 17224 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_MDC_H #define _LOG4CXX_MDC_H #if defined(_MSC_VER) #pragma warning (push) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include namespace log4cxx { /** The MDC class is similar to the {@link log4cxx::NDC NDC} class except that it is based on a map instead of a stack. It provides mapped diagnostic contexts. A Mapped Diagnostic Context, or MDC in short, is an instrument for distinguishing interleaved log output from different sources. Log output is typically interleaved when a server handles multiple clients near-simultaneously.

The MDC is managed on a per thread basis. A child thread automatically inherits a copy of the mapped diagnostic context of its parent. */ class LOG4CXX_EXPORT MDC { public: /** String to string stl map. */ typedef std::map Map; /** * Places a key/value pair in the MDC for the current thread * which will be removed during the corresponding destructor. Both * construction and destruction are expected to be on the same thread. * @param key key * @param value value. */ MDC(const std::string& key, const std::string& value); ~MDC(); /** * Put a context value (the o parameter) as identified * with the key parameter into the current thread's * context map. * *

If the current thread does not have a context map it is * created as a side effect. * @param key key * @param value value. */ static void put(const std::string& key, const std::string& value); /** * Put a context value (the o parameter) as identified * with the key parameter into the current thread's * context map. * *

If the current thread does not have a context map it is * created as a side effect. * */ static void putLS(const LogString& key, const LogString& value); /** * Get the context identified by the key parameter. * *

This method has no side effects. * @param key key. * @return value for key, empty if not set. * */ static std::string get(const std::string& key); /** * Gets the context identified by the key parameter. * @param key context key. * @param dest destination to which value is appended. * @return true if key has associated value. */ static bool get(const LogString& key, LogString& dest); /** * Remove the the context identified by the key * parameter. * @param key key. * @return value if key had been set, empty if not. */ static std::string remove(const std::string& key); #if LOG4CXX_WCHAR_T_API /** * Places a key/value pair in the MDC for the current thread * which will be removed during the corresponding destructor. Both * construction and destruction are expected to be on the same thread. * @param key key * @param value value. */ MDC(const std::wstring& key, const std::wstring& value); /** * Put a context value (the o parameter) as identified * with the key parameter into the current thread's * context map. * *

If the current thread does not have a context map it is * created as a side effect. * @param key key * @param value value. */ static void put(const std::wstring& key, const std::wstring& value); /** * Get the context identified by the key parameter. * *

This method has no side effects. * @param key key. * @return value for key, empty if not set. * */ static std::wstring get(const std::wstring& key); /** * Remove the the context identified by the key * parameter. * @param key key. * @return value if key had been set, empty if not. */ static std::wstring remove(const std::wstring& key); #endif #if LOG4CXX_UNICHAR_API /** * Places a key/value pair in the MDC for the current thread * which will be removed during the corresponding destructor. Both * construction and destruction are expected to be on the same thread. * @param key key * @param value value. */ MDC(const std::basic_string& key, const std::basic_string& value); /** * Put a context value (the o parameter) as identified * with the key parameter into the current thread's * context map. * *

If the current thread does not have a context map it is * created as a side effect. * @param key key * @param value value. */ static void put(const std::basic_string& key, const std::basic_string& value); /** * Get the context identified by the key parameter. * *

This method has no side effects. * @param key key. * @return value for key, empty if not set. * */ static std::basic_string get(const std::basic_string& key); /** * Remove the the context identified by the key * parameter. * @param key key. * @return value if key had been set, empty if not. */ static std::basic_string remove(const std::basic_string& key); #endif #if LOG4CXX_CFSTRING_API /** * Places a key/value pair in the MDC for the current thread * which will be removed during the corresponding destructor. Both * construction and destruction are expected to be on the same thread. * @param key key * @param value value. */ MDC(const CFStringRef& key, const CFStringRef& value); /** * Put a context value (the o parameter) as identified * with the key parameter into the current thread's * context map. * *

If the current thread does not have a context map it is * created as a side effect. * @param key key * @param value value. */ static void put(const CFStringRef& key, const CFStringRef& value); /** * Get the context identified by the key parameter. * *

This method has no side effects. * @param key key. * @return value for key, empty if not set. * */ static CFStringRef get(const CFStringRef& key); /** * Remove the the context identified by the key * parameter. * @param key key. * @return value if key had been set, empty if not. */ static CFStringRef remove(const CFStringRef& key); #endif /** * Remove the the context identified by the key * parameter. * @param key key. * @param prevValue buffer to which previous value is appended. * @return true if key existed in MDC. */ static bool remove(const LogString& key, LogString& prevValue); /** * Clear all entries in the MDC. */ static void clear(); private: MDC(const MDC&); MDC& operator=(const MDC&); LogString key; }; // class MDC; } // namespace log4cxx #if defined(_MSC_VER) #pragma warning (pop) #endif #endif // _LOG4CXX_MDC_H apache-log4cxx-0.10.0/src/main/include/log4cxx/ndc.h100644 0 0 36444 10774263402 17231 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_NDC_H #define _LOG4CXX_NDC_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include namespace log4cxx { /** the ndc class implements nested diagnostic contexts as defined by neil harrison in the article "patterns for logging diagnostic messages" part of the book "pattern languages of program design 3" edited by martin et al.

a nested diagnostic context, or ndc in short, is an instrument to distinguish interleaved log output from different sources. log output is typically interleaved when a server handles multiple clients near-simultaneously.

interleaved log output can still be meaningful if each log entry from different contexts had a distinctive stamp. this is where ndcs come into play.

note that ndcs are managed on a per thread basis. ndc operations such as #push, #pop, #clear and #getDepth affect the ndc of the current thread only. ndcs of other threads remain unaffected.

for example, a servlet can build a per client request ndc consisting the clients host name and other information contained in the the request. cookies are another source of distinctive information. to build an ndc one uses the #push operation. simply put,

  • contexts can be nested.

  • when entering a context, call ndc.push. as a side effect, if there is no nested diagnostic context for the current thread, this method will create it.

  • when leaving a context, call ndc.pop.

  • when exiting a thread make sure to call #remove .

there is no penalty for forgetting to match each push operation with a corresponding pop, except the obvious mismatch between the real application context and the context set in the ndc.

if configured to do so, PatternLayout and TTCCLayout instances automatically retrieve the nested diagnostic context for the current thread without any user intervention. hence, even if a servlet is serving multiple clients simultaneously, the logs emanating from the same code (belonging to the same logger) can still be distinguished because each client request will have a different ndc tag.

heavy duty systems should call the #remove method when leaving the run method of a thread. this ensures that the memory used by the thread can be freed by the java garbage collector. there is a mechanism to lazily remove references to dead threads. in practice, this means that you can be a little sloppy and sometimes forget to call #remove before exiting a thread. */ class LOG4CXX_EXPORT NDC { public: /** * Pair of Message and FullMessage. */ typedef std::pair DiagnosticContext; typedef std::stack Stack; /** Creates a nested diagnostic context. Since java performs no automatic cleanup of objects when a scope is left, in log4j push() and pop() must be used to manage the NDC. For convenience, log4cxx provides an NDC constructor and destructor which simply call the push() and pop() methods, allowing for automatic cleanup when the current scope ends. @param message The new diagnostic context information. @see The #push method. */ NDC(const std::string& message); /** Removes the topmost element from the NDC stack. @see The #pop method. */ ~NDC(); /** Clear any nested diagnostic information if any. This method is useful in cases where the same thread can be potentially used over and over in different unrelated contexts. */ static void clear(); /** Clone the diagnostic context for the current thread.

Internally a diagnostic context is represented as a stack. A given thread can supply the stack (i.e. diagnostic context) to a child thread so that the child can inherit the parent thread's diagnostic context.

The child thread uses the #inherit method to inherit the parent's diagnostic context.

If not passed to #inherit, returned stack should be deleted by caller. @return Stack A clone of the current thread's diagnostic context, will not be null. */ static Stack * cloneStack(); /** Inherit the diagnostic context of another thread.

The parent thread can obtain a reference to its diagnostic context using the #cloneStack method. It should communicate this information to its child so that it may inherit the parent's diagnostic context.

The parent's diagnostic context is cloned before being inherited. In other words, once inherited, the two diagnostic contexts can be managed independently. @param stack The diagnostic context of the parent thread, will be deleted during call. If NULL, NDC will not be modified. */ static void inherit(Stack * stack); /** * Get the current value of the NDC of the * currrent thread. * @param dest destination to which to append content of NDC. * @return true if NDC is set. */ static bool get(LogString& dest); /** Get the current nesting depth of this diagnostic context. */ static int getDepth(); /** * Tests if the NDC is empty. */ static bool empty(); /** Pop top value off stack. @return top value. */ static LogString pop(); /** Pop top value off stack. @param buf to which top value is appended. @return true if NDC contained at least one value. */ static bool pop(std::string& buf); /** Looks at the last diagnostic context at the top of this NDC without removing it.

The returned value is the value that was pushed last. If no context is available, then the empty string "" is returned. @return String The innermost diagnostic context. */ static LogString peek(); /** Get top value without removing value. @param buf to which top value is appended. @return true if NDC contained at least one value. */ static bool peek(std::string& buf); /** Push new diagnostic context information for the current thread.

The contents of the message parameter is determined solely by the client. @param message The new diagnostic context information. */ static void push(const std::string& message); /** Push new diagnostic context information for the current thread.

The contents of the message parameter is determined solely by the client. @param message The new diagnostic context information. */ static void pushLS(const LogString& message); /** Remove the diagnostic context for this thread.

Each thread that created a diagnostic context by calling #push should call this method before exiting. Otherwise, the memory used by the thread cannot be reclaimed by the VM.

As this is such an important problem in heavy duty systems and because it is difficult to always guarantee that the remove method is called before exiting a thread, this method has been augmented to lazily remove references to dead threads. In practice, this means that you can be a little sloppy and occasionally forget to call #remove before exiting a thread. However, you must call remove sometime. If you never call it, then your application is sure to run out of memory. */ static void remove(); #if LOG4CXX_WCHAR_T_API /** Creates a nested diagnostic context. Since java performs no automatic cleanup of objects when a scope is left, in log4j push() and pop() must be used to manage the NDC. For convenience, log4cxx provides an NDC constructor and destructor which simply call the push() and pop() methods, allowing for automatic cleanup when the current scope ends. @param message The new diagnostic context information. @see The #push method. */ NDC(const std::wstring& message); /** Push new diagnostic context information for the current thread.

The contents of the message parameter is determined solely by the client. @param message The new diagnostic context information. */ static void push(const std::wstring& message); /** * Appends the current NDC content to the provided string. * @param dst destination. * @return true if NDC value set. */ static bool peek(std::wstring& dst); /** * Appends the current NDC content to the provided string and removes the value from the NDC. * @param dst destination. * @return true if NDC value set. */ static bool pop(std::wstring& dst); #endif #if LOG4CXX_UNICHAR_API /** Creates a nested diagnostic context. Since java performs no automatic cleanup of objects when a scope is left, in log4j push() and pop() must be used to manage the NDC. For convenience, log4cxx provides an NDC constructor and destructor which simply call the push() and pop() methods, allowing for automatic cleanup when the current scope ends. @param message The new diagnostic context information. @see The #push method. */ NDC(const std::basic_string& message); /** Push new diagnostic context information for the current thread.

The contents of the message parameter is determined solely by the client. @param message The new diagnostic context information. */ static void push(const std::basic_string& message); /** * Appends the current NDC content to the provided string. * @param dst destination. * @return true if NDC value set. */ static bool peek(std::basic_string& dst); /** * Appends the current NDC content to the provided string and removes the value from the NDC. * @param dst destination. * @return true if NDC value set. */ static bool pop(std::basic_string& dst); #endif #if LOG4CXX_CFSTRING_API /** Creates a nested diagnostic context. Since java performs no automatic cleanup of objects when a scope is left, in log4j push() and pop() must be used to manage the NDC. For convenience, log4cxx provides an NDC constructor and destructor which simply call the push() and pop() methods, allowing for automatic cleanup when the current scope ends. @param message The new diagnostic context information. @see The #push method. */ NDC(const CFStringRef& message); /** Push new diagnostic context information for the current thread.

The contents of the message parameter is determined solely by the client. @param message The new diagnostic context information. */ static void push(const CFStringRef& message); /** * Gets the current NDC value. * @param dst destination. * @return true if NDC value set. */ static bool peek(CFStringRef& dst); /** * Gets and removes the current NDC value. * @param dst destination. * @return true if NDC value set. */ static bool pop(CFStringRef& dst); #endif private: NDC(const NDC&); NDC& operator=(const NDC&); static LogString& getMessage(DiagnosticContext& ctx); static LogString& getFullMessage(DiagnosticContext& ctx); }; // class NDC; } // namespace log4cxx #if defined(_MSC_VER) #pragma warning (pop) #endif #endif // _LOG4CXX_NDC_H apache-log4cxx-0.10.0/src/main/include/log4cxx/logger.h100644 0 0 222326 10774263402 17760 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_LOGGER_H #define _LOG4CXX_LOGGER_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include #include #include namespace log4cxx { namespace helpers { class synchronized; } namespace spi { class LoggerRepository; LOG4CXX_PTR_DEF(LoggerRepository); class LoggerFactory; LOG4CXX_PTR_DEF(LoggerFactory); } class Logger; /** smart pointer to a Logger class */ LOG4CXX_PTR_DEF(Logger); LOG4CXX_LIST_DEF(LoggerList, LoggerPtr); /** This is the central class in the log4cxx package. Most logging operations, except configuration, are done through this class. */ class LOG4CXX_EXPORT Logger : public virtual log4cxx::spi::AppenderAttachable, public virtual helpers::ObjectImpl { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(Logger) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(Logger) LOG4CXX_CAST_ENTRY(spi::AppenderAttachable) END_LOG4CXX_CAST_MAP() private: /** * Reference to memory pool. */ helpers::Pool* pool; protected: /** The name of this logger. */ LogString name; /** The assigned level of this logger. The level variable need not be assigned a value in which case it is inherited form the hierarchy. */ LevelPtr level; /** The parent of this logger. All loggers have at least one ancestor which is the root logger. */ LoggerPtr parent; /** The resourceBundle for localized messages. @see setResourceBundle, getResourceBundle */ helpers::ResourceBundlePtr resourceBundle; // Loggers need to know what Hierarchy they are in log4cxx::spi::LoggerRepository * repository; helpers::AppenderAttachableImplPtr aai; /** Additivity is set to true by default, that is children inherit the appenders of their ancestors by default. If this variable is set to false then the appenders found in the ancestors of this logger are not used. However, the children of this logger will inherit its appenders, unless the children have their additivity flag set to false too. See the user manual for more details. */ bool additive; protected: friend class DefaultLoggerFactory; /** This constructor created a new logger instance and sets its name.

It is intended to be used by sub-classes only. You should not create categories directly. @param pool lifetime of pool must be longer than logger. @param name The name of the logger. */ Logger(log4cxx::helpers::Pool& pool, const LogString& name); public: ~Logger(); void addRef() const; void releaseRef() const; /** Add newAppender to the list of appenders of this Logger instance.

If newAppender is already in the list of appenders, then it won't be added again. */ virtual void addAppender(const AppenderPtr& newAppender); /** Call the appenders in the hierrachy starting at this. If no appenders could be found, emit a warning.

This method calls all the appenders inherited from the hierarchy circumventing any evaluation of whether to log or not to log the particular log request. @param event the event to log. @param p memory pool for any allocations needed to process request. */ void callAppenders(const log4cxx::spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p) const; /** Close all attached appenders implementing the AppenderAttachable interface. */ void closeNestedAppenders(); /** Log a message string with the DEBUG level.

This method first checks if this logger is DEBUG enabled by comparing the level of this logger with the DEBUG level. If this logger is DEBUG enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. @param location location of source of logging request. */ void debug(const std::string& msg, const log4cxx::spi::LocationInfo& location) const; /** Log a message string with the DEBUG level.

This method first checks if this logger is DEBUG enabled by comparing the level of this logger with the DEBUG level. If this logger is DEBUG enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. */ void debug(const std::string& msg) const; #if LOG4CXX_WCHAR_T_API /** Log a message string with the DEBUG level.

This method first checks if this logger is DEBUG enabled by comparing the level of this logger with the DEBUG level. If this logger is DEBUG enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. @param location location of source of logging request. */ void debug(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) const; /** Log a message string with the DEBUG level.

This method first checks if this logger is DEBUG enabled by comparing the level of this logger with the DEBUG level. If this logger is DEBUG enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. */ void debug(const std::wstring& msg) const; #endif #if LOG4CXX_UNICHAR_API /** Log a message string with the DEBUG level.

This method first checks if this logger is DEBUG enabled by comparing the level of this logger with the DEBUG level. If this logger is DEBUG enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. @param location location of source of logging request. */ void debug(const std::basic_string& msg, const log4cxx::spi::LocationInfo& location) const; /** Log a message string with the DEBUG level.

This method first checks if this logger is DEBUG enabled by comparing the level of this logger with the DEBUG level. If this logger is DEBUG enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. */ void debug(const std::basic_string& msg) const; #endif #if LOG4CXX_CFSTRING_API /** Log a message string with the DEBUG level.

This method first checks if this logger is DEBUG enabled by comparing the level of this logger with the DEBUG level. If this logger is DEBUG enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. @param location location of source of logging request. */ void debug(const CFStringRef& msg, const log4cxx::spi::LocationInfo& location) const; /** Log a message string with the DEBUG level.

This method first checks if this logger is DEBUG enabled by comparing the level of this logger with the DEBUG level. If this logger is DEBUG enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. */ void debug(const CFStringRef& msg) const; #endif /** Log a message string with the ERROR level.

This method first checks if this logger is ERROR enabled by comparing the level of this logger with the ERROR level. If this logger is ERROR enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. @param location location of source of logging request. */ void error(const std::string& msg, const log4cxx::spi::LocationInfo& location) const; /** Log a message string with the ERROR level.

This method first checks if this logger is ERROR enabled by comparing the level of this logger with the ERROR level. If this logger is ERROR enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. */ void error(const std::string& msg) const; #if LOG4CXX_WCHAR_T_API /** Log a message string with the ERROR level.

This method first checks if this logger is ERROR enabled by comparing the level of this logger with the ERROR level. If this logger is ERROR enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. */ void error(const std::wstring& msg) const; /** Log a message string with the ERROR level.

This method first checks if this logger is ERROR enabled by comparing the level of this logger with the ERROR level. If this logger is ERROR enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. @param location location of source of logging request. */ void error(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) const; #endif #if LOG4CXX_UNICHAR_API /** Log a message string with the ERROR level.

This method first checks if this logger is ERROR enabled by comparing the level of this logger with the ERROR level. If this logger is ERROR enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. @param location location of source of logging request. */ void error(const std::basic_string& msg, const log4cxx::spi::LocationInfo& location) const; /** Log a message string with the ERROR level.

This method first checks if this logger is ERROR enabled by comparing the level of this logger with the ERROR level. If this logger is ERROR enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. */ void error(const std::basic_string& msg) const; #endif #if LOG4CXX_CFSTRING_API /** Log a message string with the ERROR level.

This method first checks if this logger is ERROR enabled by comparing the level of this logger with the ERROR level. If this logger is ERROR enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. @param location location of source of logging request. */ void error(const CFStringRef& msg, const log4cxx::spi::LocationInfo& location) const; /** Log a message string with the ERROR level.

This method first checks if this logger is ERROR enabled by comparing the level of this logger with the ERROR level. If this logger is ERROR enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. */ void error(const CFStringRef& msg) const; #endif /** Log a message string with the FATAL level.

This method first checks if this logger is FATAL enabled by comparing the level of this logger with the FATAL level. If this logger is FATAL enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. @param location location of source of logging request. */ void fatal(const std::string& msg, const log4cxx::spi::LocationInfo& location) const; /** Log a message string with the ERROR level.

This method first checks if this logger is ERROR enabled by comparing the level of this logger with the ERROR level. If this logger is ERROR enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. */ void fatal(const std::string& msg) const; #if LOG4CXX_WCHAR_T_API /** Log a message string with the ERROR level.

This method first checks if this logger is ERROR enabled by comparing the level of this logger with the ERROR level. If this logger is ERROR enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. @param location location of source of logging request. */ void fatal(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) const; /** Log a message string with the ERROR level.

This method first checks if this logger is ERROR enabled by comparing the level of this logger with the ERROR level. If this logger is ERROR enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. */ void fatal(const std::wstring& msg) const; #endif #if LOG4CXX_UNICHAR_API /** Log a message string with the ERROR level.

This method first checks if this logger is ERROR enabled by comparing the level of this logger with the ERROR level. If this logger is ERROR enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. @param location location of source of logging request. */ void fatal(const std::basic_string& msg, const log4cxx::spi::LocationInfo& location) const; /** Log a message string with the ERROR level.

This method first checks if this logger is ERROR enabled by comparing the level of this logger with the ERROR level. If this logger is ERROR enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. */ void fatal(const std::basic_string& msg) const; #endif #if LOG4CXX_CFSTRING_API /** Log a message string with the ERROR level.

This method first checks if this logger is ERROR enabled by comparing the level of this logger with the ERROR level. If this logger is ERROR enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. @param location location of source of logging request. */ void fatal(const CFStringRef& msg, const log4cxx::spi::LocationInfo& location) const; /** Log a message string with the ERROR level.

This method first checks if this logger is ERROR enabled by comparing the level of this logger with the ERROR level. If this logger is ERROR enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. */ void fatal(const CFStringRef& msg) const; #endif /** This method creates a new logging event and logs the event without further checks. @param level the level to log. @param message message. @param location location of source of logging request. */ void forcedLog(const LevelPtr& level, const std::string& message, const log4cxx::spi::LocationInfo& location) const; /** This method creates a new logging event and logs the event without further checks. @param level the level to log. @param message message. */ void forcedLog(const LevelPtr& level, const std::string& message) const; #if LOG4CXX_WCHAR_T_API /** This method creates a new logging event and logs the event without further checks. @param level the level to log. @param message message. @param location location of source of logging request. */ void forcedLog(const LevelPtr& level, const std::wstring& message, const log4cxx::spi::LocationInfo& location) const; /** This method creates a new logging event and logs the event without further checks. @param level the level to log. @param message message. */ void forcedLog(const LevelPtr& level, const std::wstring& message) const; #endif #if LOG4CXX_UNICHAR_API || LOG4CXX_CFSTRING_API /** This method creates a new logging event and logs the event without further checks. @param level the level to log. @param message message. @param location location of source of logging request. */ void forcedLog(const LevelPtr& level, const std::basic_string& message, const log4cxx::spi::LocationInfo& location) const; /** This method creates a new logging event and logs the event without further checks. @param level the level to log. @param message message. */ void forcedLog(const LevelPtr& level, const std::basic_string& message) const; #endif #if LOG4CXX_CFSTRING_API /** This method creates a new logging event and logs the event without further checks. @param level the level to log. @param message message. @param location location of source of logging request. */ void forcedLog(const LevelPtr& level, const CFStringRef& message, const log4cxx::spi::LocationInfo& location) const; /** This method creates a new logging event and logs the event without further checks. @param level the level to log. @param message message. */ void forcedLog(const LevelPtr& level, const CFStringRef& message) const; #endif /** This method creates a new logging event and logs the event without further checks. @param level the level to log. @param message the message string to log. @param location location of the logging statement. */ void forcedLogLS(const LevelPtr& level, const LogString& message, const log4cxx::spi::LocationInfo& location) const; /** Get the additivity flag for this Logger instance. */ bool getAdditivity() const; /** Get the appenders contained in this logger as an AppenderList. If no appenders can be found, then an empty AppenderList is returned. @return AppenderList An collection of the appenders in this logger.*/ AppenderList getAllAppenders() const; /** Look for the appender named as name.

Return the appender with that name if in the list. Return NULL otherwise. */ AppenderPtr getAppender(const LogString& name) const; /** Starting from this logger, search the logger hierarchy for a non-null level and return it.

The Logger class is designed so that this method executes as quickly as possible. @throws RuntimeException if all levels are null in the hierarchy */ virtual const LevelPtr& getEffectiveLevel() const; /** Return the the LoggerRepository where this Logger is attached. */ log4cxx::spi::LoggerRepositoryPtr getLoggerRepository() const; /** * Get the logger name. * @return logger name as LogString. */ const LogString getName() const { return name; } /** * Get logger name in current encoding. * @param name buffer to which name is appended. */ void getName(std::string& name) const; #if LOG4CXX_WCHAR_T_API /** * Get logger name. * @param name buffer to which name is appended. */ void getName(std::wstring& name) const; #endif #if LOG4CXX_UNICHAR_API /** * Get logger name. * @param name buffer to which name is appended. */ void getName(std::basic_string& name) const; #endif #if LOG4CXX_CFSTRING_API /** * Get logger name. * @param name buffer to which name is appended. */ void getName(CFStringRef& name) const; #endif /** Returns the parent of this logger. Note that the parent of a given logger may change during the lifetime of the logger.

The root logger will return 0. */ LoggerPtr getParent() const; /** Returns the assigned Level, if any, for this Logger. @return Level - the assigned Level, can be null. */ LevelPtr getLevel() const; /** * Retrieve a logger by name in current encoding. * @param name logger name. */ static LoggerPtr getLogger(const std::string& name); /** * Retrieve a logger by name in current encoding. * @param name logger name. */ static LoggerPtr getLogger(const char* const name); #if LOG4CXX_WCHAR_T_API /** * Retrieve a logger by name. * @param name logger name. */ static LoggerPtr getLogger(const std::wstring& name); /** * Retrieve a logger by name. * @param name logger name. */ static LoggerPtr getLogger(const wchar_t* const name); #endif #if LOG4CXX_UNICHAR_API /** * Retrieve a logger by name. * @param name logger name. */ static LoggerPtr getLogger(const std::basic_string& name); #endif #if LOG4CXX_CFSTRING_API /** * Retrieve a logger by name. * @param name logger name. */ static LoggerPtr getLogger(const CFStringRef& name); #endif /** * Retrieve a logger by name in Unicode. * @param name logger name. */ static LoggerPtr getLoggerLS(const LogString& name); /** Retrieve the root logger. */ static LoggerPtr getRootLogger(); /** Like #getLogger except that the type of logger instantiated depends on the type returned by the LoggerFactory#makeNewLoggerInstance method of the factory parameter.

This method is intended to be used by sub-classes. @param name The name of the logger to retrieve. @param factory A LoggerFactory implementation that will actually create a new Instance. */ static LoggerPtr getLoggerLS(const LogString& name, const log4cxx::spi::LoggerFactoryPtr& factory); /** Like #getLogger except that the type of logger instantiated depends on the type returned by the LoggerFactory#makeNewLoggerInstance method of the factory parameter.

This method is intended to be used by sub-classes. @param name The name of the logger to retrieve. @param factory A LoggerFactory implementation that will actually create a new Instance. */ static LoggerPtr getLogger(const std::string& name, const log4cxx::spi::LoggerFactoryPtr& factory); #if LOG4CXX_WCHAR_T_API /** Like #getLogger except that the type of logger instantiated depends on the type returned by the LoggerFactory#makeNewLoggerInstance method of the factory parameter.

This method is intended to be used by sub-classes. @param name The name of the logger to retrieve. @param factory A LoggerFactory implementation that will actually create a new Instance. */ static LoggerPtr getLogger(const std::wstring& name, const log4cxx::spi::LoggerFactoryPtr& factory); #endif #if LOG4CXX_UNICHAR_API /** Like #getLogger except that the type of logger instantiated depends on the type returned by the LoggerFactory#makeNewLoggerInstance method of the factory parameter.

This method is intended to be used by sub-classes. @param name The name of the logger to retrieve. @param factory A LoggerFactory implementation that will actually create a new Instance. */ static LoggerPtr getLogger(const std::basic_string& name, const log4cxx::spi::LoggerFactoryPtr& factory); #endif #if LOG4CXX_CFSTRING_API /** Like #getLogger except that the type of logger instantiated depends on the type returned by the LoggerFactory#makeNewLoggerInstance method of the factory parameter.

This method is intended to be used by sub-classes. @param name The name of the logger to retrieve. @param factory A LoggerFactory implementation that will actually create a new Instance. */ static LoggerPtr getLogger(const CFStringRef& name, const log4cxx::spi::LoggerFactoryPtr& factory); #endif /** Return the inherited ResourceBundle for this logger. This method walks the hierarchy to find the appropriate resource bundle. It will return the resource bundle attached to the closest ancestor of this logger, much like the way priorities are searched. In case there is no bundle in the hierarchy then NULL is returned. */ helpers::ResourceBundlePtr getResourceBundle() const; protected: /** Returns the string resource coresponding to key in this logger's inherited resource bundle. If the resource cannot be found, then an {@link #error error} message will be logged complaining about the missing resource. @see #getResourceBundle. */ LogString getResourceBundleString(const LogString& key) const; public: /** Log a message string with the INFO level.

This method first checks if this logger is INFO enabled by comparing the level of this logger with the INFO level. If this logger is INFO enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. @param location location of source of logging request. */ void info(const std::string& msg, const log4cxx::spi::LocationInfo& location) const; void info(const std::string& msg) const; #if LOG4CXX_WCHAR_T_API /** Log a message string with the INFO level.

This method first checks if this logger is INFO enabled by comparing the level of this logger with the INFO level. If this logger is INFO enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. @param location location of source of logging request. */ void info(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) const; /** Log a message string with the INFO level.

This method first checks if this logger is INFO enabled by comparing the level of this logger with the INFO level. If this logger is INFO enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. */ void info(const std::wstring& msg) const; #endif #if LOG4CXX_UNICHAR_API /** Log a message string with the INFO level.

This method first checks if this logger is INFO enabled by comparing the level of this logger with the INFO level. If this logger is INFO enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. @param location location of source of logging request. */ void info(const std::basic_string& msg, const log4cxx::spi::LocationInfo& location) const; /** Log a message string with the INFO level.

This method first checks if this logger is INFO enabled by comparing the level of this logger with the INFO level. If this logger is INFO enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. */ void info(const std::basic_string& msg) const; #endif #if LOG4CXX_CFSTRING_API /** Log a message string with the INFO level.

This method first checks if this logger is INFO enabled by comparing the level of this logger with the INFO level. If this logger is INFO enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. @param location location of source of logging request. */ void info(const CFStringRef& msg, const log4cxx::spi::LocationInfo& location) const; /** Log a message string with the INFO level.

This method first checks if this logger is INFO enabled by comparing the level of this logger with the INFO level. If this logger is INFO enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. */ void info(const CFStringRef& msg) const; #endif /** Is the appender passed as parameter attached to this logger? */ bool isAttached(const AppenderPtr& appender) const; /** * Check whether this logger is enabled for the DEBUG * Level. * *

This function is intended to lessen the computational cost of * disabled log debug statements. * *

For some logger Logger object, when you write, *

        *      logger->debug("debug message");
        *  
* *

You incur the cost constructing the message, concatenation in * this case, regardless of whether the message is logged or not. * *

If you are worried about speed, then you should write *

        *    if(logger->isDebugEnabled()) {
        *      logger->debug("debug message");
        *    }
        *  
* *

This way you will not incur the cost of parameter * construction if debugging is disabled for logger. On * the other hand, if the logger is debug enabled, you * will incur the cost of evaluating whether the logger is debug * enabled twice. Once in isDebugEnabled and once in * the debug. This is an insignificant overhead * since evaluating a logger takes about 1%% of the time it * takes to actually log. * * @return bool - true if this logger is debug * enabled, false otherwise. * */ bool isDebugEnabled() const; /** Check whether this logger is enabled for a given Level passed as parameter. See also #isDebugEnabled. @return bool True if this logger is enabled for level. */ bool isEnabledFor(const LevelPtr& level) const; /** Check whether this logger is enabled for the info Level. See also #isDebugEnabled. @return bool - true if this logger is enabled for level info, false otherwise. */ bool isInfoEnabled() const; /** Check whether this logger is enabled for the warn Level. See also #isDebugEnabled. @return bool - true if this logger is enabled for level warn, false otherwise. */ bool isWarnEnabled() const; /** Check whether this logger is enabled for the error Level. See also #isDebugEnabled. @return bool - true if this logger is enabled for level error, false otherwise. */ bool isErrorEnabled() const; /** Check whether this logger is enabled for the fatal Level. See also #isDebugEnabled. @return bool - true if this logger is enabled for level fatal, false otherwise. */ bool isFatalEnabled() const; /** Check whether this logger is enabled for the trace level. See also #isDebugEnabled. @return bool - true if this logger is enabled for level trace, false otherwise. */ bool isTraceEnabled() const; /** Log a localized and parameterized message. First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params. @param level The level of the logging request. @param key The key to be searched in the ResourceBundle. @param locationInfo The location info of the logging request. @param values The values for the placeholders {0}, {1} etc. within the pattern. @see #setResourceBundle */ void l7dlog(const LevelPtr& level, const LogString& key, const log4cxx::spi::LocationInfo& locationInfo, const std::vector& values) const; /** Log a localized and parameterized message. First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params. @param level The level of the logging request. @param key The key to be searched in the ResourceBundle. @param locationInfo The location info of the logging request. @see #setResourceBundle */ void l7dlog(const LevelPtr& level, const std::string& key, const log4cxx::spi::LocationInfo& locationInfo) const; /** Log a localized and parameterized message. First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params. @param level The level of the logging request. @param key The key to be searched in the ResourceBundle. @param locationInfo The location info of the logging request. @param val1 The first value for the placeholders within the pattern. @see #setResourceBundle */ void l7dlog(const LevelPtr& level, const std::string& key, const log4cxx::spi::LocationInfo& locationInfo, const std::string& val1) const; /** Log a localized and parameterized message. First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params. @param level The level of the logging request. @param key The key to be searched in the ResourceBundle. @param locationInfo The location info of the logging request. @param val1 The first value for the placeholders within the pattern. @param val2 The second value for the placeholders within the pattern. @see #setResourceBundle */ void l7dlog(const LevelPtr& level, const std::string& key, const log4cxx::spi::LocationInfo& locationInfo, const std::string& val1, const std::string& val2) const; /** Log a localized and parameterized message. First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params. @param level The level of the logging request. @param key The key to be searched in the ResourceBundle. @param locationInfo The location info of the logging request. @param val1 The value for the first placeholder within the pattern. @param val2 The value for the second placeholder within the pattern. @param val3 The value for the third placeholder within the pattern. @see #setResourceBundle */ void l7dlog(const LevelPtr& level, const std::string& key, const log4cxx::spi::LocationInfo& locationInfo, const std::string& val1, const std::string& val2, const std::string& val3) const; #if LOG4CXX_WCHAR_T_API /** Log a localized and parameterized message. First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params. @param level The level of the logging request. @param key The key to be searched in the ResourceBundle. @param locationInfo The location info of the logging request. @see #setResourceBundle */ void l7dlog(const LevelPtr& level, const std::wstring& key, const log4cxx::spi::LocationInfo& locationInfo) const; /** Log a localized and parameterized message. First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params. @param level The level of the logging request. @param key The key to be searched in the ResourceBundle. @param locationInfo The location info of the logging request. @param val1 The value for the first placeholder within the pattern. @see #setResourceBundle */ void l7dlog(const LevelPtr& level, const std::wstring& key, const log4cxx::spi::LocationInfo& locationInfo, const std::wstring& val1) const; /** Log a localized and parameterized message. First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params. @param level The level of the logging request. @param key The key to be searched in the ResourceBundle. @param locationInfo The location info of the logging request. @param val1 The value for the first placeholder within the pattern. @param val2 The value for the second placeholder within the pattern. @see #setResourceBundle */ void l7dlog(const LevelPtr& level, const std::wstring& key, const log4cxx::spi::LocationInfo& locationInfo, const std::wstring& val1, const std::wstring& val2) const; /** Log a localized and parameterized message. First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params. @param level The level of the logging request. @param key The key to be searched in the ResourceBundle. @param locationInfo The location info of the logging request. @param val1 The value for the first placeholder within the pattern. @param val2 The value for the second placeholder within the pattern. @param val3 The value for the third placeholder within the pattern. @see #setResourceBundle */ void l7dlog(const LevelPtr& level, const std::wstring& key, const log4cxx::spi::LocationInfo& locationInfo, const std::wstring& val1, const std::wstring& val2, const std::wstring& val3) const; #endif #if LOG4CXX_UNICHAR_API /** Log a localized and parameterized message. First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params. @param level The level of the logging request. @param key The key to be searched in the ResourceBundle. @param locationInfo The location info of the logging request. @see #setResourceBundle */ void l7dlog(const LevelPtr& level, const std::basic_string& key, const log4cxx::spi::LocationInfo& locationInfo) const; /** Log a localized and parameterized message. First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params. @param level The level of the logging request. @param key The key to be searched in the ResourceBundle. @param locationInfo The location info of the logging request. @param val1 The value for the first placeholder within the pattern. @see #setResourceBundle */ void l7dlog(const LevelPtr& level, const std::basic_string& key, const log4cxx::spi::LocationInfo& locationInfo, const std::basic_string& val1) const; /** Log a localized and parameterized message. First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params. @param level The level of the logging request. @param key The key to be searched in the ResourceBundle. @param locationInfo The location info of the logging request. @param val1 The value for the first placeholder within the pattern. @param val2 The value for the second placeholder within the pattern. @see #setResourceBundle */ void l7dlog(const LevelPtr& level, const std::basic_string& key, const log4cxx::spi::LocationInfo& locationInfo, const std::basic_string& val1, const std::basic_string& val2) const; /** Log a localized and parameterized message. First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params. @param level The level of the logging request. @param key The key to be searched in the ResourceBundle. @param locationInfo The location info of the logging request. @param val1 The value for the first placeholder within the pattern. @param val2 The value for the second placeholder within the pattern. @param val3 The value for the third placeholder within the pattern. @see #setResourceBundle */ void l7dlog(const LevelPtr& level, const std::basic_string& key, const log4cxx::spi::LocationInfo& locationInfo, const std::basic_string& val1, const std::basic_string& val2, const std::basic_string& val3) const; #endif #if LOG4CXX_CFSTRING_API /** Log a localized and parameterized message. First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params. @param level The level of the logging request. @param key The key to be searched in the ResourceBundle. @param locationInfo The location info of the logging request. @see #setResourceBundle */ void l7dlog(const LevelPtr& level, const CFStringRef& key, const log4cxx::spi::LocationInfo& locationInfo) const; /** Log a localized and parameterized message. First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params. @param level The level of the logging request. @param key The key to be searched in the ResourceBundle. @param locationInfo The location info of the logging request. @param val1 The value for the first placeholder within the pattern. @see #setResourceBundle */ void l7dlog(const LevelPtr& level, const CFStringRef& key, const log4cxx::spi::LocationInfo& locationInfo, const CFStringRef& val1) const; /** Log a localized and parameterized message. First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params. @param level The level of the logging request. @param key The key to be searched in the ResourceBundle. @param locationInfo The location info of the logging request. @param val1 The value for the first placeholder within the pattern. @param val2 The value for the second placeholder within the pattern. @see #setResourceBundle */ void l7dlog(const LevelPtr& level, const CFStringRef& key, const log4cxx::spi::LocationInfo& locationInfo, const CFStringRef& val1, const CFStringRef& val2) const; /** Log a localized and parameterized message. First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params. @param level The level of the logging request. @param key The key to be searched in the ResourceBundle. @param locationInfo The location info of the logging request. @param val1 The value for the first placeholder within the pattern. @param val2 The value for the second placeholder within the pattern. @param val3 The value for the third placeholder within the pattern. @see #setResourceBundle */ void l7dlog(const LevelPtr& level, const CFStringRef& key, const log4cxx::spi::LocationInfo& locationInfo, const CFStringRef& val1, const CFStringRef& val2, const CFStringRef& val3) const; #endif /** This is the most generic printing method. It is intended to be invoked by wrapper classes. @param level The level of the logging request. @param message The message of the logging request. @param location The source file of the logging request, may be null. */ void log(const LevelPtr& level, const std::string& message, const log4cxx::spi::LocationInfo& location) const; /** This is the most generic printing method. It is intended to be invoked by wrapper classes. @param level The level of the logging request. @param message The message of the logging request. */ void log(const LevelPtr& level, const std::string& message) const; #if LOG4CXX_WCHAR_T_API /** This is the most generic printing method. It is intended to be invoked by wrapper classes. @param level The level of the logging request. @param message The message of the logging request. @param location The source file of the logging request, may be null. */ void log(const LevelPtr& level, const std::wstring& message, const log4cxx::spi::LocationInfo& location) const; /** This is the most generic printing method. It is intended to be invoked by wrapper classes. @param level The level of the logging request. @param message The message of the logging request. */ void log(const LevelPtr& level, const std::wstring& message) const; #endif #if LOG4CXX_UNICHAR_API /** This is the most generic printing method. It is intended to be invoked by wrapper classes. @param level The level of the logging request. @param message The message of the logging request. @param location The source file of the logging request, may be null. */ void log(const LevelPtr& level, const std::basic_string& message, const log4cxx::spi::LocationInfo& location) const; /** This is the most generic printing method. It is intended to be invoked by wrapper classes. @param level The level of the logging request. @param message The message of the logging request. */ void log(const LevelPtr& level, const std::basic_string& message) const; #endif #if LOG4CXX_CFSTRING_API /** This is the most generic printing method. It is intended to be invoked by wrapper classes. @param level The level of the logging request. @param message The message of the logging request. @param location The source file of the logging request, may be null. */ void log(const LevelPtr& level, const CFStringRef& message, const log4cxx::spi::LocationInfo& location) const; /** This is the most generic printing method. It is intended to be invoked by wrapper classes. @param level The level of the logging request. @param message The message of the logging request. */ void log(const LevelPtr& level, const CFStringRef& message) const; #endif /** This is the most generic printing method. It is intended to be invoked by wrapper classes. @param level The level of the logging request. @param message The message of the logging request. @param location The source file of the logging request, may be null. */ void logLS(const LevelPtr& level, const LogString& message, const log4cxx::spi::LocationInfo& location) const; /** Remove all previously added appenders from this logger instance.

This is useful when re-reading configuration information. */ void removeAllAppenders(); /** Remove the appender passed as parameter form the list of appenders. */ void removeAppender(const AppenderPtr& appender); /** Remove the appender with the name passed as parameter form the list of appenders. */ void removeAppender(const LogString& name); /** Set the additivity flag for this Logger instance. */ void setAdditivity(bool additive); protected: friend class Hierarchy; /** Only the Hierarchy class can set the hierarchy of a logger.*/ void setHierarchy(spi::LoggerRepository * repository); public: /** Set the level of this Logger.

As in

    logger->setLevel(Level::getDebug()); 

Null values are admitted. */ virtual void setLevel(const LevelPtr& level); /** Set the resource bundle to be used with localized logging methods. */ inline void setResourceBundle(const helpers::ResourceBundlePtr& bundle) { resourceBundle = bundle; } #if LOG4CXX_WCHAR_T_API /** Log a message string with the WARN level.

This method first checks if this logger is WARN enabled by comparing the level of this logger with the WARN level. If this logger is WARN enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. @param location location of source of logging request. */ void warn(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) const; /** Log a message string with the WARN level.

This method first checks if this logger is WARN enabled by comparing the level of this logger with the WARN level. If this logger is WARN enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. */ void warn(const std::wstring& msg) const; #endif #if LOG4CXX_UNICHAR_API /** Log a message string with the WARN level.

This method first checks if this logger is WARN enabled by comparing the level of this logger with the WARN level. If this logger is WARN enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. @param location location of source of logging request. */ void warn(const std::basic_string& msg, const log4cxx::spi::LocationInfo& location) const; /** Log a message string with the WARN level.

This method first checks if this logger is WARN enabled by comparing the level of this logger with the WARN level. If this logger is WARN enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. */ void warn(const std::basic_string& msg) const; #endif #if LOG4CXX_CFSTRING_API /** Log a message string with the WARN level.

This method first checks if this logger is WARN enabled by comparing the level of this logger with the WARN level. If this logger is WARN enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. @param location location of source of logging request. */ void warn(const CFStringRef& msg, const log4cxx::spi::LocationInfo& location) const; /** Log a message string with the WARN level.

This method first checks if this logger is WARN enabled by comparing the level of this logger with the WARN level. If this logger is WARN enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. */ void warn(const CFStringRef& msg) const; #endif /** Log a message string with the WARN level.

This method first checks if this logger is WARN enabled by comparing the level of this logger with the WARN level. If this logger is WARN enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. @param location location of source of logging request. */ void warn(const std::string& msg, const log4cxx::spi::LocationInfo& location) const; /** Log a message string with the WARN level.

This method first checks if this logger is WARN enabled by comparing the level of this logger with the WARN level. If this logger is WARN enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. */ void warn(const std::string& msg) const; #if LOG4CXX_WCHAR_T_API /** Log a message string with the TRACE level.

This method first checks if this logger is TRACE enabled by comparing the level of this logger with the TRACE level. If this logger is TRACE enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. @param location location of source of logging request. */ void trace(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) const; /** Log a message string with the TRACE level.

This method first checks if this logger is TRACE enabled by comparing the level of this logger with the TRACE level. If this logger is TRACE enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. */ void trace(const std::wstring& msg) const; #endif #if LOG4CXX_UNICHAR_API /** Log a message string with the TRACE level.

This method first checks if this logger is TRACE enabled by comparing the level of this logger with the TRACE level. If this logger is TRACE enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. @param location location of source of logging request. */ void trace(const std::basic_string& msg, const log4cxx::spi::LocationInfo& location) const; /** Log a message string with the TRACE level.

This method first checks if this logger is TRACE enabled by comparing the level of this logger with the TRACE level. If this logger is TRACE enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. */ void trace(const std::basic_string& msg) const; #endif #if LOG4CXX_CFSTRING_API /** Log a message string with the TRACE level.

This method first checks if this logger is TRACE enabled by comparing the level of this logger with the TRACE level. If this logger is TRACE enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. @param location location of source of logging request. */ void trace(const CFStringRef& msg, const log4cxx::spi::LocationInfo& location) const; /** Log a message string with the TRACE level.

This method first checks if this logger is TRACE enabled by comparing the level of this logger with the TRACE level. If this logger is TRACE enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. */ void trace(const CFStringRef& msg) const; #endif /** Log a message string with the TRACE level.

This method first checks if this logger is TRACE enabled by comparing the level of this logger with the TRACE level. If this logger is TRACE enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. @param location location of source of logging request. */ void trace(const std::string& msg, const log4cxx::spi::LocationInfo& location) const; /** Log a message string with the TRACE level.

This method first checks if this logger is TRACE enabled by comparing the level of this logger with the TRACE level. If this logger is TRACE enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag. @param msg the message string to log. */ void trace(const std::string& msg) const; inline const log4cxx::helpers::Mutex& getMutex() const { return mutex; } private: // // prevent copy and assignment Logger(const Logger&); Logger& operator=(const Logger&); log4cxx::helpers::Mutex mutex; friend class log4cxx::helpers::synchronized; }; LOG4CXX_LIST_DEF(LoggerList, LoggerPtr); } /** @addtogroup LoggingMacros Logging macros @{ */ #if !defined(LOG4CXX_UNLIKELY) #if __GNUC__ >= 3 /** Provides optimization hint to the compiler to optimize for the expression being false. @param expr boolean expression. @returns value of expression. */ #define LOG4CXX_UNLIKELY(expr) __builtin_expect(expr, 0) #else /** Provides optimization hint to the compiler to optimize for the expression being false. @param expr boolean expression. @returns value of expression. **/ #define LOG4CXX_UNLIKELY(expr) expr #endif #endif /** Logs a message to a specified logger with a specified level. @param logger the logger to be used. @param level the level to log. @param message the message string to log. */ #define LOG4CXX_LOG(logger, level, message) { \ if (logger->isEnabledFor(level)) {\ ::log4cxx::helpers::MessageBuffer oss_; \ logger->forcedLog(level, oss_.str(oss_ << message), LOG4CXX_LOCATION); } } /** Logs a message to a specified logger with a specified level. @param logger the logger to be used. @param level the level to log. @param message the message string to log in the internal encoding. */ #define LOG4CXX_LOGLS(logger, level, message) { \ if (logger->isEnabledFor(level)) {\ ::log4cxx::helpers::LogCharMessageBuffer oss_; \ logger->forcedLog(level, oss_.str(oss_ << message), LOG4CXX_LOCATION); } } /** Logs a message to a specified logger with the DEBUG level. @param logger the logger to be used. @param message the message string to log. */ #define LOG4CXX_DEBUG(logger, message) { \ if (LOG4CXX_UNLIKELY(logger->isDebugEnabled())) {\ ::log4cxx::helpers::MessageBuffer oss_; \ logger->forcedLog(::log4cxx::Level::getDebug(), oss_.str(oss_ << message), LOG4CXX_LOCATION); }} /** Logs a message to a specified logger with the TRACE level. @param logger the logger to be used. @param message the message string to log. */ #define LOG4CXX_TRACE(logger, message) { \ if (LOG4CXX_UNLIKELY(logger->isTraceEnabled())) {\ ::log4cxx::helpers::MessageBuffer oss_; \ logger->forcedLog(::log4cxx::Level::getTrace(), oss_.str(oss_ << message), LOG4CXX_LOCATION); }} /** Logs a message to a specified logger with the INFO level. @param logger the logger to be used. @param message the message string to log. */ #define LOG4CXX_INFO(logger, message) { \ if (logger->isInfoEnabled()) {\ ::log4cxx::helpers::MessageBuffer oss_; \ logger->forcedLog(::log4cxx::Level::getInfo(), oss_.str(oss_ << message), LOG4CXX_LOCATION); }} /** Logs a message to a specified logger with the WARN level. @param logger the logger to be used. @param message the message string to log. */ #define LOG4CXX_WARN(logger, message) { \ if (logger->isWarnEnabled()) {\ ::log4cxx::helpers::MessageBuffer oss_; \ logger->forcedLog(::log4cxx::Level::getWarn(), oss_.str(oss_ << message), LOG4CXX_LOCATION); }} /** Logs a message to a specified logger with the ERROR level. @param logger the logger to be used. @param message the message string to log. */ #define LOG4CXX_ERROR(logger, message) { \ if (logger->isErrorEnabled()) {\ ::log4cxx::helpers::MessageBuffer oss_; \ logger->forcedLog(::log4cxx::Level::getError(), oss_.str(oss_ << message), LOG4CXX_LOCATION); }} /** Logs a error if the condition is not true. @param logger the logger to be used. @param condition condition @param message the message string to log. */ #define LOG4CXX_ASSERT(logger, condition, message) { \ if (!(condition) && logger->isErrorEnabled()) {\ ::log4cxx::helpers::MessageBuffer oss_; \ logger->forcedLog(::log4cxx::Level::getError(), oss_.str(oss_ << message), LOG4CXX_LOCATION); }} /** Logs a message to a specified logger with the FATAL level. @param logger the logger to be used. @param message the message string to log. */ #define LOG4CXX_FATAL(logger, message) { \ if (logger->isFatalEnabled()) {\ ::log4cxx::helpers::MessageBuffer oss_; \ logger->forcedLog(::log4cxx::Level::getFatal(), oss_.str(oss_ << message), LOG4CXX_LOCATION); }} /** Logs a localized message with no parameter. @param logger the logger to be used. @param level the level to log. @param key the key to be searched in the resourceBundle of the logger. */ #define LOG4CXX_L7DLOG(logger, level, key) { \ if (logger->isEnabledFor(level)) {\ logger->l7dlog(level, key, LOG4CXX_LOCATION); }} /** Logs a localized message with one parameter. @param logger the logger to be used. @param level the level to log. @param key the key to be searched in the resourceBundle of the logger. @param p1 the unique parameter. */ #define LOG4CXX_L7DLOG1(logger, level, key, p1) { \ if (logger->isEnabledFor(level)) {\ logger->l7dlog(level, key, LOG4CXX_LOCATION, p1); }} /** Logs a localized message with two parameters. @param logger the logger to be used. @param level the level to log. @param key the key to be searched in the resourceBundle of the logger. @param p1 the first parameter. @param p2 the second parameter. */ #define LOG4CXX_L7DLOG2(logger, level, key, p1, p2) { \ if (logger->isEnabledFor(level)) {\ logger->l7dlog(level, key, LOG4CXX_LOCATION, p1, p2); }} /** Logs a localized message with three parameters. @param logger the logger to be used. @param level the level to log. @param key the key to be searched in the resourceBundle of the logger. @param p1 the first parameter. @param p2 the second parameter. @param p3 the third parameter. */ #define LOG4CXX_L7DLOG3(logger, level, key, p1, p2, p3) { \ if (logger->isEnabledFor(level)) {\ logger->l7dlog(level, key, LOG4CXX_LOCATION, p1, p2, p3); }} /**@}*/ #if defined(_MSC_VER) #pragma warning ( pop ) #endif #include #endif //_LOG4CXX_LOGGER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/appenderskeleton.h100644 0 0 16600 10774263402 22020 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_APPENDER_SKELETON_H #define _LOG4CXX_APPENDER_SKELETON_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include #include #include #include namespace log4cxx { /** * Implementation base class for all appenders. * * This class provides the code for common functionality, such as * support for threshold filtering and support for general filters. * */ class LOG4CXX_EXPORT AppenderSkeleton : public virtual Appender, public virtual helpers::ObjectImpl { protected: /** The layout variable does not need to be set if the appender implementation has its own layout. */ LayoutPtr layout; /** Appenders are named. */ LogString name; /** There is no level threshold filtering by default. */ LevelPtr threshold; /** It is assumed and enforced that errorHandler is never null. */ spi::ErrorHandlerPtr errorHandler; /** The first filter in the filter chain. Set to null initially. */ spi::FilterPtr headFilter; /** The last filter in the filter chain. */ spi::FilterPtr tailFilter; /** Is this appender closed? */ bool closed; log4cxx::helpers::Pool pool; log4cxx::helpers::Mutex mutex; public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(AppenderSkeleton) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(Appender) LOG4CXX_CAST_ENTRY(spi::OptionHandler) END_LOG4CXX_CAST_MAP() AppenderSkeleton(); AppenderSkeleton(const LayoutPtr& layout); void addRef() const; void releaseRef() const; /** Finalize this appender by calling the derived class' close method. */ void finalize(); /** Derived appenders should override this method if option structure requires it. */ virtual void activateOptions(log4cxx::helpers::Pool& /* pool */) {} virtual void setOption(const LogString& option, const LogString& value); /** Add a filter to end of the filter list. */ void addFilter(const spi::FilterPtr& newFilter) ; /** Subclasses of AppenderSkeleton should implement this method to perform actual logging. See also AppenderSkeleton::doAppend method. */ protected: virtual void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p) = 0; /** Clear the filters chain. */ public: void clearFilters(); /** Return the currently set spi::ErrorHandler for this Appender. */ const spi::ErrorHandlerPtr& getErrorHandler() const { return errorHandler; } /** Returns the head Filter. */ spi::FilterPtr getFilter() const { return headFilter; } /** Return the first filter in the filter chain for this Appender. The return value may be 0 if no is filter is set. */ const spi::FilterPtr& getFirstFilter() const { return headFilter; } /** Returns the layout of this appender. The value may be 0. */ LayoutPtr getLayout() const { return layout; } /** Returns the name of this Appender. */ LogString getName() const { return name; } /** Returns this appenders threshold level. See the #setThreshold method for the meaning of this option. */ const LevelPtr& getThreshold() { return threshold; } /** Check whether the message level is below the appender's threshold. If there is no threshold set, then the return value is always true. */ bool isAsSevereAsThreshold(const LevelPtr& level) const; /** * This method performs threshold checks and invokes filters before * delegating actual logging to the subclasses specific * AppenderSkeleton#append method. * */ void doAppend(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& pool); /** Set the {@link spi::ErrorHandler ErrorHandler} for this Appender. */ void setErrorHandler(const spi::ErrorHandlerPtr& eh); /** Set the layout for this appender. Note that some appenders have their own (fixed) layouts or do not use one. For example, the {@link net::SocketAppender SocketAppender} ignores the layout set here. */ void setLayout(const LayoutPtr& layout1) { this->layout = layout1; } /** Set the name of this Appender. */ void setName(const LogString& name1) { this->name.assign(name1); } /** Set the threshold level. All log events with lower level than the threshold level are ignored by the appender.

In configuration files this option is specified by setting the value of the Threshold option to a level string, such as "DEBUG", "INFO" and so on. */ void setThreshold(const LevelPtr& threshold); }; // class AppenderSkeleton } // namespace log4cxx #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif //_LOG4CXX_APPENDER_SKELETON_H apache-log4cxx-0.10.0/src/main/include/log4cxx/propertyconfigurator.h100644 0 0 32347 10774263402 22772 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_PROPERTY_CONFIGURATOR_H #define _LOG4CXX_PROPERTY_CONFIGURATOR_H #if defined(_MSC_VER) #pragma warning (push) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include #include namespace log4cxx { class Logger; typedef helpers::ObjectPtrT LoggerPtr; class Appender; typedef helpers::ObjectPtrT AppenderPtr; namespace helpers { class Properties; } namespace spi { class LoggerFactory; } /** Allows the configuration of log4cxx from an external file. See {@link #doConfigure(const File&, log4cxx::spi::LoggerRepositoryPtr&)} for the expected format.

It is sometimes useful to see how log4cxx is reading configuration files. You can enable log4cxx internal logging by defining the log4j.debug variable.

At class initialization time class, the file log4j.properties will be searched in the current directory. If the file can be found, then it will be fed to the {@link PropertyConfigurator#configure(const File& configFilename)} method.

The PropertyConfigurator does not handle the advanced configuration features supported by the {@link xml::DOMConfigurator DOMConfigurator} such as support for {@link spi::Filter Filters}, custom {@link spi::ErrorHandler ErrorHandlers}, nested appenders such as the {@link AsyncAppender AsyncAppender}, etc.

All option values admit variable substitution. The syntax of variable substitution is similar to that of Unix shells. The string between an opening "${" and closing "}" is interpreted as a key. The value of the substituted variable can be defined as a system property or in the configuration file itself. The value of the key is first searched in the system properties, and if not found there, it is then searched in the configuration file being parsed. The corresponding value replaces the ${variableName} sequence. For example, if java.home system property is set to /home/xyz, then every occurrence of the sequence ${java.home} will be interpreted as /home/xyz. */ class LOG4CXX_EXPORT PropertyConfigurator : virtual public spi::Configurator, virtual public helpers::ObjectImpl { protected: /** Used internally to keep track of configured appenders. */ std::map* registry; /** Used to create new instances of logger */ helpers::ObjectPtrT loggerFactory; public: DECLARE_LOG4CXX_OBJECT(PropertyConfigurator) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(spi::Configurator) END_LOG4CXX_CAST_MAP() PropertyConfigurator(); virtual ~PropertyConfigurator(); void addRef() const; void releaseRef() const; /** Read configuration from a file. The existing configuration is not cleared nor reset. If you require a different behavior, then call {@link LogManager#resetConfiguration resetConfiguration} method before calling doConfigure.

The configuration file consists of statements in the format key=value. The syntax of different configuration elements are discussed below.

Repository-wide threshold

The repository-wide threshold filters logging requests by level regardless of logger. The syntax is:

log4j.threshold=[level]

The level value can consist of the string values OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL or a custom level value. A custom level value can be specified in the form level#classname. By default the repository-wide threshold is set to the lowest possible value, namely the level ALL.

Appender configuration

Appender configuration syntax is:

# For appender named appenderName, set its class.
# Note: The appender name can contain dots.
log4j.appender.appenderName=fully.qualified.name.of.appender.class

# Set appender specific options.
log4j.appender.appenderName.option1=value1
...
log4j.appender.appenderName.optionN=valueN
For each named appender you can configure its {@link Layout Layout}. The syntax for configuring an appender's layout is:
log4j.appender.appenderName.layout=fully.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1=value1
....
log4j.appender.appenderName.layout.optionN=valueN

Configuring loggers

The syntax for configuring the root logger is:

log4j.rootLogger=[level], appenderName, appenderName, ...

This syntax means that an optional level can be supplied followed by appender names separated by commas.

The level value can consist of the string values OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL or a custom level value. A custom level value can be specified in the form level#classname.

If a level value is specified, then the root level is set to the corresponding level. If no level value is specified, then the root level remains untouched.

The root logger can be assigned multiple appenders.

Each appenderName (separated by commas) will be added to the root logger. The named appender is defined using the appender syntax defined above.

For non-root categories the syntax is almost the same:

log4j.logger.logger_name=[level|INHERITED|NULL], appenderName, appenderName,
...

The meaning of the optional level value is discussed above in relation to the root logger. In addition however, the value INHERITED can be specified meaning that the named logger should inherit its level from the logger hierarchy.

If no level value is supplied, then the level of the named logger remains untouched.

By default categories inherit their level from the hierarchy. However, if you set the level of a logger and later decide that that logger should inherit its level, then you should specify INHERITED as the value for the level value. NULL is a synonym for INHERITED.

Similar to the root logger syntax, each appenderName (separated by commas) will be attached to the named logger.

See the appender additivity rule in the user manual for the meaning of the additivity flag.

Logger Factories

The usage of custom logger factories is discouraged and no longer documented.

Example

An example configuration is given below. Other configuration file examples are given in the examples folder.


# Set options for appender named "A1".
# Appender "A1" will be a SyslogAppender
log4j.appender.A1=SyslogAppender

# The syslog daemon resides on www.abc.net
log4j.appender.A1.SyslogHost=www.abc.net

# A1's layout is a PatternLayout, using the conversion pattern
# %r %-5p %c{2} %M.%L %x - %m\n. Thus, the log output will
# include # the relative time since the start of the application in
# milliseconds, followed by the level of the log request,
# followed by the two rightmost components of the logger name,
# followed by the callers method name, followed by the line number,
# the nested disgnostic context and finally the message itself.
# Refer to the documentation of PatternLayout for further information
# on the syntax of the ConversionPattern key.
log4j.appender.A1.layout=PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r %-5p %c{2} %M.%L %x - %m\n

# Set options for appender named "A2"
# A2 should be a RollingFileAppender, with maximum file size of 10 MB
# using at most one backup file. A2's layout is TTCC, using the
# ISO8061 date format with context printing enabled.
log4j.appender.A2=RollingFileAppender
log4j.appender.A2.MaxFileSize=10MB
log4j.appender.A2.MaxBackupIndex=1
log4j.appender.A2.layout=TTCCLayout
log4j.appender.A2.layout.ContextPrinting=enabled
log4j.appender.A2.layout.DateFormat=ISO8601

# Root logger set to DEBUG using the A2 appender defined above.
log4j.rootLogger=DEBUG, A2

# Logger definitions:
# The SECURITY logger inherits is level from root. However, it's output
# will go to A1 appender defined above. It's additivity is non-cumulative.
log4j.logger.SECURITY=INHERIT, A1
log4j.additivity.SECURITY=false

# Only warnings or above will be logged for the logger "SECURITY.access".
# Output will go to A1.
log4j.logger.SECURITY.access=WARN


# The logger "class.of.the.day" inherits its level from the
# logger hierarchy.  Output will go to the appender's of the root
# logger, A2 in this case.
log4j.logger.class.of.the.day=INHERIT

Refer to the setOption method in each Appender and Layout for class specific options.

Use the # or ! characters at the beginning of a line for comments.

@param configFileName The name of the configuration file where the configuration information is stored. @param hierarchy The hierarchy to operation upon. */ void doConfigure(const File& configFileName, spi::LoggerRepositoryPtr& hierarchy); /** Read configuration options from file configFilename. */ static void configure(const File& configFilename); /** Like {@link #configureAndWatch(const File& configFilename, long delay)} except that the default delay as defined by helpers::FileWatchdog#DEFAULT_DELAY is used. @param configFilename A file in key=value format. */ static void configureAndWatch(const File& configFilename); /** Read the configuration file configFilename if it exists. Moreover, a thread will be created that will periodically check if configFilename has been created or modified. The period is determined by the delay argument. If a change or file creation is detected, then configFilename is read to configure log4j. @param configFilename A file in key=value format. @param delay The delay in milliseconds to wait between each check. */ static void configureAndWatch(const File& configFilename, long delay); /** Read configuration options from properties. See #doConfigure(const File&, log4cxx::spi::LoggerRepositoryPtr&) for the expected format. */ static void configure(helpers::Properties& properties); /** Read configuration options from properties. See #doConfigure(const File&, log4cxx::spi::LoggerRepositoryPtr&) for the expected format. */ void doConfigure(helpers::Properties& properties, spi::LoggerRepositoryPtr& hierarchy); // -------------------------------------------------------------------------- // Internal stuff // -------------------------------------------------------------------------- protected: /** Check the provided Properties object for a #loggerFactory entry specified by LOGGER_FACTORY_KEY. If such an entry exists, an attempt is made to create an instance using the default constructor. This instance is used for subsequent Logger creations within this configurator. @see #parseCatsAndRenderers */ void configureLoggerFactory(helpers::Properties& props); void configureRootLogger(helpers::Properties& props, spi::LoggerRepositoryPtr& hierarchy); /** Parse non-root elements, such non-root categories and renderers. */ void parseCatsAndRenderers(helpers::Properties& props, spi::LoggerRepositoryPtr& hierarchy); /** Parse the additivity option for a non-root logger. */ void parseAdditivityForLogger(helpers::Properties& props, LoggerPtr& cat, const LogString& loggerName); /** This method must work for the root logger as well. */ void parseLogger( helpers::Properties& props, LoggerPtr& logger, const LogString& optionKey, const LogString& loggerName, const LogString& value); AppenderPtr parseAppender( helpers::Properties& props, const LogString& appenderName); void registryPut(const AppenderPtr& appender); AppenderPtr registryGet(const LogString& name); private: PropertyConfigurator(const PropertyConfigurator&); PropertyConfigurator& operator=(const PropertyConfigurator&); }; // class PropertyConfigurator } // namespace log4cxx #if defined(_MSC_VER) #pragma warning (pop) #endif #endif //_LOG4CXX_PROPERTY_CONFIGURATOR_H apache-log4cxx-0.10.0/src/main/include/log4cxx/basicconfigurator.h100644 0 0 4232 10774263402 22137 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_BASIC_CONFIGURATOR_H #define _LOG4CXX_BASIC_CONFIGURATOR_H #include #include #include #include #include namespace log4cxx { class Appender; typedef helpers::ObjectPtrT AppenderPtr; /** Use this class to quickly configure the package.

For file based configuration see PropertyConfigurator. For XML based configuration see DOMConfigurator. */ class LOG4CXX_EXPORT BasicConfigurator { protected: BasicConfigurator() {} public: /** Add a ConsoleAppender that uses PatternLayout using the PatternLayout#TTCC_CONVERSION_PATTERN and prints to stdout to the root logger.*/ static void configure(); /** Add appender to the root logger. @param appender The appender to add to the root logger. */ static void configure(const AppenderPtr& appender); /** Reset the default hierarchy to its defaut. It is equivalent to calling Logger::getDefaultHierarchy()->resetConfiguration(). See Hierarchy#resetConfiguration() for more details. */ static void resetConfiguration(); }; // class BasicConfigurator } // namespace log4cxx #endif //_LOG4CXX_BASIC_CONFIGURATOR_H apache-log4cxx-0.10.0/src/main/include/log4cxx/writerappender.h100644 0 0 20077 10774263402 21513 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_WRITER_APPENDER_H #define _LOG4CXX_WRITER_APPENDER_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include namespace log4cxx { namespace helpers { class Transcoder; } /** WriterAppender appends log events to a standard output stream */ class LOG4CXX_EXPORT WriterAppender : public AppenderSkeleton { private: /** Immediate flush means that the underlying writer or output stream will be flushed at the end of each append operation. Immediate flush is slower but ensures that each append request is actually written. If immediateFlush is set to false, then there is a good chance that the last few logs events are not actually written to persistent media if and when the application crashes.

The immediateFlush variable is set to true by default. */ bool immediateFlush; /** The encoding to use when opening an input stream.

The encoding variable is set to "" by default which results in the utilization of the system's default encoding. */ LogString encoding; /** * This is the {@link Writer Writer} where we will write to. */ log4cxx::helpers::WriterPtr writer; public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(WriterAppender) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(WriterAppender) LOG4CXX_CAST_ENTRY_CHAIN(AppenderSkeleton) END_LOG4CXX_CAST_MAP() /** This default constructor does nothing.*/ WriterAppender(); protected: WriterAppender(const LayoutPtr& layout, log4cxx::helpers::WriterPtr& writer); WriterAppender(const LayoutPtr& layout); public: ~WriterAppender(); /** Derived appenders should override this method if option structure requires it. */ virtual void activateOptions(log4cxx::helpers::Pool& pool); /** If the ImmediateFlush option is set to true, the appender will flush at the end of each write. This is the default behavior. If the option is set to false, then the underlying stream can defer writing to physical medium to a later time.

Avoiding the flush operation at the end of each append results in a performance gain of 10 to 20 percent. However, there is safety tradeoff involved in skipping flushing. Indeed, when flushing is skipped, then it is likely that the last few log events will not be recorded on disk when the application exits. This is a high price to pay even for a 20% performance gain. */ void setImmediateFlush(bool value); /** Returns value of the ImmediateFlush option. */ bool getImmediateFlush() const { return immediateFlush; } /** This method is called by the AppenderSkeleton#doAppend method.

If the output stream exists and is writable then write a log statement to the output stream. Otherwise, write a single warning message to stderr.

The format of the output will depend on this appender's layout. */ virtual void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p); protected: /** This method determines if there is a sense in attempting to append.

It checks whether there is a set output target and also if there is a set layout. If these checks fail, then the boolean value false is returned. */ virtual bool checkEntryConditions() const; public: /** Close this appender instance. The underlying stream or writer is also closed.

Closed appenders cannot be reused. */ virtual void close(); protected: /** * Close the underlying {@link log4cxx::helpers::Writer}. * */ void closeWriter(); /** Returns an OutputStreamWriter when passed an OutputStream. The encoding used will depend on the value of the encoding property. If the encoding value is specified incorrectly the writer will be opened using the default system encoding (an error message will be printed to the loglog. */ virtual log4cxx::helpers::WriterPtr createWriter( log4cxx::helpers::OutputStreamPtr& os); public: LogString getEncoding() const; void setEncoding(const LogString& value); void setOption(const LogString& option, const LogString& value); /**

Sets the Writer where the log output will go. The specified Writer must be opened by the user and be writable.

The java.io.Writer will be closed when the appender instance is closed.

WARNING: Logging to an unopened Writer will fail.

@param writer An already opened Writer. */ void setWriter(const log4cxx::helpers::WriterPtr& writer); virtual bool requiresLayout() const; protected: /** Actual writing occurs here. */ virtual void subAppend(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p); /** Write a footer as produced by the embedded layout's Layout#appendFooter method. */ virtual void writeFooter(log4cxx::helpers::Pool& p); /** Write a header as produced by the embedded layout's Layout#appendHeader method. */ virtual void writeHeader(log4cxx::helpers::Pool& p); private: // // prevent copy and assignment WriterAppender(const WriterAppender&); WriterAppender& operator=(const WriterAppender&); }; LOG4CXX_PTR_DEF(WriterAppender); } //namespace log4cxx #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif //_LOG4CXX_WRITER_APPENDER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/log4cxx.hw100644 0 0 5735 10774263402 20223 0ustar 0 0 /* Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef LOG4CXX_LOG4CXX_H #define LOG4CXX_LOG4CXX_H /* GENERATED FILE WARNING! DO NOT EDIT log4cxx.h * * Edit log4cxx.hw instead * */ #define LOG4CXX_LOGCHAR_IS_UTF8 0 #if LOG4CXX_LOGCHAR_IS_UTF8 #define LOG4CXX_LOGCHAR_IS_WCHAR 0 #else #define LOG4CXX_LOGCHAR_IS_WCHAR 1 #endif #define LOG4CXX_LOGCHAR_IS_UNICHAR 0 #define LOG4CXX_CHAR_API 1 #define LOG4CXX_WCHAR_T_API 1 #define LOG4CXX_UNICHAR_API 0 #define LOG4CXX_CFSTRING_API 0 #if defined(_MSC_VER) typedef __int64 log4cxx_int64_t; #if _MSC_VER < 1300 #define LOG4CXX_USE_GLOBAL_SCOPE_TEMPLATE 1 #define LOG4CXX_LOGSTREAM_ADD_NOP 1 #endif #elif defined(__BORLANDC__) typedef __int64 log4cxx_int64_t; #else typedef long long log4cxx_int64_t; #endif typedef log4cxx_int64_t log4cxx_time_t; typedef int log4cxx_status_t; typedef unsigned int log4cxx_uint32_t; // definitions used when using static library #if defined(LOG4CXX_STATIC) #define LOG4CXX_EXPORT // definitions used when building DLL #elif defined(LOG4CXX) #define LOG4CXX_EXPORT __declspec(dllexport) #else // definitions used when using DLL #define LOG4CXX_EXPORT __declspec(dllimport) #endif // // pointer and list definition macros when building DLL using VC // #if defined(_MSC_VER) && !defined(LOG4CXX_STATIC) && defined(LOG4CXX) #define LOG4CXX_PTR_DEF(T) \ template class LOG4CXX_EXPORT log4cxx::helpers::ObjectPtrT; \ typedef log4cxx::helpers::ObjectPtrT T##Ptr #define LOG4CXX_LIST_DEF(N, T) \ template class LOG4CXX_EXPORT std::allocator; \ template class LOG4CXX_EXPORT std::vector; \ typedef std::vector N // // pointer and list definition macros when linking with DLL using VC // #elif defined(_MSC_VER) && !defined(LOG4CXX_STATIC) #define LOG4CXX_PTR_DEF(T) \ extern template class LOG4CXX_EXPORT log4cxx::helpers::ObjectPtrT; \ typedef log4cxx::helpers::ObjectPtrT T##Ptr #define LOG4CXX_LIST_DEF(N, T) \ extern template class LOG4CXX_EXPORT std::allocator; \ extern template class LOG4CXX_EXPORT std::vector; \ typedef std::vector N // // pointer and list definition macros for all other cases // #else #define LOG4CXX_PTR_DEF(T) typedef log4cxx::helpers::ObjectPtrT T##Ptr #define LOG4CXX_LIST_DEF(N, T) typedef std::vector N #endif #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/rollingfileappender.h100644 0 0 10572 10774263402 22504 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_ROLLING_FILE_APPENDER_H #define _LOG4CXX_ROLLING_FILE_APPENDER_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include namespace log4cxx { /** RollingFileAppender extends FileAppender to backup the log files when they reach a certain size. */ class LOG4CXX_EXPORT RollingFileAppender : public log4cxx::rolling::RollingFileAppenderSkeleton { private: /** The default maximum file size is 10MB. */ long maxFileSize; /** There is one backup file by default. */ int maxBackupIndex; public: // // Use custom class to use non-default name to avoid // conflict with log4cxx::rolling::RollingFileAppender DECLARE_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS( RollingFileAppender, ClassRollingFileAppender ) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY( RollingFileAppender ) LOG4CXX_CAST_ENTRY_CHAIN( FileAppender ) END_LOG4CXX_CAST_MAP() /** The default constructor simply calls its {@link FileAppender#FileAppender parents constructor}. */ RollingFileAppender(); /** Instantiate a RollingFileAppender and open the file designated by filename. The opened filename will become the ouput destination for this appender.

If the append parameter is true, the file will be appended to. Otherwise, the file desginated by filename will be truncated before being opened. */ RollingFileAppender( const LayoutPtr & layout, const LogString & fileName, bool append ); /** Instantiate a FileAppender and open the file designated by filename. The opened filename will become the output destination for this appender.

The file will be appended to. */ RollingFileAppender( const LayoutPtr & layout, const LogString & fileName ); virtual ~RollingFileAppender(); /** Returns the value of the MaxBackupIndex option. */ int getMaxBackupIndex() const; /** Get the maximum size that the output file is allowed to reach before being rolled over to backup files. */ long getMaximumFileSize() const; /** Set the maximum number of backup files to keep around.

The MaxBackupIndex option determines how many backup files are kept before the oldest is erased. This option takes a positive integer value. If set to zero, then there will be no backup files and the log file will be truncated when it reaches MaxFileSize. */ void setMaxBackupIndex( int maxBackupIndex ); /** Set the maximum size that the output file is allowed to reach before being rolled over to backup files.

In configuration files, the MaxFileSize option takes an long integer in the range 0 - 2^63. You can specify the value with the suffixes "KB", "MB" or "GB" so that the integer is interpreted being expressed respectively in kilobytes, megabytes or gigabytes. For example, the value "10KB" will be interpreted as 10240. */ void setMaxFileSize( const LogString & value ); void setMaximumFileSize( int value ); virtual void setOption( const LogString & option, const LogString & value ); /** Prepares RollingFileAppender for use. */ void activateOptions( log4cxx::helpers::Pool & pool ); }; // class RollingFileAppender LOG4CXX_PTR_DEF(RollingFileAppender); } // namespace log4cxx #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif //_LOG4CXX_ROLLING_FILE_APPENDER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/consoleappender.h100644 0 0 5507 10774263402 21622 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_CONSOLE_APPENDER_H #define _LOG4CXX_CONSOLE_APPENDER_H #include namespace log4cxx { /** * ConsoleAppender appends log events to stdout or * stderr using a layout specified by the user. The * default target is stdout. */ class LOG4CXX_EXPORT ConsoleAppender : public WriterAppender { private: LogString target; public: DECLARE_LOG4CXX_OBJECT(ConsoleAppender) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(ConsoleAppender) LOG4CXX_CAST_ENTRY_CHAIN(AppenderSkeleton) END_LOG4CXX_CAST_MAP() ConsoleAppender(); ConsoleAppender(const LayoutPtr& layout); ConsoleAppender(const LayoutPtr& layout, const LogString& target); ~ConsoleAppender(); /** * Sets the value of the target property. Recognized values * are "System.out" and "System.err". Any other value will be * ignored. * */ void setTarget(const LogString& value); /** * Returns the current value of the target property. The * default value of the option is "System.out". * * See also #setTarget. * */ LogString getTarget() const; void activateOptions(log4cxx::helpers::Pool& p); void setOption(const LogString& option, const LogString& value); static const LogString& getSystemOut(); static const LogString& getSystemErr(); private: void targetWarn(const LogString& val); static log4cxx::helpers::WriterPtr createWriter(const LogString& target); }; LOG4CXX_PTR_DEF(ConsoleAppender); } //namespace log4cxx #endif //_LOG4CXX_CONSOLE_APPENDER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/stream.h100644 0 0 50443 10774263402 17753 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_STREAM_H #define _LOG4CXX_STREAM_H #include #include #include namespace log4cxx { /** * Base class for the basic_logstream template which attempts * to emulate std::basic_ostream but attempts to short-circuit * unnecessary operations. * * The logstream has a logger and level that are used for logging * requests. The level of the stream is compared against the * current level of the logger to determine if the request should be processed. */ class LOG4CXX_EXPORT logstream_base { public: /** * Create new instance. * @param logger logger logger used in log requests. * @param level indicates level that will be used in log requests. Can * be modified later by inserting a level or calling setLevel. */ logstream_base(const log4cxx::LoggerPtr& logger, const log4cxx::LevelPtr& level); /** * Destructor. */ virtual ~logstream_base(); /** * Insertion operator for std::fixed and similar manipulators. */ void insert(std::ios_base& (*manip)(std::ios_base&)); /** * get precision. */ int precision(); /** * get width. */ int width(); /** * set precision. This should be used in preference to inserting an std::setprecision(n) * since the other requires construction of an STL stream which may be expensive. */ int precision(int newval); /** * set width. This should be used in preference to inserting an std::setw(n) * since the other requires construction of an STL stream which may be expensive. */ int width(int newval); /** * Get fill character. */ int fill(); /** * Set fill character. */ int fill(int newval); /** * Set flags. see std::ios_base. */ std::ios_base::fmtflags flags(std::ios_base::fmtflags newflags); /** * Set flags. see std::ios_base. */ std::ios_base::fmtflags setf(std::ios_base::fmtflags newflags, std::ios_base::fmtflags mask); /** * Set flags. see std::ios_base. */ std::ios_base::fmtflags setf(std::ios_base::fmtflags newflags); /** * end of message manipulator, triggers logging. */ static logstream_base& endmsg(logstream_base&); /** * no-operation manipulator, Used to avoid ambiguity with VC6. */ static logstream_base& nop(logstream_base&); /** * end of message action. */ void end_message(); /** * Set the level. * @param level level */ void setLevel(const LevelPtr& level); /** * Returns true if the current level is the same or high as the * level of logger at time of construction or last setLevel. */ inline bool isEnabled() const { return enabled; } /** * Returns if logger is currently enabled for the specified level. */ bool isEnabledFor(const LevelPtr& level) const; /** * Sets the location for subsequent log requests. */ void setLocation(const log4cxx::spi::LocationInfo& location); /** * Sets the state of the embedded stream (if any) * to the state of the formatting info. * @param os stream to receive formatting info. * @param fillchar receives fill charater. * @return true if fill character was specified. */ bool set_stream_state(std::ios_base& os, int& fillchar); protected: /** * Dispatches the pending log request. */ virtual void log(LoggerPtr& logger, const LevelPtr& level, const log4cxx::spi::LocationInfo& location) = 0; /** * Erase any content in the message construction buffer. */ virtual void erase() = 0; /** * Copy state of embedded stream (if any) * to value and mask instances of std::ios_base * and return fill character value. */ virtual void get_stream_state(std::ios_base& base, std::ios_base& mask, int& fill, bool& fillSet) const = 0; virtual void refresh_stream_state() = 0; private: /** * prevent copy constructor. */ logstream_base(logstream_base&); /** * prevent copy operatpr. */ logstream_base& operator=(logstream_base&); /** * Minimal extension of std::ios_base to allow creation * of embedded IO states. */ class LOG4CXX_EXPORT logstream_ios_base : public std::ios_base { public: logstream_ios_base(std::ios_base::fmtflags initval, int initsize); } initset, initclear; /** * fill character. */ int fillchar; /** * true if fill character is set. */ bool fillset; /** * true if assigned level was same or higher than level of associated logger. */ bool enabled; /** * associated logger. */ log4cxx::LoggerPtr logger; /** * associated level. */ log4cxx::LevelPtr level; /** * associated level. */ log4cxx::spi::LocationInfo location; }; typedef logstream_base& (*logstream_manipulator)(logstream_base&); /** * An STL-like stream API for log4cxx using char as the character type. *. Instances of log4cxx::logstream * are not designedfor use by multiple threads and in general should be short-lived * function scoped objects. Using log4cxx::basic_logstream as a class member or * static instance should be avoided in the same manner as you would avoid placing a std::ostringstream * in those locations. Insertion operations are generally short-circuited if the * level for the stream is not the same of higher that the level of the associated logger. */ class LOG4CXX_EXPORT logstream : public logstream_base { typedef char Ch; public: /** * Constructor. */ logstream(const log4cxx::LoggerPtr& logger, const log4cxx::LevelPtr& level); /** * Constructor. */ logstream(const Ch* loggerName, const log4cxx::LevelPtr& level); /** * Constructor. */ logstream(const std::basic_string& loggerName, const log4cxx::LevelPtr& level); ~logstream(); /** * Insertion operator for std::fixed and similar manipulators. */ logstream& operator<<(std::ios_base& (*manip)(std::ios_base&)); /** * Insertion operator for logstream_base::endmsg. */ logstream& operator<<(logstream_manipulator manip); /** * Insertion operator for level. */ logstream& operator<<(const log4cxx::LevelPtr& level); /** * Insertion operator for location. */ logstream& operator<<(const log4cxx::spi::LocationInfo& location); /** * Alias for insertion operator for location. Kludge to avoid * inappropriate compiler ambiguity. */ logstream& operator>>(const log4cxx::spi::LocationInfo& location); /** * Cast operator to provide access to embedded std::basic_ostream. */ operator std::basic_ostream&(); #if !(LOG4CXX_USE_GLOBAL_SCOPE_TEMPLATE) /** * Template to allow any class with an std::basic_ostream inserter * to be applied to this class. */ template inline log4cxx::logstream& operator<<(const V& val) { if (LOG4CXX_UNLIKELY(isEnabled())) { ((std::basic_ostream&) *this) << val; } return *this; } #endif protected: virtual void log(LoggerPtr& logger, const LevelPtr& level, const log4cxx::spi::LocationInfo& location); virtual void erase(); virtual void get_stream_state(std::ios_base& base, std::ios_base& mask, int& fill, bool& fillSet) const; virtual void refresh_stream_state(); private: logstream(const logstream&); logstream& operator=(const logstream&); std::basic_stringstream* stream; }; #if LOG4CXX_WCHAR_T_API /** * An STL-like stream API for log4cxx using wchar_t as the character type. *. Instances of log4cxx::logstream * are not designedfor use by multiple threads and in general should be short-lived * function scoped objects. Using log4cxx::basic_logstream as a class member or * static instance should be avoided in the same manner as you would avoid placing a std::ostringstream * in those locations. Insertion operations are generally short-circuited if the * level for the stream is not the same of higher that the level of the associated logger. */ class LOG4CXX_EXPORT wlogstream : public logstream_base { typedef wchar_t Ch; public: /** * Constructor. */ wlogstream(const log4cxx::LoggerPtr& logger, const log4cxx::LevelPtr& level); /** * Constructor. */ wlogstream(const Ch* loggerName, const log4cxx::LevelPtr& level); /** * Constructor. */ wlogstream(const std::basic_string& loggerName, const log4cxx::LevelPtr& level); ~wlogstream(); /** * Insertion operator for std::fixed and similar manipulators. */ wlogstream& operator<<(std::ios_base& (*manip)(std::ios_base&)); /** * Insertion operator for logstream_base::endmsg. */ wlogstream& operator<<(logstream_manipulator manip); /** * Insertion operator for level. */ wlogstream& operator<<(const log4cxx::LevelPtr& level); /** * Insertion operator for location. */ wlogstream& operator<<(const log4cxx::spi::LocationInfo& location); /** * Alias for insertion operator for location. Kludge to avoid * inappropriate compiler ambiguity. */ wlogstream& operator>>(const log4cxx::spi::LocationInfo& location); /** * Cast operator to provide access to embedded std::basic_ostream. */ operator std::basic_ostream&(); #if !(LOG4CXX_USE_GLOBAL_SCOPE_TEMPLATE) /** * Template to allow any class with an std::basic_ostream inserter * to be applied to this class. */ template inline log4cxx::wlogstream& operator<<(const V& val) { if (LOG4CXX_UNLIKELY(isEnabled())) { ((std::basic_ostream&) *this) << val; } return *this; } #endif protected: virtual void log(LoggerPtr& logger, const LevelPtr& level, const log4cxx::spi::LocationInfo& location); virtual void erase(); virtual void get_stream_state(std::ios_base& base, std::ios_base& mask, int& fill, bool& fillSet) const; virtual void refresh_stream_state(); private: wlogstream(const wlogstream&); wlogstream& operator=(const wlogstream&); std::basic_stringstream* stream; }; #endif #if LOG4CXX_UNICHAR_API || LOG4CXX_CFSTRING_API /** * An STL-like stream API for log4cxx using UniChar as the character type. *. Instances of log4cxx::logstream * are not designedfor use by multiple threads and in general should be short-lived * function scoped objects. Using log4cxx::basic_logstream as a class member or * static instance should be avoided in the same manner as you would avoid placing a std::ostringstream * in those locations. Insertion operations are generally short-circuited if the * level for the stream is not the same of higher that the level of the associated logger. */ class LOG4CXX_EXPORT ulogstream : public logstream_base { typedef UniChar Ch; public: /** * Constructor. */ ulogstream(const log4cxx::LoggerPtr& logger, const log4cxx::LevelPtr& level); #if LOG4CXX_UNICHAR_API /** * Constructor. */ ulogstream(const Ch* loggerName, const log4cxx::LevelPtr& level); /** * Constructor. */ ulogstream(const std::basic_string& loggerName, const log4cxx::LevelPtr& level); #endif #if LOG4CXX_CFSTRING_API ulogstream(const CFStringRef& loggerName, const log4cxx::LevelPtr& level); #endif ~ulogstream(); /** * Insertion operator for std::fixed and similar manipulators. */ ulogstream& operator<<(std::ios_base& (*manip)(std::ios_base&)); /** * Insertion operator for logstream_base::endmsg. */ ulogstream& operator<<(logstream_manipulator manip); /** * Insertion operator for level. */ ulogstream& operator<<(const log4cxx::LevelPtr& level); /** * Insertion operator for location. */ ulogstream& operator<<(const log4cxx::spi::LocationInfo& location); /** * Alias for insertion operator for location. Kludge to avoid * inappropriate compiler ambiguity. */ ulogstream& operator>>(const log4cxx::spi::LocationInfo& location); /** * Cast operator to provide access to embedded std::basic_ostream. */ operator std::basic_ostream&(); #if !(LOG4CXX_USE_GLOBAL_SCOPE_TEMPLATE) /** * Template to allow any class with an std::basic_ostream inserter * to be applied to this class. */ template inline ulogstream& operator<<(const V& val) { if (LOG4CXX_UNLIKELY(isEnabled())) { ((std::basic_ostream&) *this) << val; } return *this; } #endif protected: virtual void log(LoggerPtr& logger, const LevelPtr& level, const log4cxx::spi::LocationInfo& location); virtual void erase(); virtual void get_stream_state(std::ios_base& base, std::ios_base& mask, int& fill, bool& fillSet) const; virtual void refresh_stream_state(); private: ulogstream(const ulogstream&); ulogstream& operator=(const ulogstream&); std::basic_stringstream* stream; }; #endif } // namespace log4cxx #if LOG4CXX_USE_GLOBAL_SCOPE_TEMPLATE // // VC6 will fail to compile if class-scope templates // are used to handle arbitrary insertion operations. // However, using global namespace insertion operations // run into LOGCXX-150. /** * Template to allow any class with an std::basic_ostream inserter * to be applied to this class. */ template inline log4cxx::logstream& operator<<(log4cxx::logstream& os, const V& val) { if (LOG4CXX_UNLIKELY(os.isEnabled())) { ((std::basic_ostream&) os) << val; } return os; } #if LOG4CXX_WCHAR_T_API /** * Template to allow any class with an std::basic_ostream inserter * to be applied to this class. */ template inline log4cxx::wlogstream& operator<<(log4cxx::wlogstream& os, const V& val) { if (LOG4CXX_UNLIKELY(os.isEnabled())) { ((std::basic_ostream&) os) << val; } return os; } #endif #endif #if !defined(LOG4CXX_ENDMSG) #if LOG4CXX_LOGSTREAM_ADD_NOP #define LOG4CXX_ENDMSG (log4cxx::logstream_manipulator) log4cxx::logstream_base::nop >> LOG4CXX_LOCATION << (log4cxx::logstream_manipulator) log4cxx::logstream_base::endmsg #else #define LOG4CXX_ENDMSG LOG4CXX_LOCATION << (log4cxx::logstream_manipulator) log4cxx::logstream_base::endmsg #endif #endif #endif //_LOG4CXX_STREAM_H apache-log4cxx-0.10.0/src/main/include/log4cxx/Makefile.in100644 0 0 42557 10774264475 20376 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/main/include/log4cxx DIST_COMMON = $(log4cxxinc_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/log4cxx.h.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = log4cxx.h SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(log4cxxincdir)" log4cxxincHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(log4cxxinc_HEADERS) ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # SUBDIRS = helpers net nt rolling spi varia xml config db private pattern filter log4cxxincdir = $(includedir)/log4cxx log4cxxinc_HEADERS = $(top_srcdir)/src/main/include/log4cxx/*.h log4cxx.h DISTCLEANFILES = log4cxx.h EXTRA_DIST = log4cxx.hw all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/include/log4cxx/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/main/include/log4cxx/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh log4cxx.h: $(top_builddir)/config.status $(srcdir)/log4cxx.h.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-log4cxxincHEADERS: $(log4cxxinc_HEADERS) @$(NORMAL_INSTALL) test -z "$(log4cxxincdir)" || $(mkdir_p) "$(DESTDIR)$(log4cxxincdir)" @list='$(log4cxxinc_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(log4cxxincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(log4cxxincdir)/$$f'"; \ $(log4cxxincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(log4cxxincdir)/$$f"; \ done uninstall-log4cxxincHEADERS: @$(NORMAL_UNINSTALL) @list='$(log4cxxinc_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(log4cxxincdir)/$$f'"; \ rm -f "$(DESTDIR)$(log4cxxincdir)/$$f"; \ done # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(mkdir_p) $(distdir)/../../../../src/main/include/log4cxx @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook check-am: all-am check: check-recursive all-am: Makefile $(HEADERS) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(log4cxxincdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-log4cxxincHEADERS install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-info-am uninstall-log4cxxincHEADERS uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ clean clean-generic clean-libtool clean-recursive ctags \ ctags-recursive dist-hook distclean distclean-generic \ distclean-libtool distclean-recursive distclean-tags distdir \ dvi dvi-am html html-am info info-am install install-am \ install-data install-data-am install-exec install-exec-am \ install-info install-info-am install-log4cxxincHEADERS \ install-man install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic maintainer-clean-recursive \ mostlyclean mostlyclean-generic mostlyclean-libtool \ mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am uninstall-info-am \ uninstall-log4cxxincHEADERS dist-hook: -rm -f $(distdir)/log4cxx.h # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/main/include/log4cxx/asyncappender.h100644 0 0 24173 10774263402 21315 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_ASYNC_APPENDER_H #define _LOG4CXX_ASYNC_APPENDER_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include #include #include namespace log4cxx { /** The AsyncAppender lets users log events asynchronously. It uses a bounded buffer to store logging events.

The AsyncAppender will collect the events sent to it and then dispatch them to all the appenders that are attached to it. You can attach multiple appenders to an AsyncAppender.

The AsyncAppender uses a separate thread to serve the events in its bounded buffer.

Important note: The AsyncAppender can only be script configured using the {@link xml::DOMConfigurator DOMConfigurator}. */ class LOG4CXX_EXPORT AsyncAppender : public virtual spi::AppenderAttachable, public virtual AppenderSkeleton { public: DECLARE_LOG4CXX_OBJECT(AsyncAppender) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(AsyncAppender) LOG4CXX_CAST_ENTRY_CHAIN(AppenderSkeleton) LOG4CXX_CAST_ENTRY(spi::AppenderAttachable) END_LOG4CXX_CAST_MAP() /** * Create new instance. */ AsyncAppender(); /** * Destructor. */ virtual ~AsyncAppender(); void addRef() const; void releaseRef() const; /** * Add appender. * * @param newAppender appender to add, may not be null. */ void addAppender(const AppenderPtr& newAppender); void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p); /** Close this AsyncAppender by interrupting the dispatcher thread which will process all pending events before exiting. */ void close(); /** * Get iterator over attached appenders. * @return list of all attached appenders. */ AppenderList getAllAppenders() const; /** * Get appender by name. * * @param name name, may not be null. * @return matching appender or null. */ AppenderPtr getAppender(const LogString& name) const; /** * Gets whether the location of the logging request call * should be captured. * * @return the current value of the LocationInfo option. */ bool getLocationInfo() const; /** * Determines if specified appender is attached. * @param appender appender. * @return true if attached. */ bool isAttached(const AppenderPtr& appender) const; virtual bool requiresLayout() const; /** * Removes and closes all attached appenders. */ void removeAllAppenders(); /** * Removes an appender. * @param appender appender to remove. */ void removeAppender(const AppenderPtr& appender); /** * Remove appender by name. * @param name name. */ void removeAppender(const LogString& name); /** * The LocationInfo attribute is provided for compatibility * with log4j and has no effect on the log output. * @param flag new value. */ void setLocationInfo(bool flag); /** * The BufferSize option takes a non-negative integer value. * This integer value determines the maximum size of the bounded * buffer. * */ void setBufferSize(int size); /** * Gets the current buffer size. * @return the current value of the BufferSize option. */ int getBufferSize() const; /** * Sets whether appender should wait if there is no * space available in the event buffer or immediately return. * * @param value true if appender should wait until available space in buffer. */ void setBlocking(bool value); /** * Gets whether appender should block calling thread when buffer is full. * If false, messages will be counted by logger and a summary * message appended after the contents of the buffer have been appended. * * @return true if calling thread will be blocked when buffer is full. */ bool getBlocking() const; /** * Set appender properties by name. * @param option property name. * @param value property value. */ void setOption(const LogString& option, const LogString& value); private: AsyncAppender(const AsyncAppender&); AsyncAppender& operator=(const AsyncAppender&); /** * The default buffer size is set to 128 events. */ enum { DEFAULT_BUFFER_SIZE = 128 }; /** * Event buffer. */ LOG4CXX_LIST_DEF(LoggingEventList, log4cxx::spi::LoggingEventPtr); LoggingEventList buffer; /** * Mutex used to guard access to buffer and discardMap. */ ::log4cxx::helpers::Mutex bufferMutex; ::log4cxx::helpers::Condition bufferNotFull; ::log4cxx::helpers::Condition bufferNotEmpty; class DiscardSummary { private: /** * First event of the highest severity. */ ::log4cxx::spi::LoggingEventPtr maxEvent; /** * Total count of messages discarded. */ int count; public: /** * Create new instance. * * @param event event, may not be null. */ DiscardSummary(const ::log4cxx::spi::LoggingEventPtr& event); /** Copy constructor. */ DiscardSummary(const DiscardSummary& src); /** Assignment operator. */ DiscardSummary& operator=(const DiscardSummary& src); /** * Add discarded event to summary. * * @param event event, may not be null. */ void add(const ::log4cxx::spi::LoggingEventPtr& event); /** * Create event with summary information. * * @return new event. */ ::log4cxx::spi::LoggingEventPtr createEvent(::log4cxx::helpers::Pool& p); }; /** * Map of DiscardSummary objects keyed by logger name. */ typedef std::map DiscardMap; DiscardMap* discardMap; /** * Buffer size. */ int bufferSize; /** * Nested appenders. */ helpers::AppenderAttachableImplPtr appenders; /** * Dispatcher. */ helpers::Thread dispatcher; /** * Should location info be included in dispatched messages. */ bool locationInfo; /** * Does appender block when buffer is full. */ bool blocking; /** * Dispatch routine. */ static void* LOG4CXX_THREAD_FUNC dispatch(apr_thread_t* thread, void* data); }; // class AsyncAppender LOG4CXX_PTR_DEF(AsyncAppender); } // namespace log4cxx #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif// _LOG4CXX_ASYNC_APPENDER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/appender.h100644 0 0 10733 10774263402 20254 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_APPENDER_H #define _LOG4CXX_APPENDER_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include namespace log4cxx { // Forward declarations namespace spi { class LoggingEvent; typedef helpers::ObjectPtrT LoggingEventPtr; class Filter; typedef helpers::ObjectPtrT FilterPtr; class ErrorHandler; typedef log4cxx::helpers::ObjectPtrT ErrorHandlerPtr; } class Layout; typedef log4cxx::helpers::ObjectPtrT LayoutPtr; /** Implement this interface for your own strategies for outputting log statements. */ class LOG4CXX_EXPORT Appender : public virtual spi::OptionHandler { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(Appender) virtual ~Appender() {} /** Add a filter to the end of the filter list. */ virtual void addFilter(const spi::FilterPtr& newFilter) = 0; /** Returns the head Filter. The Filters are organized in a linked list and so all Filters on this Appender are available through the result. @return the head Filter or null, if no Filters are present */ virtual spi::FilterPtr getFilter() const = 0; /** Clear the list of filters by removing all the filters in it. */ virtual void clearFilters() = 0; /** Release any resources allocated within the appender such as file handles, network connections, etc.

It is a programming error to append to a closed appender. */ virtual void close() = 0; /** Log in Appender specific way. When appropriate, Loggers will call the doAppend method of appender implementations in order to log. */ virtual void doAppend(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& pool) = 0; /** Get the name of this appender. The name uniquely identifies the appender. */ virtual LogString getName() const = 0; /** Set the Layout for this appender. */ virtual void setLayout(const LayoutPtr& layout) = 0; /** Returns this appenders layout. */ virtual LayoutPtr getLayout() const = 0; /** Set the name of this appender. The name is used by other components to identify this appender. */ virtual void setName(const LogString& name) = 0; /** Configurators call this method to determine if the appender requires a layout. If this method returns true, meaning that layout is required, then the configurator will configure an layout using the configuration information at its disposal. If this method returns false, meaning that a layout is not required, then layout configuration will be skipped even if there is available layout configuration information at the disposal of the configurator..

In the rather exceptional case, where the appender implementation admits a layout but can also work without it, then the appender should return true. */ virtual bool requiresLayout() const = 0; }; LOG4CXX_PTR_DEF(Appender); LOG4CXX_LIST_DEF(AppenderList, AppenderPtr); } #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif //_LOG4CXX_APPENDER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/provisionnode.h100644 0 0 2220 10774263402 21324 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_PROVISION_NODE_H #define _LOG4CXX_PROVISION_NODE_H #include #include #include namespace log4cxx { class Logger; typedef helpers::ObjectPtrT LoggerPtr; typedef std::vector ProvisionNode; } // namespace log4cxx #endif //_LOG4CXX_PROVISION_NODE_H apache-log4cxx-0.10.0/src/main/include/log4cxx/portability.h100644 0 0 1636 10774263402 21002 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_PORTABILITY_H #define _LOG4CXX_PORTABILITY_H // // Obsolete file // #endif //_LOG4CXX_PORTABILITY_H apache-log4cxx-0.10.0/src/main/include/log4cxx/config_msvc.h.in100644 0 0 3647 10774263402 21346 0ustar 0 0 /* Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ /* Name of package */ #define PACKAGE "log4cxx" /* Version number of package */ #define VERSION "@VERSION@" /* Define to 1 if you have the `ftime' function. */ #define LOG4CXX_HAVE_FTIME 1 /* ODBC support through Microsoft ODBC. */ #define LOG4CXX_HAVE_MS_ODBC 1 /* thread support through Microsoft threads. */ #define LOG4CXX_HAVE_MS_THREAD 1 /* ODBC support */ #define LOG4CXX_HAVE_ODBC 1 /* thread support */ #define LOG4CXX_HAVE_THREAD 1 typedef __int64 int64_t; #if defined(WIN32) || defined(_WIN32) #pragma warning(disable : 4250 4251 4786 4290) #endif #ifdef LOG4CXX_STATIC #define LOG4CXX_EXPORT // cf. file msvc/static/static.cpp #pragma comment(linker, "/include:?ForceSymbolReferences@@YAXXZ") #else // DLL #ifdef LOG4CXX #define LOG4CXX_EXPORT __declspec(dllexport) #else #define LOG4CXX_EXPORT __declspec(dllimport) #endif #endif #if !defined(LOG4CXX_HAVE_OLD_WIN32_INTERLOCKS) #if defined(_MSC_VER) #if _MSC_VER <= 1200 #define LOG4CXX_HAVE_OLD_WIN32_INTERLOCKS 1 #else #define LOG4CXX_HAVE_OLD_WIN32_INTERLOCKS 0 #endif #else #define LOG4CXX_HAVE_OLD_WIN32_INTERLOCKS 0 #endif #endif #define _WIN32_WINNT 0x0400 #include apache-log4cxx-0.10.0/src/main/include/log4cxx/level.h100644 0 0 25323 10774263402 17566 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_LEVEL_H #define _LOG4CXX_LEVEL_H #include #include #include #include namespace log4cxx { class Level; /** smart pointer to a Level instance */ LOG4CXX_PTR_DEF(Level); /** Defines the minimum set of levels recognized by the system, that is OFF, FATAL, ERROR, WARN, INFO, DEBUG and ALL.

The Level class may be subclassed to define a larger level set. */ class LOG4CXX_EXPORT Level : public helpers::ObjectImpl { public: class LOG4CXX_EXPORT LevelClass : public helpers::Class { public: LevelClass() : helpers::Class() {} virtual LogString getName() const { return LOG4CXX_STR("Level"); } virtual LevelPtr toLevel(const LogString& sArg) const { return Level::toLevelLS(sArg); } virtual LevelPtr toLevel(int val) const { return Level::toLevel(val); } }; DECLARE_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS(Level, LevelClass) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(Level) END_LOG4CXX_CAST_MAP() /** Instantiate a Level object. */ Level(int level, const LogString& name, int syslogEquivalent); /** Convert the string passed as argument to a level. If the conversion fails, then this method returns DEBUG. * @param sArg level name. */ static LevelPtr toLevel(const std::string& sArg); /** Convert the string passed as argument to a level. If the conversion fails, then this method returns the value of defaultLevel. * @param sArg level name. * @param defaultLevel level to return if no match. * @return */ static LevelPtr toLevel(const std::string& sArg, const LevelPtr& defaultLevel); /** * Get the name of the level in the current encoding. * @param name buffer to which name is appended. */ void toString(std::string& name) const; #if LOG4CXX_WCHAR_T_API /** Convert the string passed as argument to a level. If the conversion fails, then this method returns DEBUG. * @param sArg level name. */ static LevelPtr toLevel(const std::wstring& sArg); /** Convert the string passed as argument to a level. If the conversion fails, then this method returns the value of defaultLevel. * @param sArg level name. * @param defaultLevel level to return if no match. * @return */ static LevelPtr toLevel(const std::wstring& sArg, const LevelPtr& defaultLevel); /** * Get the name of the level. * @param name buffer to which name is appended. */ void toString(std::wstring& name) const; #endif #if LOG4CXX_UNICHAR_API /** Convert the string passed as argument to a level. If the conversion fails, then this method returns DEBUG. * @param sArg level name. */ static LevelPtr toLevel(const std::basic_string& sArg); /** Convert the string passed as argument to a level. If the conversion fails, then this method returns the value of defaultLevel. * @param sArg level name. * @param defaultLevel level to return if no match. * @return */ static LevelPtr toLevel(const std::basic_string& sArg, const LevelPtr& defaultLevel); /** * Get the name of the level. * @param name buffer to which name is appended. */ void toString(std::basic_string& name) const; #endif #if LOG4CXX_CFSTRING_API /** Convert the string passed as argument to a level. If the conversion fails, then this method returns DEBUG. * @param sArg level name. */ static LevelPtr toLevel(const CFStringRef& sArg); /** Convert the string passed as argument to a level. If the conversion fails, then this method returns the value of defaultLevel. * @param sArg level name. * @param defaultLevel level to return if no match. * @return */ static LevelPtr toLevel(const CFStringRef& sArg, const LevelPtr& defaultLevel); /** * Get the name of the level. * @param name buffer to which name is appended. */ void toString(CFStringRef& name) const; #endif /** Convert the string passed as argument to a level. If the conversion fails, then this method returns DEBUG. * @param sArg level name. */ static LevelPtr toLevelLS(const LogString& sArg); /** Convert the string passed as argument to a level. If the conversion fails, then this method returns the value of defaultLevel. * @param sArg level name. * @param defaultLevel level to return if no match. * @return */ static LevelPtr toLevelLS(const LogString& sArg, const LevelPtr& defaultLevel); /** Returns the string representation of this level. * @return level name. */ LogString toString() const; /** Convert an integer passed as argument to a level. If the conversion fails, then this method returns DEBUG. */ static LevelPtr toLevel(int val); /** Convert an integer passed as argument to a level. If the conversion fails, then this method returns the specified default. */ static LevelPtr toLevel(int val, const LevelPtr& defaultLevel); enum { OFF_INT = INT_MAX, FATAL_INT = 50000, ERROR_INT = 40000, WARN_INT = 30000, INFO_INT = 20000, DEBUG_INT = 10000, TRACE_INT = 5000, ALL_INT = INT_MIN }; static LevelPtr getAll(); static LevelPtr getFatal(); static LevelPtr getError(); static LevelPtr getWarn(); static LevelPtr getInfo(); static LevelPtr getDebug(); static LevelPtr getTrace(); static LevelPtr getOff(); /** Two levels are equal if their level fields are equal. */ virtual bool equals(const LevelPtr& level) const; inline bool operator==(const Level& level1) const { return (this->level == level1.level); } inline bool operator!=(const Level& level1) const { return (this->level != level1.level); } /** Return the syslog equivalent of this level as an integer. */ inline int getSyslogEquivalent() const { return syslogEquivalent; } /** Returns true if this level has a higher or equal level than the level passed as argument, false otherwise.

You should think twice before overriding the default implementation of isGreaterOrEqual method. */ virtual bool isGreaterOrEqual(const LevelPtr& level) const; /** Returns the integer representation of this level. */ inline int toInt() const { return level; } private: int level; LogString name; int syslogEquivalent; Level(const Level&); Level& operator=(const Level&); }; } #define DECLARE_LOG4CXX_LEVEL(level)\ public:\ class Class##level : public Level::LevelClass\ {\ public:\ Class##level() : Level::LevelClass() {}\ virtual LogString getName() const { return LOG4CXX_STR(#level); } \ virtual LevelPtr toLevel(const LogString& sArg) const\ { return level::toLevelLS(sArg); }\ virtual LevelPtr toLevel(int val) const\ { return level::toLevel(val); }\ };\ DECLARE_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS(level, Class##level) #define IMPLEMENT_LOG4CXX_LEVEL(level) \ IMPLEMENT_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS(level, Class##level) #endif //_LOG4CXX_LEVEL_H apache-log4cxx-0.10.0/src/main/include/log4cxx/logstring.h100644 0 0 4402 10774263402 20442 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_STRING_H #define _LOG4CXX_STRING_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #if LOG4CXX_LOGCHAR_IS_WCHAR && LOG4CXX_LOGCHAR_IS_UTF8 && LOG4CXX_LOGCHAR_IS_UNICHAR #error only one of LOG4CXX_LOGCHAR_IS_WCHAR, LOG4CXX_LOGCHAR_IS_UTF8 or LOG4CXX_LOGCHAR_IS_UNICHAR may be true #endif #if LOG4CXX_CFSTRING_API extern "C" { typedef const struct __CFString* CFStringRef; } #endif namespace log4cxx { #if LOG4CXX_LOGCHAR_IS_UNICHAR || LOG4CXX_UNICHAR_API || LOG4CXX_CFSTRING_API typedef unsigned short UniChar; #endif #if LOG4CXX_LOGCHAR_IS_WCHAR typedef wchar_t logchar; #define LOG4CXX_STR(str) L ## str #endif #if LOG4CXX_LOGCHAR_IS_UTF8 typedef char logchar; #if LOG4CXX_CHARSET_EBCDIC #define LOG4CXX_STR(str) log4cxx::helpers::Transcoder::decode(str) #else #define LOG4CXX_STR(str) str #endif #endif #if LOG4CXX_LOGCHAR_IS_UNICHAR typedef UniChar logchar; #define LOG4CXX_STR(str) log4cxx::helpers::Transcoder::decode(str) #endif typedef std::basic_string LogString; } #if !defined(LOG4CXX_EOL) #if defined(_WIN32) #define LOG4CXX_EOL LOG4CXX_STR("\x0D\x0A") #else #define LOG4CXX_EOL LOG4CXX_STR("\x0A") #endif #endif #if LOG4CXX_LOGCHAR_IS_UNICHAR || (LOG4CXX_LOGCHAR_IS_UTF8 || LOG4CXX_CHARSET_EBCDIC) #include #endif #if defined(_MSC_VER) #pragma warning (pop) #endif #endif //_LOG4CXX_STRING_H apache-log4cxx-0.10.0/src/main/include/log4cxx/layout.h100644 0 0 6564 10774263402 17762 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_LAYOUT_H #define _LOG4CXX_LAYOUT_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include namespace log4cxx { /** Extend this abstract class to create your own log layout format. */ class LOG4CXX_EXPORT Layout : public virtual spi::OptionHandler, public virtual helpers::ObjectImpl { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(Layout) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(Layout) LOG4CXX_CAST_ENTRY(spi::OptionHandler) END_LOG4CXX_CAST_MAP() virtual ~Layout(); void addRef() const; void releaseRef() const; /** Implement this method to create your own layout format. */ virtual void format(LogString& output, const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& pool) const = 0; /** Returns the content type output by this layout. The base class returns "text/plain". */ virtual LogString getContentType() const; /** Append the header for the layout format. The base class does nothing. */ virtual void appendHeader(LogString& output, log4cxx::helpers::Pool& p); /** Append the footer for the layout format. The base class does nothing. */ virtual void appendFooter(LogString& output, log4cxx::helpers::Pool& p); /** If the layout handles the throwable object contained within {@link spi::LoggingEvent LoggingEvent}, then the layout should return false. Otherwise, if the layout ignores throwable object, then the layout should return true.

The SimpleLayout, TTCCLayout, PatternLayout all return true. The {@link xml::XMLLayout XMLLayout} returns false. */ virtual bool ignoresThrowable() const = 0; }; LOG4CXX_PTR_DEF(Layout); } #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif // _LOG4CXX_LAYOUT_H apache-log4cxx-0.10.0/src/main/include/log4cxx/defaultconfigurator.h100644 0 0 3323 10774263402 22502 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_DEFAULT_CONFIGURATOR_H #define _LOG4CXX_DEFAULT_CONFIGURATOR_H #include namespace log4cxx { namespace spi { class LoggerRepository; typedef helpers::ObjectPtrT LoggerRepositoryPtr; } /** * Configures the repository from environmental settings and files. * */ class LOG4CXX_EXPORT DefaultConfigurator { private: DefaultConfigurator() {} public: /** Add a ConsoleAppender that uses PatternLayout using the PatternLayout#TTCC_CONVERSION_PATTERN and prints to stdout to the root logger.*/ static void configure(log4cxx::spi::LoggerRepository*); private: static const LogString getConfigurationFileName(); static const LogString getConfiguratorClass(); }; // class DefaultConfigurator } // namespace log4cxx #endif //_LOG4CXX_DEFAULT_CONFIGURATOR_H apache-log4cxx-0.10.0/src/main/include/log4cxx/logmanager.h100644 0 0 15660 10774263402 20576 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_LOG_MANAGER_H #define _LOG4CXX_LOG_MANAGER_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include namespace log4cxx { class Logger; typedef helpers::ObjectPtrT LoggerPtr; typedef std::vector LoggerList; namespace spi { class LoggerFactory; typedef helpers::ObjectPtrT LoggerFactoryPtr; } /** * Use the LogManager class to retreive Logger * instances or to operate on the current * {@link log4cxx::spi::LoggerRepository LoggerRepository}. * When the LogManager class is loaded * into memory the default initialization procedure is inititated. */ class LOG4CXX_EXPORT LogManager { private: static void * guard; static spi::RepositorySelectorPtr& getRepositorySelector(); public: /** Sets LoggerFactory but only if the correct guard is passed as parameter.

Initally the guard is null. If the guard is null, then invoking this method sets the logger factory and the guard. Following invocations will throw a {@link helpers::IllegalArgumentException IllegalArgumentException}, unless the previously set guard is passed as the second parameter.

This allows a high-level component to set the {@link spi::RepositorySelector RepositorySelector} used by the LogManager. */ static void setRepositorySelector(spi::RepositorySelectorPtr selector, void * guard); static spi::LoggerRepositoryPtr& getLoggerRepository(); /** Retrieve the appropriate root logger. */ static LoggerPtr getRootLogger(); /** Retrieve the appropriate Logger instance. * @param name logger name in current encoding. * @return logger. */ static LoggerPtr getLogger(const std::string& name); /** Retrieve the appropriate Logger instance. * @param name logger name in current encoding. * @param factory logger factory. * @return logger. */ static LoggerPtr getLogger(const std::string& name, const spi::LoggerFactoryPtr& factory); /** * Determines if logger name exists in the hierarchy. * @param name logger name. * @return true if logger exists. */ static LoggerPtr exists(const std::string& name); #if LOG4CXX_WCHAR_T_API /** Retrieve the appropriate Logger instance. * @param name logger name. * @return logger. */ static LoggerPtr getLogger(const std::wstring& name); /** Retrieve the appropriate Logger instance. * @param name logger name. * @param factory logger factory. * @return logger. */ static LoggerPtr getLogger(const std::wstring& name, const spi::LoggerFactoryPtr& factory); /** * Determines if logger name exists in the hierarchy. * @param name logger name. * @return true if logger exists. */ static LoggerPtr exists(const std::wstring& name); #endif #if LOG4CXX_UNICHAR_API /** Retrieve the appropriate Logger instance. * @param name logger name. * @return logger. */ static LoggerPtr getLogger(const std::basic_string& name); /** Retrieve the appropriate Logger instance. * @param name logger name. * @param factory logger factory. * @return logger. */ static LoggerPtr getLogger(const std::basic_string& name, const spi::LoggerFactoryPtr& factory); /** * Determines if logger name exists in the hierarchy. * @param name logger name. * @return true if logger exists. */ static LoggerPtr exists(const std::basic_string& name); #endif #if LOG4CXX_CFSTRING_API /** Retrieve the appropriate Logger instance. * @param name logger name. * @return logger. */ static LoggerPtr getLogger(const CFStringRef& name); /** Retrieve the appropriate Logger instance. * @param name logger name. * @param factory logger factory. * @return logger. */ static LoggerPtr getLogger(const CFStringRef& name, const spi::LoggerFactoryPtr& factory); /** * Determines if logger name exists in the hierarchy. * @param name logger name. * @return true if logger exists. */ static LoggerPtr exists(const CFStringRef& name); #endif /** Retrieve the appropriate Logger instance. * @param name logger name. * @return logger. */ static LoggerPtr getLoggerLS(const LogString& name); /** Retrieve the appropriate Logger instance. * @param name logger name. * @param factory logger factory. * @return logger. */ static LoggerPtr getLoggerLS(const LogString& name, const spi::LoggerFactoryPtr& factory); /** * Determines if logger name exists in the hierarchy. * @param name logger name. * @return true if logger exists. */ static LoggerPtr existsLS(const LogString& name); static LoggerList getCurrentLoggers(); /** Safely close and remove all appenders in all loggers including the root logger. */ static void shutdown(); /** Reset all values contained in this current {@link spi::LoggerRepository LoggerRepository} to their default. */ static void resetConfiguration(); }; // class LogManager } // namespace log4cxx #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif //_LOG4CXX_LOG_MANAGER_H apache-log4cxx-0.10.0/src/main/include/log4cxx/hierarchy.h100644 0 0 23662 10774263402 20441 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_HIERARCHY_H #define _LOG4CXX_HIERARCHY_H #if defined(_MSC_VER) #pragma warning (push) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include #include #include #include #include namespace log4cxx { /** This class is specialized in retrieving loggers by name and also maintaining the logger hierarchy.

The casual user does not have to deal with this class directly.

The structure of the logger hierarchy is maintained by the #getLogger method. The hierarchy is such that children link to their parent but parents do not have any pointers to their children. Moreover, loggers can be instantiated in any order, in particular descendant before ancestor.

In case a descendant is created before a particular ancestor, then it creates a provision node for the ancestor and adds itself to the provision node. Other descendants of the same ancestor add themselves to the previously created provision node. */ class LOG4CXX_EXPORT Hierarchy : public virtual spi::LoggerRepository, public virtual helpers::ObjectImpl { private: log4cxx::helpers::Pool pool; log4cxx::helpers::Mutex mutex; bool configured; spi::LoggerFactoryPtr defaultFactory; spi::HierarchyEventListenerList listeners; typedef std::map LoggerMap; LoggerMap* loggers; typedef std::map ProvisionNodeMap; ProvisionNodeMap* provisionNodes; LoggerPtr root; int thresholdInt; LevelPtr threshold; bool emittedNoAppenderWarning; bool emittedNoResourceBundleWarning; public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(Hierarchy) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(spi::LoggerRepository) END_LOG4CXX_CAST_MAP() /** Create a new logger hierarchy. */ Hierarchy(); ~Hierarchy(); void addRef() const; void releaseRef() const; void addHierarchyEventListener(const spi::HierarchyEventListenerPtr& listener); /** This call will clear all logger definitions from the internal hashtable. Invoking this method will irrevocably mess up the logger hierarchy.

You should really know what you are doing before invoking this method. */ void clear(); void emitNoAppenderWarning(const LoggerPtr& logger); /** Check if the named logger exists in the hierarchy. If so return its reference, otherwise returns null. @param name The name of the logger to search for. */ LoggerPtr exists(const LogString& name); /** The string form of {@link #setThreshold(const LevelPtr&) setThreshold}. */ void setThreshold(const LogString& levelStr); /** Enable logging for logging requests with level l or higher. By default all levels are enabled. @param l The minimum level for which logging requests are sent to their appenders. */ void setThreshold(const LevelPtr& l); void fireAddAppenderEvent(const LoggerPtr& logger, const AppenderPtr& appender); void fireRemoveAppenderEvent(const LoggerPtr& logger, const AppenderPtr& appender); /** Returns a Level representation of the enable state. */ const LevelPtr& getThreshold() const; /** Return a new logger instance named as the first parameter using the default factory.

If a logger of that name already exists, then it will be returned. Otherwise, a new logger will be instantiated and then linked with its existing ancestors as well as children. @param name The name of the logger to retrieve. */ LoggerPtr getLogger(const LogString& name); /** Return a new logger instance named as the first parameter using factory.

If a logger of that name already exists, then it will be returned. Otherwise, a new logger will be instantiated by the factory parameter and linked with its existing ancestors as well as children. @param name The name of the logger to retrieve. @param factory The factory that will make the new logger instance. */ LoggerPtr getLogger(const LogString& name, const spi::LoggerFactoryPtr& factory); /** Returns all the currently defined loggers in this hierarchy as a LoggerList.

The root logger is not included in the returned LoggerList. */ LoggerList getCurrentLoggers() const; /** Get the root of this hierarchy. */ LoggerPtr getRootLogger() const; /** This method will return true if this repository is disabled for level object passed as parameter and false otherwise. See also the {@link #setThreshold(const LevelPtr&) setThreshold} method. */ bool isDisabled(int level) const; /** Reset all values contained in this hierarchy instance to their default. This removes all appenders from all categories, sets the level of all non-root categories to null, sets their additivity flag to true and sets the level of the root logger to DEBUG. Moreover, message disabling is set its default "off" value.

Existing categories are not removed. They are just reset.

This method should be used sparingly and with care as it will block all logging until it is completed.

*/ void resetConfiguration(); /** Used by subclasses to add a renderer to the hierarchy passed as parameter. */ /** Shutting down a hierarchy will safely close and remove all appenders in all categories including the root logger.

Some appenders such as {@link net::SocketAppender SocketAppender} and AsyncAppender need to be closed before the application exists. Otherwise, pending logging events might be lost.

The shutdown method is careful to close nested appenders before closing regular appenders. This is allows configurations where a regular appender is attached to a logger and again to a nested appender. */ void shutdown(); virtual bool isConfigured(); virtual void setConfigured(bool configured); private: /** This method loops through all the *potential* parents of 'cat'. There 3 possible cases: 1) No entry for the potential parent of 'cat' exists We create a ProvisionNode for this potential parent and insert 'cat' in that provision node. 2) There entry is of type Logger for the potential parent. The entry is 'cat's nearest existing parent. We update cat's parent field with this entry. We also break from the loop because updating our parent's parent is our parent's responsibility. 3) There entry is of type ProvisionNode for this potential parent. We add 'cat' to the list of children for this potential parent. */ void updateParents(LoggerPtr logger); /** We update the links for all the children that placed themselves in the provision node 'pn'. The second argument 'cat' is a reference for the newly created Logger, parent of all the children in 'pn' We loop on all the children 'c' in 'pn': If the child 'c' has been already linked to a child of 'cat' then there is no need to update 'c'. Otherwise, we set cat's parent field to c's parent and set c's parent field to cat. */ Hierarchy(const Hierarchy&); Hierarchy& operator=(const Hierarchy&); void updateChildren(ProvisionNode& pn, LoggerPtr logger); }; } //namespace log4cxx #if defined(_MSC_VER) #pragma warning (pop) #endif #endif //_LOG4CXX_HIERARCHY_H apache-log4cxx-0.10.0/src/main/include/log4cxx/dailyrollingfileappender.h100644 0 0 14543 10774263402 23531 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_DAILYROLLINGFILEAPPENDER_H #define _LOG4CXX_DAILYROLLINGFILEAPPENDER_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include #include #include #include namespace log4cxx { namespace helpers { class Pool; } namespace spi { class ErrorHandler; typedef log4cxx::helpers::ObjectPtrT ErrorHandlerPtr; } /** DailyRollingFileAppender extends {@link log4cxx::FileAppender FileAppender} so that the underlying file is rolled over at a user chosen frequency.

The rolling schedule is specified by the DatePattern option. This pattern should follow the {@link log4cxx::helpers::SimpleDateFormat SimpleDateFormat} conventions. In particular, you must escape literal text within a pair of single quotes. A formatted version of the date pattern is used as the suffix for the rolled file name.

For example, if the File option is set to /foo/bar.log and the DatePattern set to '.'yyyy-MM-dd, on 2001-02-16 at midnight, the logging file /foo/bar.log will be copied to /foo/bar.log.2001-02-16 and logging for 2001-02-17 will continue in /foo/bar.log until it rolls over the next day.

Is is possible to specify monthly, weekly, half-daily, daily, hourly, or minutely rollover schedules.

DatePattern Rollover schedule Example
'.'yyyy-MM Rollover at the beginning of each month At midnight of May 31st, 2002 /foo/bar.log will be copied to /foo/bar.log.2002-05. Logging for the month of June will be output to /foo/bar.log until it is also rolled over the next month.
'.'yyyy-ww Rollover at the first day of each week. The first day of the week depends on the locale. Assuming the first day of the week is Sunday, on Saturday midnight, June 9th 2002, the file /foo/bar.log will be copied to /foo/bar.log.2002-23. Logging for the 24th week of 2002 will be output to /foo/bar.log until it is rolled over the next week.
'.'yyyy-MM-dd Rollover at midnight each day. At midnight, on March 8th, 2002, /foo/bar.log will be copied to /foo/bar.log.2002-03-08. Logging for the 9th day of March will be output to /foo/bar.log until it is rolled over the next day.
'.'yyyy-MM-dd-a Rollover at midnight and midday of each day. At noon, on March 9th, 2002, /foo/bar.log will be copied to /foo/bar.log.2002-03-09-AM. Logging for the afternoon of the 9th will be output to /foo/bar.log until it is rolled over at midnight.
'.'yyyy-MM-dd-HH Rollover at the top of every hour. At approximately 11:00.000 o'clock on March 9th, 2002, /foo/bar.log will be copied to /foo/bar.log.2002-03-09-10. Logging for the 11th hour of the 9th of March will be output to /foo/bar.log until it is rolled over at the beginning of the next hour.
'.'yyyy-MM-dd-HH-mm Rollover at the beginning of every minute. At approximately 11:23,000, on March 9th, 2001, /foo/bar.log will be copied to /foo/bar.log.2001-03-09-10-22. Logging for the minute of 11:23 (9th of March) will be output to /foo/bar.log until it is rolled over the next minute.

Do not use the colon ":" character in anywhere in the DatePattern option. The text before the colon is interpeted as the protocol specificaion of a URL which is probably not what you want. */ class LOG4CXX_EXPORT DailyRollingFileAppender : public log4cxx::rolling::RollingFileAppenderSkeleton { DECLARE_LOG4CXX_OBJECT(DailyRollingFileAppender) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(DailyRollingFileAppender) LOG4CXX_CAST_ENTRY_CHAIN(FileAppender) END_LOG4CXX_CAST_MAP() /** The date pattern used to initiate rollover. */ LogString datePattern; public: /** The default constructor simply calls its {@link FileAppender#FileAppender parents constructor}. */ DailyRollingFileAppender(); /** Instantiate a DailyRollingFileAppender and open the file designated by filename. The opened filename will become the ouput destination for this appender. */ DailyRollingFileAppender( const LayoutPtr& layout, const LogString& filename, const LogString& datePattern); /** The DatePattern takes a string in the same format as expected by {@link log4cxx::helpers::SimpleDateFormat SimpleDateFormat}. This options determines the rollover schedule. */ void setDatePattern(const LogString& pattern); /** Returns the value of the DatePattern option. */ LogString getDatePattern(); void setOption(const LogString& option, const LogString& value); /** * Prepares DailyRollingFileAppender for use. */ void activateOptions(log4cxx::helpers::Pool&); }; LOG4CXX_PTR_DEF(DailyRollingFileAppender); } #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif apache-log4cxx-0.10.0/src/main/include/log4cxx/file.h100644 0 0 16321 10774263402 17374 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_FILE_H #define _LOG4CXX_FILE_H #include #include extern "C" { struct apr_file_t; struct apr_finfo_t; } namespace log4cxx { namespace helpers { class Transcoder; class Pool; } /** * An abstract representation of file and directory path names. */ class LOG4CXX_EXPORT File { public: /** * Construct a new instance. */ File(); /** * Construct a new instance. Use setPath to specify path using a LogString. * @param path file path in local encoding. */ File(const char* path); /** * Construct a new instance. Use setPath to specify path using a LogString. * @param path file path in current encoding. */ File(const std::string& path); #if LOG4CXX_WCHAR_T_API /** * Construct a new instance. Use setPath to specify path using a LogString. * @param path file path. */ File(const wchar_t* path); /** * Construct a new instance. Use setPath to specify path using a LogString. * @param path file path. */ File(const std::wstring& path); #endif #if LOG4CXX_UNICHAR_API /** * Construct a new instance. Use setPath to specify path using a LogString. * @param path file path. */ File(const UniChar* path); /** * Construct a new instance. Use setPath to specify path using a LogString. * @param path file path. */ File(const std::basic_string& path); #endif #if LOG4CXX_CFSTRING_API /** * Construct a new instance. Use setPath to specify path using a LogString. * @param path file path. */ File(const CFStringRef& path); #endif /** * Copy constructor. */ File(const File& src); /** * Assignment operator. */ File& operator=(const File& src); /** * Destructor. */ ~File(); /** * Determines if file exists. * @param p pool. * @return true if file exists. */ bool exists(log4cxx::helpers::Pool& p) const; /** * Determines length of file. May not be accurate if file is current open. * @param p pool. * @return length of file. */ size_t length(log4cxx::helpers::Pool& p) const; /** * Determines last modification date. * @param p pool. * @return length of file. */ log4cxx_time_t lastModified(log4cxx::helpers::Pool& p) const; /** * Get final portion of file path. * @return file name. */ LogString getName() const; /** * Get file path. * @return file path. */ LogString getPath() const; /** * Set file path */ File& setPath(const LogString&); /** * Open file. See apr_file_open for details. * @param file APR file handle. * @param flags flags. * @param perm permissions. * @param p pool. * @return APR_SUCCESS if successful. */ log4cxx_status_t open(apr_file_t** file, int flags, int perm, log4cxx::helpers::Pool& p) const; /** * List files if current file is a directory. * @param p pool. * @return list of files in this directory, operation of non-directory returns empty list. */ std::vector list(log4cxx::helpers::Pool& p) const; /** * Delete file. * @param p pool. * @return true if file successfully deleted. */ bool deleteFile(log4cxx::helpers::Pool& p) const; /** * Rename file. * @param dest new path for file. * @param p pool. * @return true if file successfully renamed. */ bool renameTo(const File& dest, log4cxx::helpers::Pool& p) const; /** * Get path of parent directory. * @param p pool. * @return path of parent directory. */ LogString getParent(log4cxx::helpers::Pool& p) const; /** * Make directories recursively. * @param p pool. * @return true if all requested directories existed or have been created. */ bool mkdirs(log4cxx::helpers::Pool& p) const; private: LogString path; static char* convertBackSlashes(char*); char* getPath(log4cxx::helpers::Pool& p) const; }; } // namespace log4cxx #define LOG4CXX_FILE(name) log4cxx::File(name) #endif // _LOG4CXX_FILE_H apache-log4cxx-0.10.0/src/main/include/log4cxx/Makefile.am100644 0 0 2054 10774263402 20316 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # SUBDIRS = helpers net nt rolling spi varia xml config db private pattern filter log4cxxincdir = $(includedir)/log4cxx log4cxxinc_HEADERS= $(top_srcdir)/src/main/include/log4cxx/*.h log4cxx.h DISTCLEANFILES = log4cxx.h EXTRA_DIST = log4cxx.hw dist-hook: -rm -f $(distdir)/log4cxx.h apache-log4cxx-0.10.0/src/main/include/log4cxx/defaultloggerfactory.h100644 0 0 3242 10774263402 22647 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_DEFAULT_LOGGER_FACTORY_H #define _LOG4CXX_DEFAULT_LOGGER_FACTORY_H #include #include namespace log4cxx { class Logger; typedef helpers::ObjectPtrT LoggerPtr; class LOG4CXX_EXPORT DefaultLoggerFactory : public virtual spi::LoggerFactory, public virtual helpers::ObjectImpl { public: DECLARE_ABSTRACT_LOG4CXX_OBJECT(DefaultLoggerFactory) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(spi::LoggerFactory) END_LOG4CXX_CAST_MAP() virtual LoggerPtr makeNewLoggerInstance( log4cxx::helpers::Pool& pool, const LogString& name) const; }; } // namespace log4cxx #endif //_LOG4CXX_DEFAULT_LOGGER_FACTORY_H apache-log4cxx-0.10.0/src/main/include/log4cxx/simplelayout.h100644 0 0 5415 10774263402 21166 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #ifndef _LOG4CXX_SIMPLE_LAYOUT_H #define _LOG4CXX_SIMPLE_LAYOUT_H #if defined(_MSC_VER) #pragma warning ( push ) #pragma warning ( disable: 4231 4251 4275 4786 ) #endif #include namespace log4cxx { /** SimpleLayout consists of the level of the log statement, followed by " - " and then the log message itself. For example,

                DEBUG - Hello world
        

PatternLayout offers a much more powerful alternative. */ class LOG4CXX_EXPORT SimpleLayout : public Layout { public: DECLARE_LOG4CXX_OBJECT(SimpleLayout) BEGIN_LOG4CXX_CAST_MAP() LOG4CXX_CAST_ENTRY(SimpleLayout) LOG4CXX_CAST_ENTRY_CHAIN(Layout) END_LOG4CXX_CAST_MAP() /** Returns the log statement in a format consisting of the level, followed by " - " and then the message. For example,

 INFO - "A message"
                
@return A byte array in SimpleLayout format. */ virtual void format(LogString& output, const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& pool) const; /** The SimpleLayout does not handle the throwable contained within {@link spi::LoggingEvent LoggingEvents}. Thus, it returns true. */ bool ignoresThrowable() const { return true; } virtual void activateOptions(log4cxx::helpers::Pool& /* p */) {} virtual void setOption(const LogString& /* option */, const LogString& /* value */) {} }; LOG4CXX_PTR_DEF(SimpleLayout); } // namespace log4cxx #if defined(_MSC_VER) #pragma warning ( pop ) #endif #endif //_LOG4CXX_SIMPLE_LAYOUT_H apache-log4cxx-0.10.0/src/main/include/Makefile.in100644 0 0 36707 10774264474 17005 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/main/include DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # SUBDIRS = log4cxx all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/include/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/main/include/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ clean clean-generic clean-libtool clean-recursive ctags \ ctags-recursive distclean distclean-generic distclean-libtool \ distclean-recursive distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic maintainer-clean-recursive \ mostlyclean mostlyclean-generic mostlyclean-libtool \ mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/main/include/Makefile.am100644 0 0 1442 10774263402 16726 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # SUBDIRS = log4cxx apache-log4cxx-0.10.0/src/main/resources/EventLogCategories.mc100644 0 0 2032 10774263402 21327 0ustar 0 0 ; ; Licensed to the Apache Software Foundation (ASF) under one ; or more contributor license agreements. See the NOTICE file ; distributed with this work for additional information ; regarding copyright ownership. The ASF licenses this file ; to you 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. ; MessageId=1 Language=English Trace . MessageId=2 Language=English Debug . MessageId=3 Language=English Info . MessageId=4 Language=English Warn . MessageId=5 Language=English Error . MessageId=6 Language=English Fatal . MessageId=0x1000 Language=English %1 . apache-log4cxx-0.10.0/src/main/resources/log4cxx.rc100644 0 0 7641 10774263402 17206 0ustar 0 0 // // Licensed to the Apache Software Foundation (ASF) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information // regarding copyright ownership. The ASF licenses this file // to you 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. // // // Message file include // LANGUAGE 0x9,0x1 1 11 MSG00001.bin // Microsoft Visual C++ generated resource script. // #include "windows.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // //#include "afxres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // English (U.S.) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) #ifdef _WIN32 LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US #pragma code_page(1252) #endif //_WIN32 #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE // 1 TEXTINCLUDE BEGIN "resource.h\0" END 2 TEXTINCLUDE BEGIN "#include ""afxres.h""\r\n" "\0" END 3 TEXTINCLUDE BEGIN "\r\n" "\0" END #endif // APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Version // VS_VERSION_INFO VERSIONINFO FILEVERSION 0, 10, 0, 1 PRODUCTVERSION 0, 10, 0, 1 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x4L FILETYPE 0x2L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904b0" BEGIN VALUE "CompanyName", "Apache Software Foundation" VALUE "FileDescription", "Apache log4cxx" VALUE "FileVersion", "0,10, 0, 1" VALUE "InternalName", "log4cxx" VALUE "LegalCopyright", "Licensed to the Apache Software Foundation (ASF) under one or more\ncontributor license agreements. See the NOTICE file distributed with\nthis work for additional information regarding copyright ownership.\nThe ASF licenses this file to You under the Apache License, Version 2.0\n(the ""License""); you may not use this file except in compliance with\nthe License. You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an ""AS IS"" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License." VALUE "OriginalFilename", "log4cxx.dll" VALUE "ProductName", "Apache log4cxx" VALUE "ProductVersion", "0, 10, 0, 1" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1200 END END #endif // English (U.S.) resources ///////////////////////////////////////////////////////////////////////////// #ifndef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED apache-log4cxx-0.10.0/src/main/resources/MSG00001.bin100644 0 0 244 10774263402 16741 0ustar 0 0 Trace Debug Info Warn Error Fatal %1 apache-log4cxx-0.10.0/src/main/Makefile.in100644 0 0 36660 10774264474 15360 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/main DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # SUBDIRS = cpp include all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/main/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ clean clean-generic clean-libtool clean-recursive ctags \ ctags-recursive distclean distclean-generic distclean-libtool \ distclean-recursive distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic maintainer-clean-recursive \ mostlyclean mostlyclean-generic mostlyclean-libtool \ mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/main/Makefile.am100644 0 0 1446 10774263402 15307 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # SUBDIRS = cpp include apache-log4cxx-0.10.0/src/site/doxy/Makefile.in100644 0 0 30373 10774264476 16360 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/site/doxy DIST_COMMON = $(srcdir)/Doxyfile.in $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = Doxyfile SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # EXTRA_DIST = Doxyfile mainpage.dox license_notice_footer.txt # DOC is defined if installer requests doc generation. @DOC_TRUE@htmldest = $(pkgdatadir)/html distdir = $(top_builddir)/$(PACKAGE)-$(VERSION) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/site/doxy/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/site/doxy/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh Doxyfile: $(top_builddir)/config.status $(srcdir)/Doxyfile.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-local mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool @DOC_FALSE@pdf: pdf-am @LATEX_DOC_FALSE@pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am uninstall-local .PHONY: all all-am all-local check check-am clean clean-generic \ clean-libtool clean-local dist-hook distclean \ distclean-generic distclean-libtool distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-data-hook install-exec install-exec-am \ install-info install-info-am install-man install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-info-am uninstall-local @DOC_TRUE@install-data-hook: @DOC_TRUE@ $(mkinstalldirs) $(DESTDIR)$(htmldest) @DOC_TRUE@ cp -dpR @manual_dest@/* $(DESTDIR)$(htmldest) # Automake's "distcheck" is sensitive to having files left over # after "make uninstall", so we have to clean up the install hook. @DOC_TRUE@uninstall-local: @DOC_TRUE@ rm -rf $(DESTDIR)$(htmldest) @DOC_TRUE@dox: @manual_dest@/index.html @DOC_TRUE@@LATEX_DOC_TRUE@pdf: @PACKAGE@.pdf @DOC_TRUE@@LATEX_DOC_TRUE@@PACKAGE@.pdf: @DOC_TRUE@@LATEX_DOC_TRUE@ $(MAKE) -C ./latex pdf @DOC_TRUE@@LATEX_DOC_TRUE@ ln -s ./latex/refman.ps @PACKAGE@.ps @DOC_TRUE@@LATEX_DOC_TRUE@ ln -s ./latex/refman.pdf @PACKAGE@.pdf # We repeat the three targets in both the "if" and "else" clauses # of the conditional, because the generated makefile will contain # references to the targets (target "install" depends on target # "install-datahook", for example), and some make programs get upset # if no target exists. @DOC_FALSE@install-data-hook: @DOC_FALSE@uninstall-local: @DOC_FALSE@dox: all-local: dox @manual_dest@/index.html: Doxyfile mainpage.dox "@DOXYGEN@" # Make tarfile to distribute the HTML documentation. doc-dist: dox rm -rf $(distdir) mkdir $(distdir) mkdir $(distdir)/docs mkdir $(distdir)/docs/html cp @manual_dest@/* $(distdir)/docs/html tar -czf $(top_builddir)/$(PACKAGE)-docs-$(VERSION).tar.gz -C $(distdir) docs rm -rf $(distdir) clean-local: $(RM) -r latex $(RM) -r @manual_dest@ man @PACKAGE@.ps @PACKAGE@.pdf dist-hook: -rm -f $(distdir)/Doxyfile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/site/doxy/license_notice_footer.txt100644 0 0 1420 10774263403 21351 0ustar 0 0 apache-log4cxx-0.10.0/src/site/doxy/Doxyfile.in100644 0 0 152613 10774263403 16435 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # # Doxyfile 1.5.3 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file that # follow. The default is UTF-8 which is also the encoding used for all text before # the first occurrence of this tag. Doxygen uses libiconv (or the iconv built into # libc) for the transcoding. See http://www.gnu.org/software/libiconv for the list of # possible encodings. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = "Apache log4cxx" # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = "Version @VERSION@" # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = . # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, # Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian, # Italian, Japanese, Japanese-en (Japanese with English messages), Korean, # Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian, # Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = NO # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = YES # If the QT_AUTOBRIEF tag is set to YES then Doxygen will # interpret the first line (until the first dot) of a Qt-style # comment as the brief description. If set to NO, the comments # will behave just like regular Qt-style comments (thus requiring # an explicit \brief command for a brief description.) QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the DETAILS_AT_TOP tag is set to YES then Doxygen # will output the detailed description near the top, like JavaDoc. # If set to NO, the detailed description appears after the member # documentation. DETAILS_AT_TOP = YES # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for Java. # For instance, namespaces will be presented as packages, qualified scopes # will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to # include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. CPP_CLI_SUPPORT = NO # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = NO # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be extracted # and appear in the documentation as a namespace called 'anonymous_namespace{file}', # where file will be replaced with the base name of the file that contains the anonymous # namespace. By default anonymous namespace are hidden. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = NO # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = YES # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = NO # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= NO # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = NO # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from the # version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = NO # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be abled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text " # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = \ @base_dir@/src/main/include \ @base_dir@/src/site/doxy/mainpage.dox # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py FILE_PATTERNS = *.h # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the output. # The symbol name can be a fully qualified name, a word, or if the wildcard * is used, # a substring. Examples: ANamespace, AClass, AClass::ANamespace, ANamespace::*Test EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. Doxygen will compare the file name with each pattern and apply the # filter if there is a match. The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER # is applied to all files. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. If you have enabled CALL_GRAPH or CALLER_GRAPH # then you must also enable this option. If you don't then doxygen will produce # a warning and turn it on anyway SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES (the default) # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = NO # If the REFERENCES_RELATION tag is set to YES (the default) # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. Otherwise they will link to the documentstion. REFERENCES_LINK_SOURCE = YES # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = NO #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = YES # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 2 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = @manual_dest@ # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = @base_dir@/src/site/doxy/license_notice_footer.txt # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compressed HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. For this to work a browser that supports # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). HTML_DYNAMIC_SECTIONS = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # If the GENERATE_TREEVIEW tag is set to YES, a side panel will be # generated containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, # Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are # probably better off using the HTML help feature. GENERATE_TREEVIEW = YES # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = NO # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = NO # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = NO # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. This is useful # if you want to understand what is going on. On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = YES # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = LOG4CXX_WCHAR_T_API \ LOG4CXX_UNICHAR_API \ LOG4CXX_CFSTRING_API # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse # the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option is superseded by the HAVE_DOT option below. This is only a # fallback. It is recommended to install and use dot, since it yields more # powerful graphs. CLASS_DIAGRAMS = NO # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see http://www.mcternan.me.uk/mscgen/) to # produce the chart and insert it in the documentation. The MSCGEN_PATH tag allows you to # specify the directory where the mscgen tool resides. If left empty the tool is assumed to # be found in the default search path. MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = NO # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then doxygen will # generate a call dependency graph for every global function or class method. # Note that enabling this option will significantly increase the time of a run. # So in most cases it will be better to enable call graphs for selected # functions only using the \callgraph command. CALL_GRAPH = NO # If the CALLER_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then doxygen will # generate a caller dependency graph for every global function or class method. # Note that enabling this option will significantly increase the time of a run. # So in most cases it will be better to enable caller graphs for selected # functions only using the \callergraph command. CALLER_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = NO # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is # visualized by representing a node as a red box. Note that doxygen if the number # of direct children of the root node in a graph is already larger than # MAX_DOT_GRAPH_NOTES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. DOT_GRAPH_MAX_NODES = 50 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, which results in a white background. # Warning: Depending on the platform used, enabling this option may lead to # badly anti-aliased labels on the edges of a graph (i.e. they become hard to # read). DOT_TRANSPARENT = NO # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = NO # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::additions related to the search engine #--------------------------------------------------------------------------- # The SEARCHENGINE tag specifies whether or not a search engine should be # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO apache-log4cxx-0.10.0/src/site/doxy/Makefile.am100644 0 0 4411 10774263403 16306 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # EXTRA_DIST = Doxyfile mainpage.dox license_notice_footer.txt # DOC is defined if installer requests doc generation. if DOC htmldest = $(pkgdatadir)/html install-data-hook: $(mkinstalldirs) $(DESTDIR)$(htmldest) cp -dpR @manual_dest@/* $(DESTDIR)$(htmldest) # Automake's "distcheck" is sensitive to having files left over # after "make uninstall", so we have to clean up the install hook. uninstall-local: rm -rf $(DESTDIR)$(htmldest) dox: @manual_dest@/index.html if LATEX_DOC pdf: @PACKAGE@.pdf @PACKAGE@.pdf: $(MAKE) -C ./latex pdf ln -s ./latex/refman.ps @PACKAGE@.ps ln -s ./latex/refman.pdf @PACKAGE@.pdf endif else # We repeat the three targets in both the "if" and "else" clauses # of the conditional, because the generated makefile will contain # references to the targets (target "install" depends on target # "install-datahook", for example), and some make programs get upset # if no target exists. install-data-hook: uninstall-local: dox: endif all-local: dox @manual_dest@/index.html: Doxyfile mainpage.dox "@DOXYGEN@" distdir = $(top_builddir)/$(PACKAGE)-$(VERSION) # Make tarfile to distribute the HTML documentation. doc-dist: dox rm -rf $(distdir) mkdir $(distdir) mkdir $(distdir)/docs mkdir $(distdir)/docs/html cp @manual_dest@/* $(distdir)/docs/html tar -czf $(top_builddir)/$(PACKAGE)-docs-$(VERSION).tar.gz -C $(distdir) docs rm -rf $(distdir) clean-local: $(RM) -r latex $(RM) -r @manual_dest@ man @PACKAGE@.ps @PACKAGE@.pdf dist-hook: -rm -f $(distdir)/Doxyfile apache-log4cxx-0.10.0/src/site/doxy/mainpage.dox100644 0 0 1464 10774263403 16554 0ustar 0 0 /* Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You 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. */ /** @mainpage \ref Introduction

\ref LoggingMacros apache-log4cxx-0.10.0/src/site/apt/building/autotools.apt100644 0 0 12672 10774263403 20437 0ustar 0 0 ~~ Licensed to the Apache Software Foundation (ASF) under one or more ~~ contributor license agreements. See the NOTICE file distributed with ~~ this work for additional information regarding copyright ownership. ~~ The ASF licenses this file to You 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. ------ Building Apache log4cxx with autotools ------ ------ ------ Building Apache log4cxx with autotools * Quick start: Install or build apr 1.x, apr-util 1.x, gzip and zip. +------------+ $ cd apache-log4cxx-0.10.0 $ ./configure $ make $ make check $ sudo make install +------------+ * configure options *-------------------+---------------------------------------------------------------------------------------------+ | --with-apr | path to non-default location for APR. | *-------------------+---------------------------------------------------------------------------------------------+ | --with-apr-util | path to non-default location for APR-Util. | *-------------------+---------------------------------------------------------------------------------------------+ | --enable-wchar_t | Enable wchar_t API methods, choice of yes (default), no. | *-------------------+---------------------------------------------------------------------------------------------+ | --enable-unichar | Enable UniChar API methods, choice of yes, no (default). | *-------------------+---------------------------------------------------------------------------------------------+ | --enable-cfstring | Enable CFString API methods, requires Mac OS/X CoreFoundation, choice of yes, no (default). | *-------------------+---------------------------------------------------------------------------------------------+ | --with-logchar | Interal character representation, choice of utf-8 (default), wchar_t , unichar. | *-------------------+---------------------------------------------------------------------------------------------+ | --with-charset | Exteral character encoding, choice of utf-8, iso-8859-1, usascii, ebcdic, auto (default). | *-------------------+---------------------------------------------------------------------------------------------+ | --with-SMTP | SMTP implementation for SMTPAppender, choice of libesmtp, no (default). | *-------------------+---------------------------------------------------------------------------------------------+ | --with-ODBC | OBDC implementation for ODBCAppender, choice of unixODBC, iODBC, Microsoft, no (default). | *-------------------+---------------------------------------------------------------------------------------------+ | -help | Display help showing all options and exit. | *-------------------+---------------------------------------------------------------------------------------------+ SMTP and ODBC options can depend on libraries that that have different licenses. You should review the corresponding licenses and understand the implications before redistribution. * Platform specific notes: ** Mac OS/X: APR and APR-Util are provided by the platform in Mac OS/X 10.5 and iODBC in 10.4. ** Debian: APR, APR-Util and zip may be installed by: +----+ $ sudo apt-get install libapr1.0-dev libaprutil1.0-dev zip +----+ ** FreeBSD: APR, APR-Util and zip may be installed from the ports collection by: +----+ # cd /usr/ports/archivers/zip # make # make install # cd /usr/ports/devel/apr # make # make install +----+ ** Cygwin: Install zip (used by RollingFileAppender) and sed (used to normalize output files for comparison in the unit tests). The prepackaged APR currently available from Cygwin has APR_HAS_THREADS == 0. Some appenders will not be available and some may operate with reduced functionality. There have been reports of building APR on Cygwin with threads enabled. ** MinGW: Recent APR 1.2.x releases fail ./configure with a error of "decision on anonymous shared memory failed". That issue has been fixed in the current APR SVN HEAD. The follow sequence worked with MSYS (with Python on Path): +----+ $ cd expat-2.0.1 $ ./configure $ make install $ cd .. $ svn co https://svn.apache.org/repos/asf/apr/apr/trunk apr $ cd apr $ ./buildconf.sh $ ./configure $ make install $ cd .. $ svn co \ https://svn.apache.org/repos/asf/apr/apr-util/trunk \ apr-util $ cd apr-util $ ./buildconf.sh $ ./configure --with-apr=/usr/local --with-expat=/usr/local $ make install $ cd ../apache-log4cxx-0.10.0 $ ./configure --with-apr=/usr/local \ --with-apr-util=/usr/local --with-logchar=wchar_t $ make install +----+ Running "make check" was observed to fail with unexpected exceptions in streamtestcase and datetimedateformattestcase. See {{{http://issues.apache.org/jira/browse/LOGCXX-244}LOGCXX-244}}. apache-log4cxx-0.10.0/src/site/apt/building/vstudio.apt100644 0 0 6375 10774263403 20066 0ustar 0 0 ~~ Licensed to the Apache Software Foundation (ASF) under one or more ~~ contributor license agreements. See the NOTICE file distributed with ~~ this work for additional information regarding copyright ownership. ~~ The ASF licenses this file to You 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. ------ Building Apache log4cxx with Microsoft Visual Studio ------ ------ ------ Building Apache log4cxx with Microsoft Visual Studio *Preparation +----+ unzip apr-1.2.11-win32-src.zip rename apr-1.2.11 apr unzip apr-util-1.2.10-win32-src.zip rename apr-util-1.2.10 apr-util cd apache-log4cxx-0.10.0 configure configure-aprutil +----+ configure.bat copies the prefabricated log4cxx.hw and private/log4cxx_private.hw over to log4cxx.h and private/log4cxx_private.h. configure-aprutil.bat uses "sed" to modify apu.hw and apr_ldap.hw to disable APR-Iconv and LDAP which are not necessary for log4cxx and problematic to build. If "sed" is not available, the modifications would be trivial to do in any text editor. Use the Win32 source zips for APR and APR-Util to preserve the required line endings for the project files. Directories need to be renamed to "apr" and "apr-util" respectively. *Building log4cxx.dll Open projects/log4cxx.dsw with Microsoft Visual Studio 6 or later at which time you may be prompted to upgrade the projects to the format used by your version of Microsoft Visual Studio. Select log4cxx as active project and build. *Running unit tests To pass the unit tests, gzip, zip and sed must be on the path. Also three environment variables need to be defined: TOTO=wonderful, key1=value1 and key2=value2. These must be done outside of Microsoft Visual Studio, either in the Control Panel or in a Command Prompt uses to launch Microsoft Visual Studio. Open projects/testsuite.dsw or projects/testsuite-standalone.dsw (test suite and implementation in one project) in Microsoft Visual Studio, select active project and build. On the Debug Tab of the Project/Settings dialog, set the Working Directory to "../src/test/resources". Individual tests can be specified in Program Arguments and "-v" can be specified to output verbose test results. *Known Issues *APR 1.2.12 has a known issue that will prevent compilation with Visual Studio 6 unless a later Platform SDK is installed. See APR bug {{{http://issues.apache.org/bugzilla/show_bug.cgi?44327}44327}}. APR 1.2.11 and the corresponding APR-Util 1.2.10 will compile with Visual Studio 6. *APR-Util requires later LDAP headers than provided with Visual Studio 6 and will fail to compile. log4cxx does not use LDAP, it can be disabled in apr_ldap.hw. *APR-Iconv is problematic and not used by log4cxx, it can be disabled in apu.hw. apache-log4cxx-0.10.0/src/site/apt/building/ant.apt100644 0 0 30613 10774263403 17163 0ustar 0 0 ~~ Licensed to the Apache Software Foundation (ASF) under one or more ~~ contributor license agreements. See the NOTICE file distributed with ~~ this work for additional information regarding copyright ownership. ~~ The ASF licenses this file to You 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. ------ Building Apache log4cxx with Apache Ant ------ ------ ------ Building Apache log4cxx with Apache Ant {{{http://ant.apache.org}Apache Ant}} with cpptasks from the {{{http://ant-contrib.sourceforge.net}Ant-Contrib}} project can be used to build log4cxx with supported compilers and is also used to generate the IDE project files included in the releases. The Apache Maven build which is used to generate the site documentation and release packaging delegates to this build. The Ant build can build APR and APR-Util if source is available. * Quick start: *Install {{{http://ant.apache.org}Apache Ant}} 1.6.5 or later. *Install cpptasks 1.0b5 or later from the {{{http://ant-contrib.sourceforge.net}Ant-Contrib Project}}. ant-contribs 1.0b3 or later is needed for some less frequent build targets. *Install APR and APR-Util or place source in apr and apr-util directories as a sibling to the log4cxx directory. *Install gzip and zip (used for compression by RollingFileAppender) and sed (used to normalize output files for comparison in unit tests). * Install log4j 1.2. Used in testing of SocketAppender. Building and testing log4cxx on a Unix platform with packaged APR and APR-Util. +----+ $ export CLASSPATH=~/cpptasks/cpptasks-1.0b5.jar $ cd apache-log4cxx-0.10.0 $ ant +----+ Building and testing log4cxx on a Unix platform with APR and APR-Util built from source. +----+ $ export CLASSPATH=~/cpptasks/cpptasks-1.0b5.jar $ tar -xvzf apr-1.2.12.tar.gz $ mv apr-1.2.12 apr $ tar -xvzf apr-util-1.2.12.tar.gz $ mv apr-util-1.2.12 apr-util $ cd apache-log4cxx-0.10.0 $ ant +----+ Building and testing log4cxx on a Microsoft Windows with APR and APR-Util built from source. +----+ set PATH=\apache-ant-1.7.0\bin;%PATH% set CLASSPATH=\cpptasks\cpptasks-1.0b5.jar tar -xvzf apr-1.2.12.tar.gz rename apr-1.2.12 apr tar -xvzf apr-util-1.2.12.tar.gz rename apr-util-1.2.12 apr-util cd apache-log4cxx-0.10.0 ant -Dfind=false +----+ * Common ant targets *-----------------------+---------------------------------------------------------------------------------------------+ | build | build log4cxx library. | *-----------------------+---------------------------------------------------------------------------------------------+ | check | build logcxx library and build and run unit tests and examples. | *-----------------------+---------------------------------------------------------------------------------------------+ | clean | Delete all generated files. | *-----------------------+---------------------------------------------------------------------------------------------+ | build-unittest | build log4cxx library and unit test. | *-----------------------+---------------------------------------------------------------------------------------------+ | run-socketserver | Tests SocketAppender with Java-based receiver. | *-----------------------+---------------------------------------------------------------------------------------------+ | build-projects-vc6 | Build Microsoft Visual Studio 6 project files. | *-----------------------+---------------------------------------------------------------------------------------------+ | build-projects-vc7 | Build Microsoft Visual Studio .NET project files. | *-----------------------+---------------------------------------------------------------------------------------------+ | build-projects-vc8 | Build Microsoft Visual Studio 2005 project files. | *-----------------------+---------------------------------------------------------------------------------------------+ | build-projects-vc9 | Build Microsoft Visual Studio 2008 project files. | *-----------------------+---------------------------------------------------------------------------------------------+ | build-projects-xcode | Build Apple Xcode project files. | *-----------------------+---------------------------------------------------------------------------------------------+ All build products will be placed in the target subdirectory. Project files should be generated after successfully building the library, however it is possible to generate Microsoft Visual Studio project files on other platforms. The project files will typically be missing references to the Platform SDK libraries. The Maven project modifies the generated project files for release preparation. Generation of Xcode projects from Microsoft Windows is not supported. * ant options *-------------------+---------------------------------------------------------------------------------------------+ | -Dcompiler | Compiler, see cpptasks documentation for full list. | *-------------------+---------------------------------------------------------------------------------------------+ | -Ddebug | Build for debugging, yes (default), no. | *-------------------+---------------------------------------------------------------------------------------------+ | -Dfind | Attempt to locate compiled APR and APR-Util, yes (default), no. | *-------------------+---------------------------------------------------------------------------------------------+ | -Dwith-apr | path to non-default location for APR. | *-------------------+---------------------------------------------------------------------------------------------+ | -Dwith-apr-util | path to non-default location for APR-Util. | *-------------------+---------------------------------------------------------------------------------------------+ | -Denable-wchar_t | Enable wchar_t API methods, choice of yes (default), no. | *-------------------+---------------------------------------------------------------------------------------------+ | -Denable-unichar | Enable UniChar API methods, choice of yes, no (default). | *-------------------+---------------------------------------------------------------------------------------------+ | -Denable-cfstring | Enable CFString API methods, requires Mac OS/X CoreFoundation, choice of yes, no (default). | *-------------------+---------------------------------------------------------------------------------------------+ | -Dwith-logchar | Interal character representation, choice of utf-8 (default), wchar_t , unichar. | *-------------------+---------------------------------------------------------------------------------------------+ | -Dwith-charset | Exteral character encoding, choice of utf-8, iso-8859-1, usascii, ebcdic, auto (default). | *-------------------+---------------------------------------------------------------------------------------------+ | -Dwith-SMTP | SMTP implementation for SMTPAppender, choice of libesmtp, no (default). | *-------------------+---------------------------------------------------------------------------------------------+ | -Dwith-ODBC | OBDC implementation for ODBCAppender, choice of unixODBC, iODBC, Microsoft, no (default). | *-------------------+---------------------------------------------------------------------------------------------+ | -Dlog4j.jar | Path to log4j.jar for run-socketserver. | *-------------------+---------------------------------------------------------------------------------------------+ | -Dprojects.dir | Location for generated IDE projects. | *-------------------+---------------------------------------------------------------------------------------------+ | -Dlib.type | Library type to create, choice of shared (default), static. | *-------------------+---------------------------------------------------------------------------------------------+ | -Druntime | Type of C runtime library to use, choice of dynamic (default), static. | *-------------------+---------------------------------------------------------------------------------------------+ | -Doptimization | Optimization: none (default), size, minimal, speed, full, aggressive, extreme, unsafe. | *-------------------+---------------------------------------------------------------------------------------------+ | -p | Display available targets and quit. | *-------------------+---------------------------------------------------------------------------------------------+ SMTP and ODBC options can depend on libraries that that have different licenses. You should review the corresponding licenses and understand the implications before redistribution. Combining -Dlib.type=shared and -Druntime=static is unsafe. Properties may also be placed in a build.properties file in the log4cxx directory. * Platform specific notes: ** Microsoft Windows {{{http://gnuwin32.sourceforge.net}GnuWin32}} provides binary versions of sed, gzip and zip. Alternative, the bin directory of {{{http://www.cygwin.com}Cygwin}} may be placed on the path. If -Dwith-SMTP=libesmtp is specified, the build will attempt to build libesmtp from source, unfortunately libesmtp depends on poll.h and will not build. APR 1.2.12 has a known issue that will prevent compilation with Visual Studio 6 unless a later Platform SDK is installed. See APR bug {{{http://issues.apache.org/bugzilla/show_bug.cgi?44327}44327}}. APR 1.2.11 and the corresponding APR-Util 1.2.10 will compile with Visual Studio 6. *** Cygwin: gcc 3.x does not provide wchar_t support which needs to be explicitly disabled. The Win32 path to the APR libraries need to be provided (CYGWIN_HOME/lib) if compiling against an installed APR and APR-Util. +-----+ $ cd apache-log4cxx-0.10.0 $ ant -Dos.family=cygwin \ -Dwith-apr=/cygwin/lib \ -Dwith-apr-util=/cygwin/lib \ -Denable-wchar_t=0 +-----+ *** MinGW: +----+ $ cd apache-log4cxx-0.10.0 $ path c:\mingw\bin;%PATH% $ ant -Dcompiler=gcc -Dfind=false build-all $ cd src\test\resources $ set TOTO=wonderful $ set key1=value1 $ set key2=value2 $ ..\..\..\target\debug\shared\testsuite -v $ ..\..\..\target\debug\shared\trivial $ ..\..\..\target\debug\shared\stream +----+ Running "ant check" was observed to fail with unexpected exceptions in streamtestcase and datetimedateformattestcase. See {{{http://issues.apache.org/jira/browse/LOGCXX-244}LOGCXX-244}}. ** Debian: Apache APR, APR-Util, Ant and log4j and zip may be installed using: +----+ $ sudo apt-get install libapr1.0-dev libaprutil1.0-dev \ ant ant-optional liblog4j1.2-java zip +----+ ** Mac OS/X: APR and APR-Util are provided by the platform in Mac OS/X 10.5 and iODBC in 10.4. Site generation requires "doxygen" command on path which can be provided by installing Doxygen.app and then setting the path like: +---+ $ setenv PATH /Applications/Doxygen.app/Contents/Resources:$PATH +---+ apache-log4cxx-0.10.0/src/site/apt/building/xcode.apt100644 0 0 5053 10774263403 17463 0ustar 0 0 ~~ Licensed to the Apache Software Foundation (ASF) under one or more ~~ contributor license agreements. See the NOTICE file distributed with ~~ this work for additional information regarding copyright ownership. ~~ The ASF licenses this file to You 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. ------ Building Apache log4cxx with Apple Xcode ------ ------ ------ Building Apache log4cxx with Apple Xcode *Building log4cxx.dylib Run configure to generate log4cxx.h and log4cxx_private.h then launch Xcode. +----+ cd apache-log4cxx-0.10.0 ./configure open projects/log4cxx.xcodeproj +----+ *Running unit tests Run configure then open projects/testsuite.xcodeproj or projects/testsuite-standalone.xcodeproj (test suite and implementation in one project) in Xcode. The unit tests require the working directory and several environment variables to be set. To set these, elect the executable in Groups & Files and press Info and: * In the General pane, set Working Directory to Custom with path "../src/test/resources". * In the Arguments pane, add following key value pairs to "Variables to be set in the environment": TOTO=wonderful, key1=value1 and key2=value2. * In the Arguments pane, add "-v" for verbose output, or individual test names in "Arguments to be passed on launch". *Issues The project file generation does does not properly create an entry in the "Link Binary with Libraries" build phase for projects (such as the examples and unit tests) that depend on log4cxx. To work around the problem, open the project in Xcode and in the Groups & Files pane, drag log4cxx.dylib and drop on the "Link Binary with Libraries" folder under Targets. See issue {{{http://issues.apache.org/jira/browse/LOGCXX-245}LOGCXX-245}} for further information. The projects provided in the release target Mac OS/X 10.5 which provides preinstalled APR and APR-Util libraries. To generate XCode projects to target Mac OS/X 10.4, set up the ant build and then "ant build-projects-xcode -Dfind=false". apache-log4cxx-0.10.0/src/site/apt/building/maven.apt100644 0 0 10325 10774263403 17505 0ustar 0 0 ~~ Licensed to the Apache Software Foundation (ASF) under one or more ~~ contributor license agreements. See the NOTICE file distributed with ~~ this work for additional information regarding copyright ownership. ~~ The ASF licenses this file to You 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. ------ Building Apache log4cxx with Apache Maven 2 ------ ------ ------ Building Apache log4cxx with Apache Maven 2 {{{http://maven.apache.org}Apache Maven 2}} is used to generate the release assemblies and generate product documentation. It delegates to the {{{ant.html}Apache Ant build}} to build and test log4cxx and can be used as an alternate front end to the Ant build process since it can automatically download and use ant-contrib, cpptasks and log4j. The Maven build, like the Ant build, can build APR and APR-Util from source. * Quick start: *Install {{{http://maven.apache.org}Apache Maven}} 2.0.8 or later. *Install APR and APR-Util or place source in apr and apr-util directories in same parent directory as log4cxx directory. Building and testing log4cxx on a Unix platform with packaged APR and APR-Util. +----+ sudo apt-get install libapr1.0-dev libaprutil1.0-dev doxygen cd apache-log4cxx-0.10.0 export PATH=/home/myself/maven-2.0.8/bin:$PATH mvn package +----+ Building and testing log4cxx on a Microsoft Windows with APR and APR-Util built from source. +----+ set PATH=\maven-2.0.8\bin;%PATH% tar -xvzf apr-1.2.12.tar.gz rename apr-1.2.12 apr tar -xvzf apr-util-1.2.12.tar.gz rename apr-util-1.2.12 apr-util cd apache-log4cxx-0.10.0 mvn package +----+ * Common Maven targets *--------------------------+---------------------------------------------------------------------------------------------+ | compile | build log4cxx library. | *--------------------------+---------------------------------------------------------------------------------------------+ | package | build logcxx library and build and run unit tests and examples. | *--------------------------+---------------------------------------------------------------------------------------------+ | site | Generate documentation and IDE project files, requires doxygen. | *--------------------------+---------------------------------------------------------------------------------------------+ | site assembly:assembly | Generate snapshot tarball and zip file. | *--------------------------+---------------------------------------------------------------------------------------------+ | site-deploy | Publish website to staging area on ASF subversion repository (requires credentials). | *--------------------------+---------------------------------------------------------------------------------------------+ | clean | Delete all generated files. | *--------------------------+---------------------------------------------------------------------------------------------+ All build products will be placed in the target subdirectory. It is not possible to directly pass options to the Ant build, however the ant build will read any build.properties file in the log4cxx directory. SMTP and ODBC options can depend on libraries that that have different licenses. You should review the corresponding licenses and understand the implications before redistribution. * Platform specific notes: See the {{{ant.html}Apache Ant build}} for platform specific notes. apache-log4cxx-0.10.0/src/site/apt/Makefile.am100644 0 0 1420 10774263403 16104 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # apache-log4cxx-0.10.0/src/site/apt/download.apt100644 0 0 5273 10774263403 16377 0ustar 0 0 ~~ Licensed to the Apache Software Foundation (ASF) under one or more ~~ contributor license agreements. See the NOTICE file distributed with ~~ this work for additional information regarding copyright ownership. ~~ The ASF licenses this file to You 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. ------ Download Apache log4cxx 0.10.0 ------ ------ ------ Download Apache log4cxx 0.10.0 Apache log4cxx 0.10.0 is distributed under the {{{http://www.apache.org/licenses/LICENSE-2.0.html} Apache License, version 2.0}}. The link in the Mirrors column should display a list of available mirrors with a default selection based on your inferred location. If you do not see that page, try a different browser. The checksum and signature are links to the originals on the main distribution server. *-------------------------+---------+----------+-----------+ | | Mirrors | Checksum | Signature | *-------------------------+---------+----------+-----------+ | Apache log4cxx 0.10.0 (tar.gz) | {{{http://www.apache.org/dyn/closer.cgi/logging/log4cxx/0.10.0/apache-log4cxx-0.10.0.tar.gz} apache-log4cxx-0.10.0.tar.gz}} | {{{http://www.apache.org/dist/logging/log4cxx/0.10.0/apache-log4cxx-0.10.0.tar.gz.md5} apache-log4cxx-0.10.0.tar.gz.md5}} | {{{http://www.apache.org/dist/logging/log4cxx/0.10.0/apache-log4cxx-0.10.0.tar.gz.asc} apache-log4cxx-0.10.0.tar.gz.asc}} | *-------------------------+---------+----------+-----------+ | Apache log4cxx 0.10.0 (zip) | {{{http://www.apache.org/dyn/closer.cgi/logging/log4cxx/0.10.0/apache-log4cxx-0.10.0.zip} apache-log4cxx-0.10.0.zip}} | {{{http://www.apache.org/dist/logging/log4cxx/0.10.0/apache-log4cxx-0.10.0.zip.md5} apache-log4cxx-0.10.0.zip.md5}} | {{{http://www.apache.org/dist/logging/log4cxx/0.10.0/apache-log4cxx-0.10.0.zip.asc} apache-log4cxx-0.10.0.zip.asc}} | *-------------------------+---------+----------+-----------+ Please read {{{http://httpd.apache.org/dev/verification.html}Verifying Apache HTTP Server Releases}} for more information on why you should verify our releases. * Previous Releases All previous releases of Apache log4cxx can be found in the {{{http://archive.apache.org/dist/logging/log4cxx}archive repository}}. apache-log4cxx-0.10.0/src/site/resources/images/ls-logo.jpg100644 0 0 77725 10774263411 20665 0ustar 0 0 JFIFHH Photoshop 3.08BIMHH8BIM 8BIM8BIM 8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM8BIM8BIM@@8BIM8BIMq[ls-logo3[8BIM8BIM8BIM %pP"  JFIFHHAdobed            p"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?7]m}%׾ 73{~.L;Z׿iyoWRmִ2+~69,kb5Ymv]D1˜߼Ұ7 ǎD*>fosGc/<s_b[k+ ˞?Y]Lͤpof86Tleۨ IR xzqX{[Awsy>/֜|\zb^Ha.Im~jϭUs}smGzoL@߆2œW?/1Q)c֛mhOa vo?jv]MY=JgK(ƻ+skA˯x.ik=gHmR4V㹡ͱäF?sR98ǪɝrHdbbyaʩ$\f~Jwqˊޏqdžܗu ZE{j_[ǶkcM/"͹hϴ6;Emt$}kP/𪪿ˎ.mnUv,ƲJ7;N@RFC~pyW[}/宵$zWqmPW[?o?c.}lkƘ鱵?e]I(]̸^w8BIM!}Adobe Photoshop ElementsAdobe Photoshop Elements 1.0.18BIMAdobed@[1     !1"Q2Aar# 35qBC$DUbd%&VY!1A"Qaq2B# Rbr3$sUCSTt% ?-786f @EI.!`SC)ڦ"q0r]m.9 f;rQ;0DHYir.ά糎Q˅ᗓh(ztX1q2,ԕrɢQI xt& ъ88C̪ZQn@q&r>=AIa=;bIث .Vv(97I媉 ȤUY6+ PJ!#2 $!zӍ ʘBXk#2??S?MxE6>lXJ荝ʼn ISrZ*UVಳ^ĂٺVT;Tg0kTV:2g9QucTSa$&3[WVVXx /ُ}sͺ](W/ Trc9@$F7'|p[8R26FuMd{r:eesYS1T5$NwDŽY^L,&p4:@ yl?ugEi:53 Bj֨WY"Z%.r|EdGWdfgPQPa. \ɎM&Kc֬|cq qiA(0Kp, Q*!`..E`))))))))))))))))))))))))))))))))))))++mU J,pPHgPJA(S#+8292LG#&j6%xWܱC:CQ'/1t;e .cc ҩc+[>BV.|``76oC^Vy࣎|gJ\$Fq0xQ`֭[v)L4,ӵ(f<7f*xeE=cf]%n-+ecCM\ue9}DNjI8cCiWE M[Y kͫ>ezIn`6#.pIå Q"xȈ2B_?d,{ \X$$\Uʾ{YΖ|(rzIFYE jS\Ed,pEnC5 Y Uh雨*'&r~i&4idd`-ka$Z bO@C0[_f|r"T4`nQA]"Gk;GG4^d @HE!șKb~":rَ eLc@p_J[B:Vǽ \*/"ad @B黲) IwZqq)]G08toJ.C~"+u +f WPH_@J7ZŀN +ιdsJaX1QM`qцeӽG܍(1oQ:5瘝zib W"=`1Qh㷏nSD%2.Wء$ h؀<.ֵl>yl[f{b$hìjfs#)ik;>}k!*s6# 2ƚFōdoы gٸl!Oct#4Nkhib@:=tc`}&q+Qer^e&Şɐ!Y 4)*!LIך*ܼp$n3 !YGrlfi&QEKsGҵ`+[g3 őE$]*RJJ5#Өz F' [6OC[l_E-{>^ Z 1D_{ysd=X^?u"c\Vѯ$eJ)u(tSfϰK3(Omdt`D :,.}  Y TkSj>}܌300dǐ7hZgVuBV#YnQ֊m YD",Ux)DYF//{H&ICA.8xGد}.ZăfRAEk͏+Ñ$lUV עtҔҔҔҕ|-97cc}! -1dvMZ1HBDDtlEG~.N-yAfZ(g !Cnxxҹ )M)M)M)]ZwzbkAiFF26MW.Kr!CsC0k 6+~mP+inRY'W }%"coݣD sl"+-ih+N2o# b ,N9LD0;,~)]\RRR MFJnH }RNY333Yg-#c( (BMJ))))))+w/7%!]޻Qto1|Q98ǍdcdZ} .>d8hQM] N1r@@t}ZRRRRRR)+rB5 S1C C b)vA )T}x~d"*`k5fѱ+ "ԓh<!)S>7M! ('6'"CG}8>a7'im22).H{O{"`Rj"Vz5-YB jǨLZ5f,#K"9IRەRHr%d)PION+gn&vvѽQ2'Xc č!(tWLcՆ=Y&MVj$#!ʒ-&*MT=7`+..d#rM7m$]Aѿ7M0ұi8U  " г(QZnSvMW1' Gp>\9Mٞ^q < SƐ ?I#}3oY2=Bbbg[%1Ye`/`IN1Ѕ2b]I%Sc"4]`Uc2M2wO#D͍q~zHei5*{ݖ0J~7ʰsɹcd E=Mu :.]3QmJaL_(u$ҷ*wК  [?'oPd@bPP+X:Or,9tqx@x r 3mn9T#x>\G8.To2-AǤAkrnmQׅqqh@S:@,Bn9*pM>l~xw#!1(t>t)FPcA5bzJP0~:߰=vcY+БU~㛃?L*ZSb mVHuz|hdNXrw'LSMC| aT)a/ɼM" .:lSz{GOs2͠\٬#*9?8KZYJd++XdQuv[;nuE 1\Ng Mc("P{ R9Opg ;x٤ŋ~JkGG7 *u7K,zVZqqb3YkiISphk٬,ʖvϋ)P`uT:g3@j^@.,<aߏm>h7FLQ1":#L|j dzy۱8dcdfn8ccG:QHT*!#E2Iľ`?<ı;UVao nN4hS&\3K"е\N[~Be`2$/c47!rHC [#qqloS5s'abHra}byK:B.=qϖ c'0g'TBragdR9Cs?mEBw٧pF\obw>;:$pnTM7 n.^|wp<Nl)K., 3e6[h&hpze25R|$ԢeyKTJg*@0ܱe"Z "0u_l6BvqMY7+i>Gjw-otx>{my! $G|L 06=˘*ƣ)PDUR]4l̴qti:l]Dznt T.?)6 iѝ4 ۅY.YGGCMeHfc4nqӭ. |ڐW["Ua\TB!hodM1]9gF i+@ O}-J+'&s=Mee%?E#9RDZK;{I{|{YPkYρ6[,,R7˞;UlYf1ϙV1TdtPFi(Ѫn"euN!Y5|G'v0\\?9dYkTnW|KNü5*&ur3kCpe@t)vзP#6+{Sfd7&q6)c`)7:%9^[%gYjc8 %ThU,c*^ckkȬFZDsFx. 4]+\di[8 v5S\g*͔0YB[%Yw0#}WQ52i|hw1,eCm:'3?)7b<*BxQG3H/T).J(Iy'FyHk1YBGH@;Ms2C\P$V&_aqBJ[ĖIL΍)\IHeq$`Rd([<3(Lur SQ'S﨡[.PɑY "2B֛/[.9aV 'Y: ڧ %;Ft$d]`_J7_|)|yT^m@q pk$1~&G&ض!|^}FeXԶ)oBNj iZ7e|vɝ2"2i\$5jق/6]ne SQP QeQ0&M)O? yT6_:M'>a;Xuq%v]R”wԌI#L"I.нHKnϥ/>C[|d.GAf_ke%MǐgWU~"::@fl2qn^][<(<*Q3A+Q\PBo֫R* $E Ƴ]X~qA#E]ƕZQ4]BA>/dH뭂+'4[U~!`3,j9HV-f~a]}Li?OB>/Y \fH NWYa2|vXc|:ʼnrm)S=FU'S%W/Juki goh^6zscCB՘sfeW2aSkGޗE{ƂVfLIb 6aPTܴJ}6M/Y:vit~D"|x;f5.bvN0FXxv=\;p67o\NLǓ׋n3Ur ֒n=բ@:Es?FYTr>SM:›\aL-.kكSfxAKL`!d%U&\*hu_{)$5 `')(4t? j>LDg1 j,㱎d[\h`HTvN#ϺT6;!O.[_aUZz3)PyF2W͘5UDOr;'7N5'q c[ۺW{ oܾ{?~y_)))*=f~(ߐ*W. q$sIAH"A35ҳM*0xYATS_\_ɏ>6TDUP2I}:߭sûθ?q$ͭd1_"̀ #y&p~QoiVd4-.tV<8R+[˫\me9S>XspWB2=%&nm%a&$5Yɦ FDdLNr FN3^Wn;v.C"HhfFv*e`m?[Mof#. Ph+*&H/lloҚg =:yx\VY@^=H$][HZ9͛HC%8 E0K }"$ZdHV f;P爊IR8PS*[  0W}ä@2wkd fxlEľjI~HBd[Céhò +Ϳ˓ų x^5[ZA@g !I4u5pxr1Ҩ{Y;vIG&!DKزnXY1*X-U/q8Ɏ%~ .,U)u[Qa(ד][.c2,'*,"܃uNa.L _d6|^H (ɌMzʬD9Qs`ؿM=8Y.dQdGiO J˨Z6+#&$G*@ͨtS0:1T*Ym- (rvouyV,sr13X6V@@a+w!4.tٲLC(V/`e&$OcV ] 7b(vFٲDӧgC.+ 7=um/NCɹѰkYqqXK4q$TҀ4luiTq\iQ )vD$KS&h+1La)e`ݚ=MR_[c.JtQcy[R=q89RC*P#yМw}r6gWVf?y5mUN)דZIp#5&tԝ2S)Rp6ۅλyn;6mYM#bOQ8fGst;V_ic~Qp{ $GI;+8]˱\|GY>. * qlJzL%bĘ˺o(ICG>wb'wP`}FgD\1?^Ѯ}DNWBC>()'S֧d?,oZQrZ\ǤfkSwM&Kץ0L *Wkln~/.mr%\9ðXf<3+odiI&9x;4dv<#91sqtLlz^9~?mg689 +#xAV T~v^FHmcb}|&2jZ;.==JWeRjZP#(UP)IMy|S~gOW(Day}e:?m ^d{i{j8XPlS|Oamo{U]eUJWMG @t&TXkL$HHdOam|E;sאR`w )k&jPw"oW)HK %9YB+F5`Ty9Ha2/\\6-5 `_Z.:\RH i8)CoW7WXΔV>9$fV-%fNڬ}J^)q" ¹ ͢Qm>xEmɁHQʴOw\K{'fB.Be"[H1 JDƒ ֧yՕ)H0)}ނVŻ=0{=N`Q V%l 5jQ+fǓo^rA2 HnΗV}ƹyYӓnF:\165Jc 4D[zn({c)mm2Y䅧 Z%׻:-8dٲ*d!SL @/SdȶKnE4HbQ˦W)a_z`IC"&!D8G_UѮRyX2?Bj'N^HݜbD^8OF$Lj'QBIU*u|.[eKRM5V(NEB-gBaj5& ldQnPNaBoU]cbG>'b㐈O`Wb9mJZ`ղ7pT"۴C ao~:_Q<̹_>_oiY,8ߒQ_7Gt$ @4GtBnYvJ{,J ̷>_YGyY˘-IEg%JCDȲRi::yXPo멅I~_]Bw*K}~N/\wg\El֏pڪF"':0D"07|UluUj+FB)(F݆A+FUJ1 ? UgCHVCeimҝ'Xc!SjҍOZ47-0 FUB7!{)u\oV^$TCZ{뒮ȮURXVpp=E9} ;-?O/ eF_O7xA'eA.βHJ$*UU*uCzwUf[/X8NbK=K[Uuv&Cq;!G"n&fS~(Η57λOw]?,Z\+)))))+iIR5RP:j&rN0 NCD\2#(E=A\A.D ͟SaEI᛹c՛aڮd&JbwM˽`ʂ%A_O*h{p8v<8eO&,N ;T ~5 kPf36v0)w*厉nRQ˧sX#(K-ggHpQ"*h'P>If&D[dh3$udom>t'׼{nrmw0%/.\0]:qxXr"P<M7~,Ҙsgk$֒#/Xf@PC$" ;n>0˓Ɏ)b*4fbճ|O r.)pDaǕq<;dDE#Tb䠨_+G6nr{ݞ;M{38݃*ϵrs ]9]u`Em4^!ICJg$ s\"VӪcsaqpk`8nښ|ygnlqlʒh#؝f tba &GuctW Vb-m,c'خ$/ᯖJpuNY 9MbnyѸ9ۡLm)*,LOiu(?(*e4.鏽&vƳ`1B- dGzzzI@9$|TW^;OH{Jo`Pn㴴6ّ9-Dd(Ǹ &f@OShԳ]'K,:Z1YMefl}h4ȹ%S/n@ԭo׏g,tKbad'R ՚SEQɔC1irǥ $QQ uY"bEՕo~Mv#NM_=8B;dEk D35Nk}4jNOED`8Mћȋc9,g,%7ͣw{ZVWǝ$u $hGailӮyNcwF٘TS-* iEuiFyIX>Jߖ5$%vh`2nh5,ɳDJì9@C^,ni>kmp۲G2F56<]4M  OWҖ3n`p}ݿ?`GYlnz0dYc步8 ݕ V~=e䫳H@V}]xL>_PZso'#l79ѤrlWtw}&۸w#|x P @ όFa]C3C&v*SeF-u6ycVRd\ 9UUYVj+M܍$˜o%"[9d$E737Su'FIqVumM,"&Y1IQaɄ,qC  \cʘv!`r6ADQ ]ygm2Hhsrbw~Bwgf~q8PRIA ,p035iŒpk/7D{xrZ ]+aƐ$ ^A*/UcxlM)2Vl<R|nߑLf dݪMDdX>"X^vXd[9Ɇ"KHX.@D$%h߹8p+G3%1H`r[P W {_%_Ӑ+J)c$r: VNBUlt-6V4[Jf櫁/fH1lK!|hT"#*!< s"^q!b6V+nzG@EN9gi13fdLUP lEk2nݺr 9r+9[jO{2vy$7yen!5@E$;푽g>nHU6 <Z$ԒOfK+M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)_)))))))*\WĔbq-ۋvvڶZ,NQK'UED Bdv#uqx1)Aթå׭υVy=0w|m2Z\1KPP [|*L6+$4+Z=:Z4.jy팽dw0gPH)6Ls/wx6ex TZҨ {d&|k}X&RX(I^16&/6n?qDV}$d$:V^' ( *} [OqSrmAU+ ف'X\tjin,_G yTnfIQ_2_Z̟&iY2)E91F2FWc!DP x1ٽͽ2$XFuU͓>$hԺrPO@n**Ҕ2ҕHqBLiJ(na#]U1 ?n)M)M)M)M)_)))))))*ݰ4O@l5TJ(bd=#m/~|E-#[2k]>%lp۫n!نac?mqlɒFH.n"# ""~PG1ww}rCƭTϲħ'f\q'v.\ѱIIYiꠊ3j"ɚf9 Q1@w irwj-mG.|5ggfY{d1 v>Pck>nzVX-U&,rT*"v5eEWrȹr VͶ8[\Y;sd5I HPu.mܞn}^ ףXNH@$( .ZNvYkD K^;ڋK2ݷv#o{Ϥ.nSSqb3),֫fGea\n|10=$ XiWs)"֫V³$wIEG^dO<'4I@UyàU8[ e۸PYtOv#6f=' DZ[1W騁f;ȷ~ jː8HRL^eZ4>?cHhk-o5l) <hs)LfY)ooTl']"twoL=OV{ YJŔw A{"m 2l vw],MUn/qW>ns3&TpER3JVdS閪r**1d*9wչfۆȻt69P r+$$kb<5L=ɼO`8vSNn5;9xWY͹vڿn)8,V>v YU" Vt`׉n b.V1 bOw87aQ&F@&(ĠVGårnl=ᛯ**&.AGr1^/Y ݾ^aps׻un!ʯﳲsjAJųBEmUNǯb/ڮ5rw #!d\  l7{y)9&öĘ͊„ J #ָ,8~ky8n_>e$QrN-!U N[`ul"Qp͏\ 2?E::y oslŸ6d2$f#~%SQ,w'doW8qoM4ڍfgWI36zJu<ݱ{mij['7i`*##ۍIRf,nE6m׻0?oKZZg:fɐDb4u@HB2|Jԇnܱ99:Y}\^=3g!tgÆK(E[|`/ZH ҵ\q߭VY2?u'^Y!eafd4jz,#1 f89mxCxd i$*Gn V<\wFy;Ybdo]SVlo/2~^Pud&4rœ2 QTɨ`wǁW.FZ̪|5 gf#դ 'a;_q6݋)c X-bX ^Gqs{[ZJ լMX5 cXkw ZFTQoH$(>,G:4kWAstJN V2;sFcD3rԮY_өnTf[͖Us~©vR4]UMjݑo54Q}W$uIh6D_d۾ tU nq 8{;<ʊ8cMȑV7璧3ظ_,2oT Ckt~,m%G~2Degmy19iG*`nEW 4UQ&MM!=bﻬ!51!cku|Mc{9O;3JlC*1e#Q`_ יY*S[HQuKQ3nkXBY-@nM[IM2n̯ȲUΖMZn9y'11]w%Ө+VŊ؅PKx>z˽NDQ,#bU@]F"(ng1dyٿfl͂R;y&k#4z)(E͜{4\&%DDɘ fnmqE^ݡnYiMRyIcFd%'Tg>=Ãp(dv86F/D–hFH6u{zQ}/q93+;I$U'i|̷E/wݑ[<.k嶉!HPuP|Y3^7d.냪aw}z[TydV#QʣI*lw/ޛIl,Qc^=C#/bY9[5{{X6HBfqύ?OZ{)3d;LlӼ(Cɼ^-86wDXѓ9=QR[UʵOdÃw;fQA̡d_tԐdY߉[[g+{ovV7E y`HZNIB( 7UYLʮqOھ!ͰAgmJ(FTkkէW@w򽻓m\KF ]vAw -ԯ[0דc]4.AP~c3EBbӃ%Ux2f (e ,:Ma䲈zjF!' TsEUpU:@P[doܲ06HLHLM Yâ/ؑzSq!mrHr6DP@>!Y {j?=F"O<1k6v}ԪѰ9D[+(]YY6IuM2:le1wfݷ<9cXLW,@$%mfFܤ: xjfok٭ji$< jʫW\tc_ɻ}u EAP6QP }g{6nW>%1K<|*F[L,U= +(oY|/SZjiڬ *(Eĺ,a LA;a1NJ^''tÚL91UfѪAֳom9\elIb$u-7l܍Ȕ)qԗ@NZǬ]e@JXk9tb'`}e+bǣ8;0=Uµ\oٓoK&69e7Vq1i4b.:]zV %,tOL!o&s:$ZCЀ 0p{A42l凞:o%^aTŝæ>q"˧OSR-&ȖfRibl&V25V,IAII,$ݳdpOۑQU>cqIʳO.\Tk8g$8>MX(,kfe`qai^J-noe   C,fT}{߶P66S71@'Y?/.ظpQTl>@N]LR7mYo7+ܗ]•_J*_[L^n8ILj[j56X[kK0ڎBz]fj2:g)DN:8(8WU{/$/x{G͇UxߥGwds: 6 @6nۥqdL" uۉ8FI#w 8EoRQ^HYad>^n܁V1M ;GRܸӞxx{q̪1ʴ%U̜$ %FT*.kI5$EUJ]qRP/ȶzIA7.LSkX5 :m{{Z˪CII[4[̹3$ڜ c볉CoQn =B"a[=<rǍ cH>vTeN/B<~ʽbQ6_{bFHj7&`xT`Ikk4c3ukL8gz[wʵd}~Np2f0)skr117xH5$W}Kp0= ֵxp\ț.05ǩu op EyʘTrEQ-UWQXKZޤD$p`1QDlr$hf)#޷d "`+}7 j)`7߶emwgx id(^X\,yzżn}=V8.L7N!(w{U/λR]ͰBk0ݛM U\+{x $U19F #ZmAz|tkXpQĶ&|Č$rLсDU/ ,jlԡ|""{sm9q2ץS ^.j2IQeQD6kǹ|sFF.LO uT1n_ ڷ] Ԍæm$P@T)#971ȇ!_B*'[8;P7:v|^cʍ8ͿcVś yǂr?}z0Ȓ-u8QT97QGp]jnLѬpF,-^~^;%סOO(m]Er"բࠉp]^٤ 8׸| dB8z {w r\C椒z'O/LP[t ԙ)vNGL3+$Gsb?ZVad6r L]bx.ǁ3*ģ`(}D"+'C gXZqO*օoRDAU3">|Q) 62C/~̥MX猪G[b iZw1'Xh,Pvp!)6^*ʟ;Ƚ_7k2cn_ 7PXbjS/!R7&K碑BZvzZ.e8eI%"+@1V"xNڪNͼ7Iĕ’"}$x-aWnMs{>N4e=.!EHG˧KWu :.4K%J[LZg2S֔] #H,ڣ:w)},3L]HrfmdVF>0#r< mömb)"w ctIIŸ;[}ZsJlB5c:^^z qTiYPaaM\*0QnrWr1d!C(k! /k٭ZopSŢ׺۴:̫vd>s"P(u, @LEW܍uyD1*b*E^lUwl@OSae8V ʠcjk[_Đe-J%fBA'LW-WECr0_5]q| fWP`#ŗOQttYr\} \ b7>6`a͏ݖ-ݡ K-%g$CPY#e*i.FϚ, wi'm7(ĄúG I]HRVU=DP 馻Uwݓd~ (u2l0r:Rye`_LETU!o 6ZEikSJSJSJW)))))))*yċndiURzy+%+^Yg8bGlN٘2 rK" ǘMW\OpF;*/L#@kZ{ߤ.WLu?z*ۏp۱Ǐ!دSulbf e\#3`@k;DHLL>cuuzmɓ`00rYG=jy{Yp,읳7&C%dnIZUdwXr*[bS # VC)2qn%ݶC$S"AѺA޹l@)KU'ܛ/o[ەnŘ@B`]I^$:lfkYY#hPlF-Rk#s( .HECDd;Ӹ${NܸuNP~eX+zq͟qu2V  <HZـ@X6V\ky_ɳ{V^tĴu] }ԓ(*̻Kc2HUn8DVQ#\{ro &v!L YԠu* ak\XE>vї0LÛ-qm,!AWn8{RnʍBhH-7)DdMM@ޠ =`.Oѹm:POMvkΨ2o9˄ǬbDѨI_B  7#g=*'dmor'f=}U%$ Tz`;R(Z^N7L=ŠG[iԗu[x>nclwlj4;~FVCurWSkbI,-zpzÑr \Av:MY Gpjn+ 63Dt((=r(.mtKX8ɶ=;#aJiE('tpA"YۮQ)٢y!v `XOk #(z78 svhfρZ ֈ z(&0#P@e6.|o.l:^ƥ~{t+3wʗmC$:*H+קJ8ap}4^S!Ļd@AVwY9ߑ(BeS64]g˫)q"Wnݺ[UW{ә*$)Y}R X \ձ\hHVr4:SoC?VDX4+L)zP#Ż?q6c!g!Ng@x^vd܃ǝơQ&, 7RMçk3j3Ͳ6r_}_UUpc4Me.Γc,=21b c\=2"4f=QY#Ifr;&72n~9sԒժ5`E$r6 ]+$C!IR-k|--~43Xq"1U+<)=çQVxOvdsfCJ=zԇ2>!)P`j 6PR÷>I԰{ZO"<߹2vD0F%UE|juoݲ7 `77f;*[*NhR1G5ghβZW#8á6[JNٌl xIt-'S$ÛP&6ͮEs^FF92;-`aOQWj.T(:8b$u2v U.طƭ5]*Un_2vI>QsБҕ6rmL=j _gIsed@|? 6_m+>3dbIPCptƫ^{݋`eY 12 J6H:moo~V9deRJJxաصQРՃT2U4h&=d+(q" c18>_y^EE@nG^Y͏H~эb,ıbXIWWR٭1sU#Z2go!Q(Jv":.OŶvRTGf\%^zw #U dwpHhܗ Xr q泋.0ţdNgV=X՗AA:U۸E7MQCDvWl{ԛfrڔqM`@e!57տl{(Ex2X5,^8Wj[.3j6Qa ʔ 0  aV=+KO\/&6ꊓf!gEO~R~ږzlUzXyŧ=w-Vm脛AIt+LP(*Ɏ?/2M{ju#ȹ$[]{q=SX%NF **^|efVnD dJ7I)-^F>]b̊ T;/t$.ꪲeݓ 籤ih11:eTN{7nv7VJz8" +>N;'IʽkFTU9闔vlN2up*IOArIɶvxv32 =G¥.;.iaFH f @?_ήS˾A}ЙS;v9T/ypP0lm>;|!6=0cr0KUݩ t;g&D,ZP^3?qt]JJb[g$hMQ@ˤčrneo8k(ZܯuY@ AplK5wi'tߡЪ'SXI *81~*&Pe*iELȲq&^J DaQs"H8l䋶OP E!;-#>dfebGMJx0+nq{=|7l'MLq"ȭ ,YXx1*j#E37!ʴ/;rwtm!wWؤ'TOU0PԦWr ~St 4[#  H8tT#$2>w'pcA$>E`2 /vdYpQ- #@Uoʢ5\k`s(mM"z UYl@}A+]>6>)U,ڗn CC,Uj$&@Z8lMX$=zJp?^~VͿ qh_r7b,z@Ҫ y%Wa$qT!ޱpPLrv.nG>7ժ{߈) [꟟d:LPE7A/:z|*c#y3$5yYJ4H[Ȧ@9UITr\!T\I YuJ|;x,(*S՚T]lp~#Hvϸv:B \oal RL5]Յ_F?JVPiJJVV )MJVRC})ZlҔ+]iJ`ҕJVVե)}iJl@}ZRҔҔҔҔҕ))))))))))))+C}ҕĩPvR[3տ7ҕ?C㷮,v~?}Ͷ}fR)M)M)M)[K}_w,v~?}Ͷ}fR)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)_apache-log4cxx-0.10.0/src/site/resources/images/od.gif100644 0 0 13155 10774263411 17663 0ustar 0 0 GIF89aT   !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~! ,T  H*\ȰÇ#J|ŋ3jȱǏ C8ɓ(S\ɲ˗0cʜIsEj "ϟ@ Jѣ'+"]'ӧPJJjOXQʵׯ`K֮#Ӫ]˶ڲp=+,]w.ͫ_|X\È#,LBǃBV,s2b-jg1 -4U }*?6]dMckWƭ5K˾MNx6jPd;"ڌUbGKh5$9rhji݊l*zi`tM奨]ݙ|efLǝ[}\4bxٵYpufSwSNa %҇Agᒐy)hi*KJcvPjy頫I%'z7볣Y$kKJv&_ʢЦG+`*2JblWmj`tH~J- ,$l  ܑŲŝ,4Fuqz 6L+J,a fJI4L>uSM7[N<4\g~].Mm>Sh .5-wjmVe?7mm7 x}]ou3ηފؓϚxtVεC9WJg.⥛~ B3;.0>$n{̿ݟ8'Fڞȧ'LO0pZ_7˳//ce޻Z<_s4xA`H$:Ozx r(VzJƌէ(MЂ:!g5 m' +2ҿ4CЅ )xC;!}*"vMC4"Ք0!2pOSV֣$>&-R͉^"E.dd6jkdܖwGpA[zux 9̊AqxʷH&Gyrxƚ}+d/yV\h>qw?ҕ!Unwr(X*0\_hOq4,JSr[q%ȼ }$0)Is(K #@FO? 4a:樏Xs>* ܼy);2gM `J鈔s&ƭsPEd+7Irrs ޘ,N*M}B$ϔn]J.#u2̎j3F3KM)3pUQ6cA ČX8B/u l[.vd+]gfؒvylw-1v]cr5K=e6@"u6 Ѻ^63[ϖx"j|7Ϲ7W[&zñw7$o%w ˬrK j≎ODRu]r2[?!F{=a|AhmwIps/-]`tp?}?쪮%noޯnolYֹ;du}| -PԳcO'yx1ܗjnxD7o7*fzr~g=TM\򥾼q&Yi2xYȣ9aV{2='a/0~;toߴsr6فxfO@.zkذֵ-[[Frtk1m]G}cV z)Sw&m} xRl$XcՂ꓂*X1X3h45|7F94;h=x?AȁCmEh\GxIhKNMOQ(SUXXWY[c](*_HacXBeHgXihkOmxo\qȆsKuwjyb{e}b8xP8y(uhHxh舑r(}|e8r{vl'F^gᆊOƊ+ 'FfڦƋ拂&aF\.#A.hV"/GwnhS&`GXۨ_eckdvhDmHMPOToP~^V(*⢈Rqr8ǃb[-,7LH+gCIu!RGFRETj R9XR/LEYâS1.-S;vk&*5t IU 9h!U.9V]be/zVxu[bz;㔎WUyl2V”V\LV'iz]nSQm pZ/])`st2,3))ćTrIr%boW&N՗9rSOsOkQb9,{2%RD24)aEd]a#(y/E.T|M^i{T"uYgw`1y1VI"i:94Pw\ɂ"{u79cDyrp9qPni*_~ #">J:*Cz2ڡc&`W8w\b#Nd8)J d a))$I/ʅ a5Ţ;+z- `A IX_MzzG:1ʠɤYz.!ZA|cu*J35ba6I5@k6\*v21y H3NY*Ħqi9ZʧzpjsoΩhۗd F{cKdL8CW:@fMW~xz?j|*kzM}(WǍدǮ iʯϺgʪIP%*G +Ӭղ&‘qʬYU[#ii$[s9j"őE$ʪF[ %B;yPˉRڮLu4zHڴEz`k7ڵI*VlKy@ (z=XÏ+;Y%DGvIm7aʻsy/,#Ѻ\η)< z.Md &Tցyt%ŘӤN*rX(֕_\{K {7̷ΔN7eOw)OirEpΘVkГmć='ҷ\ o\i[ƛΟkmGrLȥܜ5۞WE`Uݿ]ŝWÛF˾&kola TL?ʻ2Kl{͝޴$Ir|`GEʝݽmhmKՓ}͌o s{K}-zᬉZލۤ'[=鬬-L]Ŕaj A&V-NĜ>ǨZK7- }y :]Oi:n[<$c|:l\F',~ن nn|,:uM:Q?EmC腎.JÍ耋~;țX(3Qv~CϹS4Ř;apache-log4cxx-0.10.0/src/site/resources/css/site.css100644 0 0 1407 10774263411 17550 0ustar 0 0 /* Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You 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. */ apache-log4cxx-0.10.0/src/site/resources/.htaccess100644 0 0 3764 10774263411 17110 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. RewriteEngine on # # rewrite site requests to equivalent new URLs # RewriteRule ^contributing\.html$ http://logging.apache.org/log4cxx/issue-tracking.html [R=permanent,L] RewriteRule ^roadmap\.html$ http://logging.apache.org/log4cxx/issue-tracking.html [R=permanent,L] RewriteRule ^support\.html$ http://logging.apache.org/log4cxx/index.html [R=permanent,L] RewriteRule ^team\.html$ http://logging.apache.org/team-list.html [R=permanent,L] RewriteRule ^performance\.html$ http://logging.apache.org/log4cxx/index.html [R=permanent,L] RewriteRule ^ChangeLog$ http://logging.apache.org/log4cxx/changes-report.html [R=permanent,L] RewriteRule ^news$ http://logging.apache.org/log4cxx/changes-report.html [R=permanent,L] RewriteRule ^manual\.html$ http://logging.apache.org/log4cxx/index.html [R=permanent,L] RewriteRule ^manual/index\.html$ http://logging.apache.org/log4cxx/manual.html [R=permanent,L] RewriteRule ^manual/(.*)$ http://logging.apache.org/log4cxx/apidocs/$1 [R=permanent,L] RewriteRule ^manual\.html/index\.html$ http://logging.apache.org/log4cxx/manual.html [R=permanent,L] RewriteRule ^manual\.html/(.*)$ http://logging.apache.org/log4cxx/apidocs/$1 [R=permanent,L] apache-log4cxx-0.10.0/src/site/xdoc/stylesheets/project.xml100644 0 0 3275 10774263413 21000 0ustar 0 0 log4cxx

apache-log4cxx-0.10.0/src/site/xdoc/stylesheets/site.vsl100644 0 0 30323 10774263413 20314 0ustar 0 0 ## Defined variables #set ($bodybg = "#ffffff") #set ($bodyfg = "#000000") #set ($bodylink = "#525D76") #set ($titlebg = "#FFFFFF") #set ($titlefg = "#2222AA") ## #set ($bannerbg = "#525D76") #set ($bannerbg = "#FFFFFF") #set ($bannerfg = "#2222AA") #set ($subbannerbg = "#828DA6") #set ($subbannerfg = "#ffffff") #set ($tablethbg = "#039acc") #set ($tabletdbg = "#a0ddf0") #document() ## This is where the macro's live #macro ( table $table) #foreach ( $items in $table.getChildren() ) #if ($items.getName().equals("tr")) #tr ($items) #end #end
#end #macro ( tr $tr) #foreach ( $items in $tr.getChildren() ) #if ($items.getName().equals("td")) #td ($items) #elseif ($items.getName().equals("th")) #th ($items) #end #end #end #macro ( td $value) #if ($value.getAttributeValue("colspan")) #set ($colspan = $value.getAttributeValue("colspan")) #end #if ($value.getAttributeValue("rowspan")) #set ($rowspan = $value.getAttributeValue("rowspan")) #end #if ($value.getText().length() != 0 || $value.hasChildren()) $value.getContent() #else   #end #end #macro ( th $value) #if ($value.getAttributeValue("colspan")) #set ($colspan = $value.getAttributeValue("colspan")) #end #if ($value.getAttributeValue("rowspan")) #set ($rowspan = $value.getAttributeValue("rowspan")) #end #if ($value.getText().length() != 0 || $value.hasChildren()) $value.getContent() #else   #end #end #macro ( projectanchor $name $value ) #if ($value.startsWith("http://")) $name ## #elseif ($value.startsWith("/site")) ## $name #else $name #end #end #macro ( metaauthor $author $email ) #end #macro ( image $value ) #if ($value.getAttributeValue("width")) #set ($width=$value.getAttributeValue("width")) #end #if ($value.getAttributeValue("height")) #set ($height=$value.getAttributeValue("height")) #end #if ($value.getAttributeValue("align")) #set ($align=$value.getAttributeValue("align")) #end #end #macro ( source $value)
$escape.getText($value.getText())
#end ## ============================================ ## subsection macro ## ============================================ #macro ( subsection $subsection)

$subsection.getAttributeValue("name")

#foreach ( $items in $subsection.getChildren() ) #if ($items.getName().equals("img")) #image ($items) #elseif ($items.getName().equals("source")) #source ($items) #elseif ($items.getName().equals("table")) #table ($items) #else $items #end #end #end ## =================================== ## titleSection macro ## =================================== #macro ( titleSection $titleSection) $titleSection.getAttributeValue("name") #end ## ================================ ## section macro ## ================================ #macro ( section $section)

$section.getAttributeValue("name")

#foreach ( $items in $section.getChildren() ) #if ($items.getName().equals("img")) #image ($items) #elseif ($items.getName().equals("source")) #source ($items) #elseif ($items.getName().equals("table")) #table ($items) #elseif ($items.getName().equals("subsection")) #subsection ($items) #else $items #end #end #end ## =================================== ## make navigation bar ## =================================== #macro ( makeNavigationBar ) #set ($menus = $project.getChild("body").getChildren("menu")) #foreach ( $menu in $menus ) #if ( $velocityCount != 1 ) ## ## ## #end #foreach ( $item in $menu.getChildren() ) #set ($name = $item.getAttributeValue("name")) #end #end #end ## ==================================== ## getProjectImage ## ==================================== #macro (getProjectImage) #if ($project.getChild("logo")) #set ( $logoString = $project.getChild("logo").getAttributeValue("href") ) #if ( $logoString.startsWith("/") ) $project.getChild( #else $project.getChild( #end #else #end #end #macro (printMeta $metaElement) #end #macro (document) #set ($authors = $root.getChild("properties").getChildren("author")) #foreach ( $au in $authors ) #metaauthor ( $au.getText() $au.getAttributeValue("email") ) #end #set ($metas = $root.getChildren("meta")) ## Parse meta directives such as ## #foreach ($meta in $metas) #printMeta($meta) #end ## Support for tags. #if ($root.getChild("properties").getChild("base")) #set ($url = $root.getChild("properties").getChild("base").getAttributeValue("href")) #end $project.getChild("title").getText() - $root.getChild("properties").getChild("title").getText() #getProjectImage()

#foreach ( $item in $root.getChild("body").getChildren() ) #if ($item.getName().equals("img")) #image ($item) #elseif ($item.getName().equals("section")) #section ($item) #elseif ($item.getName().equals("source")) #source ($item) #elseif ($item.getName().equals("table")) #table ($item) #elseif ($item.getName().equals("subsection")) #subsection ($item) #else $item #end #end ## #if ($root.getChild("body").getChild("titleSection")) ## #set ($titleSection = $root.getChild("body").getChild("titleSection")) ## #titleSection($titleSection) ## #end ## ## #set ($allSections = $root.getChild("body").getChildren("section")) ## #foreach ( $section in $allSections ) ## #section ($section) ## #end

#end apache-log4cxx-0.10.0/src/site/xdoc/stylesheets/site.css100644 0 0 5721 10774263413 20264 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ H1, H2, H3 { color: #101099; } A:link, A:visited { text-decoration: none; color: #006699; } A:link:hover { text-decoration: underline; } .centercol { margin-top: 120px; margin-left: 210px; margin-right:210px; max-width: 800px; } .leftcol { position: absolute; left: 10px; top: 130px; width: 190px; } .banner { position: absolute; left: 10px; top: 10px; height: 130px; width: 1000px; } .menu_header, .menu_item { /* width: 190px; */ font-family: "trebuchet MS", Arial, Helvetica, sans-serif; font-size: smaller; } .menu_header { border:1px solid #AAAAAA; background: #CCCCCC; padding-left: 1ex; } .menu_item:hover { background: #DDD; } .menu_item { background: #EEEEEE; padding-left: 2ex; border-top: 0px solid #AAAAAA; border-right: 1px solid #AAAAAA; border-bottom:1px solid #AAAAAA; border-left: 1px solid #AAAAAA; } .source { border-top: 1px solid #DDDDDD; border-bottom: 1px solid #DDDDDD; background:#eee; font-family: Courier, "MS Courier New", Prestige, Everson Monocourrier, monospace; font-size: smaller; padding-bottom: 0.5ex; padding-top: 0.5ex; padding-left: 2ex; } table.ls { background: #FFFFFF; } table.ls td { background: #f4f4f4; vertical-align: top; padding-bottom: 1ex; } table.ls th { background: #E4E4E4; } .index-faqSection { font-size: larger; padding-left: 0em; font-weight: bolder; } .index-question { padding-left: 1em; } .faqSection { font-size: larger; font-weight: bolder; } .question { font-weight: bolder; } /* this class is used for screen output placed in
 tags */
.screen_output {
  padding-left:  1em;
  padding-right: 1em;
  border-top:   1px solid #AAAAAA;
  border-right: 1px solid #AAAAAA;
  border-bottom:1px solid #AAAAAA;
  border-left:  1px solid #AAAAAA;
}


.big {
  font-size: larger;
  font-weight: bold;
}

.small {
  font-size: smaller;
}

.red {
  color: #AA0000;
}

.msg_title {
  padding-left:  1ex;
  padding-right: 1ex;
  font-family: Courier, "MS Courier New", Prestige, Everson Monocourrier, monospace;
  border:   1px solid #AAAAAA;
  background: #DDDDFF;

}

.msg_meaning {
  padding-left:  1em;
  padding-right: 1em;
}
apache-log4cxx-0.10.0/src/site/xdoc/index.xml100644      0      0      106313 10774263413  16122 0ustar     0      0 


  
    Short introduction to Apache log4cxx
  
  

Introduction

Apache log4cxx is a logging framework for C++ patterned after Apache log4j. Apache log4cxx uses Apache Portable Runtime for most platform-specific code and should be usable on any platform supported by APR. Apache log4cxx is licensed under the Apache License, an open source license certified by the Open Source Initiative.

Almost every large application includes its own logging or tracing API. Inserting log statements into code is a low-tech method for debugging it. It may also be the only way because debuggers are not always available or applicable. This is usually the case for multithreaded applications and distributed applications at large.

Experience indicates that logging is an important component of the development cycle. It offeres several advantages. It provides precise context about a run of the application. Once inserted into the code, the generation of logging output requires no human intervention. Moreover, log output can be saved in persistent medium to be studied at a later time. In addition to its use in the development cycle, a sufficiently rich logging package can also be viewed as an auditing tool.

Logging does have its drawbacks. It can slow down an application. If too verbose, it can cause scrolling blindness. To alleviate these concerns, log4cxx is designed to be reliable, fast and extensible. Since logging is rarely the main focus of an application, the log4cxx API strives to be simple to understand and to use.

Loggers, Appenders and Layouts

Log4cxx has three main components: loggers, appenders and layouts. These three types of components work together to enable developers to log messages according to message type and level, and to control at runtime how these messages are formatted and where they are reported.

Logger hierarchy

The first and foremost advantage of any logging API over plain std::cout resides in its ability to disable certain log statements while allowing others to print unhindered. This capability assumes that the logging space, that is, the space of all possible logging statements, is categorized according to some developer-chosen criteria.

Loggers are named entities. Logger names are case-sensitive and they follow the hierarchical naming rule:

Named Hierarchy
A logger is said to be an ancestor of another logger if its name followed by a dot is a prefix of the descendant logger name. A logger is said to be a parent of a child logger if there are no ancestors between itself and the descendant logger.

For example, the logger named "com.foo" is a parent of the logger named "com.foo.Bar". Similarly, "java" is a parent of "java.util" and an ancestor of "java.util.Vector". This naming scheme should be familiar to most developers.

The root logger resides at the top of the logger hierarchy. It is exceptional in two ways:

  1. it always exists,
  2. it cannot be retrieved by name.

Invoking the class static log4cxx::Logger::getRootLogger method retrieves it. All other loggers are instantiated and retrieved with the class static log4cxx::Logger::getLogger method. This method takes the name of the desired logger as a parameter. Some of the basic methods in the Logger class are listed below.

  namespace log4cxx {

    class Logger {
       public:
       // Creation & retrieval methods:
       static LoggerPtr getRootLogger();
       static LoggerPtr getLogger(const std::string& name);
       static LoggerPtr getLogger(const std::wstring& name);

     }
   }
//
//   Use these macros instead of calling Logger methods directly.
//   Macros will handle char or wchar_t pointers or strings
//   or most right-hand side expressions of an 
//   std::basic_string::operator<<.
//   
#define LOG4CXX_TRACE(logger, expression) ...   
#define LOG4CXX_DEBUG(logger, expression) ...   
#define LOG4CXX_INFO(logger, expression) ...   
#define LOG4CXX_WARN(logger, expression) ...   
#define LOG4CXX_ERROR(logger, expression) ...   
#define LOG4CXX_FATAL(logger, expression) ...   

Loggers may be assigned levels. The pre-defined levels: TRACE, DEBUG, INFO, WARN, ERROR and FATAL are defined in the log4cxx::Level class which provides accessor functions.

If a given logger is not assigned a level, then it inherits one from its closest ancestor with an assigned level. More formally:

Level Inheritance

The inherited level for a given logger C, is equal to the first non-null level in the logger hierarchy, starting at C and proceeding upwards in the hierarchy towards the root logger.

To ensure that all loggers can eventually inherit a level, the root logger always has an assigned level.

Below are four tables with various assigned level values and the resulting inherited levels according to the above rule.

Logger
name
Assigned
level
Inherited
level
root Proot Proot
X none Proot
X.Y none Proot
X.Y.Z none Proot
Example 1

In example 1 above, only the root logger is assigned a level. This level value, Proot, is inherited by the other loggers X, X.Y and X.Y.Z.

Logger
name
Assigned
level
Inherited
level
root Proot Proot
X Px Px
X.Y Pxy Pxy
X.Y.Z Pxyz Pxyz
Example 2

In example 2, all loggers have an assigned level value. There is no need for level inheritence.

Logger
name
Assigned
level
Inherited
level
root Proot Proot
X Px Px
X.Y none Px
X.Y.Z Pxyz Pxyz
Example 3

In example 3, the loggers root, X and X.Y.Z are assigned the levels Proot, Px and Pxyz respectively. The logger X.Y inherits its level value from its parent X.

Logger
name
Assigned
level
Inherited
level
root Proot Proot
X Px Px
X.Y none Px
X.Y.Z none Px
Example 4

In example 4, the loggers root and X and are assigned the levels Proot and Px respectively. The loggers X.Y and X.Y.Z inherits their level value from their nearest parent X having an assigned level.

Logging requests are made by invoking a method of a logger instance, preferrably through the use of LOG4CXX_INFO or similar macros which support short-circuiting if the threshold is not satisfied and use of the insertion operator (<<) in the message parameter.

   log4cxx::LoggerPtr logger(log4cxx::Logger::getLogger("com.foo"));
   const char* region = "World";
   LOG4CXX_INFO(logger, "Simple message text.");
   LOG4CXX_INFO(logger, "Hello, " << region);
   LOG4CXX_DEBUG(logger, L"Iteration " << i);
   LOG4CXX_DEBUG(logger, "e^10 = " << std::scientific << exp(10.0));
   //
   //  Use a wchar_t first operand to force use of wchar_t based stream.    
   //
   LOG4CXX_WARN(logger, L"" << i << L" is the number of the iteration.");

A logging request is said to be enabled if its level is higher than or equal to the level of its logger. Otherwise, the request is said to be disabled. A logger without an assigned level will inherit one from the hierarchy. This rule is summarized below.

Basic Selection Rule

A log request of level p in a logger with (either assigned or inherited, whichever is appropriate) level q, is enabled if p >= q.

This rule is at the heart of log4cxx. It assumes that levels are ordered. For the standard levels, we have TRACE < DEBUG < INFO < WARN < ERROR < FATAL.

Here is an example of this rule.


   // get a logger instance named "com.foo"
   log4cxx::LoggerPtr  logger(log4cxx::Logger::getLogger("com.foo"));

   // Now set its level. Normally you do not need to set the
   // level of a logger programmatically. This is usually done
   // in configuration files.
   logger->setLevel(log4cxx::Level::getInfo());

   log4cxx::LoggerPtr barlogger(log4cxx::Logger::getLogger("com.foo.Bar");

   // This request is enabled, because WARN >= INFO.
   LOG4CXX_WARN(logger, "Low fuel level.");

   // This request is disabled, because DEBUG < INFO.
   LOG4CXX_DEBUG(logger, "Starting search for nearest gas station.");

   // The logger instance barlogger, named "com.foo.Bar",
   // will inherit its level from the logger named
   // "com.foo" Thus, the following request is enabled
   // because INFO >= INFO.
   LOG4CXX_INFO(barlogger. "Located nearest gas station.");

   // This request is disabled, because DEBUG < INFO.
   LOG4CXX_DEBUG(barlogger, "Exiting gas station search");

Calling the getLogger method with the same name will always return a reference to the exact same logger object.

For example, in
   log4cxx::LoggerPtr x = log4cxx::Logger::getLogger("wombat");
   log4cxx::LoggerPtr y = log4cxx::Logger::getLogger("wombat");
x and y refer to exactly the same logger object.

Thus, it is possible to configure a logger and then to retrieve the same instance somewhere else in the code without passing around references. In fundamental contradiction to biological parenthood, where parents always preceed their children, log4cxx loggers can be created and configured in any order. In particular, a "parent" logger will find and link to its descendants even if it is instantiated after them.

Configuration of the log4cxx environment is typically done at application initialization. The preferred way is by reading a configuration file. This approach will be discussed shortly.

Log4cxx makes it easy to name loggers by software component. This can be accomplished by statically instantiating a logger in each class, with the logger name equal to the fully qualified name of the class. This is a useful and straightforward method of defining loggers. As the log output bears the name of the generating logger, this naming strategy makes it easy to identify the origin of a log message. However, this is only one possible, albeit common, strategy for naming loggers. Log4cxx does not restrict the possible set of loggers. The developer is free to name the loggers as desired.

Nevertheless, naming loggers after the class where they are located seems to be the best strategy known so far.

Appenders and Layouts

The ability to selectively enable or disable logging requests based on their logger is only part of the picture. Log4cxx allows logging requests to print to multiple destinations. In log4cxx speak, an output destination is called an appender. Currently, appenders exist for the console, files, GUI components, remote socket servers, NT Event Loggers, and remote UNIX Syslog daemons. It is also possible to log asynchronously.

More than one appender can be attached to a logger.

The addAppender method adds an appender to a given logger. Each enabled logging request for a given logger will be forwarded to all the appenders in that logger as well as the appenders higher in the hierarchy. In other words, appenders are inherited additively from the logger hierarchy. For example, if a console appender is added to the root logger, then all enabled logging requests will at least print on the console. If in addition a file appender is added to a logger, say C, then enabled logging requests for C and C's children will print on a file and on the console. It is possible to override this default behavior so that appender accumulation is no longer additive by setting the additivity flag to false.

The rules governing appender additivity are summarized below.

Appender Additivity

The output of a log statement of logger C will go to all the appenders in C and its ancestors. This is the meaning of the term "appender additivity".

However, if an ancestor of logger C, say P, has the additivity flag set to false, then C's output will be directed to all the appenders in C and it's ancestors upto and including P but not the appenders in any of the ancestors of P.

Loggers have their additivity flag set to true by default.

The table below shows an example:

Logger
Name
Added
Appenders
Additivity
Flag
Output Targets Comment
root A1 not applicable A1 The root logger is anonymous but can be accessed with the log4cxx::Logger::getRootLogger() method. There is no default appender attached to root.
x A-x1, A-x2 true A1, A-x1, A-x2 Appenders of "x" and root.
x.y none true A1, A-x1, A-x2 Appenders of "x" and root.
x.y.z A-xyz1 true A1, A-x1, A-x2, A-xyz1 Appenders in "x.y.z", "x" and root.
security A-sec false A-sec No appender accumulation since the additivity flag is set to false.
security.access none true A-sec Only appenders of "security" because the additivity flag in "security" is set to false.

More often than not, users wish to customize not only the output destination but also the output format. This is accomplished by associating a layout with an appender. The layout is responsible for formatting the logging request according to the user's wishes, whereas an appender takes care of sending the formatted output to its destination.

The
PatternLayout, part of the standard log4cxx distribution, lets the user specify the output format according to conversion patterns similar to the C language printf function.

For example, the PatternLayout with the conversion pattern "%r [%t] %-5p %c - %m%n" will output something akin to:

176 [main] INFO  org.foo.Bar - Located nearest gas station.

The first field is the number of milliseconds elapsed since the start of the program. The second field is the thread making the log request. The third field is the level of the log statement. The fourth field is the name of the logger associated with the log request. The text after the '-' is the message of the statement.

Configuration

Inserting log requests into the application code requires a fair amount of planning and effort. Observation shows that approximately 4 percent of code is dedicated to logging. Consequently, even moderately sized applications will have thousands of logging statements embedded within their code. Given their number, it becomes imperative to manage these log statements without the need to modify them manually.

The log4cxx environment is fully configurable programmatically. However, it is far more flexible to configure log4cxx using configuration files. Currently, configuration files can be written in XML or in Java properties (key=value) format.

Let us give a taste of how this is done with the help of an imaginary application MyApp that uses log4cxx.

#include "com/foo/bar.h"
using namespace com::foo;

// include log4cxx header files.
#include "log4cxx/logger.h"
#include "log4cxx/basicconfigurator.h"
#include "log4cxx/helpers/exception.h"

using namespace log4cxx;
using namespace log4cxx::helpers;

LoggerPtr logger(Logger::getLogger("MyApp"));

int main(int argc, char **argv)
{
        int result = EXIT_SUCCESS;
        try
        {
                // Set up a simple configuration that logs on the console.
                BasicConfigurator::configure();

                LOG4CXX_INFO(logger, "Entering application.");
                Bar bar;
                bar.doIt();
                LOG4CXX_INFO(logger, "Exiting application.");
        }
        catch(Exception&)
        {
                result = EXIT_FAILURE;
        }

        return result;
}

MyApp begins by including log4cxx headers. It then defines a static logger variable with the name MyApp which happens to be the fully qualified name of the class.

MyApp uses the Bar class defined in header file com/foo/bar.h.

//  file com/foo/bar.h
#include "log4cxx/logger.h"

namespace com {
   namespace foo {
      class Bar {
          static log4cxx::LoggerPtr logger;
          
      public:
          void doIt();
       }
    }
}
// file bar.cpp
#include "com/foo/bar.h"

using namespace com::foo;
using namespace log4cxx;

LoggerPtr Bar::logger(Logger::getLogger("com.foo.bar"));

void Bar::doIt() {
   LOG4CXX_DEBUG(logger, "Did it again!");
}

The invocation of the BasicConfigurator::configure method creates a rather simple log4cxx setup. This method is hardwired to add to the root logger a ConsoleAppender. The output will be formatted using a PatternLayout set to the pattern "%-4r [%t] %-5p %c %x - %m%n".

Note that by default, the root logger is assigned to Level::getDebug().

The output of MyApp is:

0    [12345] INFO  MyApp  - Entering application.
36   [12345] DEBUG com.foo.Bar  - Did it again!
51   [12345] INFO  MyApp  - Exiting application.

The previous example always outputs the same log information. Fortunately, it is easy to modify MyApp so that the log output can be controlled at run-time. Here is a slightly modified version.

// file MyApp2.cpp

#include "com/foo/bar.h"
using namespace com::foo;

// include log4cxx header files.
#include "log4cxx/logger.h"
#include "log4cxx/basicconfigurator.h"
#include "log4cxx/propertyconfigurator.h"
#include "log4cxx/helpers/exception.h"

using namespace log4cxx;
using namespace log4cxx::helpers;
// Define a static logger variable so that it references the
// Logger instance named "MyApp".
LoggerPtr logger(Logger::getLogger("MyApp"));

int main(int argc, char **argv)
{
        int result = EXIT_SUCCESS;
        try
        {
                if (argc > 1)
                {
                        // BasicConfigurator replaced with PropertyConfigurator.
                        PropertyConfigurator::configure(argv[1]);
                }
                else
                {
                        BasicConfigurator::configure();
                }

                LOG4CXX_INFO(logger, "Entering application.");
                Bar bar
                bar.doIt();
                LOG4CXX_INFO(logger, "Exiting application.");
        }
        catch(Exception&)
        {
                result = EXIT_FAILURE;
        }

        return result;
}

This version of MyApp instructs PropertyConfigurator to parse a configuration file and set up logging accordingly.

Here is a sample configuration file that results in exactly same output as the previous BasicConfigurator based example.

# Set root logger level to DEBUG and its only appender to A1.
log4j.rootLogger=DEBUG, A1

# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender

# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

It can be noticed that the PropertyConfigurator file format is the same as log4j.

Suppose we are no longer interested in seeing the output of any component belonging to the com::foo package. The following configuration file shows one possible way of achieving this.

log4j.rootLogger=DEBUG, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout

# Print the date in ISO 8601 format
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

# Print only messages of level WARN or above in the package com.foo.
log4j.logger.com.foo=WARN

The output of MyApp configured with this file is shown below.

2000-09-07 14:07:41,508 [12345] INFO  MyApp - Entering application.
2000-09-07 14:07:41,529 [12345] INFO  MyApp - Exiting application.

As the logger com.foo.Bar does not have an assigned level, it inherits its level from com.foo, which was set to WARN in the configuration file. The log statement from the Bar::doIt method has the level DEBUG, lower than the logger level WARN. Consequently, doIt() method's log request is suppressed.

Here is another configuration file that uses multiple appenders.

log4j.rootLogger=debug, stdout, R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log

log4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

Calling the enhanced MyApp with the this configuration file will output the following on the console.

 INFO [12345] (MyApp2.cpp:31) - Entering application.
DEBUG [12345] (Bar.h:16) - Doing it again!
 INFO [12345] (MyApp2.cpp:34) - Exiting application.

In addition, as the root logger has been allocated a second appender, output will also be directed to the example.log file. This file will be rolled over when it reaches 100KB. When roll-over occurs, the old version of example.log is automatically moved to example.log.1.

Note that to obtain these different logging behaviors we did not need to recompile code. We could just as easily have logged to a UNIX Syslog daemon, redirected all com.foo output to an NT Event logger, or forwarded logging events to a remote log4cxx server, which would log according to local server policy, for example by forwarding the log event to a second log4cxx server.

Default Initialization Procedure

The log4cxx library does not make any assumptions about its environment. In particular, there are no default log4cxx appenders. Under certain well-defined circumstances however, the static inializer of the Logger class will attempt to automatically configure log4cxx.

The exact default initialization algorithm is defined as follows:

  1. Set the configurationOptionStr string variable to the value of the LOG4CXX_CONFIGURATION environment variable if set, otherwise the value of the log4j.configuration or LOG4CXX_CONFIGURATION environment variable if set, otherwise the first of the following file names which exist in the current working directory, "log4cxx.xml", "log4cxx.properties", "log4j.xml" and "log4j.properties". If configurationOptionStr has not been set, then disable logging.

  2. Unless a custom configurator is specified using the LOG4CXX_CONFIGURATOR_CLASS or log4j.configuratorClass environment variable, the PropertyConfigurator will be used to configure log4cxx unless the file name ends with the ".xml" extension, in which case the DOMConfigurator will be used. If a custom configurator is specified, the environment variable should contain a fully qualified class name of a class that implements the Configurator interface.

Nested Diagnostic Contexts

Most real-world systems have to deal with multiple clients simultaneously. In a typical multithreaded implementation of such a system, different threads will handle different clients. Logging is especially well suited to trace and debug complex distributed applications. A common approach to differentiate the logging output of one client from another is to instantiate a new separate logger for each client. This promotes the proliferation of loggers and increases the management overhead of logging.

A lighter technique is to uniquely stamp each log request initiated from the same client interaction. Neil Harrison described this method in the book "Patterns for Logging Diagnostic Messages," in Pattern Languages of Program Design 3, edited by R. Martin, D. Riehle, and F. Buschmann (Addison-Wesley, 1997).

To uniquely stamp each request, the user pushes contextual information into the NDC, the abbreviation of Nested Diagnostic Context. The NDC class is shown below.

namespace log4cxx {
  class NDC {
  public:
    //  pushes the value on construction and pops on destruction.
    NDC(const std::string& value);
    NDC(const std::wstring& value);

    // Remove the top of the context from the NDC.
    static LogString pop();

    // Add diagnostic context for the current thread.
    static void push(const std::string& message);
    static void push(const std::wstring& message);
  }

The NDC is managed per thread as a stack of contextual information. Note that all methods of the log4cxx::NDC class are static. Assuming that NDC printing is turned on, every time a log request is made, the appropriate log4cxx component will include the entire NDC stack for the current thread in the log output. This is done without the intervention of the user, who is responsible only for placing the correct information in the NDC by using the push and pop methods at a few well-defined points in the code. In contrast, the per-client logger approach commands extensive changes in the code.

To illustrate this point, let us take the example of a servlet delivering content to numerous clients. The servlet can build the NDC at the very beginning of the request before executing other code. The contextual information can be the client's host name and other information inherent to the request, typically information contained in cookies. Hence, even if the servlet is serving multiple clients simultaneously, the logs initiated by the same code, i.e. belonging to the same logger, can still be distinguished because each client request will have a different NDC stack. Contrast this with the complexity of passing a freshly instantiated logger to all code exercised during the client's request.

Nevertheless, some sophisticated applications, such as virtual hosting web servers, must log differently depending on the virtual host context and also depending on the software component issuing the request. Recent log4cxx releases support multiple hierarchy trees. This enhancement allows each virtual host to possess its own copy of the logger hierarchy.

Performance

One of the often-cited arguments against logging is its computational cost. This is a legitimate concern as even moderately sized applications can generate thousands of log requests. Much effort was spent measuring and tweaking logging performance. Log4cxx claims to be fast and flexible: speed first, flexibility second.

The user should be aware of the following performance issues.

  1. Logging performance when logging is turned off.

    When logging is turned off entirely or just for a set of levels, the cost of a log request consists of a method invocation plus an integer comparison. The LOG4CXX_DEBUG and similar macros suppress unnecessary expression evaluation if the request is not enabled.

  2. The performance of deciding whether to log or not to log when logging is turned on.

    This is essentially the performance of walking the logger hierarchy. When logging is turned on, log4cxx still needs to compare the level of the log request with the level of the request logger. However, loggers may not have an assigned level; they can inherit them from the logger hierarchy. Thus, before inheriting a level, the logger may need to search its ancestors.

    There has been a serious effort to make this hierarchy walk to be as fast as possible. For example, child loggers link only to their existing ancestors. In the BasicConfigurator example shown earlier, the logger named com.foo.Bar is linked directly to the root logger, thereby circumventing the nonexistent com or com.foo loggers. This significantly improves the speed of the walk, especially in "sparse" hierarchies.

    The cost of walking the hierarchy is typically 3 times slower than when logging is turned off entirely.

  3. Actually outputting log messages

    This is the cost of formatting the log output and sending it to its target destination. Here again, a serious effort was made to make layouts (formatters) perform as quickly as possible. The same is true for appenders.

Conclusions

Apache Log4cxx is a popular logging package written in C++. One of its distinctive features is the notion of inheritance in loggers. Using a logger hierarchy it is possible to control which log statements are output at arbitrary granularity. This helps reduce the volume of logged output and minimize the cost of logging.

One of the advantages of the log4cxx API is its manageability. Once the log statements have been inserted into the code, they can be controlled with configuration files. They can be selectively enabled or disabled, and sent to different and multiple output targets in user-chosen formats. The log4cxx package is designed so that log statements can remain in shipped code without incurring a heavy performance cost.

apache-log4cxx-0.10.0/src/site/xdoc/Makefile.am100644 0 0 1420 10774263413 16256 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # apache-log4cxx-0.10.0/src/site/fml/Makefile.am100644 0 0 1420 10774263413 16077 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # apache-log4cxx-0.10.0/src/site/fml/faq.fml100644 0 0 7042 10774263413 15320 0ustar 0 0 How do I add a custom level to Apache log4cxx?

This is a common topic for all the Apache logging frameworks and typically motivated to try to categorize events by functionality or audience. An common request is to add an AUDIT level so that the user can configure AUDIT level messages to go to a specific appender. However, the logger name was designed explicitly to support routing of messages by topic or audience. The common pattern of using classnames for logger names obscures the more general capability of logger name to represent the topic or audience of the logging request. The easiest approach to solve the underlying issue is to use a logger names like "AUDIT.com.example.MyPackage.MyClass" that allow all AUDIT messages to be routed to a particular appender. If you attempted to use a level for that then you would lose the ability to distinguish between different significances within the audit messages.

My application on Windows crashes on shutdown?

Apache log4cxx API calls use C++ Standard Template Library string parameters. If the caller is using a different instance or type of the C Runtime Library that log4cxx, then it is very likely that some memory that was originally allocated by log4cxx would be freed by the caller. If log4cxx and the caller are using different C RTL's, the program will likely crash at the point. Use "Multithread DLL" with release builds of log4cxx and "Multithread DLL Debug" with debug builds.

Does Apache log4cxx support Unicode?

Yes. Apache log4cxx exposes API methods in multiple string flavors const char*, std::string, wchar_t*, std::wstring, CFStringRef et al. const char* and std::string are interpreted according to the current locale settings. Applications should call setlocale(LC_ALL, "") on startup or the C RTL will assume US-ASCII. Before being processed internally, all these are converted to the LogString type which is one of several supported Unicode representations selected by the --with-logchar option. When using methods that take LogString arguments, the LOG4CXX_STR() macro can be used to convert ASCII literals to the current LogString type. FileAppenders support an encoding property which should be explicitly specified to "UTF-8" or "UTF-16" for XML files.

apache-log4cxx-0.10.0/src/site/Makefile.am100644 0 0 1437 10774263413 15331 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # SUBDIRS = doxy apache-log4cxx-0.10.0/src/site/site.xml100644 0 0 5251 10774263413 14761 0ustar 0 0 Logging Services images/ls-logo.jpg http://logging.apache.org/ apache-log4cxx-0.10.0/src/site/Makefile.in100644 0 0 36651 10774264476 15402 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/site DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # SUBDIRS = doxy all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/site/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/site/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ clean clean-generic clean-libtool clean-recursive ctags \ ctags-recursive distclean distclean-generic distclean-libtool \ distclean-recursive distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic maintainer-clean-recursive \ mostlyclean mostlyclean-generic mostlyclean-libtool \ mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/changes/changes.xslt100644 0 0 22020 10774263414 16275 0ustar 0 0 Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You 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. Apache log4cxx 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 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) 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 and 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 and NDC. 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. 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 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. 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". 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. Fixed MSVC 6.0 compilation problems concerning the 'Release' target Added MSVC 6.0 tests projects 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) 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 apache-log4cxx-0.10.0/src/changes/changes.xml100644 0 0 60606 10774263414 16117 0ustar 0 0 Apache log4cxx logger.h includes config.h Missing #else initialization not working on many OS's Preprocessor macro WIN32 used instead of _WIN32 Win32 OutputDebugString SocketAppender binary format not compatible with Chainsaw Compilation problems using VC5 or VC6 with later Platform SDKs Conflicting definitions of tchar.h/simulatenous Unicode+MBCS Timezone may have side-effects the threshold of ApenderSkeleton can not be set by calling setOption. Add branch optimization hint to LOG4CXX_DEBUG macro add -Wall to compile log4cxx will get many warning PatternLayout don't use locale time zone,it's use GMT tome zone Misleading statements in Introduction to log4cxx Use of non reentrant time functions LoggerStream Feature Add .cvsignore's to ignore generated files Add check that libxml2 not libxml has been included Backslashes in filenames in XML config of FileAppender broken Unit tests have become stale Class and module name not available in LogEvent Add Ant+cpptasks build file Default initialization is broken Appender threshold cannot be set in configuration files Appender threshold cannot be set in configuration files Appender attributes are not passed passed to setOption correctly. StringTokenizer uses evil strtok and wcstok functions Missing const qualifiers, Exception::getMessage() in particular. Missing copy constructors and assignment operators log4cxx::Exception is not derived from std::exception Visual Studio 6 CVS build broken Avoid use of MSXML Migrate to Apache Portable Runtime threads Unable to build log4cxx under Borland C++ Remove DailyRollingFileAppender PatternLayout does not support Java date format specifiers Layout timestamp doesn't seem to adjust for daylight saving configure/make help needed GUMP integation _T causes error : 1048576 cannot be used as a function Extra semicolon after namespace closing paren Check headers for missing declarations and Effective C++ violations Use hex representation for thread identifier Move timezone specification into pattern, remove locale specification variable name clash in macro Migrate log4j 1.3 RollingFileAppender Problems compiling with MsDev 6.0 (space in paths) Eliminate use of boost-regex in unit tests DailyRolling File Appender BasicConfiguration is unreliable Port log4j performance test ImmediateFlush'd FileAppenders extremely slow on Windows Implement encoding support for Writer appender XML layout can be mismatched with document encoding log4cxx 0.10.0 release Platform appropriate line-feed convention Migrate to APR network IO SyslogAppender append method currently stubbed out NTEventLogAppender always uses RPC method for logging and has inadequate error handling. Logic flaws in StringHelper::startsWith and StringHelper::endsWith Update performance page on web site INSTALL out of date Not loading configuration from log4cxx.properties or log4cxx.xml MinGW build Cygwin build user.home, user.dir, java.io.tmpdir available within configuration files Static builds broken configure check for apr-util Migrated network appenders to APR network IO SimpleDateFormat does not compile on Solaris 2.95.2 gcc Compiling with stream.h in multiple object files errors log4cxx::Level::ERROR fails to compile when GDI enabled Problems with stream logging in UTF8, no WCHAR_T build Mac OS/X fixes and enhancements Add TRACE level Remove remaining uses of Category and Priority Explore use of security-enhanced CRT methods simplesocketserver.cpp should use LOG4CXX_STR("...") not L"..." Gump build fails for log4cxx-ant-no-wchar-t target Fixes for ODBCAppender Much of CVS HEAD seems #if 0 out, especially ResourceBundle stuff ODBCAppender::close does not check if appender is already closed Infinite loop in string replacing maxFileSize has bad type in SizeBasedTriggeringPolicy file Can't compile log4cxx in ascii on Windows try fix 64bit log4cxx_intptr_t make Logger cache a LoggerRepositoryPtr instead of a "blind" pointer change "static" to "auto" for Transcoder::decode() decoder and CharsetDecoder::getDefaultDecoder() decoder separate apr detection m4 codes from aclocal.m4 Upgrade APR to 1.2.2 from 1.1.0 SVN head does not compile with Borland C++ compiler SVN head does not compiler with MinGW compiler Memory leak with ThreadSpecificData on Win32 Hierarchy corrupts with PropertyConfigurator ndctestcase not working Wrong parameter description in Patternlayout UTF-8 build fails on Linux wchar_t constructor missing in class NDC L7dTestCase is stubbed out std::cout stops working if log4cxx is first to output Main build.xml not referencing "env" properly. Asyncappender is full of race conditions (improper use of condition variables) Compile fails on gcc4.1 TimeBasedRollingPolicy is declared "abstract" various segmentation faults in multithreaded application Missing parenthesis in LOG4CXX_ASSERT FileAppender could create missing directories Use std::string with logstream DailyRollingFileAppender not using Property options XMLLayoutTestCase output and filtered output gets overwritten XMLLayoutTestCase uses inadequate filters for 64 bit platforms Handle leak with LoggingEvent::getCurrentThreadName Upgrade to APR 1.2.7 or later socketservertestcase.cpp does not compile with Sun Studio 11 on Solaris -xarch=v8plus should be removed from Makefile.in DailyRollingFileAppender::~DailyRollingFileAppender must call finalize make dist does not work logstream's operator<< declared in the wrong namespace Umlauts as literal in patternlayout won't be logged correct gcc warning about cast from `const void*' to `log4cxx::helpers::Object*' discards qualifiers from pointer target typ Automate log4cxx site and doxygen generation and deployment Update source headers per new ASF header policy immediate flush in console appender make install fails since @manual_dest@ replacement is missing in Makefiles tolower not defined in stringhelper.cpp Initialization of local static objects out of order on Linux helpers/object.h: DECLARE_LOG4CXX_OBJECT macro definition is missing virtual destructor declaration Using RollingFileAppender increases the working set with each rollover Problem printing string with embedded NULL character liblog4cxx (svn 480882) does not link on Mac OS X 10.4 XMLSocketAppender is disabled XMLSocketAppender may generate erroneous output due to mismatched encoding system locale charmap is not determined properly on Fedora Core 6 log4j.dtd does not contain rollingPolicy and other o.a.l.r.RFA elements XMLLayoutTestCase fails on compilers that do not provide location info Add project description file for projects.apache.org configure fail with ".infig.status: error: cannot find input file:" APRCharsetEncoder is not thread safe SocketImpl::accept uses private APR function: apr_wait_for_io_or_timeout Link failure if wchar_t cannot be determined as UTF-16 or UTF-32 example applications do SIGABRT on aix 5.2 Build fails at domconfigurator.h Level::DEBUG and other non-local statics cause crash on app shutdown on AIX missing man page for simplesocketserver Compiler warning: dereferencing type-punned pointer will break strict-aliasing rules Crash when log level set to 'inherited' Garbage characters in log files when log requests from multiple threads with hyperthreading enabled LogLog::emit() could potentially interleave messages Upgrade to apr 1.2.9 and apr-util 1.2.8 Migrate to Maven 2.0 for documentation and packaging The 'logger.h' header includes itself. Application cores when syslog appender is given an unreachable host/ip. Suggested improvements to log4cxx webpages Please rename or remove new local variable "buf" in Logger.h macros Garbage in log files when appenders are defined in multiple levels of the logger hierarchy Syslog appender adds characters to output. Syslog appender destructor can cause core ant can't generate vc6 project Implement compression for RollingFileAppender Visual Studio 6 build ObjectPtrT has inconsistent const-ness on accessors PatternParserTestCase and FileNamePatternTestCase fail only with VC6 isTraceEnabled implemenation missing in logger.cpp (Revision: 592627) A message of type wchar_t* is not beeing written correctly to the internal message buffer (Revision: 592627) HTMLLayout NDC null check Crash(Segmentation Fault) in DailyRollingFileAppender when file change unittest failed trace method implementation is missing Possible memory leak due to fault in build process (via make) Eliminate sqlext.h from odbcappender.h crash on program exit Not initialized LoggerPtr segfault program. Visual Studio 8 build suspicious warnings Memory leaks when using MFC ThreadID layout does not match debugger trunk compile error. Migrate unit tests from LGPL'd CPPUNIT to an ASL'd testing framework Default configurator uses *.properties in preference to *.xml Remove @since tags Remove @author tags Align ant build options with automake Deadlock in AsyncAppender Drop src/performance Unnecessary casts in ObjectPtrT Assignment operator removes const qualifier Add ObjectPtrT::exchange Re-order constructor initialiser lists to match declaration order Include missing headers Inconsistent const qualification on logging methods. Non-ascii named files have names mangled Eliminate log4cxx proxies for APR types Problem Compile in Doxy Config refresh hangs a client application that uses TelnetAppender MSVC project has wrong additional include directories ODBCAppender has unicode issues NDC::cloneStack and NDC::inherit missing in 0.10.0 RC2 Add documentation for use of operator<< in logging requests Transcoder compilation error with utf-8 charset Add build option for static C RTL SocketHubAppender fails after accepting connection ServerSocket::accept hangs on Unix unable to build from make dist package due to missing doxygen file Several appenders fail to compile in Visual Studio 2008 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 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) 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 and 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 and NDC. 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. 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 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. 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". 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. Fixed MSVC 6.0 compilation problems concerning the 'Release' target Added MSVC 6.0 tests projects 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) 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 apache-log4cxx-0.10.0/src/changes/Makefile.am100644 0 0 1420 10774263414 15766 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # apache-log4cxx-0.10.0/src/examples/cpp/Makefile.in100644 0 0 36676 10774264474 17043 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ noinst_PROGRAMS = trivial$(EXEEXT) delayedloop$(EXEEXT) \ stream$(EXEEXT) console$(EXEEXT) subdir = src/examples/cpp DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = PROGRAMS = $(noinst_PROGRAMS) am_console_OBJECTS = console.$(OBJEXT) console_OBJECTS = $(am_console_OBJECTS) console_DEPENDENCIES = $(top_builddir)/src/main/cpp/liblog4cxx.la am_delayedloop_OBJECTS = delayedloop.$(OBJEXT) delayedloop_OBJECTS = $(am_delayedloop_OBJECTS) delayedloop_DEPENDENCIES = $(top_builddir)/src/main/cpp/liblog4cxx.la am_stream_OBJECTS = stream.$(OBJEXT) stream_OBJECTS = $(am_stream_OBJECTS) stream_DEPENDENCIES = $(top_builddir)/src/main/cpp/liblog4cxx.la am_trivial_OBJECTS = trivial.$(OBJEXT) trivial_OBJECTS = $(am_trivial_OBJECTS) trivial_DEPENDENCIES = $(top_builddir)/src/main/cpp/liblog4cxx.la DEFAULT_INCLUDES = -I. -I$(srcdir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(console_SOURCES) $(delayedloop_SOURCES) $(stream_SOURCES) \ $(trivial_SOURCES) DIST_SOURCES = $(console_SOURCES) $(delayedloop_SOURCES) \ $(stream_SOURCES) $(trivial_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ INCLUDES = -I$(top_srcdir)/src/main/include -I$(top_builddir)/src/main/include trivial_SOURCES = trivial.cpp trivial_LDADD = $(top_builddir)/src/main/cpp/liblog4cxx.la delayedloop_SOURCES = delayedloop.cpp delayedloop_LDADD = $(top_builddir)/src/main/cpp/liblog4cxx.la stream_SOURCES = stream.cpp stream_LDADD = $(top_builddir)/src/main/cpp/liblog4cxx.la console_SOURCES = console.cpp console_LDADD = $(top_builddir)/src/main/cpp/liblog4cxx.la all: all-am .SUFFIXES: .SUFFIXES: .cpp .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/examples/cpp/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/examples/cpp/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done console$(EXEEXT): $(console_OBJECTS) $(console_DEPENDENCIES) @rm -f console$(EXEEXT) $(CXXLINK) $(console_LDFLAGS) $(console_OBJECTS) $(console_LDADD) $(LIBS) delayedloop$(EXEEXT): $(delayedloop_OBJECTS) $(delayedloop_DEPENDENCIES) @rm -f delayedloop$(EXEEXT) $(CXXLINK) $(delayedloop_LDFLAGS) $(delayedloop_OBJECTS) $(delayedloop_LDADD) $(LIBS) stream$(EXEEXT): $(stream_OBJECTS) $(stream_DEPENDENCIES) @rm -f stream$(EXEEXT) $(CXXLINK) $(stream_LDFLAGS) $(stream_OBJECTS) $(stream_LDADD) $(LIBS) trivial$(EXEEXT): $(trivial_OBJECTS) $(trivial_DEPENDENCIES) @rm -f trivial$(EXEEXT) $(CXXLINK) $(trivial_LDFLAGS) $(trivial_OBJECTS) $(trivial_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/console.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/delayedloop.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stream.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trivial.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstPROGRAMS ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/examples/cpp/delayedloop.cpp100644 0 0 6564 10774263414 17745 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; /** This test program sits in a loop and logs things. Its logging is configured by a configuration file. Changes to this configuration file are monitored and when a change occurs, the config file is re-read. */ class DelayedLoop { static LoggerPtr logger; public: static void main(int argc, const char * const argv[]) { if(argc == 2) { init(argv[1]); } else { usage(argv[0], "Wrong number of arguments."); } test(); } static void usage(const char * programName, const char * msg) { std::cout << msg << std::endl; std::cout << "Usage: " << programName << " configFile" << std::endl; exit(1); } static void init(const std::string& configFile) { if(configFile.length() > 4 && configFile.substr(configFile.length() - 4) == ".xml") { #if APR_HAS_THREADS xml::DOMConfigurator::configureAndWatch(configFile, 3000); #else xml::DOMConfigurator::configure(configFile); #endif } else { #if APR_HAS_THREADS PropertyConfigurator::configureAndWatch(configFile, 3000); #else PropertyConfigurator::configure(configFile); #endif } } static void test() { int i = 0; while(true) { LOG4CXX_DEBUG(logger, "MSG " << i++); try { apr_sleep(1000000); } catch(std::exception& e) { } } } }; LoggerPtr DelayedLoop::logger = Logger::getLogger("DelayedLoop"); int main(int argc, const char * const argv[]) { apr_app_initialize(&argc, &argv, NULL); int result = EXIT_SUCCESS; try { DelayedLoop::main(argc, argv); } catch(std::exception&) { result = EXIT_FAILURE; } apr_terminate(); return result; } apache-log4cxx-0.10.0/src/examples/cpp/console.cpp100644 0 0 7530 10774263414 17100 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; /** * Configures console appender. * @param err if true, use stderr, otherwise stdout. */ static void configure(bool err) { log4cxx::ConsoleAppenderPtr appender(new log4cxx::ConsoleAppender()); if (err) { appender->setTarget(LOG4CXX_STR("System.err")); } log4cxx::LayoutPtr layout(new log4cxx::SimpleLayout()); appender->setLayout(layout); log4cxx::helpers::Pool pool; appender->activateOptions(pool); log4cxx::Logger::getRootLogger()->addAppender(appender); LogManager::getLoggerRepository()->setConfigured(true); } /** * Program to test compatibility of C RTL, C++ STL and log4cxx output to standard * output and error streams. * * See bug LOGCXX_126. * * */ int main(int argc, char** argv) { setlocale(LC_ALL, ""); if (argc <= 1) { puts("Console test program\nUsage: console [-err] [ puts | putws | cout | wcout | configure | log | wide | byte ]*\n"); } bool configured = false; bool err = false; for (int i = 1; i < argc; i++) { if (strcmp("-err", argv[i]) == 0) { err = true; } else if (strcmp("puts", argv[i]) == 0) { fputs("Hello, fputs\n", err ? stderr : stdout); #if LOG4CXX_WCHAR_T_API } else if (strcmp("putws", argv[i]) == 0) { fputws(L"Hello, fputws\n", err ? stderr : stdout); #endif } else if (strcmp("cout", argv[i]) == 0) { if (err) { std::cerr << "Hello, cout" << std::endl; } else { std::cout << "Hello, cout" << std::endl; } } else if (strcmp("wcout", argv[i]) == 0) { if (err) { #if LOG4CXX_HAS_STD_WCOUT std::wcerr << L"Hello, wcout" << std::endl; #else std::cerr << "Log4cxx has not wcout" << std::endl; #endif } else { #if LOG4CXX_HAS_STD_WCOUT std::wcout << L"Hello, wcout" << std::endl; #else std::cout << "Log4cxx has not wcout" << std::endl; #endif } } else if (strcmp("configure", argv[i]) == 0) { configure(err); configured = true; } else if (strcmp("log", argv[i]) == 0) { if (!configured) { configure(err); configured = true; } log4cxx::Logger::getRootLogger()->info("Hello, log4cxx"); #if LOG4CXX_WCHAR_T_API } else if (strcmp("wide", argv[i]) == 0) { fwide(err ? stderr : stdout, 1); } else if (strcmp("byte", argv[i]) == 0) { fwide(err ? stderr : stdout, -1); #endif } else { fputs("Unrecognized option: ", stderr); fputs(argv[i], stderr); fputs("\n", stderr); fflush(stderr); } } return 0; } apache-log4cxx-0.10.0/src/examples/cpp/Makefile.am100644 0 0 2407 10774263414 16764 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # noinst_PROGRAMS = trivial delayedloop stream console INCLUDES = -I$(top_srcdir)/src/main/include -I$(top_builddir)/src/main/include trivial_SOURCES = trivial.cpp trivial_LDADD = $(top_builddir)/src/main/cpp/liblog4cxx.la delayedloop_SOURCES = delayedloop.cpp delayedloop_LDADD = $(top_builddir)/src/main/cpp/liblog4cxx.la stream_SOURCES = stream.cpp stream_LDADD = $(top_builddir)/src/main/cpp/liblog4cxx.la console_SOURCES = console.cpp console_LDADD = $(top_builddir)/src/main/cpp/liblog4cxx.la apache-log4cxx-0.10.0/src/examples/cpp/trivial.cpp100644 0 0 3336 10774263414 17110 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; int main() { setlocale(LC_ALL, ""); int result = EXIT_SUCCESS; try { BasicConfigurator::configure(); LoggerPtr rootLogger = Logger::getRootLogger(); NDC::push("trivial context"); LOG4CXX_DEBUG(rootLogger, "debug message"); LOG4CXX_INFO(rootLogger, "info message"); LOG4CXX_WARN(rootLogger, "warn message"); LOG4CXX_ERROR(rootLogger, "error message"); LOG4CXX_FATAL(rootLogger, "fatal message"); NDC::pop(); } catch(std::exception&) { result = EXIT_FAILURE; } return result; } apache-log4cxx-0.10.0/src/examples/cpp/stream.cpp100644 0 0 3637 10774263414 16735 0ustar 0 0 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ #include #include #include #include #include #include using namespace log4cxx; using namespace log4cxx::helpers; int main() { setlocale(LC_ALL, ""); int result = EXIT_SUCCESS; try { BasicConfigurator::configure(); LoggerPtr rootLogger = Logger::getRootLogger(); NDC::push("trivial context"); log4cxx::logstream logstream(rootLogger, Level::getDebug()); logstream << "debug message " << 1 << LOG4CXX_ENDMSG; logstream.setLevel(Level::getInfo()); logstream << "info message" << LOG4CXX_ENDMSG; logstream << Level::getWarn() << "warn message" << LOG4CXX_ENDMSG; logstream << Level::getError() << "error message" << LOG4CXX_ENDMSG; logstream << Level::getFatal() << "fatal message" << LOG4CXX_ENDMSG; NDC::pop(); } catch(std::exception&) { result = EXIT_FAILURE; } return result; } apache-log4cxx-0.10.0/src/examples/Makefile.in100644 0 0 36664 10774264474 16256 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/examples DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # SUBDIRS = cpp all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/examples/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/examples/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ clean clean-generic clean-libtool clean-recursive ctags \ ctags-recursive distclean distclean-generic distclean-libtool \ distclean-recursive distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic maintainer-clean-recursive \ mostlyclean mostlyclean-generic mostlyclean-libtool \ mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/examples/Makefile.am100644 0 0 1436 10774263414 16203 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # SUBDIRS = cpp apache-log4cxx-0.10.0/src/Makefile.in100644 0 0 36652 10774264474 14435 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # SUBDIRS = main examples site test all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ clean clean-generic clean-libtool clean-recursive ctags \ ctags-recursive distclean distclean-generic distclean-libtool \ distclean-recursive distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic maintainer-clean-recursive \ mostlyclean mostlyclean-generic mostlyclean-libtool \ mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/src/Makefile.am100644 0 0 1462 10774263414 14364 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # SUBDIRS = main examples site test apache-log4cxx-0.10.0/configure.in100644 0 0 31303 10774263414 14067 0ustar 0 0 AC_INIT(src/main/cpp/logger.cpp) # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # # 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=10:0:0 AC_SUBST(LT_VERSION) AH_VERBATIM([HAVE_NO_EXPLICIT_EXPORTS], [/* no explicit exports */ #define LOG4CXX_EXPORT]) AM_INIT_AUTOMAKE(log4cxx, 0.10.0) # 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 manual_dest="manual" base_dir=`(cd $srcdir && pwd)` AC_SUBST(enable_dot) AC_SUBST(enable_html_docs) AC_SUBST(enable_latex_docs) AC_SUBST(manual_dest) AC_SUBST(base_dir) # Checks header files # ---------------------------------------------------------------------------- APR_FIND_APR( , , 1, 1) if test "$apr_found" = "no"; then AC_MSG_ERROR(APR could not be located. Please use the --with-apr option.) fi CPPFLAGS="$CPPFLAGS `$apr_config --cppflags` `$apr_config --includes`" APR_LIBS="`$apr_config --link-ld --libs`" AC_SUBST(APR_LIBS) LDFLAGS="$LDFLAGS $APR_LIBS" APR_FIND_APU( , , 1, 1) if test "$apu_found" = "no"; then AC_MSG_ERROR(APR-util could not be located. Please use the --with-apr-util option.) fi CPPFLAGS="$CPPFLAGS `$apu_config --includes`" APU_LIBS="`$apu_config --link-ld --libs`" AC_SUBST(APU_LIBS) LDFLAGS="$LDFLAGS $APU_LIBS" # Checks local idioms # ---------------------------------------------------------------------------- # for local syslog() function for SyslogAppender AC_CHECK_FUNCS(mbsrtowcs, [have_mbsrtowcs=yes], [have_mbsrtowcs=no]) if test "$have_mbsrtowcs" = "yes" then AC_SUBST(HAS_MBSRTOWCS, 1) else AC_SUBST(HAS_MBSRTOWCS, 0) fi AC_CHECK_FUNCS(wcstombs, [have_wcstombs=yes], [have_wcstombs=no]) if test "$have_wcstombs" = "yes" then AC_SUBST(HAS_WCSTOMBS, 1) else AC_SUBST(HAS_WCSTOMBS, 0) fi # for local syslog() function for SyslogAppender AC_CHECK_FUNCS(syslog, [have_syslog=yes], [have_syslog=no]) if test "$have_syslog" = "yes" then AC_SUBST(HAS_SYSLOG, 1) else AC_SUBST(HAS_SYSLOG, 0) fi AC_CHECK_HEADER([locale],have_locale=yes,have_locale=no) if test "$have_locale" = "yes" then AC_SUBST(HAS_STD_LOCALE, 1) else AC_SUBST(HAS_STD_LOCALE, 0) fi AC_MSG_CHECKING([for wchar_t]) AC_COMPILE_IFELSE(AC_LANG_SOURCE([[ #include std::wstring w;]]), [have_wchar_t=yes], [have_wchar_t=no]) AC_MSG_RESULT($have_wchar_t) if test "$have_wchar_t" = "yes" then AC_SUBST(HAS_WCHAR_T, 1) else AC_SUBST(HAS_WCHAR_T, 0) fi AC_CHECK_FUNCS(fwide, [have_fwide=yes], [have_fwide=no]) if test "$have_fwide" = "yes" then AC_SUBST(HAS_FWIDE, 1) else AC_SUBST(HAS_FWIDE, 0) fi # Checks for libraries # ---------------------------------------------------------------------------- AC_PROG_RANLIB #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_SUBST(HAS_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_SUBST(HAS_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_SUBST(HAS_ODBC, 1, ODBC support) LIBS_ODBC="`iodbc-config --libs`" CPPFLAGS_ODBC="`iodbc-config --cflags`" else AC_MSG_ERROR(iODBC not found !) fi ;; no) AC_SUBST(HAS_ODBC, 0, No ODBC support) 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 SMTPAppender AC_MSG_CHECKING(for SMTP support) AC_ARG_WITH(SMTP, AC_HELP_STRING(--with-SMTP, [SMTP support. Accepted arguments : libesmtp, no (default=no)]), [ac_with_smtp=$withval], [ac_with_smtp=no]) case "$ac_with_smtp" in libesmtp) AC_MSG_RESULT(libesmtp) AC_CHECK_LIB([esmtp], [smtp_create_session],, AC_MSG_ERROR(libesmtp library not found !), -lesmtp) AC_SUBST(HAS_LIBESMTP, 1, SMTP support through libesmtp library.) LIBS="-lesmtp $LIBS" ;; no) AC_MSG_RESULT(no) AC_SUBST(HAS_LIBESMTP, 0, SMTP support through libesmtp library.) ;; *) AC_MSG_RESULT(???) AC_MSG_ERROR(Unknown option : $ac_with_smtp) ;; esac #for char api AC_ARG_ENABLE(char, AC_HELP_STRING(--enable-char, [enable char API (yes)])) if test "x$enable_char" = xno; then have_char_api=no else have_char_api=yes fi if test "$have_char_api" = "yes" then AC_SUBST(CHAR_API, 1) else AC_SUBST(CHAR_API, 0) fi #for wchar_t api AC_ARG_ENABLE(wchar_t, AC_HELP_STRING(--enable-wchar_t, [enable wchar_t API (yes if wchar_t available)])) if test "x$enable_wchar_t" = xno; then have_wchar_t_api=no else if test "$have_wchar_t" = "yes" then have_wchar_t_api=yes else have_wchar_t_api=no fi fi if test "$have_wchar_t_api" = "yes" then AC_SUBST(WCHAR_T_API, 1) else AC_SUBST(WCHAR_T_API, 0) fi #for unichar api AC_ARG_ENABLE(unichar, AC_HELP_STRING(--enable-unichar, [enable unichar API (no)])) if test "x$enable_unichar" = "yes" then AC_SUBST(UNICHAR_API, 1) else AC_SUBST(UNICHAR_API, 0) fi #for cfstring api AC_ARG_ENABLE(cfstring, AC_HELP_STRING(--enable-cfstring, [enable cfstring API (no)])) if test "x$enable_cfstring" = xyes; then AC_MSG_CHECKING([for cfstring]) CPPFLAGS="$CPPFLAGS -framework CoreFoundation" AC_COMPILE_IFELSE(AC_LANG_SOURCE([[ #include CFStringRef x = CFSTR("Hello");]]), [have_cfstring_api=yes], [have_cfstring_api=no]) AC_MSG_RESULT($have_cfstring_api) else have_cfstring_api=no fi if test "$have_cfstring_api" = "yes" then AC_SUBST(CFSTRING_API, 1) else AC_SUBST(CFSTRING_API, 0) fi #determine charset type AC_MSG_CHECKING([charset type]) AC_ARG_WITH(charset, AC_HELP_STRING(--with-charset=TYPE, [locale charset. Accepted TYPE variants: auto, utf-8, iso-8859-1, usascii, ebcdic (default=auto)]), [ac_with_charset=$withval], [ac_with_charset=auto]) case "$ac_with_charset" in utf-8) AC_MSG_RESULT(utf-8) AC_SUBST(CHARSET_UTF8, 1) AC_SUBST(CHARSET_ISO88591, 0) AC_SUBST(CHARSET_USASCII, 0) AC_SUBST(CHARSET_EBCDIC, 0) ;; iso-8859-1) AC_MSG_RESULT(iso-8859-1) AC_SUBST(CHARSET_UTF8, 0) AC_SUBST(CHARSET_ISO88591, 1) AC_SUBST(CHARSET_USASCII, 0) AC_SUBST(CHARSET_EBCDIC, 0) ;; usascii) AC_MSG_RESULT(usascii) AC_SUBST(CHARSET_UTF8, 0) AC_SUBST(CHARSET_ISO88591, 0) AC_SUBST(CHARSET_USASCII, 1) AC_SUBST(CHARSET_EBCDIC, 0) ;; ebcdic) AC_MSG_RESULT(usascii) AC_SUBST(CHARSET_UTF8, 0) AC_SUBST(CHARSET_ISO88591, 0) AC_SUBST(CHARSET_USASCII, 0) AC_SUBST(CHARSET_EBCDIC, 1) ;; auto) AC_MSG_RESULT(auto) AC_SUBST(CHARSET_UTF8, 0) AC_SUBST(CHARSET_ISO88591, 0) AC_SUBST(CHARSET_USASCII, 0) AC_SUBST(CHARSET_EBCDIC, 0) ;; *) AC_MSG_RESULT(???) AC_MSG_ERROR(Invalid charset type: $ac_with_charset) ;; esac #determine logchar type AC_MSG_CHECKING([logchar type]) AC_ARG_WITH(logchar, AC_HELP_STRING(--with-logchar=TYPE, [type for logchar. Accepted TYPE variants: utf-8, wchar_t, unichar (default=utf-8)]), [ac_with_logchar=$withval], [ac_with_logchar=utf-8]) case "$ac_with_logchar" in utf-8) AC_MSG_RESULT(utf-8) AC_SUBST(LOGCHAR_IS_UTF8, 1) AC_SUBST(LOGCHAR_IS_WCHAR, 0) AC_SUBST(LOGCHAR_IS_UNICHAR, 0) ;; wchar_t) AC_MSG_RESULT(wchar_t) AC_SUBST(LOGCHAR_IS_UTF8, 0) AC_SUBST(LOGCHAR_IS_WCHAR, 1) AC_SUBST(LOGCHAR_IS_UNICHAR, 0) ;; unichar) AC_MSG_RESULT(unichar) AC_SUBST(LOGCHAR_IS_UTF8, 0) AC_SUBST(LOGCHAR_IS_WCHAR, 0) AC_SUBST(LOGCHAR_IS_UNICHAR, 1) ;; *) AC_MSG_RESULT(???) AC_MSG_ERROR(Invalid logchar type: $ac_with_logchar) ;; esac # Create files # ---------------------------------------------------------------------------- AC_CONFIG_FILES([ Makefile liblog4cxx.pc src/Makefile src/main/Makefile src/main/cpp/Makefile src/main/include/Makefile src/main/include/log4cxx/log4cxx.h src/main/include/log4cxx/private/log4cxx_private.h src/main/include/log4cxx/private/Makefile src/main/include/log4cxx/Makefile src/main/include/log4cxx/helpers/Makefile src/main/include/log4cxx/net/Makefile src/main/include/log4cxx/nt/Makefile src/main/include/log4cxx/spi/Makefile src/main/include/log4cxx/spi/location/Makefile src/main/include/log4cxx/varia/Makefile src/main/include/log4cxx/xml/Makefile src/main/include/log4cxx/config/Makefile src/main/include/log4cxx/db/Makefile src/main/include/log4cxx/rolling/Makefile src/main/include/log4cxx/pattern/Makefile src/main/include/log4cxx/filter/Makefile src/site/Makefile src/site/doxy/Makefile src/site/doxy/Doxyfile src/test/Makefile src/test/resources/Makefile src/test/resources/input/Makefile src/test/resources/input/ndc/Makefile src/test/resources/input/rolling/Makefile src/test/resources/input/xml/Makefile src/test/cpp/Makefile src/test/resources/witness/Makefile src/test/resources/witness/encoding/Makefile src/test/resources/witness/ndc/Makefile src/test/resources/witness/rolling/Makefile src/examples/Makefile src/examples/cpp/Makefile ]) AC_OUTPUT apache-log4cxx-0.10.0/NOTICE100644 0 0 250 10774263414 12417 0ustar 0 0 Apache log4cxx Copyright 2004-2007 The Apache Software Foundation This product includes software developed by The Apache Software Foundation (http://www.apache.org/). apache-log4cxx-0.10.0/LICENSE100644 0 0 26136 10774263414 12573 0ustar 0 0 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] 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. apache-log4cxx-0.10.0/KEYS100644 0 0 5016 10774263414 12236 0ustar 0 0 This file contains the PGP&GPG keys of various Apache developers. Please don't use them for email unless you have to. Their main purpose is code signing. Apache users: pgp < KEYS Apache developers: (pgpk -ll && pgpk -xa ) >> this file. or (gpg --fingerprint --list-sigs && gpg --armor --export ) >> this file. Apache developers: please ensure that your key is also available via the PGP keyservers (such as pgpkeys.mit.edu). pub 1024D/2E114322 2005-06-11 [expires: 2010-06-10] Key fingerprint = A1A2 B554 6D43 31B2 A41E 1C07 BE16 C95D 2E11 4322 uid Curt Arnold sig 3 2E114322 2005-06-11 Curt Arnold sub 2048g/209ECE57 2005-06-11 [expires: 2010-06-10] sig 2E114322 2005-06-11 Curt Arnold -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.3 (Darwin) mQGiBEKrSNQRBAC4J7udOBoC5+gVxBaPAbjXfnq12l5Pau1WD+UothePNGjI2hOp +Rnzikk3ISgyrjiX3A8ScZYbu3iXvMpF4zknkGLdmerpf4Gz9xGeushwun+UFaFL MX5u7LWJo9wDKzbcJJit1j/qGEg/HRp5fnVYCh0/l4dLansL60NhxtYdxwCguu2e wZMZFroaiIXqnce7+cGDRq8D/2HgKGtEJHY3z8OtUqncWbW+RAQqdcT0Z+bMB8o6 0UCHxUoJrFS1lA62qU3kcZ8ACPoh9xDW4X47EgNPELX81alymTI5FdqiDK7RIwzE JlOH/8JJgC6eSwiUXJ0cOJwpMonitcpMLouxuURuPSpfE5b1mQ1gFzN5MBL8xlZQ 8IO6A/9qWwyWyQBoJud0RDIsVRosdoSBZtw9PHsURgsqfNsS2NXTWK4HjxExw1KO AXmRlALfrH8yAShy/AyiUrwlKHG2WPTe6Etygjlr4dIxqTiCOoi+qv+H8SXW4Qy3 SnyozJ2RlKoYG0oDTbVMsPhOFdytHjConDLL9vS14j4kN9zWB7QgQ3VydCBBcm5v bGQgPGNhcm5vbGRAYXBhY2hlLm9yZz6IZAQTEQIAJAUCQqtI1AIbAwUJCWYBgAYL CQgHAwIDFQIDAxYCAQIeAQIXgAAKCRC+FsldLhFDIs5CAJ9roOB39ithHoCLaDJx l14efLwgNgCfcDBYutNX5W627kCeheDqhQbTqTi5Ag0EQqtJBRAIAN8maiGIO44S dc9Ep3CAm0aXDeR8IQ/F253WcMQtkFBjeHEDd6/+EFT52vswMI6ZJDVV/A7pe4VM XAdNutFmUG2gy9OJOu8gMuO3jTCLxUXyQYNF/RasOAQJgc7q1N5QgKtXVH2InQ21 vHvlHM1fVe4rYDPr4JL2lZHe0P8kTzeQ7jI5pQnfYRJmS8I5AMQYFOiM48Pd7Sbs Wu/rym7ikcmKUe6ZE59hSioneVP31CDMNRxCAQJVS1mZxTozsAEoh+cvmRjOD1Es 0iXvu6Sfe8+sLRL+7CNUZgixE1UFbdnNxuZGlG9qs0LGP7hDWijT1/Y4SHz4ovXx k0oocmFtiLcAAwcIAMbY7K99hLAFVaU2ukxCSp1TNPcD+IB3gtpRieKaZvBn/LGe CO+fNAogkw537lmpLk4nI+JiP/xWohyJ9lyEpW7yD4c9AHKNjqvEWD5Bhpnw4qKJ ohQSVQwEeJRsftY4D0jCP9xbgPiq5woBzHWNok3BVaHqLK0fd0/+KygnT+k6cR22 Mus9RsEisXk9Oj5lvC0miDOWof4vk2Ll8/H3xt4CXAr13n5Yj2632HolOHrFUQXT gwc9v5CNIihOQMEiXFxHh743qbsUZktjxeYH7r8wSCV93/QQ4qELiWoUzndpkCRT lEKenucAv6f5qqZqG7pVW8S48T99HwzwqgFX5VOITwQYEQIADwUCQqtJBQIbDAUJ CWYBgAAKCRC+FsldLhFDIjnoAJ9ECOIrTH3adnVLOkHZnewyp2ssxwCgtLjlwZ7/ 4QtL3W5Id3nKxPFiI+c= =9ut1 -----END PGP PUBLIC KEY BLOCK----- apache-log4cxx-0.10.0/liblog4cxx.pc.in100644 0 0 1742 10774263414 14552 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ Name: log4cxx Description: log4cxx C++ logging framework Version: @VERSION@ Libs: -L${libdir} -llog4cxx Cflags: -I${includedir} apache-log4cxx-0.10.0/pom.xml100644 0 0 20442 10774263414 13075 0ustar 0 0 4.0.0 log4cxx apache-log4cxx pom 0.10.0 Apache log4cxx Logging framework for C++. http://logging.apache.org:80/log4cxx JIRA http://issues.apache.org/jira/ log4cxx-user : log4cxx usage log4cxx-user-subscribe@logging.apache.org log4cxx-user-unsubscribe@logging.apache.org log4cxx-user@logging.apache.org http://mail-archives.apache.org/mod_mbox/logging-log4cxx-user/ http://markmail.org/search/list:org.apache.logging.log4cxx-user http://marc.info/?l=log4cxx-user http://dir.gmane.org/gmane.comp.apache.logging.log4cxx.user log4cxx-dev : log4cxx development log4cxx-dev-subscribe@logging.apache.org log4cxx-dev-unsubscribe@logging.apache.org log4cxx-dev@logging.apache.org http://mail-archives.apache.org/mod_mbox/logging-log4cxx-dev/ http://markmail.org/search/list:org.apache.logging.log4cxx-dev http://marc.info/?l=log4cxx-dev http://dir.gmane.org/gmane.comp.jakarta.log4j.devel Apache License, Version 2.0 http://www.apache.org/licenses/LICENSE-2.0.txt repo scm:svn:http://svn.apache.org/repos/asf/logging/log4cxx/tags/v0_10_0-rc8 scm:svn:https://svn.apache.org/repos/asf/logging/log4cxx/tags/v0_10_0-rc8 http://svn.apache.org/viewcvs.cgi/logging/log4cxx/tags/v0_10_0-rc8 Apache Software Foundation http://www.apache.org maven-antrun-plugin compile compile run test-compile test-compile run test test run package autogen run site site run post-site post-site run site-deploy site-deploy run ant ant-nodeps 1.6.5 ant-contrib ant-contrib 1.0b2 ant-contrib cpptasks 1.0b5 maven-assembly-plugin src/assembly/source.xml false assembly org.codehaus.mojo rat-maven-plugin log4j log4j 1.2.14 test true maven-project-info-reports-plugin scm dependencies issue-tracking mailing-list license maven-release-plugin site-deploy assembly:assembly maven-changes-plugin changes-report %URL%/browse/%ISSUE% tmp.repo file:///tmp logging.site file:///${user.dir}/target/site-deploy apache-log4cxx-0.10.0/build.xml100644 0 0 143761 10774263414 13433 0ustar 0 0 '> ]> &common; &find-apr; &find-apr-util; &find-libesmtp; Ant build file for log4cxx Common invocations: > ant will attempt to locate APR and APR-util in /usr, /usr/local/apr and .. Builds and tests log4cxx. > ant -Dwith-apr=APRPATH -Dwith-apr-util=APUPATH Builds and tests log4cxx using APR and APR-Util at specified location > ant -p Displays available targets > ant build-projects-vc6 Builds Microsoft Visual Studio 6 projects. -vc7, -vc8, -vc9 and -xcode for Visual Studio .NET, 2005, 2008 and Apple Xcode 2 and later. respectively. Command line options: -Ddebug=[true|false] -Doptimize=[speed|size|none] -Dversion=n.n.n -Denable-shared=[yes|no] (default yes) -Denable-static=[yes|no] (default yes) -Denable-char=[0, 1] (expose char* API, default 1) -Denable-wchar_t=[0, 1] (expose wchar_t* API, default 1) -Denable-unichar=[0, 1] (expose UniChar API, default 0) -Denable-cfstring[0, 1] (expose CFString API, default 0) -Dwith-charset=[auto|utf-8|iso-8859-1|usascii|ebcdic] (default auto) -Dwith-logchar=[utf-8|wchar_t|unichar] (default=utf-8 on Unix, wchar_t on Windows) -Dwith-apr=APRPATH -Dwith-apr-util=PATH -Dwith-SMTP=[libesmtp, no] (default no) -Dwith-ODBC=[unixODBC, iODBC, Microsoft, no] (default no) force-ant: ${force-ant} Could not locate apr library or source. Could not locate apr-util library or source. Could not locate libesmtp library or source. #include "${header}" #include "${header}" Requires GCC compiler apr is ${apr.lib.type} and apr-util is ${apr-util.lib.type}, must be same type. &libsets; &license; &libsets; &license; &libsets; &license; &libsets; &license; output/dom³ was ${dom3-status} created in DOMTestCase::test3 output/dom㆕ was ${dom4-status} created in DOMTestCase::test4 output/dom³ was ${dom3-status} created in DOMTestCase::test3 output/dom㆕ was ${dom4-status} created in DOMTestCase::test4 /* &license; */ /* Minimal replacement for GPL'd doxygen.css */ /* &license; */ /* Minimal replacement for GPL'd tabs.css */ DIV.tabs { display : none ; } <html <!-- &license; --><html body { /* &license; */ body { #banner /* &license; */ #banner apache-log4cxx-0.10.0/find_apr.m4100644 0 0 17052 10774263414 13607 0ustar 0 0 dnl -------------------------------------------------------- -*- autoconf -*- dnl Licensed to the Apache Software Foundation (ASF) under one or more dnl contributor license agreements. See the NOTICE file distributed with dnl this work for additional information regarding copyright ownership. dnl The ASF licenses this file to You under the Apache License, Version 2.0 dnl (the "License"); you may not use this file except in compliance with dnl the License. You may obtain a copy of the License at dnl dnl http://www.apache.org/licenses/LICENSE-2.0 dnl dnl Unless required by applicable law or agreed to in writing, software dnl distributed under the License is distributed on an "AS IS" BASIS, dnl WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. dnl See the License for the specific language governing permissions and dnl limitations under the License. dnl dnl find_apr.m4 : locate the APR include files and libraries dnl dnl This macro file can be used by applications to find and use the APR dnl library. It provides a standardized mechanism for using APR. It supports dnl embedding APR into the application source, or locating an installed dnl copy of APR. dnl dnl APR_FIND_APR(srcdir, builddir, implicit-install-check, acceptable-majors, dnl detailed-check) dnl dnl where srcdir is the location of the bundled APR source directory, or dnl empty if source is not bundled. dnl dnl where builddir is the location where the bundled APR will will be built, dnl or empty if the build will occur in the srcdir. dnl dnl where implicit-install-check set to 1 indicates if there is no dnl --with-apr option specified, we will look for installed copies. dnl dnl where acceptable-majors is a space separated list of acceptable major dnl version numbers. Often only a single major version will be acceptable. dnl If multiple versions are specified, and --with-apr=PREFIX or the dnl implicit installed search are used, then the first (leftmost) version dnl in the list that is found will be used. Currently defaults to [0 1]. dnl dnl where detailed-check is an M4 macro which sets the apr_acceptable to dnl either "yes" or "no". The macro will be invoked for each installed dnl copy of APR found, with the apr_config variable set appropriately. dnl Only installed copies of APR which are considered acceptable by dnl this macro will be considered found. If no installed copies are dnl considered acceptable by this macro, apr_found will be set to either dnl either "no" or "reconfig". dnl dnl Sets the following variables on exit: dnl dnl apr_found : "yes", "no", "reconfig" dnl dnl apr_config : If the apr-config tool exists, this refers to it. If dnl apr_found is "reconfig", then the bundled directory dnl should be reconfigured *before* using apr_config. dnl dnl Note: this macro file assumes that apr-config has been installed; it dnl is normally considered a required part of an APR installation. dnl dnl If a bundled source directory is available and needs to be (re)configured, dnl then apr_found is set to "reconfig". The caller should reconfigure the dnl (passed-in) source directory, placing the result in the build directory, dnl as appropriate. dnl dnl If apr_found is "yes" or "reconfig", then the caller should use the dnl value of apr_config to fetch any necessary build/link information. dnl AC_DEFUN([APR_FIND_APR], [ apr_found="no" if test "$target_os" = "os2-emx"; then # Scripts don't pass test -x on OS/2 TEST_X="test -f" else TEST_X="test -x" fi ifelse([$4], [], [ ifdef(AC_WARNING,AC_WARNING([$0: missing argument 4 (acceptable-majors): Defaulting to APR 0.x then APR 1.x])) acceptable_majors="0 1"], [acceptable_majors="$4"]) apr_temp_acceptable_apr_config="" for apr_temp_major in $acceptable_majors do case $apr_temp_major in 0) apr_temp_acceptable_apr_config="$apr_temp_acceptable_apr_config apr-config" ;; *) apr_temp_acceptable_apr_config="$apr_temp_acceptable_apr_config apr-$apr_temp_major-config" ;; esac done AC_MSG_CHECKING(for APR) AC_ARG_WITH(apr, [ --with-apr=PATH prefix for installed APR or the full path to apr-config], [ if test "$withval" = "no" || test "$withval" = "yes"; then AC_MSG_ERROR([--with-apr requires a directory or file to be provided]) fi for apr_temp_apr_config_file in $apr_temp_acceptable_apr_config do for lookdir in "$withval/bin" "$withval" do if $TEST_X "$lookdir/$apr_temp_apr_config_file"; then apr_config="$lookdir/$apr_temp_apr_config_file" ifelse([$5], [], [], [ apr_acceptable="yes" $5 if test "$apr_acceptable" != "yes"; then AC_MSG_WARN([Found APR in $apr_config, but we think it is considered unacceptable]) continue fi]) apr_found="yes" break 2 fi done done if test "$apr_found" != "yes" && $TEST_X "$withval" && $withval --help > /dev/null 2>&1 ; then apr_config="$withval" ifelse([$5], [], [apr_found="yes"], [ apr_acceptable="yes" $5 if test "$apr_acceptable" = "yes"; then apr_found="yes" fi]) fi dnl if --with-apr is used, it is a fatal error for its argument dnl to be invalid if test "$apr_found" != "yes"; then AC_MSG_ERROR([the --with-apr parameter is incorrect. It must specify an install prefix, a build directory, or an apr-config file.]) fi ],[ dnl If we allow installed copies, check those before using bundled copy. if test -n "$3" && test "$3" = "1"; then for apr_temp_apr_config_file in $apr_temp_acceptable_apr_config do if $apr_temp_apr_config_file --help > /dev/null 2>&1 ; then apr_config="$apr_temp_apr_config_file" ifelse([$5], [], [], [ apr_acceptable="yes" $5 if test "$apr_acceptable" != "yes"; then AC_MSG_WARN([skipped APR at $apr_config, version not acceptable]) continue fi]) apr_found="yes" break else dnl look in some standard places for lookdir in /usr /usr/local /usr/local/apr /opt/apr; do if $TEST_X "$lookdir/bin/$apr_temp_apr_config_file"; then apr_config="$lookdir/bin/$apr_temp_apr_config_file" ifelse([$5], [], [], [ apr_acceptable="yes" $5 if test "$apr_acceptable" != "yes"; then AC_MSG_WARN([skipped APR at $apr_config, version not acceptable]) continue fi]) apr_found="yes" break 2 fi done fi done fi dnl if we have not found anything yet and have bundled source, use that if test "$apr_found" = "no" && test -d "$1"; then apr_temp_abs_srcdir="`cd $1 && pwd`" apr_found="reconfig" apr_bundled_major="`sed -n '/#define.*APR_MAJOR_VERSION/s/^[^0-9]*\([0-9]*\).*$/\1/p' \"$1/include/apr_version.h\"`" case $apr_bundled_major in "") AC_MSG_ERROR([failed to find major version of bundled APR]) ;; 0) apr_temp_apr_config_file="apr-config" ;; *) apr_temp_apr_config_file="apr-$apr_bundled_major-config" ;; esac if test -n "$2"; then apr_config="$2/$apr_temp_apr_config_file" else apr_config="$1/$apr_temp_apr_config_file" fi fi ]) AC_MSG_RESULT($apr_found) ]) apache-log4cxx-0.10.0/find_apu.m4100644 0 0 17536 10774263414 13621 0ustar 0 0 dnl -------------------------------------------------------- -*- autoconf -*- dnl Copyright 2002-2005 The Apache Software Foundation or its licensors, as dnl applicable. dnl dnl Licensed under the Apache License, Version 2.0 (the "License"); dnl you may not use this file except in compliance with the License. dnl You may obtain a copy of the License at dnl dnl http://www.apache.org/licenses/LICENSE-2.0 dnl dnl Unless required by applicable law or agreed to in writing, software dnl distributed under the License is distributed on an "AS IS" BASIS, dnl WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. dnl See the License for the specific language governing permissions and dnl limitations under the License. dnl dnl find_apu.m4 : locate the APR-util (APU) include files and libraries dnl dnl This macro file can be used by applications to find and use the APU dnl library. It provides a standardized mechanism for using APU. It supports dnl embedding APU into the application source, or locating an installed dnl copy of APU. dnl dnl APR_FIND_APU(srcdir, builddir, implicit-install-check, acceptable-majors, dnl detailed-check) dnl dnl where srcdir is the location of the bundled APU source directory, or dnl empty if source is not bundled. dnl dnl where builddir is the location where the bundled APU will be built, dnl or empty if the build will occur in the srcdir. dnl dnl where implicit-install-check set to 1 indicates if there is no dnl --with-apr-util option specified, we will look for installed copies. dnl dnl where acceptable-majors is a space separated list of acceptable major dnl version numbers. Often only a single major version will be acceptable. dnl If multiple versions are specified, and --with-apr-util=PREFIX or the dnl implicit installed search are used, then the first (leftmost) version dnl in the list that is found will be used. Currently defaults to [0 1]. dnl dnl where detailed-check is an M4 macro which sets the apu_acceptable to dnl either "yes" or "no". The macro will be invoked for each installed dnl copy of APU found, with the apu_config variable set appropriately. dnl Only installed copies of APU which are considered acceptable by dnl this macro will be considered found. If no installed copies are dnl considered acceptable by this macro, apu_found will be set to either dnl either "no" or "reconfig". dnl dnl Sets the following variables on exit: dnl dnl apu_found : "yes", "no", "reconfig" dnl dnl apu_config : If the apu-config tool exists, this refers to it. If dnl apu_found is "reconfig", then the bundled directory dnl should be reconfigured *before* using apu_config. dnl dnl Note: this macro file assumes that apr-config has been installed; it dnl is normally considered a required part of an APR installation. dnl dnl Note: At this time, we cannot find *both* a source dir and a build dir. dnl If both are available, the build directory should be passed to dnl the --with-apr-util switch. dnl dnl Note: the installation layout is presumed to follow the standard dnl PREFIX/lib and PREFIX/include pattern. If the APU config file dnl is available (and can be found), then non-standard layouts are dnl possible, since it will be described in the config file. dnl dnl If a bundled source directory is available and needs to be (re)configured, dnl then apu_found is set to "reconfig". The caller should reconfigure the dnl (passed-in) source directory, placing the result in the build directory, dnl as appropriate. dnl dnl If apu_found is "yes" or "reconfig", then the caller should use the dnl value of apu_config to fetch any necessary build/link information. dnl AC_DEFUN([APR_FIND_APU], [ apu_found="no" if test "$target_os" = "os2-emx"; then # Scripts don't pass test -x on OS/2 TEST_X="test -f" else TEST_X="test -x" fi ifelse([$4], [], [ ifdef(AC_WARNING,([$0: missing argument 4 (acceptable-majors): Defaulting to APU 0.x then APU 1.x])) acceptable_majors="0 1" ], [acceptable_majors="$4"]) apu_temp_acceptable_apu_config="" for apu_temp_major in $acceptable_majors do case $apu_temp_major in 0) apu_temp_acceptable_apu_config="$apu_temp_acceptable_apu_config apu-config" ;; *) apu_temp_acceptable_apu_config="$apu_temp_acceptable_apu_config apu-$apu_temp_major-config" ;; esac done AC_MSG_CHECKING(for APR-util) AC_ARG_WITH(apr-util, [ --with-apr-util=PATH prefix for installed APU or the full path to apu-config], [ if test "$withval" = "no" || test "$withval" = "yes"; then AC_MSG_ERROR([--with-apr-util requires a directory or file to be provided]) fi for apu_temp_apu_config_file in $apu_temp_acceptable_apu_config do for lookdir in "$withval/bin" "$withval" do if $TEST_X "$lookdir/$apu_temp_apu_config_file"; then apu_config="$lookdir/$apu_temp_apu_config_file" ifelse([$5], [], [], [ apu_acceptable="yes" $5 if test "$apu_acceptable" != "yes"; then AC_MSG_WARN([Found APU in $apu_config, but it is considered unacceptable]) continue fi]) apu_found="yes" break 2 fi done done if test "$apu_found" != "yes" && $TEST_X "$withval" && $withval --help > /dev/null 2>&1 ; then apu_config="$withval" ifelse([$5], [], [apu_found="yes"], [ apu_acceptable="yes" $5 if test "$apu_acceptable" = "yes"; then apu_found="yes" fi]) fi dnl if --with-apr-util is used, it is a fatal error for its argument dnl to be invalid if test "$apu_found" != "yes"; then AC_MSG_ERROR([the --with-apr-util parameter is incorrect. It must specify an install prefix, a build directory, or an apu-config file.]) fi ],[ if test -n "$3" && test "$3" = "1"; then for apu_temp_apu_config_file in $apu_temp_acceptable_apu_config do if $apu_temp_apu_config_file --help > /dev/null 2>&1 ; then apu_config="$apu_temp_apu_config_file" ifelse([$5], [], [], [ apu_acceptable="yes" $5 if test "$apu_acceptable" != "yes"; then AC_MSG_WARN([skipped APR-util at $apu_config, version not acceptable]) continue fi]) apu_found="yes" break else dnl look in some standard places (apparently not in builtin/default) for lookdir in /usr /usr/local /usr/local/apr /opt/apr; do if $TEST_X "$lookdir/bin/$apu_temp_apu_config_file"; then apu_config="$lookdir/bin/$apu_temp_apu_config_file" ifelse([$5], [], [], [ apu_acceptable="yes" $5 if test "$apu_acceptable" != "yes"; then AC_MSG_WARN([skipped APR-util at $apu_config, version not acceptable]) continue fi]) apu_found="yes" break 2 fi done fi done fi dnl if we have not found anything yet and have bundled source, use that if test "$apu_found" = "no" && test -d "$1"; then apu_temp_abs_srcdir="`cd $1 && pwd`" apu_found="reconfig" apu_bundled_major="`sed -n '/#define.*APU_MAJOR_VERSION/s/^[^0-9]*\([0-9]*\).*$/\1/p' \"$1/include/apu_version.h\"`" case $apu_bundled_major in "") AC_MSG_ERROR([failed to find major version of bundled APU]) ;; 0) apu_temp_apu_config_file="apu-config" ;; *) apu_temp_apu_config_file="apu-$apu_bundled_major-config" ;; esac if test -n "$2"; then apu_config="$2/$apu_temp_apu_config_file" else apu_config="$1/$apu_temp_apu_config_file" fi fi ]) AC_MSG_RESULT($apu_found) ]) apache-log4cxx-0.10.0/INSTALL100644 0 0 10270 10774263414 12607 0ustar 0 0 Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You 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. Detailed build instructions are provided for in both HTML and APT format in releases. The APT sources are available in Subversion checkouts. autotools: site/building/autotools.html src/site/apt/building/autotools.apt Apache Ant: site/building/ant.html src/site/apt/building/ant.apt Apache Maven 2: site/building/maven.html src/site/apt/building/maven.apt Microsoft Visual Studio: site/building/vstudio.html src/site/apt/building/vstudio.apt Apple Xcode: site/building/xcode.html src/site/apt/building/xcode.apt Introduction ============ Apache log4cxx is a C++ transliteration of Apache log4j. Maven 2: ================== Maven 2 used to prepare site documentation and will be used to package the release. TODO: add more documentation. Ant + cpptasks build: ================== The Ant build script is the definitive build script for log4cxx and is able to build log4cxx with (at least) gcc, Microsoft Visual C++ 6, 7, 7.1 and Borland C++ 5.5 and produce IDE project files for Microsoft Visual Studio 6, Borland CBuilderX and Apple Xcode to assist in debugging. Prerequisites: Apache Ant 1.6.1 or later http://ant.apache.org cpptasks.jar and ant-contrib.jar on CLASSPATH (March 2005 or later releases or CVS HEAD) http://ant-contrib.sourceforge.net JDK 1.4 or later. Earlier versions might work but have not been tested. GNU patch on command path. GNU sed, gzip and zip on command path (required for tests) Connection to internet - or - The following files placed in the lib directory: apr-1.2.2.tar.gz apr-util-1.2.2.tar.gz http://apr.apache.org Building: Unix gcc: $> export CLASSPATH=path_to_cpptasks/cpptasks.jar:path_to_antcontrib/ant-contrib.jar - or - $> setenv CLASSPATH path_to_cpptasks/cpptasks.jar:path_to_antcontrib/ant-contrib.jar $> ant Microsoft Visual C++: $> set CLASSPATH=path_to_cpptasks/cpptasks.jar;path_to_antcontrib/ant-contrib.jar $> path_to_vc\bin\vcvars32 $> ant Borland C++: $> set CLASSPATH=path_to_cpptasks/cpptasks.jar;path_to_antcontrib/ant-contrib.jar $> ant -Dcompiler=bcc Build options: -Dcompiler= see list from http://ant-contrib.sourceforge.net/cc.html -Ddebug=[true | false] -Dlib.type=[shared | static | dylib] -Drtti=[false | true] -Dapache.mirror=URL -Dapr.lib.type=[static | shared] -Daprutil.lib.type=[static | shared] -Dapriconv.lib.type=[static | shared] -Dhas.wchar_t=[1 | 0] -Dlogchar=[wchar_t utf8] -Dos.family=cygwin Build targets: build Build log4cxx library build-all Builds all artifacts build-examples Builds example programs build-projects-cbx Builds project files for Borland CBuilderX build-projects-vc6 Builds project files for Microsoft Visual C++ 6 build-projects-xcode Builds project files for Apple Xcode build-shortsocketserver builds a socket server used by unit tests build-standalone-unittest Builds a unit tests + log4cxx executable build-unittest Builds unit test app check Runs all diagnostic tests clean Removes built files dist Builds a source distribution fixcrlf repair end-of-line sequences header-check Checks headers against Effective C++ guidelines run-standalone-unittest Runs standalone unit test run-unittest Runs unit test usage Describes usage of the build script apache-log4cxx-0.10.0/Makefile.am100644 0 0 1757 10774263414 13604 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # AUTOMAKE_OPTIONS = foreign SUBDIRS = src EXTRA_DIST = autogen.sh aclocal.m4 find_apr.m4 find_apu.m4 build.xml pom.xml NOTICE LICENSE INSTALL pom.xml KEYS pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = liblog4cxx.pc apache-log4cxx-0.10.0/config.guess100644 0 0 124753 10327346515 14125 0ustar 0 0 #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. timestamp='2005-08-03' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerppc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; i*:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; x86:Interix*:[34]*) echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' exit ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #ifdef __INTEL_COMPILER LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in *86) UNAME_PROCESSOR=i686 ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: apache-log4cxx-0.10.0/config.sub100644 0 0 75777 10327346515 13563 0ustar 0 0 #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. timestamp='2005-07-08' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \ kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | ms1 \ | msp430 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b \ | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m32c) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | ms1-* \ | msp430-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa-* \ | ymp-* \ | z8k-*) ;; m32c-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16c) basic_machine=cr16c-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: apache-log4cxx-0.10.0/aclocal.m4100644 0 0 777305 10774264467 13472 0ustar 0 0 # generated automatically by aclocal 1.9.6 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # serial 48 Debian 1.5.22-2 AC_PROG_LIBTOOL # AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) # ----------------------------------------------------------- # If this macro is not defined by Autoconf, define it here. m4_ifdef([AC_PROVIDE_IFELSE], [], [m4_define([AC_PROVIDE_IFELSE], [m4_ifdef([AC_PROVIDE_$1], [$2], [$3])])]) # AC_PROG_LIBTOOL # --------------- AC_DEFUN([AC_PROG_LIBTOOL], [AC_REQUIRE([_AC_PROG_LIBTOOL])dnl dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX. AC_PROVIDE_IFELSE([AC_PROG_CXX], [AC_LIBTOOL_CXX], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX ])]) dnl And a similar setup for Fortran 77 support AC_PROVIDE_IFELSE([AC_PROG_F77], [AC_LIBTOOL_F77], [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77 ])]) dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly. dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [AC_LIBTOOL_GCJ], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [AC_LIBTOOL_GCJ], [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ], [AC_LIBTOOL_GCJ], [ifdef([AC_PROG_GCJ], [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])]) ifdef([A][M_PROG_GCJ], [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])]) ifdef([LT_AC_PROG_GCJ], [define([LT_AC_PROG_GCJ], defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])]) ])])# AC_PROG_LIBTOOL # _AC_PROG_LIBTOOL # ---------------- AC_DEFUN([_AC_PROG_LIBTOOL], [AC_REQUIRE([AC_LIBTOOL_SETUP])dnl AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl # Prevent multiple expansion define([AC_PROG_LIBTOOL], []) ])# _AC_PROG_LIBTOOL # AC_LIBTOOL_SETUP # ---------------- AC_DEFUN([AC_LIBTOOL_SETUP], [AC_PREREQ(2.50)dnl AC_REQUIRE([AC_ENABLE_SHARED])dnl AC_REQUIRE([AC_ENABLE_STATIC])dnl AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_LD])dnl AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl AC_REQUIRE([AC_PROG_NM])dnl AC_REQUIRE([AC_PROG_LN_S])dnl AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! AC_REQUIRE([AC_OBJEXT])dnl AC_REQUIRE([AC_EXEEXT])dnl dnl AC_LIBTOOL_SYS_MAX_CMD_LEN AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE AC_LIBTOOL_OBJDIR AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl _LT_AC_PROG_ECHO_BACKSLASH case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='sed -e 1s/^X//' [sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'] # Same as above, but do not quote variable references. [double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'] # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Constants: rm="rm -f" # Global variables: default_ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a ltmain="$ac_aux_dir/ltmain.sh" ofile="$default_ofile" with_gnu_ld="$lt_cv_prog_gnu_ld" AC_CHECK_TOOL(AR, ar, false) AC_CHECK_TOOL(RANLIB, ranlib, :) AC_CHECK_TOOL(STRIP, strip, :) old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" test -z "$MAGIC_CMD" && MAGIC_CMD=file test -z "$NM" && NM=nm test -z "$SED" && SED=sed test -z "$OBJDUMP" && OBJDUMP=objdump test -z "$RANLIB" && RANLIB=: test -z "$STRIP" && STRIP=: test -z "$ac_objext" && ac_objext=o # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then AC_PATH_MAGIC fi ;; esac AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], enable_win32_dll=yes, enable_win32_dll=no) AC_ARG_ENABLE([libtool-lock], [AC_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes AC_ARG_WITH([pic], [AC_HELP_STRING([--with-pic], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [pic_mode="$withval"], [pic_mode=default]) test -z "$pic_mode" && pic_mode=default # Use C for the default configuration in the libtool script tagname= AC_LIBTOOL_LANG_C_CONFIG _LT_AC_TAGCONFIG ])# AC_LIBTOOL_SETUP # _LT_AC_SYS_COMPILER # ------------------- AC_DEFUN([_LT_AC_SYS_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_AC_SYS_COMPILER # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. AC_DEFUN([_LT_CC_BASENAME], [for cc_temp in $1""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` ]) # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. AC_DEFUN([_LT_COMPILER_BOILERPLATE], [ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. AC_DEFUN([_LT_LINKER_BOILERPLATE], [ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* ])# _LT_LINKER_BOILERPLATE # _LT_AC_SYS_LIBPATH_AIX # ---------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX], [AC_LINK_IFELSE(AC_LANG_PROGRAM,[ aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi],[]) if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ])# _LT_AC_SYS_LIBPATH_AIX # _LT_AC_SHELL_INIT(ARG) # ---------------------- AC_DEFUN([_LT_AC_SHELL_INIT], [ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], [AC_DIVERT_PUSH(NOTICE)]) $1 AC_DIVERT_POP ])# _LT_AC_SHELL_INIT # _LT_AC_PROG_ECHO_BACKSLASH # -------------------------- # Add some code to the start of the generated configure script which # will find an echo command which doesn't interpret backslashes. AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], [_LT_AC_SHELL_INIT([ # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ;; esac echo=${ECHO-echo} if test "X[$]1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X[$]1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then # Yippee, $echo works! : else # Restart under the correct shell. exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} fi if test "X[$]1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1 && unset CDPATH if test -z "$ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if (echo_test_string=`eval $cmd`) 2>/dev/null && echo_test_string=`eval $cmd` && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break fi done fi if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$echo" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. echo='print -r' elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} else # Try using printf. echo='printf %s\n' if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL echo="$CONFIG_SHELL [$]0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$CONFIG_SHELL [$]0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "[$]0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} else # Oops. We lost completely, so just stick with echo. echo=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. ECHO=$echo if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" fi AC_SUBST(ECHO) ])])# _LT_AC_PROG_ECHO_BACKSLASH # _LT_AC_LOCK # ----------- AC_DEFUN([_LT_AC_LOCK], [AC_ARG_ENABLE([libtool-lock], [AC_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line __oline__ "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) LD="${LD-ld} -64" ;; esac ;; esac fi rm -rf conftest* ;; AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], [*-*-cygwin* | *-*-mingw* | *-*-pw32*) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; ]) esac need_locks="$enable_libtool_lock" ])# _LT_AC_LOCK # AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [AC_REQUIRE([LT_AC_PROG_SED]) AC_CACHE_CHECK([$1], [$2], [$2=no ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $rm conftest* ]) if test x"[$]$2" = xyes; then ifelse([$5], , :, [$5]) else ifelse([$6], , :, [$6]) fi ])# AC_LIBTOOL_COMPILER_OPTION # AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ------------------------------------------------------------ # Check whether the given compiler option works AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then ifelse([$4], , :, [$4]) else ifelse([$5], , :, [$5]) fi ])# AC_LIBTOOL_LINKER_OPTION # AC_LIBTOOL_SYS_MAX_CMD_LEN # -------------------------- AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [# find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \ = "XX$teststring") >/dev/null 2>&1 && new_result=`expr "X$teststring" : ".*" 2>&1` && lt_cv_sys_max_cmd_len=$new_result && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done teststring= # Add a significant safety factor because C++ compilers can tack on massive # amounts of additional arguments before passing them to the linker. # It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi ])# AC_LIBTOOL_SYS_MAX_CMD_LEN # _LT_AC_CHECK_DLFCN # ------------------ AC_DEFUN([_LT_AC_CHECK_DLFCN], [AC_CHECK_HEADERS(dlfcn.h)dnl ])# _LT_AC_CHECK_DLFCN # _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # --------------------------------------------------------------------- AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], [AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); exit (status); }] EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_AC_TRY_DLOPEN_SELF # AC_LIBTOOL_DLOPEN_SELF # ---------------------- AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_AC_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_AC_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi ])# AC_LIBTOOL_DLOPEN_SELF # AC_LIBTOOL_PROG_CC_C_O([TAGNAME]) # --------------------------------- # Check to see if options -c and -o are simultaneously supported by compiler AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O], [AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* ]) ])# AC_LIBTOOL_PROG_CC_C_O # AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME]) # ----------------------------------------- # Check to see if we can do hard links to lock some files if needed AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_REQUIRE([_LT_AC_LOCK])dnl hard_links="nottested" if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi ])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS # AC_LIBTOOL_OBJDIR # ----------------- AC_DEFUN([AC_LIBTOOL_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir ])# AC_LIBTOOL_OBJDIR # AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME]) # ---------------------------------------------- # Check hardcoding attributes. AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_AC_TAGVAR(hardcode_action, $1)= if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \ test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existant directories. if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_AC_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_AC_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_AC_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)]) if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi ])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH # AC_LIBTOOL_SYS_LIB_STRIP # ------------------------ AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP], [striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi ])# AC_LIBTOOL_SYS_LIB_STRIP # AC_LIBTOOL_SYS_DYNAMIC_LINKER # ----------------------------- # PORTME Fill in your ld.so characteristics AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_MSG_CHECKING([dynamic linker characteristics]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[123]]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi ])# AC_LIBTOOL_SYS_DYNAMIC_LINKER # _LT_AC_TAGCONFIG # ---------------- AC_DEFUN([_LT_AC_TAGCONFIG], [AC_ARG_WITH([tags], [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@], [include additional configurations @<:@automatic@:>@])], [tagnames="$withval"]) if test -f "$ltmain" && test -n "$tagnames"; then if test ! -f "${ofile}"; then AC_MSG_WARN([output file `$ofile' does not exist]) fi if test -z "$LTCC"; then eval "`$SHELL ${ofile} --config | grep '^LTCC='`" if test -z "$LTCC"; then AC_MSG_WARN([output file `$ofile' does not look like a libtool script]) else AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) fi fi if test -z "$LTCFLAGS"; then eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" fi # Extract list of available tagged configurations in $ofile. # Note that this assumes the entire list is on one line. available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for tagname in $tagnames; do IFS="$lt_save_ifs" # Check whether tagname contains only valid characters case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in "") ;; *) AC_MSG_ERROR([invalid tag name: $tagname]) ;; esac if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null then AC_MSG_ERROR([tag name \"$tagname\" already exists]) fi # Update the list of available tags. if test -n "$tagname"; then echo appending configuration tag \"$tagname\" to $ofile case $tagname in CXX) if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_LIBTOOL_LANG_CXX_CONFIG else tagname="" fi ;; F77) if test -n "$F77" && test "X$F77" != "Xno"; then AC_LIBTOOL_LANG_F77_CONFIG else tagname="" fi ;; GCJ) if test -n "$GCJ" && test "X$GCJ" != "Xno"; then AC_LIBTOOL_LANG_GCJ_CONFIG else tagname="" fi ;; RC) AC_LIBTOOL_LANG_RC_CONFIG ;; *) AC_MSG_ERROR([Unsupported tag name: $tagname]) ;; esac # Append the new tag name to the list of available tags. if test -n "$tagname" ; then available_tags="$available_tags $tagname" fi fi done IFS="$lt_save_ifs" # Now substitute the updated list of available tags. if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then mv "${ofile}T" "$ofile" chmod +x "$ofile" else rm -f "${ofile}T" AC_MSG_ERROR([unable to update list of available tagged configurations.]) fi fi ])# _LT_AC_TAGCONFIG # AC_LIBTOOL_DLOPEN # ----------------- # enable checks for dlopen support AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP]) ])# AC_LIBTOOL_DLOPEN # AC_LIBTOOL_WIN32_DLL # -------------------- # declare package support for building win32 DLLs AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_BEFORE([$0], [AC_LIBTOOL_SETUP]) ])# AC_LIBTOOL_WIN32_DLL # AC_ENABLE_SHARED([DEFAULT]) # --------------------------- # implement the --enable-shared flag # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. AC_DEFUN([AC_ENABLE_SHARED], [define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE([shared], [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]AC_ENABLE_SHARED_DEFAULT) ])# AC_ENABLE_SHARED # AC_DISABLE_SHARED # ----------------- # set the default shared flag to --disable-shared AC_DEFUN([AC_DISABLE_SHARED], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_ENABLE_SHARED(no) ])# AC_DISABLE_SHARED # AC_ENABLE_STATIC([DEFAULT]) # --------------------------- # implement the --enable-static flag # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. AC_DEFUN([AC_ENABLE_STATIC], [define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE([static], [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]AC_ENABLE_STATIC_DEFAULT) ])# AC_ENABLE_STATIC # AC_DISABLE_STATIC # ----------------- # set the default static flag to --disable-static AC_DEFUN([AC_DISABLE_STATIC], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_ENABLE_STATIC(no) ])# AC_DISABLE_STATIC # AC_ENABLE_FAST_INSTALL([DEFAULT]) # --------------------------------- # implement the --enable-fast-install flag # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. AC_DEFUN([AC_ENABLE_FAST_INSTALL], [define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE([fast-install], [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT) ])# AC_ENABLE_FAST_INSTALL # AC_DISABLE_FAST_INSTALL # ----------------------- # set the default to --disable-fast-install AC_DEFUN([AC_DISABLE_FAST_INSTALL], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_ENABLE_FAST_INSTALL(no) ])# AC_DISABLE_FAST_INSTALL # AC_LIBTOOL_PICMODE([MODE]) # -------------------------- # implement the --with-pic flag # MODE is either `yes' or `no'. If omitted, it defaults to `both'. AC_DEFUN([AC_LIBTOOL_PICMODE], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl pic_mode=ifelse($#,1,$1,default) ])# AC_LIBTOOL_PICMODE # AC_PROG_EGREP # ------------- # This is predefined starting with Autoconf 2.54, so this conditional # definition can be removed once we require Autoconf 2.54 or later. m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP], [AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], [if echo a | (grep -E '(a|b)') >/dev/null 2>&1 then ac_cv_prog_egrep='grep -E' else ac_cv_prog_egrep='egrep' fi]) EGREP=$ac_cv_prog_egrep AC_SUBST([EGREP]) ])]) # AC_PATH_TOOL_PREFIX # ------------------- # find a file program which can recognise shared library AC_DEFUN([AC_PATH_TOOL_PREFIX], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="ifelse([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi ])# AC_PATH_TOOL_PREFIX # AC_PATH_MAGIC # ------------- # find a file program which can recognise a shared library AC_DEFUN([AC_PATH_MAGIC], [AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# AC_PATH_MAGIC # AC_PROG_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([AC_PROG_LD], [AC_ARG_WITH([gnu-ld], [AC_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no]) AC_REQUIRE([LT_AC_PROG_SED])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix3*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux*) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu | knetbsd*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; nto-qnx*) lt_cv_deplibs_check_method=unknown ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown ])# AC_DEPLIBS_CHECK_METHOD # AC_PROG_NM # ---------- # find the pathname to a BSD-compatible name lister AC_DEFUN([AC_PROG_NM], [AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi]) NM="$lt_cv_path_NM" ])# AC_PROG_NM # AC_CHECK_LIBM # ------------- # check for math library AC_DEFUN([AC_CHECK_LIBM], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac ])# AC_CHECK_LIBM # AC_LIBLTDL_CONVENIENCE([DIRECTORY]) # ----------------------------------- # sets LIBLTDL to the link flags for the libltdl convenience library and # LTDLINCL to the include flags for the libltdl header and adds # --enable-ltdl-convenience to the configure arguments. Note that # AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, # it is assumed to be `libltdl'. LIBLTDL will be prefixed with # '${top_builddir}/' and LTDLINCL will be prefixed with '${top_srcdir}/' # (note the single quotes!). If your package is not flat and you're not # using automake, define top_builddir and top_srcdir appropriately in # the Makefiles. AC_DEFUN([AC_LIBLTDL_CONVENIENCE], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl case $enable_ltdl_convenience in no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; "") enable_ltdl_convenience=yes ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; esac LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) # For backwards non-gettext consistent compatibility... INCLTDL="$LTDLINCL" ])# AC_LIBLTDL_CONVENIENCE # AC_LIBLTDL_INSTALLABLE([DIRECTORY]) # ----------------------------------- # sets LIBLTDL to the link flags for the libltdl installable library and # LTDLINCL to the include flags for the libltdl header and adds # --enable-ltdl-install to the configure arguments. Note that # AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, # and an installed libltdl is not found, it is assumed to be `libltdl'. # LIBLTDL will be prefixed with '${top_builddir}/'# and LTDLINCL with # '${top_srcdir}/' (note the single quotes!). If your package is not # flat and you're not using automake, define top_builddir and top_srcdir # appropriately in the Makefiles. # In the future, this macro may have to be called after AC_PROG_LIBTOOL. AC_DEFUN([AC_LIBLTDL_INSTALLABLE], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_CHECK_LIB(ltdl, lt_dlinit, [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], [if test x"$enable_ltdl_install" = xno; then AC_MSG_WARN([libltdl not installed, but installation disabled]) else enable_ltdl_install=yes fi ]) if test x"$enable_ltdl_install" = x"yes"; then ac_configure_args="$ac_configure_args --enable-ltdl-install" LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) else ac_configure_args="$ac_configure_args --enable-ltdl-install=no" LIBLTDL="-lltdl" LTDLINCL= fi # For backwards non-gettext consistent compatibility... INCLTDL="$LTDLINCL" ])# AC_LIBLTDL_INSTALLABLE # AC_LIBTOOL_CXX # -------------- # enable support for C++ libraries AC_DEFUN([AC_LIBTOOL_CXX], [AC_REQUIRE([_LT_AC_LANG_CXX]) ])# AC_LIBTOOL_CXX # _LT_AC_LANG_CXX # --------------- AC_DEFUN([_LT_AC_LANG_CXX], [AC_REQUIRE([AC_PROG_CXX]) AC_REQUIRE([_LT_AC_PROG_CXXCPP]) _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) ])# _LT_AC_LANG_CXX # _LT_AC_PROG_CXXCPP # ------------------ AC_DEFUN([_LT_AC_PROG_CXXCPP], [ AC_REQUIRE([AC_PROG_CXX]) if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_PROG_CXXCPP fi ])# _LT_AC_PROG_CXXCPP # AC_LIBTOOL_F77 # -------------- # enable support for Fortran 77 libraries AC_DEFUN([AC_LIBTOOL_F77], [AC_REQUIRE([_LT_AC_LANG_F77]) ])# AC_LIBTOOL_F77 # _LT_AC_LANG_F77 # --------------- AC_DEFUN([_LT_AC_LANG_F77], [AC_REQUIRE([AC_PROG_F77]) _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77]) ])# _LT_AC_LANG_F77 # AC_LIBTOOL_GCJ # -------------- # enable support for GCJ libraries AC_DEFUN([AC_LIBTOOL_GCJ], [AC_REQUIRE([_LT_AC_LANG_GCJ]) ])# AC_LIBTOOL_GCJ # _LT_AC_LANG_GCJ # --------------- AC_DEFUN([_LT_AC_LANG_GCJ], [AC_PROVIDE_IFELSE([AC_PROG_GCJ],[], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[], [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[], [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])], [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])], [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])]) _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ]) ])# _LT_AC_LANG_GCJ # AC_LIBTOOL_RC # ------------- # enable support for Windows resource files AC_DEFUN([AC_LIBTOOL_RC], [AC_REQUIRE([LT_AC_PROG_RC]) _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC]) ])# AC_LIBTOOL_RC # AC_LIBTOOL_LANG_C_CONFIG # ------------------------ # Ensure that the configuration vars for the C compiler are # suitably defined. Those variables are subsequently used by # AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) AC_DEFUN([_LT_AC_LANG_C_CONFIG], [lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_AC_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}\n' _LT_AC_SYS_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) AC_LIBTOOL_PROG_COMPILER_PIC($1) AC_LIBTOOL_PROG_CC_C_O($1) AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) AC_LIBTOOL_PROG_LD_SHLIBS($1) AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) AC_LIBTOOL_SYS_LIB_STRIP AC_LIBTOOL_DLOPEN_SELF # Report which library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) AC_LIBTOOL_CONFIG($1) AC_LANG_POP CC="$lt_save_CC" ])# AC_LIBTOOL_LANG_C_CONFIG # AC_LIBTOOL_LANG_CXX_CONFIG # -------------------------- # Ensure that the configuration vars for the C compiler are # suitably defined. Those variables are subsequently used by # AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)]) AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], [AC_LANG_PUSH(C++) AC_REQUIRE([AC_PROG_CXX]) AC_REQUIRE([_LT_AC_PROG_CXXCPP]) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(allow_undefined_flag, $1)= _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(archive_expsym_cmds, $1)= _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= _LT_AC_TAGVAR(hardcode_minus_L, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_AC_TAGVAR(hardcode_automatic, $1)=no _LT_AC_TAGVAR(module_cmds, $1)= _LT_AC_TAGVAR(module_expsym_cmds, $1)= _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown _LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_AC_TAGVAR(no_undefined_flag, $1)= _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Dependencies to place before and after the object being linked: _LT_AC_TAGVAR(predep_objects, $1)= _LT_AC_TAGVAR(postdep_objects, $1)= _LT_AC_TAGVAR(predeps, $1)= _LT_AC_TAGVAR(postdeps, $1)= _LT_AC_TAGVAR(compiler_lib_search_path, $1)= # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_AC_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_AC_SYS_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC _LT_AC_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) # We don't want -fno-exception wen compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration AC_PROG_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ grep 'no-whole-archive' > /dev/null; then _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_AC_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_AC_TAGVAR(archive_cmds, $1)='' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes if test "$GXX" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 _LT_AC_TAGVAR(hardcode_direct, $1)=yes else # We have old collect2 _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_AC_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty executable. _LT_AC_SYS_LIBPATH_AIX _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. _LT_AC_SYS_LIBPATH_AIX _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_automatic, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes if test "$GXX" = yes ; then lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' fi _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds if test "X$lt_int_apple_cc_single_mod" = Xyes ; then _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd[[12]]*) # C++ shared libraries reported to be fairly broken before switch to ELF _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | kfreebsd*-gnu | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_AC_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; hpux9*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[[-]]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' ;; *) _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix3*) _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' fi fi _LT_AC_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ;; linux*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc*) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC*) # Portland Group C++ compiler _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd* | netbsdelf*-gnu | knetbsd*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; openbsd2*) # C++ shared libraries are fairly broken _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd='echo' ;; osf3*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; cxx*) _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; cxx*) _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ $rm $lib.exp' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_AC_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The C++ compiler is used as linker so we must use $wl # flag to pass the commands to the underlying system # linker. We must also pass each convience library through # to the system linker between allextract/defaultextract. # The C++ compiler will combine linker options so we # cannot just pass the convience library names through # without $wl. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac _LT_AC_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | grep -v '^2\.7' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. # So that behaviour is only enabled if SCOABSPATH is set to a # non-empty value in the environment. Most likely only useful for # creating official distributions of packages. # This is a hack until libtool officially supports absolute path # names for shared libraries. _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_AC_TAGVAR(GCC, $1)="$GXX" _LT_AC_TAGVAR(LD, $1)="$LD" AC_LIBTOOL_POSTDEP_PREDEP($1) AC_LIBTOOL_PROG_COMPILER_PIC($1) AC_LIBTOOL_PROG_CC_C_O($1) AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) AC_LIBTOOL_PROG_LD_SHLIBS($1) AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) AC_LIBTOOL_CONFIG($1) AC_LANG_POP CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ldcxx=$with_gnu_ld with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld ])# AC_LIBTOOL_LANG_CXX_CONFIG # AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME]) # ------------------------------------ # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[ dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... ifelse([$1],[],[cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <> "$cfgfile" ifelse([$1], [], [#! $SHELL # `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # # This file is part of GNU Libtool: # Originally by Gordon Matzigkeit , 1996 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="$SED -e 1s/^X//" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # The names of the tagged configurations supported by this script. available_tags= # ### BEGIN LIBTOOL CONFIG], [# ### BEGIN LIBTOOL TAG CONFIG: $tagname]) # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1) # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) # Is the compiler the GNU C compiler? with_gcc=$_LT_AC_TAGVAR(GCC, $1) # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_[]_LT_AC_TAGVAR(LD, $1) # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1) # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1) # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1) # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1) # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1) old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1) # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) # Commands used to build and install a shared archive. archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1) archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1) postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1) module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1) # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1) # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1) # Flag that forces no undefined symbols. no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1) # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1) # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1) # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1) # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1) # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1) # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1) # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)" # Set to yes if exported symbols are required. always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1) # The commands to list exported symbols. export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1) # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1) # Symbols that must always be exported. include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1) ifelse([$1],[], [# ### END LIBTOOL CONFIG], [# ### END LIBTOOL TAG CONFIG: $tagname]) __EOF__ ifelse([$1],[], [ case $host_os in aix3*) cat <<\EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi EOF ;; esac # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || \ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ]) else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ])# AC_LIBTOOL_CONFIG # AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------------------- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi ])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE # --------------------------------- AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_PROG_NM]) AC_REQUIRE([AC_OBJEXT]) # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Transform an extracted symbol line into a proper C declaration lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32*) symcode='[[ABCDGISTW]]' ;; hpux*) # Its linker distinguishes data from code symbols if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; linux*) if test "$host_cpu" = ia64; then symcode='[[ABCDGIRSTW]]' lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Try without a prefix undercore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext < $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if grep ' nm_test_var$' "$nlist" >/dev/null; then if grep ' nm_test_func$' "$nlist" >/dev/null; then cat < conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' cat <> conftest.$ac_ext #if defined (__STDC__) && __STDC__ # define lt_ptr_t void * #else # define lt_ptr_t char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr_t address; } lt_preloaded_symbols[[]] = { EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext cat <<\EOF >> conftest.$ac_ext {0, (lt_ptr_t) 0} }; #ifdef __cplusplus } #endif EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -f conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi ]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE # AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME]) # --------------------------------------- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC], [_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)= _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= _LT_AC_TAGVAR(lt_prog_compiler_static, $1)= AC_MSG_CHECKING([for $compiler option to produce PIC]) ifelse([$1],[CXX],[ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | os2* | pw32*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix4* | aix5*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; esac ;; dgux*) case $cc_basename in ec++*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | kfreebsd*-gnu | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux*) case $cc_basename in KCC*) # KAI C++ Compiler _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; icpc* | ecpc*) # Intel C++ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC*) # Portland Group C++ compiler. _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu | knetbsd*-gnu) ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; vxworks*) ;; *) _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; newsos6) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)]) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works], _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1), [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])" ;; esac # # Check to make sure the static flag actually works. # wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\" AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) ]) # AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) # ------------------------------------ # See if the linker supports building shared libraries. AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) ifelse([$1],[CXX],[ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix4* | aix5*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' else _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw*) _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([[^ ]]*\) [[^ ]]*/\1 DATA/;/^I /d;/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' ;; kfreebsd*-gnu) _LT_AC_TAGVAR(link_all_deplibs, $1)=no ;; linux*) _LT_AC_TAGVAR(link_all_deplibs, $1)=no ;; *) _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ],[ runpath_var= _LT_AC_TAGVAR(allow_undefined_flag, $1)= _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_AC_TAGVAR(archive_cmds, $1)= _LT_AC_TAGVAR(archive_expsym_cmds, $1)= _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)= _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= _LT_AC_TAGVAR(thread_safe_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_minus_L, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown _LT_AC_TAGVAR(hardcode_automatic, $1)=no _LT_AC_TAGVAR(module_cmds, $1)= _LT_AC_TAGVAR(module_expsym_cmds, $1)= _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_AC_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. _LT_CC_BASENAME([$compiler]) case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac _LT_AC_TAGVAR(ld_shlibs, $1)=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_AC_TAGVAR(ld_shlibs, $1)=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; interix3*) _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi _LT_AC_TAGVAR(link_all_deplibs, $1)=no else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd* | netbsdelf*-gnu | knetbsd*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then _LT_AC_TAGVAR(ld_shlibs, $1)=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_AC_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_AC_TAGVAR(always_export_symbols, $1)=yes _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' else _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_AC_TAGVAR(archive_cmds, $1)='' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes if test "$GCC" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 _LT_AC_TAGVAR(hardcode_direct, $1)=yes else # We have old collect2 _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_AC_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty executable. _LT_AC_SYS_LIBPATH_AIX _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. _LT_AC_SYS_LIBPATH_AIX _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # see comment about different semantics on the GNU ld section _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; bsdi[[45]]*) _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs' _LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_automatic, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac fi ;; dgux*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; freebsd1*) _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # GNU/kFreeBSD uses gcc -shared to do shared libraries. kfreebsd*-gnu) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(link_all_deplibs, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd* | netbsdelf*-gnu | knetbsd*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; openbsd*) _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi ;; os2*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' if test "$GCC" = yes; then wlarc='${wl}' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; *) _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac _LT_AC_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_AC_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_AC_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7*) _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac fi ]) AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_AC_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_MSG_CHECKING([whether -lc should be explicitly linked in]) $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1) _LT_AC_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) then _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no else _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)]) ;; esac fi ;; esac ])# AC_LIBTOOL_PROG_LD_SHLIBS # _LT_AC_FILE_LTDLL_C # ------------------- # Be careful that the start marker always follows a newline. AC_DEFUN([_LT_AC_FILE_LTDLL_C], [ # /* ltdll.c starts here */ # #define WIN32_LEAN_AND_MEAN # #include # #undef WIN32_LEAN_AND_MEAN # #include # # #ifndef __CYGWIN__ # # ifdef __CYGWIN32__ # # define __CYGWIN__ __CYGWIN32__ # # endif # #endif # # #ifdef __cplusplus # extern "C" { # #endif # BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); # #ifdef __cplusplus # } # #endif # # #ifdef __CYGWIN__ # #include # DECLARE_CYGWIN_DLL( DllMain ); # #endif # HINSTANCE __hDllInstance_base; # # BOOL APIENTRY # DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) # { # __hDllInstance_base = hInst; # return TRUE; # } # /* ltdll.c ends here */ ])# _LT_AC_FILE_LTDLL_C # _LT_AC_TAGVAR(VARNAME, [TAGNAME]) # --------------------------------- AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])]) # old names AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) # This is just to silence aclocal about the macro not being used ifelse([AC_DISABLE_FAST_INSTALL]) AC_DEFUN([LT_AC_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj, no) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS) ]) AC_DEFUN([LT_AC_PROG_RC], [AC_CHECK_TOOL(RC, windres, no) ]) # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # # LT_AC_PROG_SED # -------------- # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. AC_DEFUN([LT_AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_MSG_RESULT([$SED]) ]) # Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"]) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION so it can be traced. # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.9.6])]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 7 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE]) AC_SUBST([$1_FALSE]) if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 8 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH]) ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 3 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 12 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.58])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AM_PROG_INSTALL_SH AM_PROG_INSTALL_STRIP AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl ]) ]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $1 | $1:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl install_sh=${install_sh-"$am_aux_dir/install-sh"} AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 3 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise. # # Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories # created by `make install' are always world readable, even if the # installer happens to have an overly restrictive umask (e.g. 077). # This was a mistake. There are at least two reasons why we must not # use `-m 0755': # - it causes special bits like SGID to be ignored, # - it may be too restrictive (some setups expect 775 directories). # # Do not use -m 0755 and let people choose whatever they expect by # setting umask. # # We cannot accept any implementation of `mkdir' that recognizes `-p'. # Some implementations (such as Solaris 8's) are not thread-safe: if a # parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c' # concurrently, both version can detect that a/ is missing, but only # one can create it and the other will error out. Consequently we # restrict ourselves to GNU make (using the --version option ensures # this.) AC_DEFUN([AM_PROG_MKDIR_P], [if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then # We used to keeping the `.' as first argument, in order to # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) # where $(somedir) is conditionally defined. However this is wrong # for two reasons: # 1. if the package is installed by a user who cannot write `.' # make install will fail, # 2. the above comment should most certainly read # $(mkdir_p) $(DESTDIR)$(somedir) # so it does not work when $(somedir) is undefined and # $(DESTDIR) is not. # To support the latter case, we have to write # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), # so the `.' trick is pointless. mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. for d in ./-p ./--version; do test -d $d && rmdir $d done # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. if test -f "$ac_aux_dir/mkinstalldirs"; then mkdir_p='$(mkinstalldirs)' else mkdir_p='$(install_sh) -d' fi fi AC_SUBST([mkdir_p])]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 3 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([find_apr.m4]) m4_include([find_apu.m4]) apache-log4cxx-0.10.0/Makefile.in100644 0 0 52732 10774264500 13631 0ustar 0 0 # Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/liblog4cxx.pc.in \ $(top_srcdir)/configure INSTALL config.guess config.sub \ depcomp install-sh ltmain.sh missing subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/find_apr.m4 \ $(top_srcdir)/find_apu.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno configure.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = liblog4cxx.pc SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(pkgconfigdir)" pkgconfigDATA_INSTALL = $(INSTALL_DATA) DATA = $(pkgconfig_DATA) ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ APR_LIBS = @APR_LIBS@ APU_LIBS = @APU_LIBS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFSTRING_API = @CFSTRING_API@ CHARSET_EBCDIC = @CHARSET_EBCDIC@ CHARSET_ISO88591 = @CHARSET_ISO88591@ CHARSET_USASCII = @CHARSET_USASCII@ CHARSET_UTF8 = @CHARSET_UTF8@ CHAR_API = @CHAR_API@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_ODBC = @CPPFLAGS_ODBC@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOC_FALSE = @DOC_FALSE@ DOC_TRUE = @DOC_TRUE@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAS_FWIDE = @HAS_FWIDE@ HAS_LIBESMTP = @HAS_LIBESMTP@ HAS_MBSRTOWCS = @HAS_MBSRTOWCS@ HAS_ODBC = @HAS_ODBC@ HAS_STD_LOCALE = @HAS_STD_LOCALE@ HAS_SYSLOG = @HAS_SYSLOG@ HAS_WCHAR_T = @HAS_WCHAR_T@ HAS_WCSTOMBS = @HAS_WCSTOMBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IODBC_CONFIG = @IODBC_CONFIG@ LATEX_DOC_FALSE = @LATEX_DOC_FALSE@ LATEX_DOC_TRUE = @LATEX_DOC_TRUE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBS_ODBC = @LIBS_ODBC@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LOGCHAR_IS_UNICHAR = @LOGCHAR_IS_UNICHAR@ LOGCHAR_IS_UTF8 = @LOGCHAR_IS_UTF8@ LOGCHAR_IS_WCHAR = @LOGCHAR_IS_WCHAR@ LTLIBOBJS = @LTLIBOBJS@ LT_VERSION = @LT_VERSION@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UNICHAR_API = @UNICHAR_API@ VERSION = @VERSION@ WCHAR_T_API = @WCHAR_T_API@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ base_dir = @base_dir@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ enable_dot = @enable_dot@ enable_html_docs = @enable_html_docs@ enable_latex_docs = @enable_latex_docs@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ manual_dest = @manual_dest@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ AUTOMAKE_OPTIONS = foreign SUBDIRS = src EXTRA_DIST = autogen.sh aclocal.m4 find_apr.m4 find_apu.m4 build.xml pom.xml NOTICE LICENSE INSTALL pom.xml KEYS pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = liblog4cxx.pc all: all-recursive .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ cd $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) liblog4cxx.pc: $(top_builddir)/config.status $(srcdir)/liblog4cxx.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-pkgconfigDATA: $(pkgconfig_DATA) @$(NORMAL_INSTALL) test -z "$(pkgconfigdir)" || $(mkdir_p) "$(DESTDIR)$(pkgconfigdir)" @list='$(pkgconfig_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(pkgconfigDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfigdir)/$$f'"; \ $(pkgconfigDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfigdir)/$$f"; \ done uninstall-pkgconfigDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfig_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pkgconfigdir)/$$f'"; \ rm -f "$(DESTDIR)$(pkgconfigdir)/$$f"; \ done # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) mkdir $(distdir) $(mkdir_p) $(distdir)/. $(distdir)/src/main/include/log4cxx $(distdir)/src/main/include/log4cxx/private $(distdir)/src/site/doxy @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && cd $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(pkgconfigdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-pkgconfigDATA install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-info-am uninstall-pkgconfigDATA uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \ check-am clean clean-generic clean-libtool clean-recursive \ ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ dist-shar dist-tarZ dist-zip distcheck distclean \ distclean-generic distclean-libtool distclean-recursive \ distclean-tags distcleancheck distdir distuninstallcheck dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-exec install-exec-am \ install-info install-info-am install-man install-pkgconfigDATA \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-generic \ mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am uninstall-info-am \ uninstall-pkgconfigDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: apache-log4cxx-0.10.0/projects/log4cxx.dsp100644 0 0 105333 10774263472 15540 0ustar 0 0 # Microsoft Developer Studio Project File - Name="log4cxx" - Package Owner=<4> # Microsoft Developer Studio Generated Build File, Format Version 6.00 # ** DO NOT EDIT ** # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 CFG=log4cxx - Win32 Debug !MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE use the Export Makefile command and run !MESSAGE !MESSAGE NMAKE /f "log4cxx.mak". !MESSAGE !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE !MESSAGE NMAKE /f "log4cxx.mak" CFG="log4cxx - Win32 Debug" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE !MESSAGE "log4cxx - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") !MESSAGE "log4cxx - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") !MESSAGE # Begin Project # PROP AllowPerConfigDependencies 0 # PROP Scc_ProjName "" # PROP Scc_LocalPath "" CPP=cl.exe MTL=midl.exe RSC=rc.exe !IF "$(CFG)" == "log4cxx - Win32 Release" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 # PROP BASE Output_Dir "Release" # PROP BASE Intermediate_Dir "Release" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 # PROP Output_Dir "Release" # PROP Intermediate_Dir "Release" # PROP Target_Dir "" # ADD BASE CPP /c /nologo /EHsc /O2 /D "NDEBUG" /MD /D "_USRDLL" /D "DLL_EXPORTS" /D "LOG4CXX" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /D "WIN32" # ADD CPP /I "..\src\main\include" /I "..\..\apr\include" /I "..\..\apr-util\include" /c /nologo /EHsc /O2 /D "NDEBUG" /MD /D "_USRDLL" /D "DLL_EXPORTS" /D "LOG4CXX" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /D "WIN32" # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 # ADD BASE RSC /l 0x409 /d "NDEBUG" # ADD RSC /l 0x409 /d "NDEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 /NOLOGO /DLL /SUBSYSTEM:CONSOLE /INCREMENTAL:NO # ADD LINK32 ADVAPI32.LIB WS2_32.LIB MSWSOCK.LIB SHELL32.LIB ODBC32.LIB /NOLOGO /DLL /SUBSYSTEM:CONSOLE /INCREMENTAL:NO !ELSEIF "$(CFG)" == "log4cxx - Win32 Debug" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 1 # PROP BASE Output_Dir "Debug" # PROP BASE Intermediate_Dir "Debug" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 # PROP Output_Dir "Debug" # PROP Intermediate_Dir "Debug" # PROP Target_Dir "" # ADD BASE CPP /c /nologo /EHsc /Zi /Od /GZ /D "_DEBUG" /MDd /D "_USRDLL" /D "DLL_EXPORTS" /D "LOG4CXX" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /D "WIN32" # ADD CPP /I "..\src\main\include" /I "..\..\apr\include" /I "..\..\apr-util\include" /c /nologo /EHsc /Zi /Od /GZ /D "_DEBUG" /MDd /D "_USRDLL" /D "DLL_EXPORTS" /D "LOG4CXX" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /D "WIN32" # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 # ADD BASE RSC /l 0x409 /d "_DEBUG" # ADD RSC /l 0x409 /d "_DEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 /NOLOGO /DEBUG /DLL /SUBSYSTEM:CONSOLE /INCREMENTAL:NO # ADD LINK32 ADVAPI32.LIB WS2_32.LIB MSWSOCK.LIB SHELL32.LIB ODBC32.LIB /NOLOGO /DEBUG /DLL /SUBSYSTEM:CONSOLE /INCREMENTAL:NO !ENDIF # Begin Target # Name "log4cxx - Win32 Release" # Name "log4cxx - Win32 Debug" # Begin Group "Source Files" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # Begin Source File SOURCE=..\src\main\cpp\action.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\appenderattachableimpl.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\appenderskeleton.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\aprinitializer.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\asyncappender.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\basicconfigurator.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\bufferedwriter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\bytearrayinputstream.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\bytearrayoutputstream.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\bytebuffer.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\cacheddateformat.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\charsetdecoder.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\charsetencoder.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\class.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\classnamepatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\classregistration.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\condition.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\configurator.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\consoleappender.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\cyclicbuffer.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\dailyrollingfileappender.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\datagrampacket.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\datagramsocket.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\date.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\dateformat.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\datelayout.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\datepatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\defaultconfigurator.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\defaultloggerfactory.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\defaultrepositoryselector.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\domconfigurator.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\exception.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\fallbackerrorhandler.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\file.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\fileappender.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\filedatepatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\fileinputstream.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\filelocationpatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\fileoutputstream.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\filerenameaction.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\filewatchdog.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\filter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\filterbasedtriggeringpolicy.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\fixedwindowrollingpolicy.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\formattinginfo.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\fulllocationpatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\gzcompressaction.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\hierarchy.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\htmllayout.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\inetaddress.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\inputstream.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\inputstreamreader.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\integer.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\integerpatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\layout.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\level.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\levelmatchfilter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\levelpatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\levelrangefilter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\linelocationpatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\lineseparatorpatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\literalpatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\loader.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\locale.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\locationinfo.cpp # End Source File # Begin Source File SOURCE=..\src\main\resources\log4cxx.rc # End Source File # Begin Source File SOURCE=..\src\main\cpp\logger.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\loggerpatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\loggingevent.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\loggingeventpatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\loglog.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\logmanager.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\logstream.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\manualtriggeringpolicy.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\mdc.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\messagebuffer.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\messagepatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\methodlocationpatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\mutex.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\nameabbreviator.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\namepatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\ndc.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\ndcpatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\nteventlogappender.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\objectimpl.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\objectoutputstream.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\objectptr.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\obsoleterollingfileappender.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\odbcappender.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\onlyonceerrorhandler.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\optionconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\outputdebugstringappender.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\outputstream.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\outputstreamwriter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\patternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\patternlayout.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\patternparser.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\pool.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\properties.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\propertiespatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\propertyconfigurator.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\propertyresourcebundle.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\propertysetter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\reader.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\relativetimedateformat.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\relativetimepatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\resourcebundle.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\rollingfileappender.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\rollingpolicy.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\rollingpolicybase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\rolloverdescription.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\rootlogger.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\serversocket.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\simpledateformat.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\simplelayout.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\sizebasedtriggeringpolicy.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\smtpappender.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\socket.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\socketappender.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\socketappenderskeleton.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\sockethubappender.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\socketoutputstream.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\strftimedateformat.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\stringhelper.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\stringmatchfilter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\stringtokenizer.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\synchronized.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\syslogappender.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\syslogwriter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\system.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\systemerrwriter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\systemoutwriter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\telnetappender.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\threadcxx.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\threadlocal.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\threadpatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\threadspecificdata.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\throwableinformationpatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\timebasedrollingpolicy.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\timezone.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\transcoder.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\transform.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\triggeringpolicy.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\ttcclayout.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\writer.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\writerappender.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\xmllayout.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\xmlsocketappender.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\zipcompressaction.cpp # End Source File # End Group # Begin Group "Header Files" # PROP Default_Filter "h;hpp;hxx;hm;inl" # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\absolutetimedateformat.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rolling\action.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\filter\andfilter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\appender.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\spi\appenderattachable.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\appenderattachableimpl.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\appenderskeleton.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\aprinitializer.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\asyncappender.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\basicconfigurator.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\bufferedoutputstream.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\bufferedwriter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\bytearrayinputstream.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\bytearrayoutputstream.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\bytebuffer.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\cacheddateformat.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\charsetdecoder.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\charsetencoder.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\class.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\classnamepatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\classregistration.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\condition.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\spi\configurator.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\consoleappender.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\cyclicbuffer.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\dailyrollingfileappender.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\datagrampacket.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\datagramsocket.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\date.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\dateformat.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\datelayout.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\datepatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\datetimedateformat.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\defaultconfigurator.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\defaultloggerfactory.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\spi\defaultrepositoryselector.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\filter\denyallfilter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\xml\domconfigurator.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\spi\errorhandler.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\exception.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\filter\expressionfilter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\varia\fallbackerrorhandler.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\file.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\fileappender.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\filedatepatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\fileinputstream.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\filelocationpatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\fileoutputstream.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rolling\filerenameaction.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\filewatchdog.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\spi\filter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rolling\filterbasedtriggeringpolicy.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rolling\fixedwindowrollingpolicy.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\formattinginfo.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\fulllocationpatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rolling\gzcompressaction.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\hierarchy.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\spi\hierarchyeventlistener.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\htmllayout.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\inetaddress.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\inputstream.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\inputstreamreader.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\integer.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\integerpatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\iso8601dateformat.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\layout.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\level.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\filter\levelmatchfilter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\levelpatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\filter\levelrangefilter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\linelocationpatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\lineseparatorpatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\literalpatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\loader.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\locale.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\spi\location\locationinfo.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\filter\locationinfofilter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\log4cxx.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\private\log4cxx_private.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\logger.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\spi\loggerfactory.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\loggerpatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\spi\loggerrepository.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\spi\loggingevent.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\loggingeventpatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\loglog.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\logmanager.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\logstring.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rolling\manualtriggeringpolicy.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\filter\mapfilter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\mdc.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\messagebuffer.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\messagepatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\methodlocationpatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\mutex.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\nameabbreviator.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\namepatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\ndc.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\ndcpatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\nt\nteventlogappender.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\object.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\objectimpl.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\objectoutputstream.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\objectptr.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\db\odbcappender.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\onlyonceerrorhandler.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\optionconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\spi\optionhandler.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\nt\outputdebugstringappender.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\outputstream.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\outputstreamwriter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\patternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\patternlayout.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\patternparser.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\pool.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\portability.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\properties.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\propertiespatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\propertyconfigurator.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\filter\propertyfilter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\propertyresourcebundle.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\config\propertysetter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\provisionnode.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\reader.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\relativetimedateformat.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\relativetimepatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\spi\repositoryselector.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\resourcebundle.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rolling\rollingfileappender.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rollingfileappender.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rolling\rollingfileappenderskeleton.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rolling\rollingpolicy.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rolling\rollingpolicybase.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rolling\rolloverdescription.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\spi\rootlogger.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\serversocket.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\simpledateformat.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\simplelayout.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rolling\sizebasedtriggeringpolicy.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\net\smtpappender.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\socket.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\net\socketappender.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\net\socketappenderskeleton.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\net\sockethubappender.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\socketoutputstream.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\stream.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\strftimedateformat.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\strictmath.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\stringhelper.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\filter\stringmatchfilter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\stringtokenizer.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\synchronized.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\net\syslogappender.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\syslogwriter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\system.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\systemerrwriter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\systemoutwriter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\tchar.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\net\telnetappender.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\thread.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\threadlocal.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\threadpatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\threadspecificdata.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\throwableinformationpatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rolling\timebasedrollingpolicy.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\timezone.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\transcoder.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\transform.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\spi\triggeringeventevaluator.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rolling\triggeringpolicy.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\ttcclayout.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\writer.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\writerappender.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\xml.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\xml\xmllayout.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\net\xmlsocketappender.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rolling\zipcompressaction.h # End Source File # End Group # Begin Group "Resource Files" # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" # End Group # End Target # End Project apache-log4cxx-0.10.0/projects/log4cxx.dsw100644 0 0 4477 10774263472 15516 0ustar 0 0 Microsoft Developer Studio Workspace File, Format Version 6.00 # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. ############################################################################### Project: "apr"="..\..\apr\apr.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ }}} ############################################################################### Project: "xml"="..\..\apr-util\xml\expat\lib\xml.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ }}} ############################################################################### Project: "aprutil"="..\..\apr-util\aprutil.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ Begin Project Dependency Project_Dep_Name apr End Project Dependency Begin Project Dependency Project_Dep_Name xml End Project Dependency }}} ############################################################################### Project: "log4cxx"=".\log4cxx.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ Begin Project Dependency Project_Dep_Name apr End Project Dependency Begin Project Dependency Project_Dep_Name xml End Project Dependency Begin Project Dependency Project_Dep_Name aprutil End Project Dependency }}} ############################################################################### Global: Package=<5> {{{ }}} Package=<3> {{{ }}} ############################################################################### apache-log4cxx-0.10.0/projects/testsuite.dsp100644 0 0 36574 10774263472 16173 0ustar 0 0 # Microsoft Developer Studio Project File - Name="testsuite" - Package Owner=<4> # Microsoft Developer Studio Generated Build File, Format Version 6.00 # ** DO NOT EDIT ** # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # TARGTYPE "Win32 (x86) Console Application" 0x0103 CFG=testsuite - Win32 Debug !MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE use the Export Makefile command and run !MESSAGE !MESSAGE NMAKE /f "testsuite.mak". !MESSAGE !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE !MESSAGE NMAKE /f "testsuite.mak" CFG="testsuite - Win32 Debug" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE !MESSAGE "testsuite - Win32 Release" (based on "Win32 (x86) Console Application") !MESSAGE "testsuite - Win32 Debug" (based on "Win32 (x86) Console Application") !MESSAGE # Begin Project # PROP AllowPerConfigDependencies 0 # PROP Scc_ProjName "" # PROP Scc_LocalPath "" CPP=cl.exe MTL=midl.exe RSC=rc.exe !IF "$(CFG)" == "testsuite - Win32 Release" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 # PROP BASE Output_Dir "Release" # PROP BASE Intermediate_Dir "Release" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 # PROP Output_Dir "Release" # PROP Intermediate_Dir "Release" # PROP Target_Dir "" # ADD BASE CPP /c /nologo /EHsc /O2 /D "NDEBUG" /MD /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /D "WIN32" # ADD CPP /I "..\src\main\include" /I "..\..\apr\include" /I "..\..\apr-util\include" /c /nologo /EHsc /O2 /D "NDEBUG" /MD /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /D "WIN32" # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 # ADD BASE RSC /l 0x409 /d "NDEBUG" # ADD RSC /l 0x409 /d "NDEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 /NOLOGO /SUBSYSTEM:CONSOLE /INCREMENTAL:NO # ADD LINK32 ADVAPI32.LIB WS2_32.LIB MSWSOCK.LIB SHELL32.LIB ODBC32.LIB /NOLOGO /SUBSYSTEM:CONSOLE /INCREMENTAL:NO !ELSEIF "$(CFG)" == "testsuite - Win32 Debug" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 1 # PROP BASE Output_Dir "Debug" # PROP BASE Intermediate_Dir "Debug" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 # PROP Output_Dir "Debug" # PROP Intermediate_Dir "Debug" # PROP Target_Dir "" # ADD BASE CPP /c /nologo /EHsc /Zi /Od /GZ /D "_DEBUG" /MDd /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /D "WIN32" # ADD CPP /I "..\src\main\include" /I "..\..\apr\include" /I "..\..\apr-util\include" /c /nologo /EHsc /Zi /Od /GZ /D "_DEBUG" /MDd /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /D "WIN32" # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 # ADD BASE RSC /l 0x409 /d "_DEBUG" # ADD RSC /l 0x409 /d "_DEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 /NOLOGO /DEBUG /SUBSYSTEM:CONSOLE /INCREMENTAL:NO # ADD LINK32 ADVAPI32.LIB WS2_32.LIB MSWSOCK.LIB SHELL32.LIB ODBC32.LIB /NOLOGO /DEBUG /SUBSYSTEM:CONSOLE /INCREMENTAL:NO !ENDIF # Begin Target # Name "testsuite - Win32 Release" # Name "testsuite - Win32 Debug" # Begin Group "Source Files" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # Begin Source File SOURCE=..\src\test\cpp\util\absolutedateandtimefilter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\absolutetimedateformattestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\absolutetimefilter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\abts.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\appenderskeletontestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\asyncappendertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\binarycompare.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\cacheddateformattestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\charsetdecodertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\charsetencodertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\compare.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\consoleappendertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\controlfilter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\xml\customleveltestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\cyclicbuffertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\datetimedateformattestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\xml\domtestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\encodingtest.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\varia\errorhandlertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\fileappendertest.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\fileappendertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\filenamefilter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\rolling\filenamepatterntestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\filetestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\rolling\filterbasedrollingtest.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\hierarchytest.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\hierarchythresholdtestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\inetaddresstestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\iso8601dateformattestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\iso8601filter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\l7dtestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\varia\levelmatchfiltertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\varia\levelrangefiltertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\leveltestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\linenumberfilter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\localechanger.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\loggertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\spi\loggingeventtest.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\logunit.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\rolling\manualrollingtest.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\messagebuffertest.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\minimumtestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\ndctestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\nt\nteventlogappendertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\pattern\num343patternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\rolling\obsoletedailyrollingfileappendertest.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\rolling\obsoleterollingfileappendertest.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\db\odbcappendertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\optionconvertertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\patternlayouttest.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\pattern\patternparsertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\propertiestestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\propertyconfiguratortest.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\relativetimedateformattestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\relativetimefilter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\rollingfileappendertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\serializationtesthelper.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\rolling\sizebasedrollingtest.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\net\smtpappendertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\net\socketappendertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\net\sockethubappendertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\net\socketservertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\streamtestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\stringhelpertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\stringtokenizertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\net\syslogappendertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\syslogwritertest.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\net\telnetappendertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\defaultinit\testcase1.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\defaultinit\testcase2.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\defaultinit\testcase3.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\defaultinit\testcase4.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\threadfilter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\rolling\timebasedrollingtest.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\timezonetestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\transcodertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\transformer.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\utilfilter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\vectorappender.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\writerappendertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\xml\xlevel.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\customlogger\xlogger.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\customlogger\xloggertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\xmlfilenamefilter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\xml\xmllayouttest.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\xml\xmllayouttestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\xmllineattributefilter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\net\xmlsocketappendertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\xmlthreadfilter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\xmltimestampfilter.cpp # End Source File # End Group # Begin Group "Header Files" # PROP Default_Filter "h;hpp;hxx;hm;inl" # Begin Source File SOURCE=..\src\test\cpp\util\absolutedateandtimefilter.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\absolutetimefilter.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\abts.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\abts_tests.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\appenderskeletontestcase.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\binarycompare.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\compare.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\controlfilter.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\fileappendertestcase.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\filenamefilter.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\filter.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\insertwide.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\iso8601filter.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\linenumberfilter.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\localechanger.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\logunit.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\pattern\num343patternconverter.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\relativetimefilter.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\serializationtesthelper.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\net\socketservertestcase.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\testchar.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\testutil.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\threadfilter.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\transformer.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\vectorappender.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\writerappendertestcase.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\xml\xlevel.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\customlogger\xlogger.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\xmlfilenamefilter.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\xmllineattributefilter.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\xmlthreadfilter.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\xmltimestampfilter.h # End Source File # End Group # Begin Group "Resource Files" # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" # End Group # End Target # End Project apache-log4cxx-0.10.0/projects/testsuite.dsw100644 0 0 5537 10774263472 16155 0ustar 0 0 Microsoft Developer Studio Workspace File, Format Version 6.00 # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. ############################################################################### Project: "apr"="..\..\apr\apr.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ }}} ############################################################################### Project: "xml"="..\..\apr-util\xml\expat\lib\xml.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ }}} ############################################################################### Project: "aprutil"="..\..\apr-util\aprutil.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ Begin Project Dependency Project_Dep_Name apr End Project Dependency Begin Project Dependency Project_Dep_Name xml End Project Dependency }}} ############################################################################### Project: "log4cxx"=".\log4cxx.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ Begin Project Dependency Project_Dep_Name apr End Project Dependency Begin Project Dependency Project_Dep_Name aprutil End Project Dependency Begin Project Dependency Project_Dep_Name libesmtp End Project Dependency }}} ############################################################################### Project: "testsuite"=".\testsuite.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ Begin Project Dependency Project_Dep_Name apr End Project Dependency Begin Project Dependency Project_Dep_Name xml End Project Dependency Begin Project Dependency Project_Dep_Name aprutil End Project Dependency Begin Project Dependency Project_Dep_Name log4cxx End Project Dependency }}} ############################################################################### Global: Package=<5> {{{ }}} Package=<3> {{{ }}} ############################################################################### apache-log4cxx-0.10.0/projects/testsuite-standalone.dsp100644 0 0 133247 10774263472 20334 0ustar 0 0 # Microsoft Developer Studio Project File - Name="testsuite_standalone" - Package Owner=<4> # Microsoft Developer Studio Generated Build File, Format Version 6.00 # ** DO NOT EDIT ** # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # TARGTYPE "Win32 (x86) Console Application" 0x0103 CFG=testsuite_standalone - Win32 Debug !MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE use the Export Makefile command and run !MESSAGE !MESSAGE NMAKE /f "testsuite_standalone.mak". !MESSAGE !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE !MESSAGE NMAKE /f "testsuite_standalone.mak" CFG="testsuite_standalone - Win32 Debug" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE !MESSAGE "testsuite_standalone - Win32 Release" (based on "Win32 (x86) Console Application") !MESSAGE "testsuite_standalone - Win32 Debug" (based on "Win32 (x86) Console Application") !MESSAGE # Begin Project # PROP AllowPerConfigDependencies 0 # PROP Scc_ProjName "" # PROP Scc_LocalPath "" CPP=cl.exe MTL=midl.exe RSC=rc.exe !IF "$(CFG)" == "testsuite_standalone - Win32 Release" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 # PROP BASE Output_Dir "Release" # PROP BASE Intermediate_Dir "Release" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 # PROP Output_Dir "Release" # PROP Intermediate_Dir "Release" # PROP Target_Dir "" # ADD BASE CPP /c /nologo /EHsc /O2 /D "NDEBUG" /MD /D "LOG4CXX" /D "WIN32" /D "LOG4CXX" # ADD CPP /I "..\src\main\include" /I "..\..\apr\include" /I "..\..\apr-util\include" /I "..\src\main\include" /I "..\..\apr\include" /c /nologo /EHsc /O2 /D "NDEBUG" /MD /D "LOG4CXX" /D "WIN32" /D "LOG4CXX" # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 # ADD BASE RSC /l 0x409 /d "NDEBUG" # ADD RSC /l 0x409 /d "NDEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 /NOLOGO /SUBSYSTEM:CONSOLE /INCREMENTAL:NO # ADD LINK32 ADVAPI32.LIB WS2_32.LIB MSWSOCK.LIB SHELL32.LIB ODBC32.LIB /NOLOGO /SUBSYSTEM:CONSOLE /INCREMENTAL:NO !ELSEIF "$(CFG)" == "testsuite_standalone - Win32 Debug" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 1 # PROP BASE Output_Dir "Debug" # PROP BASE Intermediate_Dir "Debug" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 # PROP Output_Dir "Debug" # PROP Intermediate_Dir "Debug" # PROP Target_Dir "" # ADD BASE CPP /c /nologo /EHsc /Zi /Od /GZ /D "_DEBUG" /MDd /D "LOG4CXX" /D "WIN32" /D "LOG4CXX" # ADD CPP /I "..\src\main\include" /I "..\..\apr\include" /I "..\..\apr-util\include" /I "..\src\main\include" /I "..\..\apr\include" /c /nologo /EHsc /Zi /Od /GZ /D "_DEBUG" /MDd /D "LOG4CXX" /D "WIN32" /D "LOG4CXX" # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 # ADD BASE RSC /l 0x409 /d "_DEBUG" # ADD RSC /l 0x409 /d "_DEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 /NOLOGO /DEBUG /SUBSYSTEM:CONSOLE /INCREMENTAL:NO # ADD LINK32 ADVAPI32.LIB WS2_32.LIB MSWSOCK.LIB SHELL32.LIB ODBC32.LIB /NOLOGO /DEBUG /SUBSYSTEM:CONSOLE /INCREMENTAL:NO !ENDIF # Begin Target # Name "testsuite_standalone - Win32 Release" # Name "testsuite_standalone - Win32 Debug" # Begin Group "Source Files" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # Begin Source File SOURCE=..\src\test\cpp\util\absolutedateandtimefilter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\absolutetimedateformattestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\absolutetimefilter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\abts.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\action.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\appenderattachableimpl.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\appenderskeleton.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\appenderskeletontestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\aprinitializer.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\asyncappender.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\asyncappendertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\basicconfigurator.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\binarycompare.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\bufferedwriter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\bytearrayinputstream.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\bytearrayoutputstream.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\bytebuffer.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\cacheddateformat.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\cacheddateformattestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\charsetdecoder.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\charsetdecodertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\charsetencoder.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\charsetencodertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\class.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\classnamepatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\classregistration.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\compare.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\condition.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\configurator.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\consoleappender.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\consoleappendertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\controlfilter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\xml\customleveltestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\cyclicbuffer.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\cyclicbuffertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\dailyrollingfileappender.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\datagrampacket.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\datagramsocket.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\date.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\dateformat.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\datelayout.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\datepatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\datetimedateformattestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\defaultconfigurator.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\defaultloggerfactory.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\defaultrepositoryselector.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\domconfigurator.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\xml\domtestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\encodingtest.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\varia\errorhandlertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\exception.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\fallbackerrorhandler.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\file.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\fileappender.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\fileappendertest.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\fileappendertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\filedatepatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\fileinputstream.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\filelocationpatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\filenamefilter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\rolling\filenamepatterntestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\fileoutputstream.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\filerenameaction.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\filetestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\filewatchdog.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\filter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\rolling\filterbasedrollingtest.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\filterbasedtriggeringpolicy.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\fixedwindowrollingpolicy.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\formattinginfo.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\fulllocationpatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\gzcompressaction.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\hierarchy.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\hierarchytest.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\hierarchythresholdtestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\htmllayout.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\inetaddress.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\inetaddresstestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\inputstream.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\inputstreamreader.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\integer.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\integerpatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\iso8601dateformattestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\iso8601filter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\l7dtestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\layout.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\level.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\levelmatchfilter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\varia\levelmatchfiltertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\levelpatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\levelrangefilter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\varia\levelrangefiltertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\leveltestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\linelocationpatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\linenumberfilter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\lineseparatorpatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\literalpatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\loader.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\locale.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\localechanger.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\locationinfo.cpp # End Source File # Begin Source File SOURCE=..\src\main\resources\log4cxx.rc # End Source File # Begin Source File SOURCE=..\src\main\cpp\logger.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\loggerpatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\loggertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\loggingevent.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\loggingeventpatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\spi\loggingeventtest.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\loglog.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\logmanager.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\logstream.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\logunit.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\rolling\manualrollingtest.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\manualtriggeringpolicy.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\mdc.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\messagebuffer.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\messagebuffertest.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\messagepatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\methodlocationpatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\minimumtestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\mutex.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\nameabbreviator.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\namepatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\ndc.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\ndcpatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\ndctestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\nteventlogappender.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\nt\nteventlogappendertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\pattern\num343patternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\objectimpl.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\objectoutputstream.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\objectptr.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\rolling\obsoletedailyrollingfileappendertest.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\obsoleterollingfileappender.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\rolling\obsoleterollingfileappendertest.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\odbcappender.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\db\odbcappendertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\onlyonceerrorhandler.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\optionconverter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\optionconvertertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\outputdebugstringappender.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\outputstream.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\outputstreamwriter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\patternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\patternlayout.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\patternlayouttest.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\patternparser.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\pattern\patternparsertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\pool.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\properties.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\propertiespatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\propertiestestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\propertyconfigurator.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\propertyconfiguratortest.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\propertyresourcebundle.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\propertysetter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\reader.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\relativetimedateformat.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\relativetimedateformattestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\relativetimefilter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\relativetimepatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\resourcebundle.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\rollingfileappender.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\rollingfileappendertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\rollingpolicy.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\rollingpolicybase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\rolloverdescription.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\rootlogger.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\serializationtesthelper.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\serversocket.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\simpledateformat.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\simplelayout.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\rolling\sizebasedrollingtest.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\sizebasedtriggeringpolicy.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\smtpappender.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\net\smtpappendertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\socket.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\socketappender.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\socketappenderskeleton.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\net\socketappendertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\sockethubappender.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\net\sockethubappendertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\socketoutputstream.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\net\socketservertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\streamtestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\strftimedateformat.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\stringhelper.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\stringhelpertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\stringmatchfilter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\stringtokenizer.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\stringtokenizertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\synchronized.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\syslogappender.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\net\syslogappendertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\syslogwriter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\syslogwritertest.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\system.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\systemerrwriter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\systemoutwriter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\telnetappender.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\net\telnetappendertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\defaultinit\testcase1.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\defaultinit\testcase2.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\defaultinit\testcase3.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\defaultinit\testcase4.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\threadcxx.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\threadfilter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\threadlocal.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\threadpatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\threadspecificdata.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\throwableinformationpatternconverter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\timebasedrollingpolicy.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\rolling\timebasedrollingtest.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\timezone.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\timezonetestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\transcoder.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\transcodertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\transform.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\transformer.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\triggeringpolicy.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\ttcclayout.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\utilfilter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\vectorappender.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\writer.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\writerappender.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\writerappendertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\xml\xlevel.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\customlogger\xlogger.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\customlogger\xloggertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\xmlfilenamefilter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\xmllayout.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\xml\xmllayouttest.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\xml\xmllayouttestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\xmllineattributefilter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\xmlsocketappender.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\net\xmlsocketappendertestcase.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\xmlthreadfilter.cpp # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\xmltimestampfilter.cpp # End Source File # Begin Source File SOURCE=..\src\main\cpp\zipcompressaction.cpp # End Source File # End Group # Begin Group "Header Files" # PROP Default_Filter "h;hpp;hxx;hm;inl" # Begin Source File SOURCE=..\src\test\cpp\util\absolutedateandtimefilter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\absolutetimedateformat.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\absolutetimefilter.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\abts.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\abts_tests.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rolling\action.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\filter\andfilter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\appender.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\spi\appenderattachable.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\appenderattachableimpl.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\appenderskeleton.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\appenderskeletontestcase.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\aprinitializer.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\asyncappender.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\basicconfigurator.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\binarycompare.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\bufferedoutputstream.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\bufferedwriter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\bytearrayinputstream.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\bytearrayoutputstream.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\bytebuffer.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\cacheddateformat.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\charsetdecoder.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\charsetencoder.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\class.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\classnamepatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\classregistration.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\compare.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\condition.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\spi\configurator.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\consoleappender.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\controlfilter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\cyclicbuffer.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\dailyrollingfileappender.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\datagrampacket.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\datagramsocket.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\date.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\dateformat.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\datelayout.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\datepatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\datetimedateformat.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\defaultconfigurator.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\defaultloggerfactory.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\spi\defaultrepositoryselector.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\filter\denyallfilter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\xml\domconfigurator.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\spi\errorhandler.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\exception.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\filter\expressionfilter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\varia\fallbackerrorhandler.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\file.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\fileappender.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\fileappendertestcase.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\filedatepatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\fileinputstream.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\filelocationpatternconverter.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\filenamefilter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\fileoutputstream.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rolling\filerenameaction.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\filewatchdog.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\spi\filter.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\filter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rolling\filterbasedtriggeringpolicy.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rolling\fixedwindowrollingpolicy.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\formattinginfo.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\fulllocationpatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rolling\gzcompressaction.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\hierarchy.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\spi\hierarchyeventlistener.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\htmllayout.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\inetaddress.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\inputstream.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\inputstreamreader.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\insertwide.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\integer.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\integerpatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\iso8601dateformat.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\iso8601filter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\layout.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\level.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\filter\levelmatchfilter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\levelpatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\filter\levelrangefilter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\linelocationpatternconverter.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\linenumberfilter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\lineseparatorpatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\literalpatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\loader.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\locale.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\helpers\localechanger.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\spi\location\locationinfo.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\filter\locationinfofilter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\log4cxx.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\private\log4cxx_private.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\logger.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\spi\loggerfactory.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\loggerpatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\spi\loggerrepository.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\spi\loggingevent.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\loggingeventpatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\loglog.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\logmanager.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\logstring.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\logunit.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rolling\manualtriggeringpolicy.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\filter\mapfilter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\mdc.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\messagebuffer.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\messagepatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\methodlocationpatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\mutex.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\nameabbreviator.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\namepatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\ndc.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\ndcpatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\nt\nteventlogappender.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\pattern\num343patternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\object.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\objectimpl.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\objectoutputstream.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\objectptr.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\db\odbcappender.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\onlyonceerrorhandler.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\optionconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\spi\optionhandler.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\nt\outputdebugstringappender.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\outputstream.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\outputstreamwriter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\patternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\patternlayout.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\patternparser.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\pool.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\portability.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\properties.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\propertiespatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\propertyconfigurator.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\filter\propertyfilter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\propertyresourcebundle.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\config\propertysetter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\provisionnode.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\reader.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\relativetimedateformat.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\relativetimefilter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\relativetimepatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\spi\repositoryselector.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\resourcebundle.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rolling\rollingfileappender.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rollingfileappender.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rolling\rollingfileappenderskeleton.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rolling\rollingpolicy.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rolling\rollingpolicybase.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rolling\rolloverdescription.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\spi\rootlogger.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\serializationtesthelper.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\serversocket.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\simpledateformat.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\simplelayout.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rolling\sizebasedtriggeringpolicy.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\net\smtpappender.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\socket.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\net\socketappender.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\net\socketappenderskeleton.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\net\sockethubappender.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\socketoutputstream.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\net\socketservertestcase.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\stream.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\strftimedateformat.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\strictmath.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\stringhelper.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\filter\stringmatchfilter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\stringtokenizer.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\synchronized.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\net\syslogappender.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\syslogwriter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\system.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\systemerrwriter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\systemoutwriter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\tchar.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\net\telnetappender.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\testchar.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\testutil.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\thread.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\threadfilter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\threadlocal.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\threadpatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\threadspecificdata.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\pattern\throwableinformationpatternconverter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rolling\timebasedrollingpolicy.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\timezone.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\transcoder.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\transform.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\transformer.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\spi\triggeringeventevaluator.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rolling\triggeringpolicy.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\ttcclayout.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\vectorappender.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\writer.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\writerappender.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\writerappendertestcase.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\xml\xlevel.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\customlogger\xlogger.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\helpers\xml.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\xmlfilenamefilter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\xml\xmllayout.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\xmllineattributefilter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\net\xmlsocketappender.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\xmlthreadfilter.h # End Source File # Begin Source File SOURCE=..\src\test\cpp\util\xmltimestampfilter.h # End Source File # Begin Source File SOURCE=..\src\main\include\log4cxx\rolling\zipcompressaction.h # End Source File # End Group # Begin Group "Resource Files" # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" # End Group # End Target # End Project apache-log4cxx-0.10.0/projects/testsuite-standalone.dsw100644 0 0 4531 10774263472 20274 0ustar 0 0 Microsoft Developer Studio Workspace File, Format Version 6.00 # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. ############################################################################### Project: "apr"="..\..\apr\apr.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ }}} ############################################################################### Project: "xml"="..\..\apr-util\xml\expat\lib\xml.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ }}} ############################################################################### Project: "aprutil"="..\..\apr-util\aprutil.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ Begin Project Dependency Project_Dep_Name apr End Project Dependency Begin Project Dependency Project_Dep_Name xml End Project Dependency }}} ############################################################################### Project: "testsuite_standalone"=".\testsuite-standalone.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ Begin Project Dependency Project_Dep_Name apr End Project Dependency Begin Project Dependency Project_Dep_Name xml End Project Dependency Begin Project Dependency Project_Dep_Name aprutil End Project Dependency }}} ############################################################################### Global: Package=<5> {{{ }}} Package=<3> {{{ }}} ############################################################################### apache-log4cxx-0.10.0/projects/delayedloop.dsp100644 0 0 10612 10774263472 16424 0ustar 0 0 # Microsoft Developer Studio Project File - Name="delayedloop" - Package Owner=<4> # Microsoft Developer Studio Generated Build File, Format Version 6.00 # ** DO NOT EDIT ** # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # TARGTYPE "Win32 (x86) Console Application" 0x0103 CFG=delayedloop - Win32 Debug !MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE use the Export Makefile command and run !MESSAGE !MESSAGE NMAKE /f "delayedloop.mak". !MESSAGE !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE !MESSAGE NMAKE /f "delayedloop.mak" CFG="delayedloop - Win32 Debug" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE !MESSAGE "delayedloop - Win32 Release" (based on "Win32 (x86) Console Application") !MESSAGE "delayedloop - Win32 Debug" (based on "Win32 (x86) Console Application") !MESSAGE # Begin Project # PROP AllowPerConfigDependencies 0 # PROP Scc_ProjName "" # PROP Scc_LocalPath "" CPP=cl.exe MTL=midl.exe RSC=rc.exe !IF "$(CFG)" == "delayedloop - Win32 Release" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 # PROP BASE Output_Dir "Release" # PROP BASE Intermediate_Dir "Release" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 # PROP Output_Dir "Release" # PROP Intermediate_Dir "Release" # PROP Target_Dir "" # ADD BASE CPP /c /nologo /EHsc /O2 /D "NDEBUG" /MD /D "WIN32" /D "APR_DECLARE_STATIC" # ADD CPP /I "..\src\main\include" /I "..\src\examples\cpp" /I "..\..\apr\include" /c /nologo /EHsc /O2 /D "NDEBUG" /MD /D "WIN32" /D "APR_DECLARE_STATIC" # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 # ADD BASE RSC /l 0x409 /d "NDEBUG" # ADD RSC /l 0x409 /d "NDEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 /NOLOGO /SUBSYSTEM:CONSOLE /INCREMENTAL:NO # ADD LINK32 ADVAPI32.LIB WS2_32.LIB MSWSOCK.LIB SHELL32.LIB ODBC32.LIB /NOLOGO /SUBSYSTEM:CONSOLE /INCREMENTAL:NO !ELSEIF "$(CFG)" == "delayedloop - Win32 Debug" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 1 # PROP BASE Output_Dir "Debug" # PROP BASE Intermediate_Dir "Debug" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 # PROP Output_Dir "Debug" # PROP Intermediate_Dir "Debug" # PROP Target_Dir "" # ADD BASE CPP /c /nologo /EHsc /Zi /Od /GZ /D "_DEBUG" /MDd /D "WIN32" /D "APR_DECLARE_STATIC" # ADD CPP /I "..\src\main\include" /I "..\src\examples\cpp" /I "..\..\apr\include" /c /nologo /EHsc /Zi /Od /GZ /D "_DEBUG" /MDd /D "WIN32" /D "APR_DECLARE_STATIC" # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 # ADD BASE RSC /l 0x409 /d "_DEBUG" # ADD RSC /l 0x409 /d "_DEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 /NOLOGO /DEBUG /SUBSYSTEM:CONSOLE /INCREMENTAL:NO # ADD LINK32 ADVAPI32.LIB WS2_32.LIB MSWSOCK.LIB SHELL32.LIB ODBC32.LIB /NOLOGO /DEBUG /SUBSYSTEM:CONSOLE /INCREMENTAL:NO !ENDIF # Begin Target # Name "delayedloop - Win32 Release" # Name "delayedloop - Win32 Debug" # Begin Group "Source Files" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # Begin Source File SOURCE=..\src\examples\cpp\delayedloop.cpp # End Source File # End Group # Begin Group "Header Files" # PROP Default_Filter "h;hpp;hxx;hm;inl" # End Group # Begin Group "Resource Files" # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" # End Group # End Target # End Project apache-log4cxx-0.10.0/projects/delayedloop.dsw100644 0 0 4622 10774263472 16417 0ustar 0 0 Microsoft Developer Studio Workspace File, Format Version 6.00 # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. ############################################################################### Project: "apr"="..\..\apr\apr.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ }}} ############################################################################### Project: "xml"="..\..\apr-util\xml\expat\lib\xml.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ }}} ############################################################################### Project: "log4cxx"=".\log4cxx.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ Begin Project Dependency Project_Dep_Name apr End Project Dependency Begin Project Dependency Project_Dep_Name aprutil End Project Dependency Begin Project Dependency Project_Dep_Name xml End Project Dependency }}} ############################################################################### Project: "delayedloop"=".\delayedloop.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ Begin Project Dependency Project_Dep_Name apr End Project Dependency Begin Project Dependency Project_Dep_Name xml End Project Dependency Begin Project Dependency Project_Dep_Name log4cxx End Project Dependency }}} ############################################################################### Global: Package=<5> {{{ }}} Package=<3> {{{ }}} ############################################################################### apache-log4cxx-0.10.0/projects/trivial.dsp100644 0 0 10532 10774263472 15576 0ustar 0 0 # Microsoft Developer Studio Project File - Name="trivial" - Package Owner=<4> # Microsoft Developer Studio Generated Build File, Format Version 6.00 # ** DO NOT EDIT ** # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # TARGTYPE "Win32 (x86) Console Application" 0x0103 CFG=trivial - Win32 Debug !MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE use the Export Makefile command and run !MESSAGE !MESSAGE NMAKE /f "trivial.mak". !MESSAGE !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE !MESSAGE NMAKE /f "trivial.mak" CFG="trivial - Win32 Debug" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE !MESSAGE "trivial - Win32 Release" (based on "Win32 (x86) Console Application") !MESSAGE "trivial - Win32 Debug" (based on "Win32 (x86) Console Application") !MESSAGE # Begin Project # PROP AllowPerConfigDependencies 0 # PROP Scc_ProjName "" # PROP Scc_LocalPath "" CPP=cl.exe MTL=midl.exe RSC=rc.exe !IF "$(CFG)" == "trivial - Win32 Release" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 # PROP BASE Output_Dir "Release" # PROP BASE Intermediate_Dir "Release" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 # PROP Output_Dir "Release" # PROP Intermediate_Dir "Release" # PROP Target_Dir "" # ADD BASE CPP /c /nologo /EHsc /O2 /D "NDEBUG" /MD /D "WIN32" /D "APR_DECLARE_STATIC" # ADD CPP /I "..\src\main\include" /I "..\src\examples\cpp" /I "..\..\apr\include" /c /nologo /EHsc /O2 /D "NDEBUG" /MD /D "WIN32" /D "APR_DECLARE_STATIC" # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 # ADD BASE RSC /l 0x409 /d "NDEBUG" # ADD RSC /l 0x409 /d "NDEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 /NOLOGO /SUBSYSTEM:CONSOLE /INCREMENTAL:NO # ADD LINK32 ADVAPI32.LIB WS2_32.LIB MSWSOCK.LIB SHELL32.LIB ODBC32.LIB /NOLOGO /SUBSYSTEM:CONSOLE /INCREMENTAL:NO !ELSEIF "$(CFG)" == "trivial - Win32 Debug" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 1 # PROP BASE Output_Dir "Debug" # PROP BASE Intermediate_Dir "Debug" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 # PROP Output_Dir "Debug" # PROP Intermediate_Dir "Debug" # PROP Target_Dir "" # ADD BASE CPP /c /nologo /EHsc /Zi /Od /GZ /D "_DEBUG" /MDd /D "WIN32" /D "APR_DECLARE_STATIC" # ADD CPP /I "..\src\main\include" /I "..\src\examples\cpp" /I "..\..\apr\include" /c /nologo /EHsc /Zi /Od /GZ /D "_DEBUG" /MDd /D "WIN32" /D "APR_DECLARE_STATIC" # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 # ADD BASE RSC /l 0x409 /d "_DEBUG" # ADD RSC /l 0x409 /d "_DEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 /NOLOGO /DEBUG /SUBSYSTEM:CONSOLE /INCREMENTAL:NO # ADD LINK32 ADVAPI32.LIB WS2_32.LIB MSWSOCK.LIB SHELL32.LIB ODBC32.LIB /NOLOGO /DEBUG /SUBSYSTEM:CONSOLE /INCREMENTAL:NO !ENDIF # Begin Target # Name "trivial - Win32 Release" # Name "trivial - Win32 Debug" # Begin Group "Source Files" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # Begin Source File SOURCE=..\src\examples\cpp\trivial.cpp # End Source File # End Group # Begin Group "Header Files" # PROP Default_Filter "h;hpp;hxx;hm;inl" # End Group # Begin Group "Resource Files" # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" # End Group # End Target # End Project apache-log4cxx-0.10.0/projects/trivial.dsw100644 0 0 4612 10774263472 15567 0ustar 0 0 Microsoft Developer Studio Workspace File, Format Version 6.00 # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. ############################################################################### Project: "apr"="..\..\apr\apr.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ }}} ############################################################################### Project: "xml"="..\..\apr-util\xml\expat\lib\xml.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ }}} ############################################################################### Project: "log4cxx"=".\log4cxx.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ Begin Project Dependency Project_Dep_Name apr End Project Dependency Begin Project Dependency Project_Dep_Name aprutil End Project Dependency Begin Project Dependency Project_Dep_Name xml End Project Dependency }}} ############################################################################### Project: "trivial"=".\trivial.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ Begin Project Dependency Project_Dep_Name apr End Project Dependency Begin Project Dependency Project_Dep_Name xml End Project Dependency Begin Project Dependency Project_Dep_Name log4cxx End Project Dependency }}} ############################################################################### Global: Package=<5> {{{ }}} Package=<3> {{{ }}} ############################################################################### apache-log4cxx-0.10.0/projects/stream.dsp100644 0 0 10516 10774263472 15421 0ustar 0 0 # Microsoft Developer Studio Project File - Name="stream" - Package Owner=<4> # Microsoft Developer Studio Generated Build File, Format Version 6.00 # ** DO NOT EDIT ** # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # TARGTYPE "Win32 (x86) Console Application" 0x0103 CFG=stream - Win32 Debug !MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE use the Export Makefile command and run !MESSAGE !MESSAGE NMAKE /f "stream.mak". !MESSAGE !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE !MESSAGE NMAKE /f "stream.mak" CFG="stream - Win32 Debug" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE !MESSAGE "stream - Win32 Release" (based on "Win32 (x86) Console Application") !MESSAGE "stream - Win32 Debug" (based on "Win32 (x86) Console Application") !MESSAGE # Begin Project # PROP AllowPerConfigDependencies 0 # PROP Scc_ProjName "" # PROP Scc_LocalPath "" CPP=cl.exe MTL=midl.exe RSC=rc.exe !IF "$(CFG)" == "stream - Win32 Release" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 # PROP BASE Output_Dir "Release" # PROP BASE Intermediate_Dir "Release" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 # PROP Output_Dir "Release" # PROP Intermediate_Dir "Release" # PROP Target_Dir "" # ADD BASE CPP /c /nologo /EHsc /O2 /D "NDEBUG" /MD /D "WIN32" /D "APR_DECLARE_STATIC" # ADD CPP /I "..\src\main\include" /I "..\src\examples\cpp" /I "..\..\apr\include" /c /nologo /EHsc /O2 /D "NDEBUG" /MD /D "WIN32" /D "APR_DECLARE_STATIC" # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 # ADD BASE RSC /l 0x409 /d "NDEBUG" # ADD RSC /l 0x409 /d "NDEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 /NOLOGO /SUBSYSTEM:CONSOLE /INCREMENTAL:NO # ADD LINK32 ADVAPI32.LIB WS2_32.LIB MSWSOCK.LIB SHELL32.LIB ODBC32.LIB /NOLOGO /SUBSYSTEM:CONSOLE /INCREMENTAL:NO !ELSEIF "$(CFG)" == "stream - Win32 Debug" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 1 # PROP BASE Output_Dir "Debug" # PROP BASE Intermediate_Dir "Debug" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 # PROP Output_Dir "Debug" # PROP Intermediate_Dir "Debug" # PROP Target_Dir "" # ADD BASE CPP /c /nologo /EHsc /Zi /Od /GZ /D "_DEBUG" /MDd /D "WIN32" /D "APR_DECLARE_STATIC" # ADD CPP /I "..\src\main\include" /I "..\src\examples\cpp" /I "..\..\apr\include" /c /nologo /EHsc /Zi /Od /GZ /D "_DEBUG" /MDd /D "WIN32" /D "APR_DECLARE_STATIC" # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 # ADD BASE RSC /l 0x409 /d "_DEBUG" # ADD RSC /l 0x409 /d "_DEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 /NOLOGO /DEBUG /SUBSYSTEM:CONSOLE /INCREMENTAL:NO # ADD LINK32 ADVAPI32.LIB WS2_32.LIB MSWSOCK.LIB SHELL32.LIB ODBC32.LIB /NOLOGO /DEBUG /SUBSYSTEM:CONSOLE /INCREMENTAL:NO !ENDIF # Begin Target # Name "stream - Win32 Release" # Name "stream - Win32 Debug" # Begin Group "Source Files" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # Begin Source File SOURCE=..\src\examples\cpp\stream.cpp # End Source File # End Group # Begin Group "Header Files" # PROP Default_Filter "h;hpp;hxx;hm;inl" # End Group # Begin Group "Resource Files" # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" # End Group # End Target # End Project apache-log4cxx-0.10.0/projects/stream.dsw100644 0 0 4610 10774263472 15406 0ustar 0 0 Microsoft Developer Studio Workspace File, Format Version 6.00 # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. ############################################################################### Project: "apr"="..\..\apr\apr.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ }}} ############################################################################### Project: "xml"="..\..\apr-util\xml\expat\lib\xml.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ }}} ############################################################################### Project: "log4cxx"=".\log4cxx.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ Begin Project Dependency Project_Dep_Name apr End Project Dependency Begin Project Dependency Project_Dep_Name aprutil End Project Dependency Begin Project Dependency Project_Dep_Name xml End Project Dependency }}} ############################################################################### Project: "stream"=".\stream.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ Begin Project Dependency Project_Dep_Name apr End Project Dependency Begin Project Dependency Project_Dep_Name xml End Project Dependency Begin Project Dependency Project_Dep_Name log4cxx End Project Dependency }}} ############################################################################### Global: Package=<5> {{{ }}} Package=<3> {{{ }}} ############################################################################### apache-log4cxx-0.10.0/projects/console.dsp100644 0 0 10532 10774263472 15566 0ustar 0 0 # Microsoft Developer Studio Project File - Name="console" - Package Owner=<4> # Microsoft Developer Studio Generated Build File, Format Version 6.00 # ** DO NOT EDIT ** # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. # TARGTYPE "Win32 (x86) Console Application" 0x0103 CFG=console - Win32 Debug !MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE use the Export Makefile command and run !MESSAGE !MESSAGE NMAKE /f "console.mak". !MESSAGE !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE !MESSAGE NMAKE /f "console.mak" CFG="console - Win32 Debug" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE !MESSAGE "console - Win32 Release" (based on "Win32 (x86) Console Application") !MESSAGE "console - Win32 Debug" (based on "Win32 (x86) Console Application") !MESSAGE # Begin Project # PROP AllowPerConfigDependencies 0 # PROP Scc_ProjName "" # PROP Scc_LocalPath "" CPP=cl.exe MTL=midl.exe RSC=rc.exe !IF "$(CFG)" == "console - Win32 Release" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 # PROP BASE Output_Dir "Release" # PROP BASE Intermediate_Dir "Release" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 # PROP Output_Dir "Release" # PROP Intermediate_Dir "Release" # PROP Target_Dir "" # ADD BASE CPP /c /nologo /EHsc /O2 /D "NDEBUG" /MD /D "WIN32" /D "APR_DECLARE_STATIC" # ADD CPP /I "..\src\main\include" /I "..\src\examples\cpp" /I "..\..\apr\include" /c /nologo /EHsc /O2 /D "NDEBUG" /MD /D "WIN32" /D "APR_DECLARE_STATIC" # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 # ADD BASE RSC /l 0x409 /d "NDEBUG" # ADD RSC /l 0x409 /d "NDEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 /NOLOGO /SUBSYSTEM:CONSOLE /INCREMENTAL:NO # ADD LINK32 ADVAPI32.LIB WS2_32.LIB MSWSOCK.LIB SHELL32.LIB ODBC32.LIB /NOLOGO /SUBSYSTEM:CONSOLE /INCREMENTAL:NO !ELSEIF "$(CFG)" == "console - Win32 Debug" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 1 # PROP BASE Output_Dir "Debug" # PROP BASE Intermediate_Dir "Debug" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 # PROP Output_Dir "Debug" # PROP Intermediate_Dir "Debug" # PROP Target_Dir "" # ADD BASE CPP /c /nologo /EHsc /Zi /Od /GZ /D "_DEBUG" /MDd /D "WIN32" /D "APR_DECLARE_STATIC" # ADD CPP /I "..\src\main\include" /I "..\src\examples\cpp" /I "..\..\apr\include" /c /nologo /EHsc /Zi /Od /GZ /D "_DEBUG" /MDd /D "WIN32" /D "APR_DECLARE_STATIC" # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 # ADD BASE RSC /l 0x409 /d "_DEBUG" # ADD RSC /l 0x409 /d "_DEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 /NOLOGO /DEBUG /SUBSYSTEM:CONSOLE /INCREMENTAL:NO # ADD LINK32 ADVAPI32.LIB WS2_32.LIB MSWSOCK.LIB SHELL32.LIB ODBC32.LIB /NOLOGO /DEBUG /SUBSYSTEM:CONSOLE /INCREMENTAL:NO !ENDIF # Begin Target # Name "console - Win32 Release" # Name "console - Win32 Debug" # Begin Group "Source Files" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # Begin Source File SOURCE=..\src\examples\cpp\console.cpp # End Source File # End Group # Begin Group "Header Files" # PROP Default_Filter "h;hpp;hxx;hm;inl" # End Group # Begin Group "Resource Files" # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" # End Group # End Target # End Project apache-log4cxx-0.10.0/projects/console.dsw100644 0 0 4612 10774263472 15557 0ustar 0 0 Microsoft Developer Studio Workspace File, Format Version 6.00 # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. ############################################################################### Project: "apr"="..\..\apr\apr.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ }}} ############################################################################### Project: "xml"="..\..\apr-util\xml\expat\lib\xml.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ }}} ############################################################################### Project: "log4cxx"=".\log4cxx.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ Begin Project Dependency Project_Dep_Name apr End Project Dependency Begin Project Dependency Project_Dep_Name aprutil End Project Dependency Begin Project Dependency Project_Dep_Name xml End Project Dependency }}} ############################################################################### Project: "console"=".\console.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ Begin Project Dependency Project_Dep_Name apr End Project Dependency Begin Project Dependency Project_Dep_Name xml End Project Dependency Begin Project Dependency Project_Dep_Name log4cxx End Project Dependency }}} ############################################################################### Global: Package=<5> {{{ }}} Package=<3> {{{ }}} ############################################################################### apache-log4cxx-0.10.0/projects/log4cxx.xcodeproj/project.pbxproj100644 0 0 260672 10774263472 22110 0ustar 0 0 archiveVersion1classesobjectVersion42objects0000000000000000000003edisaPBXFileReferencenameaction.cpppath../src/main/cpp/action.cppsourceTreeSOURCE_ROOT0000000000000000000003eeisaPBXFileReferencenameappenderattachableimpl.cpppath../src/main/cpp/appenderattachableimpl.cppsourceTreeSOURCE_ROOT0000000000000000000003efisaPBXFileReferencenameappenderskeleton.cpppath../src/main/cpp/appenderskeleton.cppsourceTreeSOURCE_ROOT0000000000000000000003f0isaPBXFileReferencenameaprinitializer.cpppath../src/main/cpp/aprinitializer.cppsourceTreeSOURCE_ROOT0000000000000000000003f1isaPBXFileReferencenameasyncappender.cpppath../src/main/cpp/asyncappender.cppsourceTreeSOURCE_ROOT0000000000000000000003f2isaPBXFileReferencenamebasicconfigurator.cpppath../src/main/cpp/basicconfigurator.cppsourceTreeSOURCE_ROOT0000000000000000000003f3isaPBXFileReferencenamebufferedwriter.cpppath../src/main/cpp/bufferedwriter.cppsourceTreeSOURCE_ROOT0000000000000000000003f4isaPBXFileReferencenamebytearrayinputstream.cpppath../src/main/cpp/bytearrayinputstream.cppsourceTreeSOURCE_ROOT0000000000000000000003f5isaPBXFileReferencenamebytearrayoutputstream.cpppath../src/main/cpp/bytearrayoutputstream.cppsourceTreeSOURCE_ROOT0000000000000000000003f6isaPBXFileReferencenamebytebuffer.cpppath../src/main/cpp/bytebuffer.cppsourceTreeSOURCE_ROOT0000000000000000000003f7isaPBXFileReferencenamecacheddateformat.cpppath../src/main/cpp/cacheddateformat.cppsourceTreeSOURCE_ROOT0000000000000000000003f8isaPBXFileReferencenamecharsetdecoder.cpppath../src/main/cpp/charsetdecoder.cppsourceTreeSOURCE_ROOT0000000000000000000003f9isaPBXFileReferencenamecharsetencoder.cpppath../src/main/cpp/charsetencoder.cppsourceTreeSOURCE_ROOT0000000000000000000003faisaPBXFileReferencenameclass.cpppath../src/main/cpp/class.cppsourceTreeSOURCE_ROOT0000000000000000000003fbisaPBXFileReferencenameclassnamepatternconverter.cpppath../src/main/cpp/classnamepatternconverter.cppsourceTreeSOURCE_ROOT0000000000000000000003fcisaPBXFileReferencenameclassregistration.cpppath../src/main/cpp/classregistration.cppsourceTreeSOURCE_ROOT0000000000000000000003fdisaPBXFileReferencenamecondition.cpppath../src/main/cpp/condition.cppsourceTreeSOURCE_ROOT0000000000000000000003feisaPBXFileReferencenameconfigurator.cpppath../src/main/cpp/configurator.cppsourceTreeSOURCE_ROOT0000000000000000000003ffisaPBXFileReferencenameconsoleappender.cpppath../src/main/cpp/consoleappender.cppsourceTreeSOURCE_ROOT000000000000000000000400isaPBXFileReferencenamecyclicbuffer.cpppath../src/main/cpp/cyclicbuffer.cppsourceTreeSOURCE_ROOT000000000000000000000401isaPBXFileReferencenamedailyrollingfileappender.cpppath../src/main/cpp/dailyrollingfileappender.cppsourceTreeSOURCE_ROOT000000000000000000000402isaPBXFileReferencenamedatagrampacket.cpppath../src/main/cpp/datagrampacket.cppsourceTreeSOURCE_ROOT000000000000000000000403isaPBXFileReferencenamedatagramsocket.cpppath../src/main/cpp/datagramsocket.cppsourceTreeSOURCE_ROOT000000000000000000000404isaPBXFileReferencenamedate.cpppath../src/main/cpp/date.cppsourceTreeSOURCE_ROOT000000000000000000000405isaPBXFileReferencenamedateformat.cpppath../src/main/cpp/dateformat.cppsourceTreeSOURCE_ROOT000000000000000000000406isaPBXFileReferencenamedatelayout.cpppath../src/main/cpp/datelayout.cppsourceTreeSOURCE_ROOT000000000000000000000407isaPBXFileReferencenamedatepatternconverter.cpppath../src/main/cpp/datepatternconverter.cppsourceTreeSOURCE_ROOT000000000000000000000408isaPBXFileReferencenamedefaultconfigurator.cpppath../src/main/cpp/defaultconfigurator.cppsourceTreeSOURCE_ROOT000000000000000000000409isaPBXFileReferencenamedefaultloggerfactory.cpppath../src/main/cpp/defaultloggerfactory.cppsourceTreeSOURCE_ROOT00000000000000000000040aisaPBXFileReferencenamedefaultrepositoryselector.cpppath../src/main/cpp/defaultrepositoryselector.cppsourceTreeSOURCE_ROOT00000000000000000000040bisaPBXFileReferencenamedomconfigurator.cpppath../src/main/cpp/domconfigurator.cppsourceTreeSOURCE_ROOT00000000000000000000040cisaPBXFileReferencenameexception.cpppath../src/main/cpp/exception.cppsourceTreeSOURCE_ROOT00000000000000000000040disaPBXFileReferencenamefallbackerrorhandler.cpppath../src/main/cpp/fallbackerrorhandler.cppsourceTreeSOURCE_ROOT00000000000000000000040eisaPBXFileReferencenamefile.cpppath../src/main/cpp/file.cppsourceTreeSOURCE_ROOT00000000000000000000040fisaPBXFileReferencenamefileappender.cpppath../src/main/cpp/fileappender.cppsourceTreeSOURCE_ROOT000000000000000000000410isaPBXFileReferencenamefiledatepatternconverter.cpppath../src/main/cpp/filedatepatternconverter.cppsourceTreeSOURCE_ROOT000000000000000000000411isaPBXFileReferencenamefileinputstream.cpppath../src/main/cpp/fileinputstream.cppsourceTreeSOURCE_ROOT000000000000000000000412isaPBXFileReferencenamefilelocationpatternconverter.cpppath../src/main/cpp/filelocationpatternconverter.cppsourceTreeSOURCE_ROOT000000000000000000000413isaPBXFileReferencenamefileoutputstream.cpppath../src/main/cpp/fileoutputstream.cppsourceTreeSOURCE_ROOT000000000000000000000414isaPBXFileReferencenamefilerenameaction.cpppath../src/main/cpp/filerenameaction.cppsourceTreeSOURCE_ROOT000000000000000000000415isaPBXFileReferencenamefilewatchdog.cpppath../src/main/cpp/filewatchdog.cppsourceTreeSOURCE_ROOT000000000000000000000416isaPBXFileReferencenamefilter.cpppath../src/main/cpp/filter.cppsourceTreeSOURCE_ROOT000000000000000000000417isaPBXFileReferencenamefilterbasedtriggeringpolicy.cpppath../src/main/cpp/filterbasedtriggeringpolicy.cppsourceTreeSOURCE_ROOT000000000000000000000418isaPBXFileReferencenamefixedwindowrollingpolicy.cpppath../src/main/cpp/fixedwindowrollingpolicy.cppsourceTreeSOURCE_ROOT000000000000000000000419isaPBXFileReferencenameformattinginfo.cpppath../src/main/cpp/formattinginfo.cppsourceTreeSOURCE_ROOT00000000000000000000041aisaPBXFileReferencenamefulllocationpatternconverter.cpppath../src/main/cpp/fulllocationpatternconverter.cppsourceTreeSOURCE_ROOT00000000000000000000041bisaPBXFileReferencenamegzcompressaction.cpppath../src/main/cpp/gzcompressaction.cppsourceTreeSOURCE_ROOT00000000000000000000041cisaPBXFileReferencenamehierarchy.cpppath../src/main/cpp/hierarchy.cppsourceTreeSOURCE_ROOT00000000000000000000041disaPBXFileReferencenamehtmllayout.cpppath../src/main/cpp/htmllayout.cppsourceTreeSOURCE_ROOT00000000000000000000041eisaPBXFileReferencenameinetaddress.cpppath../src/main/cpp/inetaddress.cppsourceTreeSOURCE_ROOT00000000000000000000041fisaPBXFileReferencenameinputstream.cpppath../src/main/cpp/inputstream.cppsourceTreeSOURCE_ROOT000000000000000000000420isaPBXFileReferencenameinputstreamreader.cpppath../src/main/cpp/inputstreamreader.cppsourceTreeSOURCE_ROOT000000000000000000000421isaPBXFileReferencenameinteger.cpppath../src/main/cpp/integer.cppsourceTreeSOURCE_ROOT000000000000000000000422isaPBXFileReferencenameintegerpatternconverter.cpppath../src/main/cpp/integerpatternconverter.cppsourceTreeSOURCE_ROOT000000000000000000000423isaPBXFileReferencenamelayout.cpppath../src/main/cpp/layout.cppsourceTreeSOURCE_ROOT000000000000000000000424isaPBXFileReferencenamelevel.cpppath../src/main/cpp/level.cppsourceTreeSOURCE_ROOT000000000000000000000425isaPBXFileReferencenamelevelmatchfilter.cpppath../src/main/cpp/levelmatchfilter.cppsourceTreeSOURCE_ROOT000000000000000000000426isaPBXFileReferencenamelevelpatternconverter.cpppath../src/main/cpp/levelpatternconverter.cppsourceTreeSOURCE_ROOT000000000000000000000427isaPBXFileReferencenamelevelrangefilter.cpppath../src/main/cpp/levelrangefilter.cppsourceTreeSOURCE_ROOT000000000000000000000428isaPBXFileReferencenamelinelocationpatternconverter.cpppath../src/main/cpp/linelocationpatternconverter.cppsourceTreeSOURCE_ROOT000000000000000000000429isaPBXFileReferencenamelineseparatorpatternconverter.cpppath../src/main/cpp/lineseparatorpatternconverter.cppsourceTreeSOURCE_ROOT00000000000000000000042aisaPBXFileReferencenameliteralpatternconverter.cpppath../src/main/cpp/literalpatternconverter.cppsourceTreeSOURCE_ROOT00000000000000000000042bisaPBXFileReferencenameloader.cpppath../src/main/cpp/loader.cppsourceTreeSOURCE_ROOT00000000000000000000042cisaPBXFileReferencenamelocale.cpppath../src/main/cpp/locale.cppsourceTreeSOURCE_ROOT00000000000000000000042disaPBXFileReferencenamelocationinfo.cpppath../src/main/cpp/locationinfo.cppsourceTreeSOURCE_ROOT00000000000000000000042eisaPBXFileReferencenamelogger.cpppath../src/main/cpp/logger.cppsourceTreeSOURCE_ROOT00000000000000000000042fisaPBXFileReferencenameloggerpatternconverter.cpppath../src/main/cpp/loggerpatternconverter.cppsourceTreeSOURCE_ROOT000000000000000000000430isaPBXFileReferencenameloggingevent.cpppath../src/main/cpp/loggingevent.cppsourceTreeSOURCE_ROOT000000000000000000000431isaPBXFileReferencenameloggingeventpatternconverter.cpppath../src/main/cpp/loggingeventpatternconverter.cppsourceTreeSOURCE_ROOT000000000000000000000432isaPBXFileReferencenameloglog.cpppath../src/main/cpp/loglog.cppsourceTreeSOURCE_ROOT000000000000000000000433isaPBXFileReferencenamelogmanager.cpppath../src/main/cpp/logmanager.cppsourceTreeSOURCE_ROOT000000000000000000000434isaPBXFileReferencenamelogstream.cpppath../src/main/cpp/logstream.cppsourceTreeSOURCE_ROOT000000000000000000000435isaPBXFileReferencenamemanualtriggeringpolicy.cpppath../src/main/cpp/manualtriggeringpolicy.cppsourceTreeSOURCE_ROOT000000000000000000000436isaPBXFileReferencenamemdc.cpppath../src/main/cpp/mdc.cppsourceTreeSOURCE_ROOT000000000000000000000437isaPBXFileReferencenamemessagebuffer.cpppath../src/main/cpp/messagebuffer.cppsourceTreeSOURCE_ROOT000000000000000000000438isaPBXFileReferencenamemessagepatternconverter.cpppath../src/main/cpp/messagepatternconverter.cppsourceTreeSOURCE_ROOT000000000000000000000439isaPBXFileReferencenamemethodlocationpatternconverter.cpppath../src/main/cpp/methodlocationpatternconverter.cppsourceTreeSOURCE_ROOT00000000000000000000043aisaPBXFileReferencenamemutex.cpppath../src/main/cpp/mutex.cppsourceTreeSOURCE_ROOT00000000000000000000043bisaPBXFileReferencenamenameabbreviator.cpppath../src/main/cpp/nameabbreviator.cppsourceTreeSOURCE_ROOT00000000000000000000043cisaPBXFileReferencenamenamepatternconverter.cpppath../src/main/cpp/namepatternconverter.cppsourceTreeSOURCE_ROOT00000000000000000000043disaPBXFileReferencenamendc.cpppath../src/main/cpp/ndc.cppsourceTreeSOURCE_ROOT00000000000000000000043eisaPBXFileReferencenamendcpatternconverter.cpppath../src/main/cpp/ndcpatternconverter.cppsourceTreeSOURCE_ROOT00000000000000000000043fisaPBXFileReferencenamenteventlogappender.cpppath../src/main/cpp/nteventlogappender.cppsourceTreeSOURCE_ROOT000000000000000000000440isaPBXFileReferencenameobjectimpl.cpppath../src/main/cpp/objectimpl.cppsourceTreeSOURCE_ROOT000000000000000000000441isaPBXFileReferencenameobjectoutputstream.cpppath../src/main/cpp/objectoutputstream.cppsourceTreeSOURCE_ROOT000000000000000000000442isaPBXFileReferencenameobjectptr.cpppath../src/main/cpp/objectptr.cppsourceTreeSOURCE_ROOT000000000000000000000443isaPBXFileReferencenameobsoleterollingfileappender.cpppath../src/main/cpp/obsoleterollingfileappender.cppsourceTreeSOURCE_ROOT000000000000000000000444isaPBXFileReferencenameodbcappender.cpppath../src/main/cpp/odbcappender.cppsourceTreeSOURCE_ROOT000000000000000000000445isaPBXFileReferencenameonlyonceerrorhandler.cpppath../src/main/cpp/onlyonceerrorhandler.cppsourceTreeSOURCE_ROOT000000000000000000000446isaPBXFileReferencenameoptionconverter.cpppath../src/main/cpp/optionconverter.cppsourceTreeSOURCE_ROOT000000000000000000000447isaPBXFileReferencenameoutputdebugstringappender.cpppath../src/main/cpp/outputdebugstringappender.cppsourceTreeSOURCE_ROOT000000000000000000000448isaPBXFileReferencenameoutputstream.cpppath../src/main/cpp/outputstream.cppsourceTreeSOURCE_ROOT000000000000000000000449isaPBXFileReferencenameoutputstreamwriter.cpppath../src/main/cpp/outputstreamwriter.cppsourceTreeSOURCE_ROOT00000000000000000000044aisaPBXFileReferencenamepatternconverter.cpppath../src/main/cpp/patternconverter.cppsourceTreeSOURCE_ROOT00000000000000000000044bisaPBXFileReferencenamepatternlayout.cpppath../src/main/cpp/patternlayout.cppsourceTreeSOURCE_ROOT00000000000000000000044cisaPBXFileReferencenamepatternparser.cpppath../src/main/cpp/patternparser.cppsourceTreeSOURCE_ROOT00000000000000000000044disaPBXFileReferencenamepool.cpppath../src/main/cpp/pool.cppsourceTreeSOURCE_ROOT00000000000000000000044eisaPBXFileReferencenameproperties.cpppath../src/main/cpp/properties.cppsourceTreeSOURCE_ROOT00000000000000000000044fisaPBXFileReferencenamepropertiespatternconverter.cpppath../src/main/cpp/propertiespatternconverter.cppsourceTreeSOURCE_ROOT000000000000000000000450isaPBXFileReferencenamepropertyconfigurator.cpppath../src/main/cpp/propertyconfigurator.cppsourceTreeSOURCE_ROOT000000000000000000000451isaPBXFileReferencenamepropertyresourcebundle.cpppath../src/main/cpp/propertyresourcebundle.cppsourceTreeSOURCE_ROOT000000000000000000000452isaPBXFileReferencenamepropertysetter.cpppath../src/main/cpp/propertysetter.cppsourceTreeSOURCE_ROOT000000000000000000000453isaPBXFileReferencenamereader.cpppath../src/main/cpp/reader.cppsourceTreeSOURCE_ROOT000000000000000000000454isaPBXFileReferencenamerelativetimedateformat.cpppath../src/main/cpp/relativetimedateformat.cppsourceTreeSOURCE_ROOT000000000000000000000455isaPBXFileReferencenamerelativetimepatternconverter.cpppath../src/main/cpp/relativetimepatternconverter.cppsourceTreeSOURCE_ROOT000000000000000000000456isaPBXFileReferencenameresourcebundle.cpppath../src/main/cpp/resourcebundle.cppsourceTreeSOURCE_ROOT000000000000000000000457isaPBXFileReferencenamerollingfileappender.cpppath../src/main/cpp/rollingfileappender.cppsourceTreeSOURCE_ROOT000000000000000000000458isaPBXFileReferencenamerollingpolicy.cpppath../src/main/cpp/rollingpolicy.cppsourceTreeSOURCE_ROOT000000000000000000000459isaPBXFileReferencenamerollingpolicybase.cpppath../src/main/cpp/rollingpolicybase.cppsourceTreeSOURCE_ROOT00000000000000000000045aisaPBXFileReferencenamerolloverdescription.cpppath../src/main/cpp/rolloverdescription.cppsourceTreeSOURCE_ROOT00000000000000000000045bisaPBXFileReferencenamerootlogger.cpppath../src/main/cpp/rootlogger.cppsourceTreeSOURCE_ROOT00000000000000000000045cisaPBXFileReferencenameserversocket.cpppath../src/main/cpp/serversocket.cppsourceTreeSOURCE_ROOT00000000000000000000045disaPBXFileReferencenamesimpledateformat.cpppath../src/main/cpp/simpledateformat.cppsourceTreeSOURCE_ROOT00000000000000000000045eisaPBXFileReferencenamesimplelayout.cpppath../src/main/cpp/simplelayout.cppsourceTreeSOURCE_ROOT00000000000000000000045fisaPBXFileReferencenamesizebasedtriggeringpolicy.cpppath../src/main/cpp/sizebasedtriggeringpolicy.cppsourceTreeSOURCE_ROOT000000000000000000000460isaPBXFileReferencenamesmtpappender.cpppath../src/main/cpp/smtpappender.cppsourceTreeSOURCE_ROOT000000000000000000000461isaPBXFileReferencenamesocket.cpppath../src/main/cpp/socket.cppsourceTreeSOURCE_ROOT000000000000000000000462isaPBXFileReferencenamesocketappender.cpppath../src/main/cpp/socketappender.cppsourceTreeSOURCE_ROOT000000000000000000000463isaPBXFileReferencenamesocketappenderskeleton.cpppath../src/main/cpp/socketappenderskeleton.cppsourceTreeSOURCE_ROOT000000000000000000000464isaPBXFileReferencenamesockethubappender.cpppath../src/main/cpp/sockethubappender.cppsourceTreeSOURCE_ROOT000000000000000000000465isaPBXFileReferencenamesocketoutputstream.cpppath../src/main/cpp/socketoutputstream.cppsourceTreeSOURCE_ROOT000000000000000000000466isaPBXFileReferencenamestrftimedateformat.cpppath../src/main/cpp/strftimedateformat.cppsourceTreeSOURCE_ROOT000000000000000000000467isaPBXFileReferencenamestringhelper.cpppath../src/main/cpp/stringhelper.cppsourceTreeSOURCE_ROOT000000000000000000000468isaPBXFileReferencenamestringmatchfilter.cpppath../src/main/cpp/stringmatchfilter.cppsourceTreeSOURCE_ROOT000000000000000000000469isaPBXFileReferencenamestringtokenizer.cpppath../src/main/cpp/stringtokenizer.cppsourceTreeSOURCE_ROOT00000000000000000000046aisaPBXFileReferencenamesynchronized.cpppath../src/main/cpp/synchronized.cppsourceTreeSOURCE_ROOT00000000000000000000046bisaPBXFileReferencenamesyslogappender.cpppath../src/main/cpp/syslogappender.cppsourceTreeSOURCE_ROOT00000000000000000000046cisaPBXFileReferencenamesyslogwriter.cpppath../src/main/cpp/syslogwriter.cppsourceTreeSOURCE_ROOT00000000000000000000046disaPBXFileReferencenamesystem.cpppath../src/main/cpp/system.cppsourceTreeSOURCE_ROOT00000000000000000000046eisaPBXFileReferencenamesystemerrwriter.cpppath../src/main/cpp/systemerrwriter.cppsourceTreeSOURCE_ROOT00000000000000000000046fisaPBXFileReferencenamesystemoutwriter.cpppath../src/main/cpp/systemoutwriter.cppsourceTreeSOURCE_ROOT000000000000000000000470isaPBXFileReferencenametelnetappender.cpppath../src/main/cpp/telnetappender.cppsourceTreeSOURCE_ROOT000000000000000000000471isaPBXFileReferencenamethreadcxx.cpppath../src/main/cpp/threadcxx.cppsourceTreeSOURCE_ROOT000000000000000000000472isaPBXFileReferencenamethreadlocal.cpppath../src/main/cpp/threadlocal.cppsourceTreeSOURCE_ROOT000000000000000000000473isaPBXFileReferencenamethreadpatternconverter.cpppath../src/main/cpp/threadpatternconverter.cppsourceTreeSOURCE_ROOT000000000000000000000474isaPBXFileReferencenamethreadspecificdata.cpppath../src/main/cpp/threadspecificdata.cppsourceTreeSOURCE_ROOT000000000000000000000475isaPBXFileReferencenamethrowableinformationpatternconverter.cpppath../src/main/cpp/throwableinformationpatternconverter.cppsourceTreeSOURCE_ROOT000000000000000000000476isaPBXFileReferencenametimebasedrollingpolicy.cpppath../src/main/cpp/timebasedrollingpolicy.cppsourceTreeSOURCE_ROOT000000000000000000000477isaPBXFileReferencenametimezone.cpppath../src/main/cpp/timezone.cppsourceTreeSOURCE_ROOT000000000000000000000478isaPBXFileReferencenametranscoder.cpppath../src/main/cpp/transcoder.cppsourceTreeSOURCE_ROOT000000000000000000000479isaPBXFileReferencenametransform.cpppath../src/main/cpp/transform.cppsourceTreeSOURCE_ROOT00000000000000000000047aisaPBXFileReferencenametriggeringpolicy.cpppath../src/main/cpp/triggeringpolicy.cppsourceTreeSOURCE_ROOT00000000000000000000047bisaPBXFileReferencenamettcclayout.cpppath../src/main/cpp/ttcclayout.cppsourceTreeSOURCE_ROOT00000000000000000000047cisaPBXFileReferencenamewriter.cpppath../src/main/cpp/writer.cppsourceTreeSOURCE_ROOT00000000000000000000047disaPBXFileReferencenamewriterappender.cpppath../src/main/cpp/writerappender.cppsourceTreeSOURCE_ROOT00000000000000000000047eisaPBXFileReferencenamexmllayout.cpppath../src/main/cpp/xmllayout.cppsourceTreeSOURCE_ROOT00000000000000000000047fisaPBXFileReferencenamexmlsocketappender.cpppath../src/main/cpp/xmlsocketappender.cppsourceTreeSOURCE_ROOT000000000000000000000480isaPBXFileReferencenamezipcompressaction.cpppath../src/main/cpp/zipcompressaction.cppsourceTreeSOURCE_ROOT000000000000000000000481children0000000000000000000003ed0000000000000000000003ee0000000000000000000003ef0000000000000000000003f00000000000000000000003f10000000000000000000003f20000000000000000000003f30000000000000000000003f40000000000000000000003f50000000000000000000003f60000000000000000000003f70000000000000000000003f80000000000000000000003f90000000000000000000003fa0000000000000000000003fb0000000000000000000003fc0000000000000000000003fd0000000000000000000003fe0000000000000000000003ff00000000000000000000040000000000000000000000040100000000000000000000040200000000000000000000040300000000000000000000040400000000000000000000040500000000000000000000040600000000000000000000040700000000000000000000040800000000000000000000040900000000000000000000040a00000000000000000000040b00000000000000000000040c00000000000000000000040d00000000000000000000040e00000000000000000000040f00000000000000000000041000000000000000000000041100000000000000000000041200000000000000000000041300000000000000000000041400000000000000000000041500000000000000000000041600000000000000000000041700000000000000000000041800000000000000000000041900000000000000000000041a00000000000000000000041b00000000000000000000041c00000000000000000000041d00000000000000000000041e00000000000000000000041f00000000000000000000042000000000000000000000042100000000000000000000042200000000000000000000042300000000000000000000042400000000000000000000042500000000000000000000042600000000000000000000042700000000000000000000042800000000000000000000042900000000000000000000042a00000000000000000000042b00000000000000000000042c00000000000000000000042d00000000000000000000042e00000000000000000000042f00000000000000000000043000000000000000000000043100000000000000000000043200000000000000000000043300000000000000000000043400000000000000000000043500000000000000000000043600000000000000000000043700000000000000000000043800000000000000000000043900000000000000000000043a00000000000000000000043b00000000000000000000043c00000000000000000000043d00000000000000000000043e00000000000000000000043f00000000000000000000044000000000000000000000044100000000000000000000044200000000000000000000044300000000000000000000044400000000000000000000044500000000000000000000044600000000000000000000044700000000000000000000044800000000000000000000044900000000000000000000044a00000000000000000000044b00000000000000000000044c00000000000000000000044d00000000000000000000044e00000000000000000000044f00000000000000000000045000000000000000000000045100000000000000000000045200000000000000000000045300000000000000000000045400000000000000000000045500000000000000000000045600000000000000000000045700000000000000000000045800000000000000000000045900000000000000000000045a00000000000000000000045b00000000000000000000045c00000000000000000000045d00000000000000000000045e00000000000000000000045f00000000000000000000046000000000000000000000046100000000000000000000046200000000000000000000046300000000000000000000046400000000000000000000046500000000000000000000046600000000000000000000046700000000000000000000046800000000000000000000046900000000000000000000046a00000000000000000000046b00000000000000000000046c00000000000000000000046d00000000000000000000046e00000000000000000000046f00000000000000000000047000000000000000000000047100000000000000000000047200000000000000000000047300000000000000000000047400000000000000000000047500000000000000000000047600000000000000000000047700000000000000000000047800000000000000000000047900000000000000000000047a00000000000000000000047b00000000000000000000047c00000000000000000000047d00000000000000000000047e00000000000000000000047f000000000000000000000480isaPBXGroupnameSourcesourceTree<source>000000000000000000000482explicitFileTypecompiled.mach-o.dylibincludeInIndex0isaPBXFileReferencenameliblog4cxx.sopathliblog4cxx.sosourceTreeBUILD_PRODUCTS_DIR000000000000000000000483children000000000000000000000482isaPBXGroupnameProductssourceTree<source>000000000000000000000484childrenisaPBXGroupnameDocumentationsourceTree<source>000000000000000000000485children000000000000000000000481000000000000000000000484000000000000000000000483comments Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You 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. isaPBXGroupnamelog4cxxsourceTree<source>000000000000000000000486buildSettingsGCC_PREPROCESSOR_DEFINITIONSLOG4CXX$(inherited)GCC_WARN_ABOUT_RETURN_TYPEYESGCC_WARN_UNUSED_VARIABLEYESHEADER_SEARCH_PATHS../src/main/include/usr/include/apr-1${inherited)LIBRARY_SEARCH_PATHSOTHER_LDFLAGS-laprutil-1-lapr-1-lpthread-lstdc++PREBINDINGNOSDKROOT/Developer/SDKs/MacOSX10.5.sdkisaXCBuildConfigurationnameDebug000000000000000000000487buildSettingsGCC_PREPROCESSOR_DEFINITIONSLOG4CXX$(inherited)GCC_WARN_ABOUT_RETURN_TYPEYESGCC_WARN_UNUSED_VARIABLEYESHEADER_SEARCH_PATHS../src/main/include/usr/include/apr-1${inherited)LIBRARY_SEARCH_PATHSOTHER_LDFLAGS-laprutil-1-lapr-1-lpthread-lstdc++PREBINDINGNOSDKROOT/Developer/SDKs/MacOSX10.5.sdkisaXCBuildConfigurationnameRelease000000000000000000000488buildConfigurations000000000000000000000486000000000000000000000487defaultConfigurationIsVisible0defaultConfigurationNameDebugisaXCConfigurationList000000000000000000000489buildConfigurationList000000000000000000000488hasScannedForEncodings0isaPBXProjectmainGroup000000000000000000000485projectDirPathprojectRoot..targets00000000000000000000052400000000000000000000048abuildSettingsCOPY_PHASE_STRIPNOGCC_DYNAMIC_NO_PICNOGCC_ENABLE_FIX_AND_CONTINUEYESGCC_MODEL_TUNINGG5GCC_OPTIMIZATION_LEVEL0INSTALL_PATH$(HOME)/binPRODUCT_NAMElog4cxxZERO_LINKYESisaXCBuildConfigurationnameDebug00000000000000000000048bbuildSettingsARCHSppci386GCC_GENERATE_DEBUGGING_SYMBOLSNOGCC_MODEL_TUNINGG5INSTALL_PATH$(HOME)/binPRODUCT_NAMElog4cxxisaXCBuildConfigurationnameRelease00000000000000000000048cbuildConfigurations00000000000000000000048a00000000000000000000048bisaXCConfigurationList00000000000000000000048dfileRef0000000000000000000003edisaPBXBuildFilesettingsATTRIBUTES00000000000000000000048efileRef0000000000000000000003eeisaPBXBuildFilesettingsATTRIBUTES00000000000000000000048ffileRef0000000000000000000003efisaPBXBuildFilesettingsATTRIBUTES000000000000000000000490fileRef0000000000000000000003f0isaPBXBuildFilesettingsATTRIBUTES000000000000000000000491fileRef0000000000000000000003f1isaPBXBuildFilesettingsATTRIBUTES000000000000000000000492fileRef0000000000000000000003f2isaPBXBuildFilesettingsATTRIBUTES000000000000000000000493fileRef0000000000000000000003f3isaPBXBuildFilesettingsATTRIBUTES000000000000000000000494fileRef0000000000000000000003f4isaPBXBuildFilesettingsATTRIBUTES000000000000000000000495fileRef0000000000000000000003f5isaPBXBuildFilesettingsATTRIBUTES000000000000000000000496fileRef0000000000000000000003f6isaPBXBuildFilesettingsATTRIBUTES000000000000000000000497fileRef0000000000000000000003f7isaPBXBuildFilesettingsATTRIBUTES000000000000000000000498fileRef0000000000000000000003f8isaPBXBuildFilesettingsATTRIBUTES000000000000000000000499fileRef0000000000000000000003f9isaPBXBuildFilesettingsATTRIBUTES00000000000000000000049afileRef0000000000000000000003faisaPBXBuildFilesettingsATTRIBUTES00000000000000000000049bfileRef0000000000000000000003fbisaPBXBuildFilesettingsATTRIBUTES00000000000000000000049cfileRef0000000000000000000003fcisaPBXBuildFilesettingsATTRIBUTES00000000000000000000049dfileRef0000000000000000000003fdisaPBXBuildFilesettingsATTRIBUTES00000000000000000000049efileRef0000000000000000000003feisaPBXBuildFilesettingsATTRIBUTES00000000000000000000049ffileRef0000000000000000000003ffisaPBXBuildFilesettingsATTRIBUTES0000000000000000000004a0fileRef000000000000000000000400isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004a1fileRef000000000000000000000401isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004a2fileRef000000000000000000000402isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004a3fileRef000000000000000000000403isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004a4fileRef000000000000000000000404isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004a5fileRef000000000000000000000405isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004a6fileRef000000000000000000000406isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004a7fileRef000000000000000000000407isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004a8fileRef000000000000000000000408isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004a9fileRef000000000000000000000409isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004aafileRef00000000000000000000040aisaPBXBuildFilesettingsATTRIBUTES0000000000000000000004abfileRef00000000000000000000040bisaPBXBuildFilesettingsATTRIBUTES0000000000000000000004acfileRef00000000000000000000040cisaPBXBuildFilesettingsATTRIBUTES0000000000000000000004adfileRef00000000000000000000040disaPBXBuildFilesettingsATTRIBUTES0000000000000000000004aefileRef00000000000000000000040eisaPBXBuildFilesettingsATTRIBUTES0000000000000000000004affileRef00000000000000000000040fisaPBXBuildFilesettingsATTRIBUTES0000000000000000000004b0fileRef000000000000000000000410isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004b1fileRef000000000000000000000411isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004b2fileRef000000000000000000000412isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004b3fileRef000000000000000000000413isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004b4fileRef000000000000000000000414isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004b5fileRef000000000000000000000415isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004b6fileRef000000000000000000000416isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004b7fileRef000000000000000000000417isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004b8fileRef000000000000000000000418isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004b9fileRef000000000000000000000419isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004bafileRef00000000000000000000041aisaPBXBuildFilesettingsATTRIBUTES0000000000000000000004bbfileRef00000000000000000000041bisaPBXBuildFilesettingsATTRIBUTES0000000000000000000004bcfileRef00000000000000000000041cisaPBXBuildFilesettingsATTRIBUTES0000000000000000000004bdfileRef00000000000000000000041disaPBXBuildFilesettingsATTRIBUTES0000000000000000000004befileRef00000000000000000000041eisaPBXBuildFilesettingsATTRIBUTES0000000000000000000004bffileRef00000000000000000000041fisaPBXBuildFilesettingsATTRIBUTES0000000000000000000004c0fileRef000000000000000000000420isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004c1fileRef000000000000000000000421isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004c2fileRef000000000000000000000422isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004c3fileRef000000000000000000000423isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004c4fileRef000000000000000000000424isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004c5fileRef000000000000000000000425isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004c6fileRef000000000000000000000426isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004c7fileRef000000000000000000000427isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004c8fileRef000000000000000000000428isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004c9fileRef000000000000000000000429isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004cafileRef00000000000000000000042aisaPBXBuildFilesettingsATTRIBUTES0000000000000000000004cbfileRef00000000000000000000042bisaPBXBuildFilesettingsATTRIBUTES0000000000000000000004ccfileRef00000000000000000000042cisaPBXBuildFilesettingsATTRIBUTES0000000000000000000004cdfileRef00000000000000000000042disaPBXBuildFilesettingsATTRIBUTES0000000000000000000004cefileRef00000000000000000000042eisaPBXBuildFilesettingsATTRIBUTES0000000000000000000004cffileRef00000000000000000000042fisaPBXBuildFilesettingsATTRIBUTES0000000000000000000004d0fileRef000000000000000000000430isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004d1fileRef000000000000000000000431isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004d2fileRef000000000000000000000432isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004d3fileRef000000000000000000000433isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004d4fileRef000000000000000000000434isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004d5fileRef000000000000000000000435isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004d6fileRef000000000000000000000436isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004d7fileRef000000000000000000000437isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004d8fileRef000000000000000000000438isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004d9fileRef000000000000000000000439isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004dafileRef00000000000000000000043aisaPBXBuildFilesettingsATTRIBUTES0000000000000000000004dbfileRef00000000000000000000043bisaPBXBuildFilesettingsATTRIBUTES0000000000000000000004dcfileRef00000000000000000000043cisaPBXBuildFilesettingsATTRIBUTES0000000000000000000004ddfileRef00000000000000000000043disaPBXBuildFilesettingsATTRIBUTES0000000000000000000004defileRef00000000000000000000043eisaPBXBuildFilesettingsATTRIBUTES0000000000000000000004dffileRef00000000000000000000043fisaPBXBuildFilesettingsATTRIBUTES0000000000000000000004e0fileRef000000000000000000000440isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004e1fileRef000000000000000000000441isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004e2fileRef000000000000000000000442isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004e3fileRef000000000000000000000443isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004e4fileRef000000000000000000000444isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004e5fileRef000000000000000000000445isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004e6fileRef000000000000000000000446isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004e7fileRef000000000000000000000447isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004e8fileRef000000000000000000000448isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004e9fileRef000000000000000000000449isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004eafileRef00000000000000000000044aisaPBXBuildFilesettingsATTRIBUTES0000000000000000000004ebfileRef00000000000000000000044bisaPBXBuildFilesettingsATTRIBUTES0000000000000000000004ecfileRef00000000000000000000044cisaPBXBuildFilesettingsATTRIBUTES0000000000000000000004edfileRef00000000000000000000044disaPBXBuildFilesettingsATTRIBUTES0000000000000000000004eefileRef00000000000000000000044eisaPBXBuildFilesettingsATTRIBUTES0000000000000000000004effileRef00000000000000000000044fisaPBXBuildFilesettingsATTRIBUTES0000000000000000000004f0fileRef000000000000000000000450isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004f1fileRef000000000000000000000451isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004f2fileRef000000000000000000000452isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004f3fileRef000000000000000000000453isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004f4fileRef000000000000000000000454isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004f5fileRef000000000000000000000455isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004f6fileRef000000000000000000000456isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004f7fileRef000000000000000000000457isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004f8fileRef000000000000000000000458isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004f9fileRef000000000000000000000459isaPBXBuildFilesettingsATTRIBUTES0000000000000000000004fafileRef00000000000000000000045aisaPBXBuildFilesettingsATTRIBUTES0000000000000000000004fbfileRef00000000000000000000045bisaPBXBuildFilesettingsATTRIBUTES0000000000000000000004fcfileRef00000000000000000000045cisaPBXBuildFilesettingsATTRIBUTES0000000000000000000004fdfileRef00000000000000000000045disaPBXBuildFilesettingsATTRIBUTES0000000000000000000004fefileRef00000000000000000000045eisaPBXBuildFilesettingsATTRIBUTES0000000000000000000004fffileRef00000000000000000000045fisaPBXBuildFilesettingsATTRIBUTES000000000000000000000500fileRef000000000000000000000460isaPBXBuildFilesettingsATTRIBUTES000000000000000000000501fileRef000000000000000000000461isaPBXBuildFilesettingsATTRIBUTES000000000000000000000502fileRef000000000000000000000462isaPBXBuildFilesettingsATTRIBUTES000000000000000000000503fileRef000000000000000000000463isaPBXBuildFilesettingsATTRIBUTES000000000000000000000504fileRef000000000000000000000464isaPBXBuildFilesettingsATTRIBUTES000000000000000000000505fileRef000000000000000000000465isaPBXBuildFilesettingsATTRIBUTES000000000000000000000506fileRef000000000000000000000466isaPBXBuildFilesettingsATTRIBUTES000000000000000000000507fileRef000000000000000000000467isaPBXBuildFilesettingsATTRIBUTES000000000000000000000508fileRef000000000000000000000468isaPBXBuildFilesettingsATTRIBUTES000000000000000000000509fileRef000000000000000000000469isaPBXBuildFilesettingsATTRIBUTES00000000000000000000050afileRef00000000000000000000046aisaPBXBuildFilesettingsATTRIBUTES00000000000000000000050bfileRef00000000000000000000046bisaPBXBuildFilesettingsATTRIBUTES00000000000000000000050cfileRef00000000000000000000046cisaPBXBuildFilesettingsATTRIBUTES00000000000000000000050dfileRef00000000000000000000046disaPBXBuildFilesettingsATTRIBUTES00000000000000000000050efileRef00000000000000000000046eisaPBXBuildFilesettingsATTRIBUTES00000000000000000000050ffileRef00000000000000000000046fisaPBXBuildFilesettingsATTRIBUTES000000000000000000000510fileRef000000000000000000000470isaPBXBuildFilesettingsATTRIBUTES000000000000000000000511fileRef000000000000000000000471isaPBXBuildFilesettingsATTRIBUTES000000000000000000000512fileRef000000000000000000000472isaPBXBuildFilesettingsATTRIBUTES000000000000000000000513fileRef000000000000000000000473isaPBXBuildFilesettingsATTRIBUTES000000000000000000000514fileRef000000000000000000000474isaPBXBuildFilesettingsATTRIBUTES000000000000000000000515fileRef000000000000000000000475isaPBXBuildFilesettingsATTRIBUTES000000000000000000000516fileRef000000000000000000000476isaPBXBuildFilesettingsATTRIBUTES000000000000000000000517fileRef000000000000000000000477isaPBXBuildFilesettingsATTRIBUTES000000000000000000000518fileRef000000000000000000000478isaPBXBuildFilesettingsATTRIBUTES000000000000000000000519fileRef000000000000000000000479isaPBXBuildFilesettingsATTRIBUTES00000000000000000000051afileRef00000000000000000000047aisaPBXBuildFilesettingsATTRIBUTES00000000000000000000051bfileRef00000000000000000000047bisaPBXBuildFilesettingsATTRIBUTES00000000000000000000051cfileRef00000000000000000000047cisaPBXBuildFilesettingsATTRIBUTES00000000000000000000051dfileRef00000000000000000000047disaPBXBuildFilesettingsATTRIBUTES00000000000000000000051efileRef00000000000000000000047eisaPBXBuildFilesettingsATTRIBUTES00000000000000000000051ffileRef00000000000000000000047fisaPBXBuildFilesettingsATTRIBUTES000000000000000000000520fileRef000000000000000000000480isaPBXBuildFilesettingsATTRIBUTES000000000000000000000521buildActionMask2147483647files00000000000000000000048d00000000000000000000048e00000000000000000000048f00000000000000000000049000000000000000000000049100000000000000000000049200000000000000000000049300000000000000000000049400000000000000000000049500000000000000000000049600000000000000000000049700000000000000000000049800000000000000000000049900000000000000000000049a00000000000000000000049b00000000000000000000049c00000000000000000000049d00000000000000000000049e00000000000000000000049f0000000000000000000004a00000000000000000000004a10000000000000000000004a20000000000000000000004a30000000000000000000004a40000000000000000000004a50000000000000000000004a60000000000000000000004a70000000000000000000004a80000000000000000000004a90000000000000000000004aa0000000000000000000004ab0000000000000000000004ac0000000000000000000004ad0000000000000000000004ae0000000000000000000004af0000000000000000000004b00000000000000000000004b10000000000000000000004b20000000000000000000004b30000000000000000000004b40000000000000000000004b50000000000000000000004b60000000000000000000004b70000000000000000000004b80000000000000000000004b90000000000000000000004ba0000000000000000000004bb0000000000000000000004bc0000000000000000000004bd0000000000000000000004be0000000000000000000004bf0000000000000000000004c00000000000000000000004c10000000000000000000004c20000000000000000000004c30000000000000000000004c40000000000000000000004c50000000000000000000004c60000000000000000000004c70000000000000000000004c80000000000000000000004c90000000000000000000004ca0000000000000000000004cb0000000000000000000004cc0000000000000000000004cd0000000000000000000004ce0000000000000000000004cf0000000000000000000004d00000000000000000000004d10000000000000000000004d20000000000000000000004d30000000000000000000004d40000000000000000000004d50000000000000000000004d60000000000000000000004d70000000000000000000004d80000000000000000000004d90000000000000000000004da0000000000000000000004db0000000000000000000004dc0000000000000000000004dd0000000000000000000004de0000000000000000000004df0000000000000000000004e00000000000000000000004e10000000000000000000004e20000000000000000000004e30000000000000000000004e40000000000000000000004e50000000000000000000004e60000000000000000000004e70000000000000000000004e80000000000000000000004e90000000000000000000004ea0000000000000000000004eb0000000000000000000004ec0000000000000000000004ed0000000000000000000004ee0000000000000000000004ef0000000000000000000004f00000000000000000000004f10000000000000000000004f20000000000000000000004f30000000000000000000004f40000000000000000000004f50000000000000000000004f60000000000000000000004f70000000000000000000004f80000000000000000000004f90000000000000000000004fa0000000000000000000004fb0000000000000000000004fc0000000000000000000004fd0000000000000000000004fe0000000000000000000004ff00000000000000000000050000000000000000000000050100000000000000000000050200000000000000000000050300000000000000000000050400000000000000000000050500000000000000000000050600000000000000000000050700000000000000000000050800000000000000000000050900000000000000000000050a00000000000000000000050b00000000000000000000050c00000000000000000000050d00000000000000000000050e00000000000000000000050f00000000000000000000051000000000000000000000051100000000000000000000051200000000000000000000051300000000000000000000051400000000000000000000051500000000000000000000051600000000000000000000051700000000000000000000051800000000000000000000051900000000000000000000051a00000000000000000000051b00000000000000000000051c00000000000000000000051d00000000000000000000051e00000000000000000000051f000000000000000000000520isaPBXSourcesBuildPhaserunOnlyForDeploymentPostprocessing0000000000000000000000522buildActionMask8filesisaPBXFrameworksBuildPhaserunOnlyForDeploymentPostprocessing0000000000000000000000523buildActionMask8dstPath/usr/share/man/man1dstSubfolderSpec0filesisaPBXCopyFilesBuildPhaserunOnlyForDeploymentPostprocessing1000000000000000000000524buildConfigurationList00000000000000000000048cbuildPhases000000000000000000000521000000000000000000000522000000000000000000000523buildRulesdependenciesisaPBXNativeTargetnamelog4cxxproductInstallPath$(HOME)/binproductNamelog4cxxproductReference000000000000000000000482productTypecom.apple.product-type.library.dynamicrootObject000000000000000000000489apache-log4cxx-0.10.0/projects/testsuite.xcodeproj/project.pbxproj100644 0 0 166344 10774263472 22552 0ustar 0 0 archiveVersion1classesobjectVersion42objects000000000000000000000138isaPBXFileReferencenameabsolutedateandtimefilter.cpppath../src/test/cpp/util/absolutedateandtimefilter.cppsourceTreeSOURCE_ROOT000000000000000000000139isaPBXFileReferencenameabsolutetimedateformattestcase.cpppath../src/test/cpp/helpers/absolutetimedateformattestcase.cppsourceTreeSOURCE_ROOT00000000000000000000013aisaPBXFileReferencenameabsolutetimefilter.cpppath../src/test/cpp/util/absolutetimefilter.cppsourceTreeSOURCE_ROOT00000000000000000000013bisaPBXFileReferencenameabts.cpppath../src/test/cpp/abts.cppsourceTreeSOURCE_ROOT00000000000000000000013cisaPBXFileReferencenameappenderskeletontestcase.cpppath../src/test/cpp/appenderskeletontestcase.cppsourceTreeSOURCE_ROOT00000000000000000000013disaPBXFileReferencenameasyncappendertestcase.cpppath../src/test/cpp/asyncappendertestcase.cppsourceTreeSOURCE_ROOT00000000000000000000013eisaPBXFileReferencenamebinarycompare.cpppath../src/test/cpp/util/binarycompare.cppsourceTreeSOURCE_ROOT00000000000000000000013fisaPBXFileReferencenamecacheddateformattestcase.cpppath../src/test/cpp/helpers/cacheddateformattestcase.cppsourceTreeSOURCE_ROOT000000000000000000000140isaPBXFileReferencenamecharsetdecodertestcase.cpppath../src/test/cpp/helpers/charsetdecodertestcase.cppsourceTreeSOURCE_ROOT000000000000000000000141isaPBXFileReferencenamecharsetencodertestcase.cpppath../src/test/cpp/helpers/charsetencodertestcase.cppsourceTreeSOURCE_ROOT000000000000000000000142isaPBXFileReferencenamecompare.cpppath../src/test/cpp/util/compare.cppsourceTreeSOURCE_ROOT000000000000000000000143isaPBXFileReferencenameconsoleappendertestcase.cpppath../src/test/cpp/consoleappendertestcase.cppsourceTreeSOURCE_ROOT000000000000000000000144isaPBXFileReferencenamecontrolfilter.cpppath../src/test/cpp/util/controlfilter.cppsourceTreeSOURCE_ROOT000000000000000000000145isaPBXFileReferencenamecustomleveltestcase.cpppath../src/test/cpp/xml/customleveltestcase.cppsourceTreeSOURCE_ROOT000000000000000000000146isaPBXFileReferencenamecyclicbuffertestcase.cpppath../src/test/cpp/helpers/cyclicbuffertestcase.cppsourceTreeSOURCE_ROOT000000000000000000000147isaPBXFileReferencenamedatetimedateformattestcase.cpppath../src/test/cpp/helpers/datetimedateformattestcase.cppsourceTreeSOURCE_ROOT000000000000000000000148isaPBXFileReferencenamedomtestcase.cpppath../src/test/cpp/xml/domtestcase.cppsourceTreeSOURCE_ROOT000000000000000000000149isaPBXFileReferencenameencodingtest.cpppath../src/test/cpp/encodingtest.cppsourceTreeSOURCE_ROOT00000000000000000000014aisaPBXFileReferencenameerrorhandlertestcase.cpppath../src/test/cpp/varia/errorhandlertestcase.cppsourceTreeSOURCE_ROOT00000000000000000000014bisaPBXFileReferencenamefileappendertest.cpppath../src/test/cpp/fileappendertest.cppsourceTreeSOURCE_ROOT00000000000000000000014cisaPBXFileReferencenamefileappendertestcase.cpppath../src/test/cpp/fileappendertestcase.cppsourceTreeSOURCE_ROOT00000000000000000000014disaPBXFileReferencenamefilenamefilter.cpppath../src/test/cpp/util/filenamefilter.cppsourceTreeSOURCE_ROOT00000000000000000000014eisaPBXFileReferencenamefilenamepatterntestcase.cpppath../src/test/cpp/rolling/filenamepatterntestcase.cppsourceTreeSOURCE_ROOT00000000000000000000014fisaPBXFileReferencenamefiletestcase.cpppath../src/test/cpp/filetestcase.cppsourceTreeSOURCE_ROOT000000000000000000000150isaPBXFileReferencenamefilterbasedrollingtest.cpppath../src/test/cpp/rolling/filterbasedrollingtest.cppsourceTreeSOURCE_ROOT000000000000000000000151isaPBXFileReferencenamehierarchytest.cpppath../src/test/cpp/hierarchytest.cppsourceTreeSOURCE_ROOT000000000000000000000152isaPBXFileReferencenamehierarchythresholdtestcase.cpppath../src/test/cpp/hierarchythresholdtestcase.cppsourceTreeSOURCE_ROOT000000000000000000000153isaPBXFileReferencenameinetaddresstestcase.cpppath../src/test/cpp/helpers/inetaddresstestcase.cppsourceTreeSOURCE_ROOT000000000000000000000154isaPBXFileReferencenameiso8601dateformattestcase.cpppath../src/test/cpp/helpers/iso8601dateformattestcase.cppsourceTreeSOURCE_ROOT000000000000000000000155isaPBXFileReferencenameiso8601filter.cpppath../src/test/cpp/util/iso8601filter.cppsourceTreeSOURCE_ROOT000000000000000000000156isaPBXFileReferencenamel7dtestcase.cpppath../src/test/cpp/l7dtestcase.cppsourceTreeSOURCE_ROOT000000000000000000000157isaPBXFileReferencenamelevelmatchfiltertestcase.cpppath../src/test/cpp/varia/levelmatchfiltertestcase.cppsourceTreeSOURCE_ROOT000000000000000000000158isaPBXFileReferencenamelevelrangefiltertestcase.cpppath../src/test/cpp/varia/levelrangefiltertestcase.cppsourceTreeSOURCE_ROOT000000000000000000000159isaPBXFileReferencenameleveltestcase.cpppath../src/test/cpp/leveltestcase.cppsourceTreeSOURCE_ROOT00000000000000000000015aisaPBXFileReferencenamelinenumberfilter.cpppath../src/test/cpp/util/linenumberfilter.cppsourceTreeSOURCE_ROOT00000000000000000000015bisaPBXFileReferencenamelocalechanger.cpppath../src/test/cpp/helpers/localechanger.cppsourceTreeSOURCE_ROOT00000000000000000000015cisaPBXFileReferencenameloggertestcase.cpppath../src/test/cpp/loggertestcase.cppsourceTreeSOURCE_ROOT00000000000000000000015disaPBXFileReferencenameloggingeventtest.cpppath../src/test/cpp/spi/loggingeventtest.cppsourceTreeSOURCE_ROOT00000000000000000000015eisaPBXFileReferencenamelogunit.cpppath../src/test/cpp/logunit.cppsourceTreeSOURCE_ROOT00000000000000000000015fisaPBXFileReferencenamemanualrollingtest.cpppath../src/test/cpp/rolling/manualrollingtest.cppsourceTreeSOURCE_ROOT000000000000000000000160isaPBXFileReferencenamemessagebuffertest.cpppath../src/test/cpp/helpers/messagebuffertest.cppsourceTreeSOURCE_ROOT000000000000000000000161isaPBXFileReferencenameminimumtestcase.cpppath../src/test/cpp/minimumtestcase.cppsourceTreeSOURCE_ROOT000000000000000000000162isaPBXFileReferencenamendctestcase.cpppath../src/test/cpp/ndctestcase.cppsourceTreeSOURCE_ROOT000000000000000000000163isaPBXFileReferencenamenteventlogappendertestcase.cpppath../src/test/cpp/nt/nteventlogappendertestcase.cppsourceTreeSOURCE_ROOT000000000000000000000164isaPBXFileReferencenamenum343patternconverter.cpppath../src/test/cpp/pattern/num343patternconverter.cppsourceTreeSOURCE_ROOT000000000000000000000165isaPBXFileReferencenameobsoletedailyrollingfileappendertest.cpppath../src/test/cpp/rolling/obsoletedailyrollingfileappendertest.cppsourceTreeSOURCE_ROOT000000000000000000000166isaPBXFileReferencenameobsoleterollingfileappendertest.cpppath../src/test/cpp/rolling/obsoleterollingfileappendertest.cppsourceTreeSOURCE_ROOT000000000000000000000167isaPBXFileReferencenameodbcappendertestcase.cpppath../src/test/cpp/db/odbcappendertestcase.cppsourceTreeSOURCE_ROOT000000000000000000000168isaPBXFileReferencenameoptionconvertertestcase.cpppath../src/test/cpp/helpers/optionconvertertestcase.cppsourceTreeSOURCE_ROOT000000000000000000000169isaPBXFileReferencenamepatternlayouttest.cpppath../src/test/cpp/patternlayouttest.cppsourceTreeSOURCE_ROOT00000000000000000000016aisaPBXFileReferencenamepatternparsertestcase.cpppath../src/test/cpp/pattern/patternparsertestcase.cppsourceTreeSOURCE_ROOT00000000000000000000016bisaPBXFileReferencenamepropertiestestcase.cpppath../src/test/cpp/helpers/propertiestestcase.cppsourceTreeSOURCE_ROOT00000000000000000000016cisaPBXFileReferencenamepropertyconfiguratortest.cpppath../src/test/cpp/propertyconfiguratortest.cppsourceTreeSOURCE_ROOT00000000000000000000016disaPBXFileReferencenamerelativetimedateformattestcase.cpppath../src/test/cpp/helpers/relativetimedateformattestcase.cppsourceTreeSOURCE_ROOT00000000000000000000016eisaPBXFileReferencenamerelativetimefilter.cpppath../src/test/cpp/util/relativetimefilter.cppsourceTreeSOURCE_ROOT00000000000000000000016fisaPBXFileReferencenamerollingfileappendertestcase.cpppath../src/test/cpp/rollingfileappendertestcase.cppsourceTreeSOURCE_ROOT000000000000000000000170isaPBXFileReferencenameserializationtesthelper.cpppath../src/test/cpp/util/serializationtesthelper.cppsourceTreeSOURCE_ROOT000000000000000000000171isaPBXFileReferencenamesizebasedrollingtest.cpppath../src/test/cpp/rolling/sizebasedrollingtest.cppsourceTreeSOURCE_ROOT000000000000000000000172isaPBXFileReferencenamesmtpappendertestcase.cpppath../src/test/cpp/net/smtpappendertestcase.cppsourceTreeSOURCE_ROOT000000000000000000000173isaPBXFileReferencenamesocketappendertestcase.cpppath../src/test/cpp/net/socketappendertestcase.cppsourceTreeSOURCE_ROOT000000000000000000000174isaPBXFileReferencenamesockethubappendertestcase.cpppath../src/test/cpp/net/sockethubappendertestcase.cppsourceTreeSOURCE_ROOT000000000000000000000175isaPBXFileReferencenamesocketservertestcase.cpppath../src/test/cpp/net/socketservertestcase.cppsourceTreeSOURCE_ROOT000000000000000000000176isaPBXFileReferencenamestreamtestcase.cpppath../src/test/cpp/streamtestcase.cppsourceTreeSOURCE_ROOT000000000000000000000177isaPBXFileReferencenamestringhelpertestcase.cpppath../src/test/cpp/helpers/stringhelpertestcase.cppsourceTreeSOURCE_ROOT000000000000000000000178isaPBXFileReferencenamestringtokenizertestcase.cpppath../src/test/cpp/helpers/stringtokenizertestcase.cppsourceTreeSOURCE_ROOT000000000000000000000179isaPBXFileReferencenamesyslogappendertestcase.cpppath../src/test/cpp/net/syslogappendertestcase.cppsourceTreeSOURCE_ROOT00000000000000000000017aisaPBXFileReferencenamesyslogwritertest.cpppath../src/test/cpp/helpers/syslogwritertest.cppsourceTreeSOURCE_ROOT00000000000000000000017bisaPBXFileReferencenametelnetappendertestcase.cpppath../src/test/cpp/net/telnetappendertestcase.cppsourceTreeSOURCE_ROOT00000000000000000000017cisaPBXFileReferencenametestcase1.cpppath../src/test/cpp/defaultinit/testcase1.cppsourceTreeSOURCE_ROOT00000000000000000000017disaPBXFileReferencenametestcase2.cpppath../src/test/cpp/defaultinit/testcase2.cppsourceTreeSOURCE_ROOT00000000000000000000017eisaPBXFileReferencenametestcase3.cpppath../src/test/cpp/defaultinit/testcase3.cppsourceTreeSOURCE_ROOT00000000000000000000017fisaPBXFileReferencenametestcase4.cpppath../src/test/cpp/defaultinit/testcase4.cppsourceTreeSOURCE_ROOT000000000000000000000180isaPBXFileReferencenamethreadfilter.cpppath../src/test/cpp/util/threadfilter.cppsourceTreeSOURCE_ROOT000000000000000000000181isaPBXFileReferencenametimebasedrollingtest.cpppath../src/test/cpp/rolling/timebasedrollingtest.cppsourceTreeSOURCE_ROOT000000000000000000000182isaPBXFileReferencenametimezonetestcase.cpppath../src/test/cpp/helpers/timezonetestcase.cppsourceTreeSOURCE_ROOT000000000000000000000183isaPBXFileReferencenametranscodertestcase.cpppath../src/test/cpp/helpers/transcodertestcase.cppsourceTreeSOURCE_ROOT000000000000000000000184isaPBXFileReferencenametransformer.cpppath../src/test/cpp/util/transformer.cppsourceTreeSOURCE_ROOT000000000000000000000185isaPBXFileReferencenameutilfilter.cpppath../src/test/cpp/util/utilfilter.cppsourceTreeSOURCE_ROOT000000000000000000000186isaPBXFileReferencenamevectorappender.cpppath../src/test/cpp/vectorappender.cppsourceTreeSOURCE_ROOT000000000000000000000187isaPBXFileReferencenamewriterappendertestcase.cpppath../src/test/cpp/writerappendertestcase.cppsourceTreeSOURCE_ROOT000000000000000000000188isaPBXFileReferencenamexlevel.cpppath../src/test/cpp/xml/xlevel.cppsourceTreeSOURCE_ROOT000000000000000000000189isaPBXFileReferencenamexlogger.cpppath../src/test/cpp/customlogger/xlogger.cppsourceTreeSOURCE_ROOT00000000000000000000018aisaPBXFileReferencenamexloggertestcase.cpppath../src/test/cpp/customlogger/xloggertestcase.cppsourceTreeSOURCE_ROOT00000000000000000000018bisaPBXFileReferencenamexmlfilenamefilter.cpppath../src/test/cpp/util/xmlfilenamefilter.cppsourceTreeSOURCE_ROOT00000000000000000000018cisaPBXFileReferencenamexmllayouttest.cpppath../src/test/cpp/xml/xmllayouttest.cppsourceTreeSOURCE_ROOT00000000000000000000018disaPBXFileReferencenamexmllayouttestcase.cpppath../src/test/cpp/xml/xmllayouttestcase.cppsourceTreeSOURCE_ROOT00000000000000000000018eisaPBXFileReferencenamexmllineattributefilter.cpppath../src/test/cpp/util/xmllineattributefilter.cppsourceTreeSOURCE_ROOT00000000000000000000018fisaPBXFileReferencenamexmlsocketappendertestcase.cpppath../src/test/cpp/net/xmlsocketappendertestcase.cppsourceTreeSOURCE_ROOT000000000000000000000190isaPBXFileReferencenamexmlthreadfilter.cpppath../src/test/cpp/util/xmlthreadfilter.cppsourceTreeSOURCE_ROOT000000000000000000000191isaPBXFileReferencenamexmltimestampfilter.cpppath../src/test/cpp/util/xmltimestampfilter.cppsourceTreeSOURCE_ROOT000000000000000000000192children00000000000000000000013800000000000000000000013900000000000000000000013a00000000000000000000013b00000000000000000000013c00000000000000000000013d00000000000000000000013e00000000000000000000013f00000000000000000000014000000000000000000000014100000000000000000000014200000000000000000000014300000000000000000000014400000000000000000000014500000000000000000000014600000000000000000000014700000000000000000000014800000000000000000000014900000000000000000000014a00000000000000000000014b00000000000000000000014c00000000000000000000014d00000000000000000000014e00000000000000000000014f00000000000000000000015000000000000000000000015100000000000000000000015200000000000000000000015300000000000000000000015400000000000000000000015500000000000000000000015600000000000000000000015700000000000000000000015800000000000000000000015900000000000000000000015a00000000000000000000015b00000000000000000000015c00000000000000000000015d00000000000000000000015e00000000000000000000015f00000000000000000000016000000000000000000000016100000000000000000000016200000000000000000000016300000000000000000000016400000000000000000000016500000000000000000000016600000000000000000000016700000000000000000000016800000000000000000000016900000000000000000000016a00000000000000000000016b00000000000000000000016c00000000000000000000016d00000000000000000000016e00000000000000000000016f00000000000000000000017000000000000000000000017100000000000000000000017200000000000000000000017300000000000000000000017400000000000000000000017500000000000000000000017600000000000000000000017700000000000000000000017800000000000000000000017900000000000000000000017a00000000000000000000017b00000000000000000000017c00000000000000000000017d00000000000000000000017e00000000000000000000017f00000000000000000000018000000000000000000000018100000000000000000000018200000000000000000000018300000000000000000000018400000000000000000000018500000000000000000000018600000000000000000000018700000000000000000000018800000000000000000000018900000000000000000000018a00000000000000000000018b00000000000000000000018c00000000000000000000018d00000000000000000000018e00000000000000000000018f000000000000000000000190000000000000000000000191isaPBXGroupnameSourcesourceTree<source>000000000000000000000193explicitFileTypecompiled.mach-o.executableincludeInIndex0isaPBXFileReferencenametestsuitepathtestsuitesourceTreeBUILD_PRODUCTS_DIR000000000000000000000194children000000000000000000000193isaPBXGroupnameProductssourceTree<source>000000000000000000000195childrenisaPBXGroupnameDocumentationsourceTree<source>000000000000000000000196children00000000000000000000019200000000000000000000019500000000000000000000019400000000000000000000019bcomments Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You 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. isaPBXGroupnametestsuitesourceTree<source>000000000000000000000197buildSettingsGCC_WARN_ABOUT_RETURN_TYPEYESGCC_WARN_UNUSED_VARIABLEYESHEADER_SEARCH_PATHS../src/main/include/usr/include/apr-1${inherited)LIBRARY_SEARCH_PATHS..OTHER_LDFLAGS-laprutil-1-lapr-1-lpthread-lstdc++PREBINDINGNOSDKROOT/Developer/SDKs/MacOSX10.5.sdkisaXCBuildConfigurationnameDebug000000000000000000000198buildSettingsGCC_WARN_ABOUT_RETURN_TYPEYESGCC_WARN_UNUSED_VARIABLEYESHEADER_SEARCH_PATHS../src/main/include/usr/include/apr-1${inherited)LIBRARY_SEARCH_PATHS..OTHER_LDFLAGS-laprutil-1-lapr-1-lpthread-lstdc++PREBINDINGNOSDKROOT/Developer/SDKs/MacOSX10.5.sdkisaXCBuildConfigurationnameRelease000000000000000000000199buildConfigurations000000000000000000000197000000000000000000000198defaultConfigurationIsVisible0defaultConfigurationNameDebugisaXCConfigurationList00000000000000000000019aProjectReferencesProductGroup00000000000000000000019fProjectRef00000000000000000000019bbuildConfigurationList000000000000000000000199hasScannedForEncodings0isaPBXProjectmainGroup000000000000000000000196projectDirPathprojectRoot..targets00000000000000000000020000000000000000000000019bisaPBXFileReferencenamelog4cxx.xcodeprojpathlog4cxx.xcodeprojsourceTreeSOURCE_ROOT00000000000000000000019ccontainerPortal00000000000000000000019bisaPBXContainerItemProxyproxyType2remoteInfolog4cxx00000000000000000000019dfileTypecompiled.mach-o.dylibisaPBXReferenceProxypathlog4cxx.dylibremoteRef00000000000000000000019csourceTreeBUILT_PRODUCTS_DIR00000000000000000000019efileRef00000000000000000000019disaPBXBuildFilesettings00000000000000000000019fchildren00000000000000000000019disaPBXGroupnameProductssourceTree<group>0000000000000000000001a0buildSettingsCOPY_PHASE_STRIPNOGCC_DYNAMIC_NO_PICNOGCC_ENABLE_FIX_AND_CONTINUEYESGCC_MODEL_TUNINGG5GCC_OPTIMIZATION_LEVEL0INSTALL_PATH$(HOME)/binPRODUCT_NAMEtestsuiteZERO_LINKYESisaXCBuildConfigurationnameDebug0000000000000000000001a1buildSettingsARCHSppci386GCC_GENERATE_DEBUGGING_SYMBOLSNOGCC_MODEL_TUNINGG5INSTALL_PATH$(HOME)/binPRODUCT_NAMEtestsuiteisaXCBuildConfigurationnameRelease0000000000000000000001a2buildConfigurations0000000000000000000001a00000000000000000000001a1isaXCConfigurationList0000000000000000000001a3fileRef000000000000000000000138isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001a4fileRef000000000000000000000139isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001a5fileRef00000000000000000000013aisaPBXBuildFilesettingsATTRIBUTES0000000000000000000001a6fileRef00000000000000000000013bisaPBXBuildFilesettingsATTRIBUTES0000000000000000000001a7fileRef00000000000000000000013cisaPBXBuildFilesettingsATTRIBUTES0000000000000000000001a8fileRef00000000000000000000013disaPBXBuildFilesettingsATTRIBUTES0000000000000000000001a9fileRef00000000000000000000013eisaPBXBuildFilesettingsATTRIBUTES0000000000000000000001aafileRef00000000000000000000013fisaPBXBuildFilesettingsATTRIBUTES0000000000000000000001abfileRef000000000000000000000140isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001acfileRef000000000000000000000141isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001adfileRef000000000000000000000142isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001aefileRef000000000000000000000143isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001affileRef000000000000000000000144isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001b0fileRef000000000000000000000145isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001b1fileRef000000000000000000000146isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001b2fileRef000000000000000000000147isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001b3fileRef000000000000000000000148isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001b4fileRef000000000000000000000149isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001b5fileRef00000000000000000000014aisaPBXBuildFilesettingsATTRIBUTES0000000000000000000001b6fileRef00000000000000000000014bisaPBXBuildFilesettingsATTRIBUTES0000000000000000000001b7fileRef00000000000000000000014cisaPBXBuildFilesettingsATTRIBUTES0000000000000000000001b8fileRef00000000000000000000014disaPBXBuildFilesettingsATTRIBUTES0000000000000000000001b9fileRef00000000000000000000014eisaPBXBuildFilesettingsATTRIBUTES0000000000000000000001bafileRef00000000000000000000014fisaPBXBuildFilesettingsATTRIBUTES0000000000000000000001bbfileRef000000000000000000000150isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001bcfileRef000000000000000000000151isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001bdfileRef000000000000000000000152isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001befileRef000000000000000000000153isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001bffileRef000000000000000000000154isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001c0fileRef000000000000000000000155isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001c1fileRef000000000000000000000156isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001c2fileRef000000000000000000000157isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001c3fileRef000000000000000000000158isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001c4fileRef000000000000000000000159isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001c5fileRef00000000000000000000015aisaPBXBuildFilesettingsATTRIBUTES0000000000000000000001c6fileRef00000000000000000000015bisaPBXBuildFilesettingsATTRIBUTES0000000000000000000001c7fileRef00000000000000000000015cisaPBXBuildFilesettingsATTRIBUTES0000000000000000000001c8fileRef00000000000000000000015disaPBXBuildFilesettingsATTRIBUTES0000000000000000000001c9fileRef00000000000000000000015eisaPBXBuildFilesettingsATTRIBUTES0000000000000000000001cafileRef00000000000000000000015fisaPBXBuildFilesettingsATTRIBUTES0000000000000000000001cbfileRef000000000000000000000160isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001ccfileRef000000000000000000000161isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001cdfileRef000000000000000000000162isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001cefileRef000000000000000000000163isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001cffileRef000000000000000000000164isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001d0fileRef000000000000000000000165isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001d1fileRef000000000000000000000166isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001d2fileRef000000000000000000000167isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001d3fileRef000000000000000000000168isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001d4fileRef000000000000000000000169isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001d5fileRef00000000000000000000016aisaPBXBuildFilesettingsATTRIBUTES0000000000000000000001d6fileRef00000000000000000000016bisaPBXBuildFilesettingsATTRIBUTES0000000000000000000001d7fileRef00000000000000000000016cisaPBXBuildFilesettingsATTRIBUTES0000000000000000000001d8fileRef00000000000000000000016disaPBXBuildFilesettingsATTRIBUTES0000000000000000000001d9fileRef00000000000000000000016eisaPBXBuildFilesettingsATTRIBUTES0000000000000000000001dafileRef00000000000000000000016fisaPBXBuildFilesettingsATTRIBUTES0000000000000000000001dbfileRef000000000000000000000170isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001dcfileRef000000000000000000000171isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001ddfileRef000000000000000000000172isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001defileRef000000000000000000000173isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001dffileRef000000000000000000000174isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001e0fileRef000000000000000000000175isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001e1fileRef000000000000000000000176isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001e2fileRef000000000000000000000177isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001e3fileRef000000000000000000000178isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001e4fileRef000000000000000000000179isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001e5fileRef00000000000000000000017aisaPBXBuildFilesettingsATTRIBUTES0000000000000000000001e6fileRef00000000000000000000017bisaPBXBuildFilesettingsATTRIBUTES0000000000000000000001e7fileRef00000000000000000000017cisaPBXBuildFilesettingsATTRIBUTES0000000000000000000001e8fileRef00000000000000000000017disaPBXBuildFilesettingsATTRIBUTES0000000000000000000001e9fileRef00000000000000000000017eisaPBXBuildFilesettingsATTRIBUTES0000000000000000000001eafileRef00000000000000000000017fisaPBXBuildFilesettingsATTRIBUTES0000000000000000000001ebfileRef000000000000000000000180isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001ecfileRef000000000000000000000181isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001edfileRef000000000000000000000182isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001eefileRef000000000000000000000183isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001effileRef000000000000000000000184isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001f0fileRef000000000000000000000185isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001f1fileRef000000000000000000000186isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001f2fileRef000000000000000000000187isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001f3fileRef000000000000000000000188isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001f4fileRef000000000000000000000189isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001f5fileRef00000000000000000000018aisaPBXBuildFilesettingsATTRIBUTES0000000000000000000001f6fileRef00000000000000000000018bisaPBXBuildFilesettingsATTRIBUTES0000000000000000000001f7fileRef00000000000000000000018cisaPBXBuildFilesettingsATTRIBUTES0000000000000000000001f8fileRef00000000000000000000018disaPBXBuildFilesettingsATTRIBUTES0000000000000000000001f9fileRef00000000000000000000018eisaPBXBuildFilesettingsATTRIBUTES0000000000000000000001fafileRef00000000000000000000018fisaPBXBuildFilesettingsATTRIBUTES0000000000000000000001fbfileRef000000000000000000000190isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001fcfileRef000000000000000000000191isaPBXBuildFilesettingsATTRIBUTES0000000000000000000001fdbuildActionMask2147483647files0000000000000000000001a30000000000000000000001a40000000000000000000001a50000000000000000000001a60000000000000000000001a70000000000000000000001a80000000000000000000001a90000000000000000000001aa0000000000000000000001ab0000000000000000000001ac0000000000000000000001ad0000000000000000000001ae0000000000000000000001af0000000000000000000001b00000000000000000000001b10000000000000000000001b20000000000000000000001b30000000000000000000001b40000000000000000000001b50000000000000000000001b60000000000000000000001b70000000000000000000001b80000000000000000000001b90000000000000000000001ba0000000000000000000001bb0000000000000000000001bc0000000000000000000001bd0000000000000000000001be0000000000000000000001bf0000000000000000000001c00000000000000000000001c10000000000000000000001c20000000000000000000001c30000000000000000000001c40000000000000000000001c50000000000000000000001c60000000000000000000001c70000000000000000000001c80000000000000000000001c90000000000000000000001ca0000000000000000000001cb0000000000000000000001cc0000000000000000000001cd0000000000000000000001ce0000000000000000000001cf0000000000000000000001d00000000000000000000001d10000000000000000000001d20000000000000000000001d30000000000000000000001d40000000000000000000001d50000000000000000000001d60000000000000000000001d70000000000000000000001d80000000000000000000001d90000000000000000000001da0000000000000000000001db0000000000000000000001dc0000000000000000000001dd0000000000000000000001de0000000000000000000001df0000000000000000000001e00000000000000000000001e10000000000000000000001e20000000000000000000001e30000000000000000000001e40000000000000000000001e50000000000000000000001e60000000000000000000001e70000000000000000000001e80000000000000000000001e90000000000000000000001ea0000000000000000000001eb0000000000000000000001ec0000000000000000000001ed0000000000000000000001ee0000000000000000000001ef0000000000000000000001f00000000000000000000001f10000000000000000000001f20000000000000000000001f30000000000000000000001f40000000000000000000001f50000000000000000000001f60000000000000000000001f70000000000000000000001f80000000000000000000001f90000000000000000000001fa0000000000000000000001fb0000000000000000000001fcisaPBXSourcesBuildPhaserunOnlyForDeploymentPostprocessing00000000000000000000001febuildActionMask8files00000000000000000000019eisaPBXFrameworksBuildPhaserunOnlyForDeploymentPostprocessing00000000000000000000001ffbuildActionMask8dstPath/usr/share/man/man1dstSubfolderSpec0filesisaPBXCopyFilesBuildPhaserunOnlyForDeploymentPostprocessing1000000000000000000000200buildConfigurationList0000000000000000000001a2buildPhases0000000000000000000001fd0000000000000000000001fe0000000000000000000001ffbuildRulesdependenciesisaPBXNativeTargetnametestsuiteproductInstallPath$(HOME)/binproductNametestsuiteproductReference000000000000000000000193productTypecom.apple.product-type.toolrootObject00000000000000000000019aapache-log4cxx-0.10.0/projects/testsuite-standalone.xcodeproj/project.pbxproj100644 0 0 424502 10774263472 24671 0ustar 0 0 archiveVersion1classesobjectVersion42objects000000000000000000000201isaPBXFileReferencenameabsolutedateandtimefilter.cpppath../src/test/cpp/util/absolutedateandtimefilter.cppsourceTreeSOURCE_ROOT000000000000000000000202isaPBXFileReferencenameabsolutetimedateformattestcase.cpppath../src/test/cpp/helpers/absolutetimedateformattestcase.cppsourceTreeSOURCE_ROOT000000000000000000000203isaPBXFileReferencenameabsolutetimefilter.cpppath../src/test/cpp/util/absolutetimefilter.cppsourceTreeSOURCE_ROOT000000000000000000000204isaPBXFileReferencenameabts.cpppath../src/test/cpp/abts.cppsourceTreeSOURCE_ROOT000000000000000000000205isaPBXFileReferencenameaction.cpppath../src/main/cpp/action.cppsourceTreeSOURCE_ROOT000000000000000000000206isaPBXFileReferencenameappenderattachableimpl.cpppath../src/main/cpp/appenderattachableimpl.cppsourceTreeSOURCE_ROOT000000000000000000000207isaPBXFileReferencenameappenderskeleton.cpppath../src/main/cpp/appenderskeleton.cppsourceTreeSOURCE_ROOT000000000000000000000208isaPBXFileReferencenameappenderskeletontestcase.cpppath../src/test/cpp/appenderskeletontestcase.cppsourceTreeSOURCE_ROOT000000000000000000000209isaPBXFileReferencenameaprinitializer.cpppath../src/main/cpp/aprinitializer.cppsourceTreeSOURCE_ROOT00000000000000000000020aisaPBXFileReferencenameasyncappender.cpppath../src/main/cpp/asyncappender.cppsourceTreeSOURCE_ROOT00000000000000000000020bisaPBXFileReferencenameasyncappendertestcase.cpppath../src/test/cpp/asyncappendertestcase.cppsourceTreeSOURCE_ROOT00000000000000000000020cisaPBXFileReferencenamebasicconfigurator.cpppath../src/main/cpp/basicconfigurator.cppsourceTreeSOURCE_ROOT00000000000000000000020disaPBXFileReferencenamebinarycompare.cpppath../src/test/cpp/util/binarycompare.cppsourceTreeSOURCE_ROOT00000000000000000000020eisaPBXFileReferencenamebufferedwriter.cpppath../src/main/cpp/bufferedwriter.cppsourceTreeSOURCE_ROOT00000000000000000000020fisaPBXFileReferencenamebytearrayinputstream.cpppath../src/main/cpp/bytearrayinputstream.cppsourceTreeSOURCE_ROOT000000000000000000000210isaPBXFileReferencenamebytearrayoutputstream.cpppath../src/main/cpp/bytearrayoutputstream.cppsourceTreeSOURCE_ROOT000000000000000000000211isaPBXFileReferencenamebytebuffer.cpppath../src/main/cpp/bytebuffer.cppsourceTreeSOURCE_ROOT000000000000000000000212isaPBXFileReferencenamecacheddateformat.cpppath../src/main/cpp/cacheddateformat.cppsourceTreeSOURCE_ROOT000000000000000000000213isaPBXFileReferencenamecacheddateformattestcase.cpppath../src/test/cpp/helpers/cacheddateformattestcase.cppsourceTreeSOURCE_ROOT000000000000000000000214isaPBXFileReferencenamecharsetdecoder.cpppath../src/main/cpp/charsetdecoder.cppsourceTreeSOURCE_ROOT000000000000000000000215isaPBXFileReferencenamecharsetdecodertestcase.cpppath../src/test/cpp/helpers/charsetdecodertestcase.cppsourceTreeSOURCE_ROOT000000000000000000000216isaPBXFileReferencenamecharsetencoder.cpppath../src/main/cpp/charsetencoder.cppsourceTreeSOURCE_ROOT000000000000000000000217isaPBXFileReferencenamecharsetencodertestcase.cpppath../src/test/cpp/helpers/charsetencodertestcase.cppsourceTreeSOURCE_ROOT000000000000000000000218isaPBXFileReferencenameclass.cpppath../src/main/cpp/class.cppsourceTreeSOURCE_ROOT000000000000000000000219isaPBXFileReferencenameclassnamepatternconverter.cpppath../src/main/cpp/classnamepatternconverter.cppsourceTreeSOURCE_ROOT00000000000000000000021aisaPBXFileReferencenameclassregistration.cpppath../src/main/cpp/classregistration.cppsourceTreeSOURCE_ROOT00000000000000000000021bisaPBXFileReferencenamecompare.cpppath../src/test/cpp/util/compare.cppsourceTreeSOURCE_ROOT00000000000000000000021cisaPBXFileReferencenamecondition.cpppath../src/main/cpp/condition.cppsourceTreeSOURCE_ROOT00000000000000000000021disaPBXFileReferencenameconfigurator.cpppath../src/main/cpp/configurator.cppsourceTreeSOURCE_ROOT00000000000000000000021eisaPBXFileReferencenameconsoleappender.cpppath../src/main/cpp/consoleappender.cppsourceTreeSOURCE_ROOT00000000000000000000021fisaPBXFileReferencenameconsoleappendertestcase.cpppath../src/test/cpp/consoleappendertestcase.cppsourceTreeSOURCE_ROOT000000000000000000000220isaPBXFileReferencenamecontrolfilter.cpppath../src/test/cpp/util/controlfilter.cppsourceTreeSOURCE_ROOT000000000000000000000221isaPBXFileReferencenamecustomleveltestcase.cpppath../src/test/cpp/xml/customleveltestcase.cppsourceTreeSOURCE_ROOT000000000000000000000222isaPBXFileReferencenamecyclicbuffer.cpppath../src/main/cpp/cyclicbuffer.cppsourceTreeSOURCE_ROOT000000000000000000000223isaPBXFileReferencenamecyclicbuffertestcase.cpppath../src/test/cpp/helpers/cyclicbuffertestcase.cppsourceTreeSOURCE_ROOT000000000000000000000224isaPBXFileReferencenamedailyrollingfileappender.cpppath../src/main/cpp/dailyrollingfileappender.cppsourceTreeSOURCE_ROOT000000000000000000000225isaPBXFileReferencenamedatagrampacket.cpppath../src/main/cpp/datagrampacket.cppsourceTreeSOURCE_ROOT000000000000000000000226isaPBXFileReferencenamedatagramsocket.cpppath../src/main/cpp/datagramsocket.cppsourceTreeSOURCE_ROOT000000000000000000000227isaPBXFileReferencenamedate.cpppath../src/main/cpp/date.cppsourceTreeSOURCE_ROOT000000000000000000000228isaPBXFileReferencenamedateformat.cpppath../src/main/cpp/dateformat.cppsourceTreeSOURCE_ROOT000000000000000000000229isaPBXFileReferencenamedatelayout.cpppath../src/main/cpp/datelayout.cppsourceTreeSOURCE_ROOT00000000000000000000022aisaPBXFileReferencenamedatepatternconverter.cpppath../src/main/cpp/datepatternconverter.cppsourceTreeSOURCE_ROOT00000000000000000000022bisaPBXFileReferencenamedatetimedateformattestcase.cpppath../src/test/cpp/helpers/datetimedateformattestcase.cppsourceTreeSOURCE_ROOT00000000000000000000022cisaPBXFileReferencenamedefaultconfigurator.cpppath../src/main/cpp/defaultconfigurator.cppsourceTreeSOURCE_ROOT00000000000000000000022disaPBXFileReferencenamedefaultloggerfactory.cpppath../src/main/cpp/defaultloggerfactory.cppsourceTreeSOURCE_ROOT00000000000000000000022eisaPBXFileReferencenamedefaultrepositoryselector.cpppath../src/main/cpp/defaultrepositoryselector.cppsourceTreeSOURCE_ROOT00000000000000000000022fisaPBXFileReferencenamedomconfigurator.cpppath../src/main/cpp/domconfigurator.cppsourceTreeSOURCE_ROOT000000000000000000000230isaPBXFileReferencenamedomtestcase.cpppath../src/test/cpp/xml/domtestcase.cppsourceTreeSOURCE_ROOT000000000000000000000231isaPBXFileReferencenameencodingtest.cpppath../src/test/cpp/encodingtest.cppsourceTreeSOURCE_ROOT000000000000000000000232isaPBXFileReferencenameerrorhandlertestcase.cpppath../src/test/cpp/varia/errorhandlertestcase.cppsourceTreeSOURCE_ROOT000000000000000000000233isaPBXFileReferencenameexception.cpppath../src/main/cpp/exception.cppsourceTreeSOURCE_ROOT000000000000000000000234isaPBXFileReferencenamefallbackerrorhandler.cpppath../src/main/cpp/fallbackerrorhandler.cppsourceTreeSOURCE_ROOT000000000000000000000235isaPBXFileReferencenamefile.cpppath../src/main/cpp/file.cppsourceTreeSOURCE_ROOT000000000000000000000236isaPBXFileReferencenamefileappender.cpppath../src/main/cpp/fileappender.cppsourceTreeSOURCE_ROOT000000000000000000000237isaPBXFileReferencenamefileappendertest.cpppath../src/test/cpp/fileappendertest.cppsourceTreeSOURCE_ROOT000000000000000000000238isaPBXFileReferencenamefileappendertestcase.cpppath../src/test/cpp/fileappendertestcase.cppsourceTreeSOURCE_ROOT000000000000000000000239isaPBXFileReferencenamefiledatepatternconverter.cpppath../src/main/cpp/filedatepatternconverter.cppsourceTreeSOURCE_ROOT00000000000000000000023aisaPBXFileReferencenamefileinputstream.cpppath../src/main/cpp/fileinputstream.cppsourceTreeSOURCE_ROOT00000000000000000000023bisaPBXFileReferencenamefilelocationpatternconverter.cpppath../src/main/cpp/filelocationpatternconverter.cppsourceTreeSOURCE_ROOT00000000000000000000023cisaPBXFileReferencenamefilenamefilter.cpppath../src/test/cpp/util/filenamefilter.cppsourceTreeSOURCE_ROOT00000000000000000000023disaPBXFileReferencenamefilenamepatterntestcase.cpppath../src/test/cpp/rolling/filenamepatterntestcase.cppsourceTreeSOURCE_ROOT00000000000000000000023eisaPBXFileReferencenamefileoutputstream.cpppath../src/main/cpp/fileoutputstream.cppsourceTreeSOURCE_ROOT00000000000000000000023fisaPBXFileReferencenamefilerenameaction.cpppath../src/main/cpp/filerenameaction.cppsourceTreeSOURCE_ROOT000000000000000000000240isaPBXFileReferencenamefiletestcase.cpppath../src/test/cpp/filetestcase.cppsourceTreeSOURCE_ROOT000000000000000000000241isaPBXFileReferencenamefilewatchdog.cpppath../src/main/cpp/filewatchdog.cppsourceTreeSOURCE_ROOT000000000000000000000242isaPBXFileReferencenamefilter.cpppath../src/main/cpp/filter.cppsourceTreeSOURCE_ROOT000000000000000000000243isaPBXFileReferencenamefilterbasedrollingtest.cpppath../src/test/cpp/rolling/filterbasedrollingtest.cppsourceTreeSOURCE_ROOT000000000000000000000244isaPBXFileReferencenamefilterbasedtriggeringpolicy.cpppath../src/main/cpp/filterbasedtriggeringpolicy.cppsourceTreeSOURCE_ROOT000000000000000000000245isaPBXFileReferencenamefixedwindowrollingpolicy.cpppath../src/main/cpp/fixedwindowrollingpolicy.cppsourceTreeSOURCE_ROOT000000000000000000000246isaPBXFileReferencenameformattinginfo.cpppath../src/main/cpp/formattinginfo.cppsourceTreeSOURCE_ROOT000000000000000000000247isaPBXFileReferencenamefulllocationpatternconverter.cpppath../src/main/cpp/fulllocationpatternconverter.cppsourceTreeSOURCE_ROOT000000000000000000000248isaPBXFileReferencenamegzcompressaction.cpppath../src/main/cpp/gzcompressaction.cppsourceTreeSOURCE_ROOT000000000000000000000249isaPBXFileReferencenamehierarchy.cpppath../src/main/cpp/hierarchy.cppsourceTreeSOURCE_ROOT00000000000000000000024aisaPBXFileReferencenamehierarchytest.cpppath../src/test/cpp/hierarchytest.cppsourceTreeSOURCE_ROOT00000000000000000000024bisaPBXFileReferencenamehierarchythresholdtestcase.cpppath../src/test/cpp/hierarchythresholdtestcase.cppsourceTreeSOURCE_ROOT00000000000000000000024cisaPBXFileReferencenamehtmllayout.cpppath../src/main/cpp/htmllayout.cppsourceTreeSOURCE_ROOT00000000000000000000024disaPBXFileReferencenameinetaddress.cpppath../src/main/cpp/inetaddress.cppsourceTreeSOURCE_ROOT00000000000000000000024eisaPBXFileReferencenameinetaddresstestcase.cpppath../src/test/cpp/helpers/inetaddresstestcase.cppsourceTreeSOURCE_ROOT00000000000000000000024fisaPBXFileReferencenameinputstream.cpppath../src/main/cpp/inputstream.cppsourceTreeSOURCE_ROOT000000000000000000000250isaPBXFileReferencenameinputstreamreader.cpppath../src/main/cpp/inputstreamreader.cppsourceTreeSOURCE_ROOT000000000000000000000251isaPBXFileReferencenameinteger.cpppath../src/main/cpp/integer.cppsourceTreeSOURCE_ROOT000000000000000000000252isaPBXFileReferencenameintegerpatternconverter.cpppath../src/main/cpp/integerpatternconverter.cppsourceTreeSOURCE_ROOT000000000000000000000253isaPBXFileReferencenameiso8601dateformattestcase.cpppath../src/test/cpp/helpers/iso8601dateformattestcase.cppsourceTreeSOURCE_ROOT000000000000000000000254isaPBXFileReferencenameiso8601filter.cpppath../src/test/cpp/util/iso8601filter.cppsourceTreeSOURCE_ROOT000000000000000000000255isaPBXFileReferencenamel7dtestcase.cpppath../src/test/cpp/l7dtestcase.cppsourceTreeSOURCE_ROOT000000000000000000000256isaPBXFileReferencenamelayout.cpppath../src/main/cpp/layout.cppsourceTreeSOURCE_ROOT000000000000000000000257isaPBXFileReferencenamelevel.cpppath../src/main/cpp/level.cppsourceTreeSOURCE_ROOT000000000000000000000258isaPBXFileReferencenamelevelmatchfilter.cpppath../src/main/cpp/levelmatchfilter.cppsourceTreeSOURCE_ROOT000000000000000000000259isaPBXFileReferencenamelevelmatchfiltertestcase.cpppath../src/test/cpp/varia/levelmatchfiltertestcase.cppsourceTreeSOURCE_ROOT00000000000000000000025aisaPBXFileReferencenamelevelpatternconverter.cpppath../src/main/cpp/levelpatternconverter.cppsourceTreeSOURCE_ROOT00000000000000000000025bisaPBXFileReferencenamelevelrangefilter.cpppath../src/main/cpp/levelrangefilter.cppsourceTreeSOURCE_ROOT00000000000000000000025cisaPBXFileReferencenamelevelrangefiltertestcase.cpppath../src/test/cpp/varia/levelrangefiltertestcase.cppsourceTreeSOURCE_ROOT00000000000000000000025disaPBXFileReferencenameleveltestcase.cpppath../src/test/cpp/leveltestcase.cppsourceTreeSOURCE_ROOT00000000000000000000025eisaPBXFileReferencenamelinelocationpatternconverter.cpppath../src/main/cpp/linelocationpatternconverter.cppsourceTreeSOURCE_ROOT00000000000000000000025fisaPBXFileReferencenamelinenumberfilter.cpppath../src/test/cpp/util/linenumberfilter.cppsourceTreeSOURCE_ROOT000000000000000000000260isaPBXFileReferencenamelineseparatorpatternconverter.cpppath../src/main/cpp/lineseparatorpatternconverter.cppsourceTreeSOURCE_ROOT000000000000000000000261isaPBXFileReferencenameliteralpatternconverter.cpppath../src/main/cpp/literalpatternconverter.cppsourceTreeSOURCE_ROOT000000000000000000000262isaPBXFileReferencenameloader.cpppath../src/main/cpp/loader.cppsourceTreeSOURCE_ROOT000000000000000000000263isaPBXFileReferencenamelocale.cpppath../src/main/cpp/locale.cppsourceTreeSOURCE_ROOT000000000000000000000264isaPBXFileReferencenamelocalechanger.cpppath../src/test/cpp/helpers/localechanger.cppsourceTreeSOURCE_ROOT000000000000000000000265isaPBXFileReferencenamelocationinfo.cpppath../src/main/cpp/locationinfo.cppsourceTreeSOURCE_ROOT000000000000000000000266isaPBXFileReferencenamelogger.cpppath../src/main/cpp/logger.cppsourceTreeSOURCE_ROOT000000000000000000000267isaPBXFileReferencenameloggerpatternconverter.cpppath../src/main/cpp/loggerpatternconverter.cppsourceTreeSOURCE_ROOT000000000000000000000268isaPBXFileReferencenameloggertestcase.cpppath../src/test/cpp/loggertestcase.cppsourceTreeSOURCE_ROOT000000000000000000000269isaPBXFileReferencenameloggingevent.cpppath../src/main/cpp/loggingevent.cppsourceTreeSOURCE_ROOT00000000000000000000026aisaPBXFileReferencenameloggingeventpatternconverter.cpppath../src/main/cpp/loggingeventpatternconverter.cppsourceTreeSOURCE_ROOT00000000000000000000026bisaPBXFileReferencenameloggingeventtest.cpppath../src/test/cpp/spi/loggingeventtest.cppsourceTreeSOURCE_ROOT00000000000000000000026cisaPBXFileReferencenameloglog.cpppath../src/main/cpp/loglog.cppsourceTreeSOURCE_ROOT00000000000000000000026disaPBXFileReferencenamelogmanager.cpppath../src/main/cpp/logmanager.cppsourceTreeSOURCE_ROOT00000000000000000000026eisaPBXFileReferencenamelogstream.cpppath../src/main/cpp/logstream.cppsourceTreeSOURCE_ROOT00000000000000000000026fisaPBXFileReferencenamelogunit.cpppath../src/test/cpp/logunit.cppsourceTreeSOURCE_ROOT000000000000000000000270isaPBXFileReferencenamemanualrollingtest.cpppath../src/test/cpp/rolling/manualrollingtest.cppsourceTreeSOURCE_ROOT000000000000000000000271isaPBXFileReferencenamemanualtriggeringpolicy.cpppath../src/main/cpp/manualtriggeringpolicy.cppsourceTreeSOURCE_ROOT000000000000000000000272isaPBXFileReferencenamemdc.cpppath../src/main/cpp/mdc.cppsourceTreeSOURCE_ROOT000000000000000000000273isaPBXFileReferencenamemessagebuffer.cpppath../src/main/cpp/messagebuffer.cppsourceTreeSOURCE_ROOT000000000000000000000274isaPBXFileReferencenamemessagebuffertest.cpppath../src/test/cpp/helpers/messagebuffertest.cppsourceTreeSOURCE_ROOT000000000000000000000275isaPBXFileReferencenamemessagepatternconverter.cpppath../src/main/cpp/messagepatternconverter.cppsourceTreeSOURCE_ROOT000000000000000000000276isaPBXFileReferencenamemethodlocationpatternconverter.cpppath../src/main/cpp/methodlocationpatternconverter.cppsourceTreeSOURCE_ROOT000000000000000000000277isaPBXFileReferencenameminimumtestcase.cpppath../src/test/cpp/minimumtestcase.cppsourceTreeSOURCE_ROOT000000000000000000000278isaPBXFileReferencenamemutex.cpppath../src/main/cpp/mutex.cppsourceTreeSOURCE_ROOT000000000000000000000279isaPBXFileReferencenamenameabbreviator.cpppath../src/main/cpp/nameabbreviator.cppsourceTreeSOURCE_ROOT00000000000000000000027aisaPBXFileReferencenamenamepatternconverter.cpppath../src/main/cpp/namepatternconverter.cppsourceTreeSOURCE_ROOT00000000000000000000027bisaPBXFileReferencenamendc.cpppath../src/main/cpp/ndc.cppsourceTreeSOURCE_ROOT00000000000000000000027cisaPBXFileReferencenamendcpatternconverter.cpppath../src/main/cpp/ndcpatternconverter.cppsourceTreeSOURCE_ROOT00000000000000000000027disaPBXFileReferencenamendctestcase.cpppath../src/test/cpp/ndctestcase.cppsourceTreeSOURCE_ROOT00000000000000000000027eisaPBXFileReferencenamenteventlogappender.cpppath../src/main/cpp/nteventlogappender.cppsourceTreeSOURCE_ROOT00000000000000000000027fisaPBXFileReferencenamenteventlogappendertestcase.cpppath../src/test/cpp/nt/nteventlogappendertestcase.cppsourceTreeSOURCE_ROOT000000000000000000000280isaPBXFileReferencenamenum343patternconverter.cpppath../src/test/cpp/pattern/num343patternconverter.cppsourceTreeSOURCE_ROOT000000000000000000000281isaPBXFileReferencenameobjectimpl.cpppath../src/main/cpp/objectimpl.cppsourceTreeSOURCE_ROOT000000000000000000000282isaPBXFileReferencenameobjectoutputstream.cpppath../src/main/cpp/objectoutputstream.cppsourceTreeSOURCE_ROOT000000000000000000000283isaPBXFileReferencenameobjectptr.cpppath../src/main/cpp/objectptr.cppsourceTreeSOURCE_ROOT000000000000000000000284isaPBXFileReferencenameobsoletedailyrollingfileappendertest.cpppath../src/test/cpp/rolling/obsoletedailyrollingfileappendertest.cppsourceTreeSOURCE_ROOT000000000000000000000285isaPBXFileReferencenameobsoleterollingfileappender.cpppath../src/main/cpp/obsoleterollingfileappender.cppsourceTreeSOURCE_ROOT000000000000000000000286isaPBXFileReferencenameobsoleterollingfileappendertest.cpppath../src/test/cpp/rolling/obsoleterollingfileappendertest.cppsourceTreeSOURCE_ROOT000000000000000000000287isaPBXFileReferencenameodbcappender.cpppath../src/main/cpp/odbcappender.cppsourceTreeSOURCE_ROOT000000000000000000000288isaPBXFileReferencenameodbcappendertestcase.cpppath../src/test/cpp/db/odbcappendertestcase.cppsourceTreeSOURCE_ROOT000000000000000000000289isaPBXFileReferencenameonlyonceerrorhandler.cpppath../src/main/cpp/onlyonceerrorhandler.cppsourceTreeSOURCE_ROOT00000000000000000000028aisaPBXFileReferencenameoptionconverter.cpppath../src/main/cpp/optionconverter.cppsourceTreeSOURCE_ROOT00000000000000000000028bisaPBXFileReferencenameoptionconvertertestcase.cpppath../src/test/cpp/helpers/optionconvertertestcase.cppsourceTreeSOURCE_ROOT00000000000000000000028cisaPBXFileReferencenameoutputdebugstringappender.cpppath../src/main/cpp/outputdebugstringappender.cppsourceTreeSOURCE_ROOT00000000000000000000028disaPBXFileReferencenameoutputstream.cpppath../src/main/cpp/outputstream.cppsourceTreeSOURCE_ROOT00000000000000000000028eisaPBXFileReferencenameoutputstreamwriter.cpppath../src/main/cpp/outputstreamwriter.cppsourceTreeSOURCE_ROOT00000000000000000000028fisaPBXFileReferencenamepatternconverter.cpppath../src/main/cpp/patternconverter.cppsourceTreeSOURCE_ROOT000000000000000000000290isaPBXFileReferencenamepatternlayout.cpppath../src/main/cpp/patternlayout.cppsourceTreeSOURCE_ROOT000000000000000000000291isaPBXFileReferencenamepatternlayouttest.cpppath../src/test/cpp/patternlayouttest.cppsourceTreeSOURCE_ROOT000000000000000000000292isaPBXFileReferencenamepatternparser.cpppath../src/main/cpp/patternparser.cppsourceTreeSOURCE_ROOT000000000000000000000293isaPBXFileReferencenamepatternparsertestcase.cpppath../src/test/cpp/pattern/patternparsertestcase.cppsourceTreeSOURCE_ROOT000000000000000000000294isaPBXFileReferencenamepool.cpppath../src/main/cpp/pool.cppsourceTreeSOURCE_ROOT000000000000000000000295isaPBXFileReferencenameproperties.cpppath../src/main/cpp/properties.cppsourceTreeSOURCE_ROOT000000000000000000000296isaPBXFileReferencenamepropertiespatternconverter.cpppath../src/main/cpp/propertiespatternconverter.cppsourceTreeSOURCE_ROOT000000000000000000000297isaPBXFileReferencenamepropertiestestcase.cpppath../src/test/cpp/helpers/propertiestestcase.cppsourceTreeSOURCE_ROOT000000000000000000000298isaPBXFileReferencenamepropertyconfigurator.cpppath../src/main/cpp/propertyconfigurator.cppsourceTreeSOURCE_ROOT000000000000000000000299isaPBXFileReferencenamepropertyconfiguratortest.cpppath../src/test/cpp/propertyconfiguratortest.cppsourceTreeSOURCE_ROOT00000000000000000000029aisaPBXFileReferencenamepropertyresourcebundle.cpppath../src/main/cpp/propertyresourcebundle.cppsourceTreeSOURCE_ROOT00000000000000000000029bisaPBXFileReferencenamepropertysetter.cpppath../src/main/cpp/propertysetter.cppsourceTreeSOURCE_ROOT00000000000000000000029cisaPBXFileReferencenamereader.cpppath../src/main/cpp/reader.cppsourceTreeSOURCE_ROOT00000000000000000000029disaPBXFileReferencenamerelativetimedateformat.cpppath../src/main/cpp/relativetimedateformat.cppsourceTreeSOURCE_ROOT00000000000000000000029eisaPBXFileReferencenamerelativetimedateformattestcase.cpppath../src/test/cpp/helpers/relativetimedateformattestcase.cppsourceTreeSOURCE_ROOT00000000000000000000029fisaPBXFileReferencenamerelativetimefilter.cpppath../src/test/cpp/util/relativetimefilter.cppsourceTreeSOURCE_ROOT0000000000000000000002a0isaPBXFileReferencenamerelativetimepatternconverter.cpppath../src/main/cpp/relativetimepatternconverter.cppsourceTreeSOURCE_ROOT0000000000000000000002a1isaPBXFileReferencenameresourcebundle.cpppath../src/main/cpp/resourcebundle.cppsourceTreeSOURCE_ROOT0000000000000000000002a2isaPBXFileReferencenamerollingfileappender.cpppath../src/main/cpp/rollingfileappender.cppsourceTreeSOURCE_ROOT0000000000000000000002a3isaPBXFileReferencenamerollingfileappendertestcase.cpppath../src/test/cpp/rollingfileappendertestcase.cppsourceTreeSOURCE_ROOT0000000000000000000002a4isaPBXFileReferencenamerollingpolicy.cpppath../src/main/cpp/rollingpolicy.cppsourceTreeSOURCE_ROOT0000000000000000000002a5isaPBXFileReferencenamerollingpolicybase.cpppath../src/main/cpp/rollingpolicybase.cppsourceTreeSOURCE_ROOT0000000000000000000002a6isaPBXFileReferencenamerolloverdescription.cpppath../src/main/cpp/rolloverdescription.cppsourceTreeSOURCE_ROOT0000000000000000000002a7isaPBXFileReferencenamerootlogger.cpppath../src/main/cpp/rootlogger.cppsourceTreeSOURCE_ROOT0000000000000000000002a8isaPBXFileReferencenameserializationtesthelper.cpppath../src/test/cpp/util/serializationtesthelper.cppsourceTreeSOURCE_ROOT0000000000000000000002a9isaPBXFileReferencenameserversocket.cpppath../src/main/cpp/serversocket.cppsourceTreeSOURCE_ROOT0000000000000000000002aaisaPBXFileReferencenamesimpledateformat.cpppath../src/main/cpp/simpledateformat.cppsourceTreeSOURCE_ROOT0000000000000000000002abisaPBXFileReferencenamesimplelayout.cpppath../src/main/cpp/simplelayout.cppsourceTreeSOURCE_ROOT0000000000000000000002acisaPBXFileReferencenamesizebasedrollingtest.cpppath../src/test/cpp/rolling/sizebasedrollingtest.cppsourceTreeSOURCE_ROOT0000000000000000000002adisaPBXFileReferencenamesizebasedtriggeringpolicy.cpppath../src/main/cpp/sizebasedtriggeringpolicy.cppsourceTreeSOURCE_ROOT0000000000000000000002aeisaPBXFileReferencenamesmtpappender.cpppath../src/main/cpp/smtpappender.cppsourceTreeSOURCE_ROOT0000000000000000000002afisaPBXFileReferencenamesmtpappendertestcase.cpppath../src/test/cpp/net/smtpappendertestcase.cppsourceTreeSOURCE_ROOT0000000000000000000002b0isaPBXFileReferencenamesocket.cpppath../src/main/cpp/socket.cppsourceTreeSOURCE_ROOT0000000000000000000002b1isaPBXFileReferencenamesocketappender.cpppath../src/main/cpp/socketappender.cppsourceTreeSOURCE_ROOT0000000000000000000002b2isaPBXFileReferencenamesocketappenderskeleton.cpppath../src/main/cpp/socketappenderskeleton.cppsourceTreeSOURCE_ROOT0000000000000000000002b3isaPBXFileReferencenamesocketappendertestcase.cpppath../src/test/cpp/net/socketappendertestcase.cppsourceTreeSOURCE_ROOT0000000000000000000002b4isaPBXFileReferencenamesockethubappender.cpppath../src/main/cpp/sockethubappender.cppsourceTreeSOURCE_ROOT0000000000000000000002b5isaPBXFileReferencenamesockethubappendertestcase.cpppath../src/test/cpp/net/sockethubappendertestcase.cppsourceTreeSOURCE_ROOT0000000000000000000002b6isaPBXFileReferencenamesocketoutputstream.cpppath../src/main/cpp/socketoutputstream.cppsourceTreeSOURCE_ROOT0000000000000000000002b7isaPBXFileReferencenamesocketservertestcase.cpppath../src/test/cpp/net/socketservertestcase.cppsourceTreeSOURCE_ROOT0000000000000000000002b8isaPBXFileReferencenamestreamtestcase.cpppath../src/test/cpp/streamtestcase.cppsourceTreeSOURCE_ROOT0000000000000000000002b9isaPBXFileReferencenamestrftimedateformat.cpppath../src/main/cpp/strftimedateformat.cppsourceTreeSOURCE_ROOT0000000000000000000002baisaPBXFileReferencenamestringhelper.cpppath../src/main/cpp/stringhelper.cppsourceTreeSOURCE_ROOT0000000000000000000002bbisaPBXFileReferencenamestringhelpertestcase.cpppath../src/test/cpp/helpers/stringhelpertestcase.cppsourceTreeSOURCE_ROOT0000000000000000000002bcisaPBXFileReferencenamestringmatchfilter.cpppath../src/main/cpp/stringmatchfilter.cppsourceTreeSOURCE_ROOT0000000000000000000002bdisaPBXFileReferencenamestringtokenizer.cpppath../src/main/cpp/stringtokenizer.cppsourceTreeSOURCE_ROOT0000000000000000000002beisaPBXFileReferencenamestringtokenizertestcase.cpppath../src/test/cpp/helpers/stringtokenizertestcase.cppsourceTreeSOURCE_ROOT0000000000000000000002bfisaPBXFileReferencenamesynchronized.cpppath../src/main/cpp/synchronized.cppsourceTreeSOURCE_ROOT0000000000000000000002c0isaPBXFileReferencenamesyslogappender.cpppath../src/main/cpp/syslogappender.cppsourceTreeSOURCE_ROOT0000000000000000000002c1isaPBXFileReferencenamesyslogappendertestcase.cpppath../src/test/cpp/net/syslogappendertestcase.cppsourceTreeSOURCE_ROOT0000000000000000000002c2isaPBXFileReferencenamesyslogwriter.cpppath../src/main/cpp/syslogwriter.cppsourceTreeSOURCE_ROOT0000000000000000000002c3isaPBXFileReferencenamesyslogwritertest.cpppath../src/test/cpp/helpers/syslogwritertest.cppsourceTreeSOURCE_ROOT0000000000000000000002c4isaPBXFileReferencenamesystem.cpppath../src/main/cpp/system.cppsourceTreeSOURCE_ROOT0000000000000000000002c5isaPBXFileReferencenamesystemerrwriter.cpppath../src/main/cpp/systemerrwriter.cppsourceTreeSOURCE_ROOT0000000000000000000002c6isaPBXFileReferencenamesystemoutwriter.cpppath../src/main/cpp/systemoutwriter.cppsourceTreeSOURCE_ROOT0000000000000000000002c7isaPBXFileReferencenametelnetappender.cpppath../src/main/cpp/telnetappender.cppsourceTreeSOURCE_ROOT0000000000000000000002c8isaPBXFileReferencenametelnetappendertestcase.cpppath../src/test/cpp/net/telnetappendertestcase.cppsourceTreeSOURCE_ROOT0000000000000000000002c9isaPBXFileReferencenametestcase1.cpppath../src/test/cpp/defaultinit/testcase1.cppsourceTreeSOURCE_ROOT0000000000000000000002caisaPBXFileReferencenametestcase2.cpppath../src/test/cpp/defaultinit/testcase2.cppsourceTreeSOURCE_ROOT0000000000000000000002cbisaPBXFileReferencenametestcase3.cpppath../src/test/cpp/defaultinit/testcase3.cppsourceTreeSOURCE_ROOT0000000000000000000002ccisaPBXFileReferencenametestcase4.cpppath../src/test/cpp/defaultinit/testcase4.cppsourceTreeSOURCE_ROOT0000000000000000000002cdisaPBXFileReferencenamethreadcxx.cpppath../src/main/cpp/threadcxx.cppsourceTreeSOURCE_ROOT0000000000000000000002ceisaPBXFileReferencenamethreadfilter.cpppath../src/test/cpp/util/threadfilter.cppsourceTreeSOURCE_ROOT0000000000000000000002cfisaPBXFileReferencenamethreadlocal.cpppath../src/main/cpp/threadlocal.cppsourceTreeSOURCE_ROOT0000000000000000000002d0isaPBXFileReferencenamethreadpatternconverter.cpppath../src/main/cpp/threadpatternconverter.cppsourceTreeSOURCE_ROOT0000000000000000000002d1isaPBXFileReferencenamethreadspecificdata.cpppath../src/main/cpp/threadspecificdata.cppsourceTreeSOURCE_ROOT0000000000000000000002d2isaPBXFileReferencenamethrowableinformationpatternconverter.cpppath../src/main/cpp/throwableinformationpatternconverter.cppsourceTreeSOURCE_ROOT0000000000000000000002d3isaPBXFileReferencenametimebasedrollingpolicy.cpppath../src/main/cpp/timebasedrollingpolicy.cppsourceTreeSOURCE_ROOT0000000000000000000002d4isaPBXFileReferencenametimebasedrollingtest.cpppath../src/test/cpp/rolling/timebasedrollingtest.cppsourceTreeSOURCE_ROOT0000000000000000000002d5isaPBXFileReferencenametimezone.cpppath../src/main/cpp/timezone.cppsourceTreeSOURCE_ROOT0000000000000000000002d6isaPBXFileReferencenametimezonetestcase.cpppath../src/test/cpp/helpers/timezonetestcase.cppsourceTreeSOURCE_ROOT0000000000000000000002d7isaPBXFileReferencenametranscoder.cpppath../src/main/cpp/transcoder.cppsourceTreeSOURCE_ROOT0000000000000000000002d8isaPBXFileReferencenametranscodertestcase.cpppath../src/test/cpp/helpers/transcodertestcase.cppsourceTreeSOURCE_ROOT0000000000000000000002d9isaPBXFileReferencenametransform.cpppath../src/main/cpp/transform.cppsourceTreeSOURCE_ROOT0000000000000000000002daisaPBXFileReferencenametransformer.cpppath../src/test/cpp/util/transformer.cppsourceTreeSOURCE_ROOT0000000000000000000002dbisaPBXFileReferencenametriggeringpolicy.cpppath../src/main/cpp/triggeringpolicy.cppsourceTreeSOURCE_ROOT0000000000000000000002dcisaPBXFileReferencenamettcclayout.cpppath../src/main/cpp/ttcclayout.cppsourceTreeSOURCE_ROOT0000000000000000000002ddisaPBXFileReferencenameutilfilter.cpppath../src/test/cpp/util/utilfilter.cppsourceTreeSOURCE_ROOT0000000000000000000002deisaPBXFileReferencenamevectorappender.cpppath../src/test/cpp/vectorappender.cppsourceTreeSOURCE_ROOT0000000000000000000002dfisaPBXFileReferencenamewriter.cpppath../src/main/cpp/writer.cppsourceTreeSOURCE_ROOT0000000000000000000002e0isaPBXFileReferencenamewriterappender.cpppath../src/main/cpp/writerappender.cppsourceTreeSOURCE_ROOT0000000000000000000002e1isaPBXFileReferencenamewriterappendertestcase.cpppath../src/test/cpp/writerappendertestcase.cppsourceTreeSOURCE_ROOT0000000000000000000002e2isaPBXFileReferencenamexlevel.cpppath../src/test/cpp/xml/xlevel.cppsourceTreeSOURCE_ROOT0000000000000000000002e3isaPBXFileReferencenamexlogger.cpppath../src/test/cpp/customlogger/xlogger.cppsourceTreeSOURCE_ROOT0000000000000000000002e4isaPBXFileReferencenamexloggertestcase.cpppath../src/test/cpp/customlogger/xloggertestcase.cppsourceTreeSOURCE_ROOT0000000000000000000002e5isaPBXFileReferencenamexmlfilenamefilter.cpppath../src/test/cpp/util/xmlfilenamefilter.cppsourceTreeSOURCE_ROOT0000000000000000000002e6isaPBXFileReferencenamexmllayout.cpppath../src/main/cpp/xmllayout.cppsourceTreeSOURCE_ROOT0000000000000000000002e7isaPBXFileReferencenamexmllayouttest.cpppath../src/test/cpp/xml/xmllayouttest.cppsourceTreeSOURCE_ROOT0000000000000000000002e8isaPBXFileReferencenamexmllayouttestcase.cpppath../src/test/cpp/xml/xmllayouttestcase.cppsourceTreeSOURCE_ROOT0000000000000000000002e9isaPBXFileReferencenamexmllineattributefilter.cpppath../src/test/cpp/util/xmllineattributefilter.cppsourceTreeSOURCE_ROOT0000000000000000000002eaisaPBXFileReferencenamexmlsocketappender.cpppath../src/main/cpp/xmlsocketappender.cppsourceTreeSOURCE_ROOT0000000000000000000002ebisaPBXFileReferencenamexmlsocketappendertestcase.cpppath../src/test/cpp/net/xmlsocketappendertestcase.cppsourceTreeSOURCE_ROOT0000000000000000000002ecisaPBXFileReferencenamexmlthreadfilter.cpppath../src/test/cpp/util/xmlthreadfilter.cppsourceTreeSOURCE_ROOT0000000000000000000002edisaPBXFileReferencenamexmltimestampfilter.cpppath../src/test/cpp/util/xmltimestampfilter.cppsourceTreeSOURCE_ROOT0000000000000000000002eeisaPBXFileReferencenamezipcompressaction.cpppath../src/main/cpp/zipcompressaction.cppsourceTreeSOURCE_ROOT0000000000000000000002efchildren00000000000000000000020100000000000000000000020200000000000000000000020300000000000000000000020400000000000000000000020500000000000000000000020600000000000000000000020700000000000000000000020800000000000000000000020900000000000000000000020a00000000000000000000020b00000000000000000000020c00000000000000000000020d00000000000000000000020e00000000000000000000020f00000000000000000000021000000000000000000000021100000000000000000000021200000000000000000000021300000000000000000000021400000000000000000000021500000000000000000000021600000000000000000000021700000000000000000000021800000000000000000000021900000000000000000000021a00000000000000000000021b00000000000000000000021c00000000000000000000021d00000000000000000000021e00000000000000000000021f00000000000000000000022000000000000000000000022100000000000000000000022200000000000000000000022300000000000000000000022400000000000000000000022500000000000000000000022600000000000000000000022700000000000000000000022800000000000000000000022900000000000000000000022a00000000000000000000022b00000000000000000000022c00000000000000000000022d00000000000000000000022e00000000000000000000022f00000000000000000000023000000000000000000000023100000000000000000000023200000000000000000000023300000000000000000000023400000000000000000000023500000000000000000000023600000000000000000000023700000000000000000000023800000000000000000000023900000000000000000000023a00000000000000000000023b00000000000000000000023c00000000000000000000023d00000000000000000000023e00000000000000000000023f00000000000000000000024000000000000000000000024100000000000000000000024200000000000000000000024300000000000000000000024400000000000000000000024500000000000000000000024600000000000000000000024700000000000000000000024800000000000000000000024900000000000000000000024a00000000000000000000024b00000000000000000000024c00000000000000000000024d00000000000000000000024e00000000000000000000024f00000000000000000000025000000000000000000000025100000000000000000000025200000000000000000000025300000000000000000000025400000000000000000000025500000000000000000000025600000000000000000000025700000000000000000000025800000000000000000000025900000000000000000000025a00000000000000000000025b00000000000000000000025c00000000000000000000025d00000000000000000000025e00000000000000000000025f00000000000000000000026000000000000000000000026100000000000000000000026200000000000000000000026300000000000000000000026400000000000000000000026500000000000000000000026600000000000000000000026700000000000000000000026800000000000000000000026900000000000000000000026a00000000000000000000026b00000000000000000000026c00000000000000000000026d00000000000000000000026e00000000000000000000026f00000000000000000000027000000000000000000000027100000000000000000000027200000000000000000000027300000000000000000000027400000000000000000000027500000000000000000000027600000000000000000000027700000000000000000000027800000000000000000000027900000000000000000000027a00000000000000000000027b00000000000000000000027c00000000000000000000027d00000000000000000000027e00000000000000000000027f00000000000000000000028000000000000000000000028100000000000000000000028200000000000000000000028300000000000000000000028400000000000000000000028500000000000000000000028600000000000000000000028700000000000000000000028800000000000000000000028900000000000000000000028a00000000000000000000028b00000000000000000000028c00000000000000000000028d00000000000000000000028e00000000000000000000028f00000000000000000000029000000000000000000000029100000000000000000000029200000000000000000000029300000000000000000000029400000000000000000000029500000000000000000000029600000000000000000000029700000000000000000000029800000000000000000000029900000000000000000000029a00000000000000000000029b00000000000000000000029c00000000000000000000029d00000000000000000000029e00000000000000000000029f0000000000000000000002a00000000000000000000002a10000000000000000000002a20000000000000000000002a30000000000000000000002a40000000000000000000002a50000000000000000000002a60000000000000000000002a70000000000000000000002a80000000000000000000002a90000000000000000000002aa0000000000000000000002ab0000000000000000000002ac0000000000000000000002ad0000000000000000000002ae0000000000000000000002af0000000000000000000002b00000000000000000000002b10000000000000000000002b20000000000000000000002b30000000000000000000002b40000000000000000000002b50000000000000000000002b60000000000000000000002b70000000000000000000002b80000000000000000000002b90000000000000000000002ba0000000000000000000002bb0000000000000000000002bc0000000000000000000002bd0000000000000000000002be0000000000000000000002bf0000000000000000000002c00000000000000000000002c10000000000000000000002c20000000000000000000002c30000000000000000000002c40000000000000000000002c50000000000000000000002c60000000000000000000002c70000000000000000000002c80000000000000000000002c90000000000000000000002ca0000000000000000000002cb0000000000000000000002cc0000000000000000000002cd0000000000000000000002ce0000000000000000000002cf0000000000000000000002d00000000000000000000002d10000000000000000000002d20000000000000000000002d30000000000000000000002d40000000000000000000002d50000000000000000000002d60000000000000000000002d70000000000000000000002d80000000000000000000002d90000000000000000000002da0000000000000000000002db0000000000000000000002dc0000000000000000000002dd0000000000000000000002de0000000000000000000002df0000000000000000000002e00000000000000000000002e10000000000000000000002e20000000000000000000002e30000000000000000000002e40000000000000000000002e50000000000000000000002e60000000000000000000002e70000000000000000000002e80000000000000000000002e90000000000000000000002ea0000000000000000000002eb0000000000000000000002ec0000000000000000000002ed0000000000000000000002eeisaPBXGroupnameSourcesourceTree<source>0000000000000000000002f0explicitFileTypecompiled.mach-o.executableincludeInIndex0isaPBXFileReferencenametestsuite-standalonepathtestsuite-standalonesourceTreeBUILD_PRODUCTS_DIR0000000000000000000002f1children0000000000000000000002f0isaPBXGroupnameProductssourceTree<source>0000000000000000000002f2childrenisaPBXGroupnameDocumentationsourceTree<source>0000000000000000000002f3children0000000000000000000002ef0000000000000000000002f20000000000000000000002f1comments Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You 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. isaPBXGroupnametestsuite-standalonesourceTree<source>0000000000000000000002f4buildSettingsGCC_PREPROCESSOR_DEFINITIONSLOG4CXXLOG4CXX$(inherited)GCC_WARN_ABOUT_RETURN_TYPEYESGCC_WARN_UNUSED_VARIABLEYESHEADER_SEARCH_PATHS../src/main/include/usr/include/apr-1${inherited)LIBRARY_SEARCH_PATHSOTHER_LDFLAGS-laprutil-1-lapr-1-lpthread-lstdc++PREBINDINGNOSDKROOT/Developer/SDKs/MacOSX10.5.sdkisaXCBuildConfigurationnameDebug0000000000000000000002f5buildSettingsGCC_PREPROCESSOR_DEFINITIONSLOG4CXXLOG4CXX$(inherited)GCC_WARN_ABOUT_RETURN_TYPEYESGCC_WARN_UNUSED_VARIABLEYESHEADER_SEARCH_PATHS../src/main/include/usr/include/apr-1${inherited)LIBRARY_SEARCH_PATHSOTHER_LDFLAGS-laprutil-1-lapr-1-lpthread-lstdc++PREBINDINGNOSDKROOT/Developer/SDKs/MacOSX10.5.sdkisaXCBuildConfigurationnameRelease0000000000000000000002f6buildConfigurations0000000000000000000002f40000000000000000000002f5defaultConfigurationIsVisible0defaultConfigurationNameDebugisaXCConfigurationList0000000000000000000002f7buildConfigurationList0000000000000000000002f6hasScannedForEncodings0isaPBXProjectmainGroup0000000000000000000002f3projectDirPathprojectRoot..targets0000000000000000000003ec0000000000000000000002f8buildSettingsCOPY_PHASE_STRIPNOGCC_DYNAMIC_NO_PICNOGCC_ENABLE_FIX_AND_CONTINUEYESGCC_MODEL_TUNINGG5GCC_OPTIMIZATION_LEVEL0INSTALL_PATH$(HOME)/binPRODUCT_NAMEtestsuite-standaloneZERO_LINKYESisaXCBuildConfigurationnameDebug0000000000000000000002f9buildSettingsARCHSppci386GCC_GENERATE_DEBUGGING_SYMBOLSNOGCC_MODEL_TUNINGG5INSTALL_PATH$(HOME)/binPRODUCT_NAMEtestsuite-standaloneisaXCBuildConfigurationnameRelease0000000000000000000002fabuildConfigurations0000000000000000000002f80000000000000000000002f9isaXCConfigurationList0000000000000000000002fbfileRef000000000000000000000201isaPBXBuildFilesettingsATTRIBUTES0000000000000000000002fcfileRef000000000000000000000202isaPBXBuildFilesettingsATTRIBUTES0000000000000000000002fdfileRef000000000000000000000203isaPBXBuildFilesettingsATTRIBUTES0000000000000000000002fefileRef000000000000000000000204isaPBXBuildFilesettingsATTRIBUTES0000000000000000000002fffileRef000000000000000000000205isaPBXBuildFilesettingsATTRIBUTES000000000000000000000300fileRef000000000000000000000206isaPBXBuildFilesettingsATTRIBUTES000000000000000000000301fileRef000000000000000000000207isaPBXBuildFilesettingsATTRIBUTES000000000000000000000302fileRef000000000000000000000208isaPBXBuildFilesettingsATTRIBUTES000000000000000000000303fileRef000000000000000000000209isaPBXBuildFilesettingsATTRIBUTES000000000000000000000304fileRef00000000000000000000020aisaPBXBuildFilesettingsATTRIBUTES000000000000000000000305fileRef00000000000000000000020bisaPBXBuildFilesettingsATTRIBUTES000000000000000000000306fileRef00000000000000000000020cisaPBXBuildFilesettingsATTRIBUTES000000000000000000000307fileRef00000000000000000000020disaPBXBuildFilesettingsATTRIBUTES000000000000000000000308fileRef00000000000000000000020eisaPBXBuildFilesettingsATTRIBUTES000000000000000000000309fileRef00000000000000000000020fisaPBXBuildFilesettingsATTRIBUTES00000000000000000000030afileRef000000000000000000000210isaPBXBuildFilesettingsATTRIBUTES00000000000000000000030bfileRef000000000000000000000211isaPBXBuildFilesettingsATTRIBUTES00000000000000000000030cfileRef000000000000000000000212isaPBXBuildFilesettingsATTRIBUTES00000000000000000000030dfileRef000000000000000000000213isaPBXBuildFilesettingsATTRIBUTES00000000000000000000030efileRef000000000000000000000214isaPBXBuildFilesettingsATTRIBUTES00000000000000000000030ffileRef000000000000000000000215isaPBXBuildFilesettingsATTRIBUTES000000000000000000000310fileRef000000000000000000000216isaPBXBuildFilesettingsATTRIBUTES000000000000000000000311fileRef000000000000000000000217isaPBXBuildFilesettingsATTRIBUTES000000000000000000000312fileRef000000000000000000000218isaPBXBuildFilesettingsATTRIBUTES000000000000000000000313fileRef000000000000000000000219isaPBXBuildFilesettingsATTRIBUTES000000000000000000000314fileRef00000000000000000000021aisaPBXBuildFilesettingsATTRIBUTES000000000000000000000315fileRef00000000000000000000021bisaPBXBuildFilesettingsATTRIBUTES000000000000000000000316fileRef00000000000000000000021cisaPBXBuildFilesettingsATTRIBUTES000000000000000000000317fileRef00000000000000000000021disaPBXBuildFilesettingsATTRIBUTES000000000000000000000318fileRef00000000000000000000021eisaPBXBuildFilesettingsATTRIBUTES000000000000000000000319fileRef00000000000000000000021fisaPBXBuildFilesettingsATTRIBUTES00000000000000000000031afileRef000000000000000000000220isaPBXBuildFilesettingsATTRIBUTES00000000000000000000031bfileRef000000000000000000000221isaPBXBuildFilesettingsATTRIBUTES00000000000000000000031cfileRef000000000000000000000222isaPBXBuildFilesettingsATTRIBUTES00000000000000000000031dfileRef000000000000000000000223isaPBXBuildFilesettingsATTRIBUTES00000000000000000000031efileRef000000000000000000000224isaPBXBuildFilesettingsATTRIBUTES00000000000000000000031ffileRef000000000000000000000225isaPBXBuildFilesettingsATTRIBUTES000000000000000000000320fileRef000000000000000000000226isaPBXBuildFilesettingsATTRIBUTES000000000000000000000321fileRef000000000000000000000227isaPBXBuildFilesettingsATTRIBUTES000000000000000000000322fileRef000000000000000000000228isaPBXBuildFilesettingsATTRIBUTES000000000000000000000323fileRef000000000000000000000229isaPBXBuildFilesettingsATTRIBUTES000000000000000000000324fileRef00000000000000000000022aisaPBXBuildFilesettingsATTRIBUTES000000000000000000000325fileRef00000000000000000000022bisaPBXBuildFilesettingsATTRIBUTES000000000000000000000326fileRef00000000000000000000022cisaPBXBuildFilesettingsATTRIBUTES000000000000000000000327fileRef00000000000000000000022disaPBXBuildFilesettingsATTRIBUTES000000000000000000000328fileRef00000000000000000000022eisaPBXBuildFilesettingsATTRIBUTES000000000000000000000329fileRef00000000000000000000022fisaPBXBuildFilesettingsATTRIBUTES00000000000000000000032afileRef000000000000000000000230isaPBXBuildFilesettingsATTRIBUTES00000000000000000000032bfileRef000000000000000000000231isaPBXBuildFilesettingsATTRIBUTES00000000000000000000032cfileRef000000000000000000000232isaPBXBuildFilesettingsATTRIBUTES00000000000000000000032dfileRef000000000000000000000233isaPBXBuildFilesettingsATTRIBUTES00000000000000000000032efileRef000000000000000000000234isaPBXBuildFilesettingsATTRIBUTES00000000000000000000032ffileRef000000000000000000000235isaPBXBuildFilesettingsATTRIBUTES000000000000000000000330fileRef000000000000000000000236isaPBXBuildFilesettingsATTRIBUTES000000000000000000000331fileRef000000000000000000000237isaPBXBuildFilesettingsATTRIBUTES000000000000000000000332fileRef000000000000000000000238isaPBXBuildFilesettingsATTRIBUTES000000000000000000000333fileRef000000000000000000000239isaPBXBuildFilesettingsATTRIBUTES000000000000000000000334fileRef00000000000000000000023aisaPBXBuildFilesettingsATTRIBUTES000000000000000000000335fileRef00000000000000000000023bisaPBXBuildFilesettingsATTRIBUTES000000000000000000000336fileRef00000000000000000000023cisaPBXBuildFilesettingsATTRIBUTES000000000000000000000337fileRef00000000000000000000023disaPBXBuildFilesettingsATTRIBUTES000000000000000000000338fileRef00000000000000000000023eisaPBXBuildFilesettingsATTRIBUTES000000000000000000000339fileRef00000000000000000000023fisaPBXBuildFilesettingsATTRIBUTES00000000000000000000033afileRef000000000000000000000240isaPBXBuildFilesettingsATTRIBUTES00000000000000000000033bfileRef000000000000000000000241isaPBXBuildFilesettingsATTRIBUTES00000000000000000000033cfileRef000000000000000000000242isaPBXBuildFilesettingsATTRIBUTES00000000000000000000033dfileRef000000000000000000000243isaPBXBuildFilesettingsATTRIBUTES00000000000000000000033efileRef000000000000000000000244isaPBXBuildFilesettingsATTRIBUTES00000000000000000000033ffileRef000000000000000000000245isaPBXBuildFilesettingsATTRIBUTES000000000000000000000340fileRef000000000000000000000246isaPBXBuildFilesettingsATTRIBUTES000000000000000000000341fileRef000000000000000000000247isaPBXBuildFilesettingsATTRIBUTES000000000000000000000342fileRef000000000000000000000248isaPBXBuildFilesettingsATTRIBUTES000000000000000000000343fileRef000000000000000000000249isaPBXBuildFilesettingsATTRIBUTES000000000000000000000344fileRef00000000000000000000024aisaPBXBuildFilesettingsATTRIBUTES000000000000000000000345fileRef00000000000000000000024bisaPBXBuildFilesettingsATTRIBUTES000000000000000000000346fileRef00000000000000000000024cisaPBXBuildFilesettingsATTRIBUTES000000000000000000000347fileRef00000000000000000000024disaPBXBuildFilesettingsATTRIBUTES000000000000000000000348fileRef00000000000000000000024eisaPBXBuildFilesettingsATTRIBUTES000000000000000000000349fileRef00000000000000000000024fisaPBXBuildFilesettingsATTRIBUTES00000000000000000000034afileRef000000000000000000000250isaPBXBuildFilesettingsATTRIBUTES00000000000000000000034bfileRef000000000000000000000251isaPBXBuildFilesettingsATTRIBUTES00000000000000000000034cfileRef000000000000000000000252isaPBXBuildFilesettingsATTRIBUTES00000000000000000000034dfileRef000000000000000000000253isaPBXBuildFilesettingsATTRIBUTES00000000000000000000034efileRef000000000000000000000254isaPBXBuildFilesettingsATTRIBUTES00000000000000000000034ffileRef000000000000000000000255isaPBXBuildFilesettingsATTRIBUTES000000000000000000000350fileRef000000000000000000000256isaPBXBuildFilesettingsATTRIBUTES000000000000000000000351fileRef000000000000000000000257isaPBXBuildFilesettingsATTRIBUTES000000000000000000000352fileRef000000000000000000000258isaPBXBuildFilesettingsATTRIBUTES000000000000000000000353fileRef000000000000000000000259isaPBXBuildFilesettingsATTRIBUTES000000000000000000000354fileRef00000000000000000000025aisaPBXBuildFilesettingsATTRIBUTES000000000000000000000355fileRef00000000000000000000025bisaPBXBuildFilesettingsATTRIBUTES000000000000000000000356fileRef00000000000000000000025cisaPBXBuildFilesettingsATTRIBUTES000000000000000000000357fileRef00000000000000000000025disaPBXBuildFilesettingsATTRIBUTES000000000000000000000358fileRef00000000000000000000025eisaPBXBuildFilesettingsATTRIBUTES000000000000000000000359fileRef00000000000000000000025fisaPBXBuildFilesettingsATTRIBUTES00000000000000000000035afileRef000000000000000000000260isaPBXBuildFilesettingsATTRIBUTES00000000000000000000035bfileRef000000000000000000000261isaPBXBuildFilesettingsATTRIBUTES00000000000000000000035cfileRef000000000000000000000262isaPBXBuildFilesettingsATTRIBUTES00000000000000000000035dfileRef000000000000000000000263isaPBXBuildFilesettingsATTRIBUTES00000000000000000000035efileRef000000000000000000000264isaPBXBuildFilesettingsATTRIBUTES00000000000000000000035ffileRef000000000000000000000265isaPBXBuildFilesettingsATTRIBUTES000000000000000000000360fileRef000000000000000000000266isaPBXBuildFilesettingsATTRIBUTES000000000000000000000361fileRef000000000000000000000267isaPBXBuildFilesettingsATTRIBUTES000000000000000000000362fileRef000000000000000000000268isaPBXBuildFilesettingsATTRIBUTES000000000000000000000363fileRef000000000000000000000269isaPBXBuildFilesettingsATTRIBUTES000000000000000000000364fileRef00000000000000000000026aisaPBXBuildFilesettingsATTRIBUTES000000000000000000000365fileRef00000000000000000000026bisaPBXBuildFilesettingsATTRIBUTES000000000000000000000366fileRef00000000000000000000026cisaPBXBuildFilesettingsATTRIBUTES000000000000000000000367fileRef00000000000000000000026disaPBXBuildFilesettingsATTRIBUTES000000000000000000000368fileRef00000000000000000000026eisaPBXBuildFilesettingsATTRIBUTES000000000000000000000369fileRef00000000000000000000026fisaPBXBuildFilesettingsATTRIBUTES00000000000000000000036afileRef000000000000000000000270isaPBXBuildFilesettingsATTRIBUTES00000000000000000000036bfileRef000000000000000000000271isaPBXBuildFilesettingsATTRIBUTES00000000000000000000036cfileRef000000000000000000000272isaPBXBuildFilesettingsATTRIBUTES00000000000000000000036dfileRef000000000000000000000273isaPBXBuildFilesettingsATTRIBUTES00000000000000000000036efileRef000000000000000000000274isaPBXBuildFilesettingsATTRIBUTES00000000000000000000036ffileRef000000000000000000000275isaPBXBuildFilesettingsATTRIBUTES000000000000000000000370fileRef000000000000000000000276isaPBXBuildFilesettingsATTRIBUTES000000000000000000000371fileRef000000000000000000000277isaPBXBuildFilesettingsATTRIBUTES000000000000000000000372fileRef000000000000000000000278isaPBXBuildFilesettingsATTRIBUTES000000000000000000000373fileRef000000000000000000000279isaPBXBuildFilesettingsATTRIBUTES000000000000000000000374fileRef00000000000000000000027aisaPBXBuildFilesettingsATTRIBUTES000000000000000000000375fileRef00000000000000000000027bisaPBXBuildFilesettingsATTRIBUTES000000000000000000000376fileRef00000000000000000000027cisaPBXBuildFilesettingsATTRIBUTES000000000000000000000377fileRef00000000000000000000027disaPBXBuildFilesettingsATTRIBUTES000000000000000000000378fileRef00000000000000000000027eisaPBXBuildFilesettingsATTRIBUTES000000000000000000000379fileRef00000000000000000000027fisaPBXBuildFilesettingsATTRIBUTES00000000000000000000037afileRef000000000000000000000280isaPBXBuildFilesettingsATTRIBUTES00000000000000000000037bfileRef000000000000000000000281isaPBXBuildFilesettingsATTRIBUTES00000000000000000000037cfileRef000000000000000000000282isaPBXBuildFilesettingsATTRIBUTES00000000000000000000037dfileRef000000000000000000000283isaPBXBuildFilesettingsATTRIBUTES00000000000000000000037efileRef000000000000000000000284isaPBXBuildFilesettingsATTRIBUTES00000000000000000000037ffileRef000000000000000000000285isaPBXBuildFilesettingsATTRIBUTES000000000000000000000380fileRef000000000000000000000286isaPBXBuildFilesettingsATTRIBUTES000000000000000000000381fileRef000000000000000000000287isaPBXBuildFilesettingsATTRIBUTES000000000000000000000382fileRef000000000000000000000288isaPBXBuildFilesettingsATTRIBUTES000000000000000000000383fileRef000000000000000000000289isaPBXBuildFilesettingsATTRIBUTES000000000000000000000384fileRef00000000000000000000028aisaPBXBuildFilesettingsATTRIBUTES000000000000000000000385fileRef00000000000000000000028bisaPBXBuildFilesettingsATTRIBUTES000000000000000000000386fileRef00000000000000000000028cisaPBXBuildFilesettingsATTRIBUTES000000000000000000000387fileRef00000000000000000000028disaPBXBuildFilesettingsATTRIBUTES000000000000000000000388fileRef00000000000000000000028eisaPBXBuildFilesettingsATTRIBUTES000000000000000000000389fileRef00000000000000000000028fisaPBXBuildFilesettingsATTRIBUTES00000000000000000000038afileRef000000000000000000000290isaPBXBuildFilesettingsATTRIBUTES00000000000000000000038bfileRef000000000000000000000291isaPBXBuildFilesettingsATTRIBUTES00000000000000000000038cfileRef000000000000000000000292isaPBXBuildFilesettingsATTRIBUTES00000000000000000000038dfileRef000000000000000000000293isaPBXBuildFilesettingsATTRIBUTES00000000000000000000038efileRef000000000000000000000294isaPBXBuildFilesettingsATTRIBUTES00000000000000000000038ffileRef000000000000000000000295isaPBXBuildFilesettingsATTRIBUTES000000000000000000000390fileRef000000000000000000000296isaPBXBuildFilesettingsATTRIBUTES000000000000000000000391fileRef000000000000000000000297isaPBXBuildFilesettingsATTRIBUTES000000000000000000000392fileRef000000000000000000000298isaPBXBuildFilesettingsATTRIBUTES000000000000000000000393fileRef000000000000000000000299isaPBXBuildFilesettingsATTRIBUTES000000000000000000000394fileRef00000000000000000000029aisaPBXBuildFilesettingsATTRIBUTES000000000000000000000395fileRef00000000000000000000029bisaPBXBuildFilesettingsATTRIBUTES000000000000000000000396fileRef00000000000000000000029cisaPBXBuildFilesettingsATTRIBUTES000000000000000000000397fileRef00000000000000000000029disaPBXBuildFilesettingsATTRIBUTES000000000000000000000398fileRef00000000000000000000029eisaPBXBuildFilesettingsATTRIBUTES000000000000000000000399fileRef00000000000000000000029fisaPBXBuildFilesettingsATTRIBUTES00000000000000000000039afileRef0000000000000000000002a0isaPBXBuildFilesettingsATTRIBUTES00000000000000000000039bfileRef0000000000000000000002a1isaPBXBuildFilesettingsATTRIBUTES00000000000000000000039cfileRef0000000000000000000002a2isaPBXBuildFilesettingsATTRIBUTES00000000000000000000039dfileRef0000000000000000000002a3isaPBXBuildFilesettingsATTRIBUTES00000000000000000000039efileRef0000000000000000000002a4isaPBXBuildFilesettingsATTRIBUTES00000000000000000000039ffileRef0000000000000000000002a5isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003a0fileRef0000000000000000000002a6isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003a1fileRef0000000000000000000002a7isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003a2fileRef0000000000000000000002a8isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003a3fileRef0000000000000000000002a9isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003a4fileRef0000000000000000000002aaisaPBXBuildFilesettingsATTRIBUTES0000000000000000000003a5fileRef0000000000000000000002abisaPBXBuildFilesettingsATTRIBUTES0000000000000000000003a6fileRef0000000000000000000002acisaPBXBuildFilesettingsATTRIBUTES0000000000000000000003a7fileRef0000000000000000000002adisaPBXBuildFilesettingsATTRIBUTES0000000000000000000003a8fileRef0000000000000000000002aeisaPBXBuildFilesettingsATTRIBUTES0000000000000000000003a9fileRef0000000000000000000002afisaPBXBuildFilesettingsATTRIBUTES0000000000000000000003aafileRef0000000000000000000002b0isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003abfileRef0000000000000000000002b1isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003acfileRef0000000000000000000002b2isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003adfileRef0000000000000000000002b3isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003aefileRef0000000000000000000002b4isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003affileRef0000000000000000000002b5isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003b0fileRef0000000000000000000002b6isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003b1fileRef0000000000000000000002b7isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003b2fileRef0000000000000000000002b8isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003b3fileRef0000000000000000000002b9isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003b4fileRef0000000000000000000002baisaPBXBuildFilesettingsATTRIBUTES0000000000000000000003b5fileRef0000000000000000000002bbisaPBXBuildFilesettingsATTRIBUTES0000000000000000000003b6fileRef0000000000000000000002bcisaPBXBuildFilesettingsATTRIBUTES0000000000000000000003b7fileRef0000000000000000000002bdisaPBXBuildFilesettingsATTRIBUTES0000000000000000000003b8fileRef0000000000000000000002beisaPBXBuildFilesettingsATTRIBUTES0000000000000000000003b9fileRef0000000000000000000002bfisaPBXBuildFilesettingsATTRIBUTES0000000000000000000003bafileRef0000000000000000000002c0isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003bbfileRef0000000000000000000002c1isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003bcfileRef0000000000000000000002c2isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003bdfileRef0000000000000000000002c3isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003befileRef0000000000000000000002c4isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003bffileRef0000000000000000000002c5isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003c0fileRef0000000000000000000002c6isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003c1fileRef0000000000000000000002c7isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003c2fileRef0000000000000000000002c8isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003c3fileRef0000000000000000000002c9isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003c4fileRef0000000000000000000002caisaPBXBuildFilesettingsATTRIBUTES0000000000000000000003c5fileRef0000000000000000000002cbisaPBXBuildFilesettingsATTRIBUTES0000000000000000000003c6fileRef0000000000000000000002ccisaPBXBuildFilesettingsATTRIBUTES0000000000000000000003c7fileRef0000000000000000000002cdisaPBXBuildFilesettingsATTRIBUTES0000000000000000000003c8fileRef0000000000000000000002ceisaPBXBuildFilesettingsATTRIBUTES0000000000000000000003c9fileRef0000000000000000000002cfisaPBXBuildFilesettingsATTRIBUTES0000000000000000000003cafileRef0000000000000000000002d0isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003cbfileRef0000000000000000000002d1isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003ccfileRef0000000000000000000002d2isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003cdfileRef0000000000000000000002d3isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003cefileRef0000000000000000000002d4isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003cffileRef0000000000000000000002d5isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003d0fileRef0000000000000000000002d6isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003d1fileRef0000000000000000000002d7isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003d2fileRef0000000000000000000002d8isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003d3fileRef0000000000000000000002d9isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003d4fileRef0000000000000000000002daisaPBXBuildFilesettingsATTRIBUTES0000000000000000000003d5fileRef0000000000000000000002dbisaPBXBuildFilesettingsATTRIBUTES0000000000000000000003d6fileRef0000000000000000000002dcisaPBXBuildFilesettingsATTRIBUTES0000000000000000000003d7fileRef0000000000000000000002ddisaPBXBuildFilesettingsATTRIBUTES0000000000000000000003d8fileRef0000000000000000000002deisaPBXBuildFilesettingsATTRIBUTES0000000000000000000003d9fileRef0000000000000000000002dfisaPBXBuildFilesettingsATTRIBUTES0000000000000000000003dafileRef0000000000000000000002e0isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003dbfileRef0000000000000000000002e1isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003dcfileRef0000000000000000000002e2isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003ddfileRef0000000000000000000002e3isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003defileRef0000000000000000000002e4isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003dffileRef0000000000000000000002e5isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003e0fileRef0000000000000000000002e6isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003e1fileRef0000000000000000000002e7isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003e2fileRef0000000000000000000002e8isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003e3fileRef0000000000000000000002e9isaPBXBuildFilesettingsATTRIBUTES0000000000000000000003e4fileRef0000000000000000000002eaisaPBXBuildFilesettingsATTRIBUTES0000000000000000000003e5fileRef0000000000000000000002ebisaPBXBuildFilesettingsATTRIBUTES0000000000000000000003e6fileRef0000000000000000000002ecisaPBXBuildFilesettingsATTRIBUTES0000000000000000000003e7fileRef0000000000000000000002edisaPBXBuildFilesettingsATTRIBUTES0000000000000000000003e8fileRef0000000000000000000002eeisaPBXBuildFilesettingsATTRIBUTES0000000000000000000003e9buildActionMask2147483647files0000000000000000000002fb0000000000000000000002fc0000000000000000000002fd0000000000000000000002fe0000000000000000000002ff00000000000000000000030000000000000000000000030100000000000000000000030200000000000000000000030300000000000000000000030400000000000000000000030500000000000000000000030600000000000000000000030700000000000000000000030800000000000000000000030900000000000000000000030a00000000000000000000030b00000000000000000000030c00000000000000000000030d00000000000000000000030e00000000000000000000030f00000000000000000000031000000000000000000000031100000000000000000000031200000000000000000000031300000000000000000000031400000000000000000000031500000000000000000000031600000000000000000000031700000000000000000000031800000000000000000000031900000000000000000000031a00000000000000000000031b00000000000000000000031c00000000000000000000031d00000000000000000000031e00000000000000000000031f00000000000000000000032000000000000000000000032100000000000000000000032200000000000000000000032300000000000000000000032400000000000000000000032500000000000000000000032600000000000000000000032700000000000000000000032800000000000000000000032900000000000000000000032a00000000000000000000032b00000000000000000000032c00000000000000000000032d00000000000000000000032e00000000000000000000032f00000000000000000000033000000000000000000000033100000000000000000000033200000000000000000000033300000000000000000000033400000000000000000000033500000000000000000000033600000000000000000000033700000000000000000000033800000000000000000000033900000000000000000000033a00000000000000000000033b00000000000000000000033c00000000000000000000033d00000000000000000000033e00000000000000000000033f00000000000000000000034000000000000000000000034100000000000000000000034200000000000000000000034300000000000000000000034400000000000000000000034500000000000000000000034600000000000000000000034700000000000000000000034800000000000000000000034900000000000000000000034a00000000000000000000034b00000000000000000000034c00000000000000000000034d00000000000000000000034e00000000000000000000034f00000000000000000000035000000000000000000000035100000000000000000000035200000000000000000000035300000000000000000000035400000000000000000000035500000000000000000000035600000000000000000000035700000000000000000000035800000000000000000000035900000000000000000000035a00000000000000000000035b00000000000000000000035c00000000000000000000035d00000000000000000000035e00000000000000000000035f00000000000000000000036000000000000000000000036100000000000000000000036200000000000000000000036300000000000000000000036400000000000000000000036500000000000000000000036600000000000000000000036700000000000000000000036800000000000000000000036900000000000000000000036a00000000000000000000036b00000000000000000000036c00000000000000000000036d00000000000000000000036e00000000000000000000036f00000000000000000000037000000000000000000000037100000000000000000000037200000000000000000000037300000000000000000000037400000000000000000000037500000000000000000000037600000000000000000000037700000000000000000000037800000000000000000000037900000000000000000000037a00000000000000000000037b00000000000000000000037c00000000000000000000037d00000000000000000000037e00000000000000000000037f00000000000000000000038000000000000000000000038100000000000000000000038200000000000000000000038300000000000000000000038400000000000000000000038500000000000000000000038600000000000000000000038700000000000000000000038800000000000000000000038900000000000000000000038a00000000000000000000038b00000000000000000000038c00000000000000000000038d00000000000000000000038e00000000000000000000038f00000000000000000000039000000000000000000000039100000000000000000000039200000000000000000000039300000000000000000000039400000000000000000000039500000000000000000000039600000000000000000000039700000000000000000000039800000000000000000000039900000000000000000000039a00000000000000000000039b00000000000000000000039c00000000000000000000039d00000000000000000000039e00000000000000000000039f0000000000000000000003a00000000000000000000003a10000000000000000000003a20000000000000000000003a30000000000000000000003a40000000000000000000003a50000000000000000000003a60000000000000000000003a70000000000000000000003a80000000000000000000003a90000000000000000000003aa0000000000000000000003ab0000000000000000000003ac0000000000000000000003ad0000000000000000000003ae0000000000000000000003af0000000000000000000003b00000000000000000000003b10000000000000000000003b20000000000000000000003b30000000000000000000003b40000000000000000000003b50000000000000000000003b60000000000000000000003b70000000000000000000003b80000000000000000000003b90000000000000000000003ba0000000000000000000003bb0000000000000000000003bc0000000000000000000003bd0000000000000000000003be0000000000000000000003bf0000000000000000000003c00000000000000000000003c10000000000000000000003c20000000000000000000003c30000000000000000000003c40000000000000000000003c50000000000000000000003c60000000000000000000003c70000000000000000000003c80000000000000000000003c90000000000000000000003ca0000000000000000000003cb0000000000000000000003cc0000000000000000000003cd0000000000000000000003ce0000000000000000000003cf0000000000000000000003d00000000000000000000003d10000000000000000000003d20000000000000000000003d30000000000000000000003d40000000000000000000003d50000000000000000000003d60000000000000000000003d70000000000000000000003d80000000000000000000003d90000000000000000000003da0000000000000000000003db0000000000000000000003dc0000000000000000000003dd0000000000000000000003de0000000000000000000003df0000000000000000000003e00000000000000000000003e10000000000000000000003e20000000000000000000003e30000000000000000000003e40000000000000000000003e50000000000000000000003e60000000000000000000003e70000000000000000000003e8isaPBXSourcesBuildPhaserunOnlyForDeploymentPostprocessing00000000000000000000003eabuildActionMask8filesisaPBXFrameworksBuildPhaserunOnlyForDeploymentPostprocessing00000000000000000000003ebbuildActionMask8dstPath/usr/share/man/man1dstSubfolderSpec0filesisaPBXCopyFilesBuildPhaserunOnlyForDeploymentPostprocessing10000000000000000000003ecbuildConfigurationList0000000000000000000002fabuildPhases0000000000000000000003e90000000000000000000003ea0000000000000000000003ebbuildRulesdependenciesisaPBXNativeTargetnametestsuite-standaloneproductInstallPath$(HOME)/binproductNametestsuite-standaloneproductReference0000000000000000000002f0productTypecom.apple.product-type.toolrootObject0000000000000000000002f7apache-log4cxx-0.10.0/projects/delayedloop.xcodeproj/project.pbxproj100644 0 0 24122 10774263472 22765 0ustar 0 0 archiveVersion1classesobjectVersion42objects000000000000000000000525isaPBXFileReferencenamedelayedloop.cpppath../src/examples/cpp/delayedloop.cppsourceTreeSOURCE_ROOT000000000000000000000526children000000000000000000000525isaPBXGroupnameSourcesourceTree<source>000000000000000000000527explicitFileTypecompiled.mach-o.executableincludeInIndex0isaPBXFileReferencenamedelayedlooppathdelayedloopsourceTreeBUILD_PRODUCTS_DIR000000000000000000000528children000000000000000000000527isaPBXGroupnameProductssourceTree<source>000000000000000000000529childrenisaPBXGroupnameDocumentationsourceTree<source>00000000000000000000052achildren00000000000000000000052600000000000000000000052900000000000000000000052800000000000000000000052fcomments Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You 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. isaPBXGroupnamedelayedloopsourceTree<source>00000000000000000000052bbuildSettingsGCC_WARN_ABOUT_RETURN_TYPEYESGCC_WARN_UNUSED_VARIABLEYESHEADER_SEARCH_PATHS../src/main/include../src/examples/cpp/usr/include/apr-1${inherited)LIBRARY_SEARCH_PATHS..OTHER_LDFLAGS-laprutil-1-lapr-1-lpthread-lstdc++PREBINDINGNOSDKROOT/Developer/SDKs/MacOSX10.5.sdkisaXCBuildConfigurationnameDebug00000000000000000000052cbuildSettingsGCC_WARN_ABOUT_RETURN_TYPEYESGCC_WARN_UNUSED_VARIABLEYESHEADER_SEARCH_PATHS../src/main/include../src/examples/cpp/usr/include/apr-1${inherited)LIBRARY_SEARCH_PATHS..OTHER_LDFLAGS-laprutil-1-lapr-1-lpthread-lstdc++PREBINDINGNOSDKROOT/Developer/SDKs/MacOSX10.5.sdkisaXCBuildConfigurationnameRelease00000000000000000000052dbuildConfigurations00000000000000000000052b00000000000000000000052cdefaultConfigurationIsVisible0defaultConfigurationNameDebugisaXCConfigurationList00000000000000000000052eProjectReferencesProductGroup000000000000000000000533ProjectRef00000000000000000000052fbuildConfigurationList00000000000000000000052dhasScannedForEncodings0isaPBXProjectmainGroup00000000000000000000052aprojectDirPathprojectRoot..targets00000000000000000000053b00000000000000000000052fisaPBXFileReferencenamelog4cxx.xcodeprojpathlog4cxx.xcodeprojsourceTreeSOURCE_ROOT000000000000000000000530containerPortal00000000000000000000052fisaPBXContainerItemProxyproxyType2remoteInfolog4cxx000000000000000000000531fileTypecompiled.mach-o.dylibisaPBXReferenceProxypathlog4cxx.dylibremoteRef000000000000000000000530sourceTreeBUILT_PRODUCTS_DIR000000000000000000000532fileRef000000000000000000000531isaPBXBuildFilesettings000000000000000000000533children000000000000000000000531isaPBXGroupnameProductssourceTree<group>000000000000000000000534buildSettingsCOPY_PHASE_STRIPNOGCC_DYNAMIC_NO_PICNOGCC_ENABLE_FIX_AND_CONTINUEYESGCC_MODEL_TUNINGG5GCC_OPTIMIZATION_LEVEL0INSTALL_PATH$(HOME)/binPRODUCT_NAMEdelayedloopZERO_LINKYESisaXCBuildConfigurationnameDebug000000000000000000000535buildSettingsARCHSppci386GCC_GENERATE_DEBUGGING_SYMBOLSNOGCC_MODEL_TUNINGG5INSTALL_PATH$(HOME)/binPRODUCT_NAMEdelayedloopisaXCBuildConfigurationnameRelease000000000000000000000536buildConfigurations000000000000000000000534000000000000000000000535isaXCConfigurationList000000000000000000000537fileRef000000000000000000000525isaPBXBuildFilesettingsATTRIBUTES000000000000000000000538buildActionMask2147483647files000000000000000000000537isaPBXSourcesBuildPhaserunOnlyForDeploymentPostprocessing0000000000000000000000539buildActionMask8files000000000000000000000532isaPBXFrameworksBuildPhaserunOnlyForDeploymentPostprocessing000000000000000000000053abuildActionMask8dstPath/usr/share/man/man1dstSubfolderSpec0filesisaPBXCopyFilesBuildPhaserunOnlyForDeploymentPostprocessing100000000000000000000053bbuildConfigurationList000000000000000000000536buildPhases00000000000000000000053800000000000000000000053900000000000000000000053abuildRulesdependenciesisaPBXNativeTargetnamedelayedloopproductInstallPath$(HOME)/binproductNamedelayedloopproductReference000000000000000000000527productTypecom.apple.product-type.toolrootObject00000000000000000000052eapache-log4cxx-0.10.0/projects/trivial.xcodeproj/project.pbxproj100644 0 0 24056 10774263472 22144 0ustar 0 0 archiveVersion1classesobjectVersion42objects00000000000000000000053cisaPBXFileReferencenametrivial.cpppath../src/examples/cpp/trivial.cppsourceTreeSOURCE_ROOT00000000000000000000053dchildren00000000000000000000053cisaPBXGroupnameSourcesourceTree<source>00000000000000000000053eexplicitFileTypecompiled.mach-o.executableincludeInIndex0isaPBXFileReferencenametrivialpathtrivialsourceTreeBUILD_PRODUCTS_DIR00000000000000000000053fchildren00000000000000000000053eisaPBXGroupnameProductssourceTree<source>000000000000000000000540childrenisaPBXGroupnameDocumentationsourceTree<source>000000000000000000000541children00000000000000000000053d00000000000000000000054000000000000000000000053f000000000000000000000546comments Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You 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. isaPBXGroupnametrivialsourceTree<source>000000000000000000000542buildSettingsGCC_WARN_ABOUT_RETURN_TYPEYESGCC_WARN_UNUSED_VARIABLEYESHEADER_SEARCH_PATHS../src/main/include../src/examples/cpp/usr/include/apr-1${inherited)LIBRARY_SEARCH_PATHS..OTHER_LDFLAGS-laprutil-1-lapr-1-lpthread-lstdc++PREBINDINGNOSDKROOT/Developer/SDKs/MacOSX10.5.sdkisaXCBuildConfigurationnameDebug000000000000000000000543buildSettingsGCC_WARN_ABOUT_RETURN_TYPEYESGCC_WARN_UNUSED_VARIABLEYESHEADER_SEARCH_PATHS../src/main/include../src/examples/cpp/usr/include/apr-1${inherited)LIBRARY_SEARCH_PATHS..OTHER_LDFLAGS-laprutil-1-lapr-1-lpthread-lstdc++PREBINDINGNOSDKROOT/Developer/SDKs/MacOSX10.5.sdkisaXCBuildConfigurationnameRelease000000000000000000000544buildConfigurations000000000000000000000542000000000000000000000543defaultConfigurationIsVisible0defaultConfigurationNameDebugisaXCConfigurationList000000000000000000000545ProjectReferencesProductGroup00000000000000000000054aProjectRef000000000000000000000546buildConfigurationList000000000000000000000544hasScannedForEncodings0isaPBXProjectmainGroup000000000000000000000541projectDirPathprojectRoot..targets000000000000000000000552000000000000000000000546isaPBXFileReferencenamelog4cxx.xcodeprojpathlog4cxx.xcodeprojsourceTreeSOURCE_ROOT000000000000000000000547containerPortal000000000000000000000546isaPBXContainerItemProxyproxyType2remoteInfolog4cxx000000000000000000000548fileTypecompiled.mach-o.dylibisaPBXReferenceProxypathlog4cxx.dylibremoteRef000000000000000000000547sourceTreeBUILT_PRODUCTS_DIR000000000000000000000549fileRef000000000000000000000548isaPBXBuildFilesettings00000000000000000000054achildren000000000000000000000548isaPBXGroupnameProductssourceTree<group>00000000000000000000054bbuildSettingsCOPY_PHASE_STRIPNOGCC_DYNAMIC_NO_PICNOGCC_ENABLE_FIX_AND_CONTINUEYESGCC_MODEL_TUNINGG5GCC_OPTIMIZATION_LEVEL0INSTALL_PATH$(HOME)/binPRODUCT_NAMEtrivialZERO_LINKYESisaXCBuildConfigurationnameDebug00000000000000000000054cbuildSettingsARCHSppci386GCC_GENERATE_DEBUGGING_SYMBOLSNOGCC_MODEL_TUNINGG5INSTALL_PATH$(HOME)/binPRODUCT_NAMEtrivialisaXCBuildConfigurationnameRelease00000000000000000000054dbuildConfigurations00000000000000000000054b00000000000000000000054cisaXCConfigurationList00000000000000000000054efileRef00000000000000000000053cisaPBXBuildFilesettingsATTRIBUTES00000000000000000000054fbuildActionMask2147483647files00000000000000000000054eisaPBXSourcesBuildPhaserunOnlyForDeploymentPostprocessing0000000000000000000000550buildActionMask8files000000000000000000000549isaPBXFrameworksBuildPhaserunOnlyForDeploymentPostprocessing0000000000000000000000551buildActionMask8dstPath/usr/share/man/man1dstSubfolderSpec0filesisaPBXCopyFilesBuildPhaserunOnlyForDeploymentPostprocessing1000000000000000000000552buildConfigurationList00000000000000000000054dbuildPhases00000000000000000000054f000000000000000000000550000000000000000000000551buildRulesdependenciesisaPBXNativeTargetnametrivialproductInstallPath$(HOME)/binproductNametrivialproductReference00000000000000000000053eproductTypecom.apple.product-type.toolrootObject000000000000000000000545apache-log4cxx-0.10.0/projects/stream.xcodeproj/project.pbxproj100644 0 0 24045 10774263472 21763 0ustar 0 0 archiveVersion1classesobjectVersion42objects000000000000000000000553isaPBXFileReferencenamestream.cpppath../src/examples/cpp/stream.cppsourceTreeSOURCE_ROOT000000000000000000000554children000000000000000000000553isaPBXGroupnameSourcesourceTree<source>000000000000000000000555explicitFileTypecompiled.mach-o.executableincludeInIndex0isaPBXFileReferencenamestreampathstreamsourceTreeBUILD_PRODUCTS_DIR000000000000000000000556children000000000000000000000555isaPBXGroupnameProductssourceTree<source>000000000000000000000557childrenisaPBXGroupnameDocumentationsourceTree<source>000000000000000000000558children00000000000000000000055400000000000000000000055700000000000000000000055600000000000000000000055dcomments Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You 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. isaPBXGroupnamestreamsourceTree<source>000000000000000000000559buildSettingsGCC_WARN_ABOUT_RETURN_TYPEYESGCC_WARN_UNUSED_VARIABLEYESHEADER_SEARCH_PATHS../src/main/include../src/examples/cpp/usr/include/apr-1${inherited)LIBRARY_SEARCH_PATHS..OTHER_LDFLAGS-laprutil-1-lapr-1-lpthread-lstdc++PREBINDINGNOSDKROOT/Developer/SDKs/MacOSX10.5.sdkisaXCBuildConfigurationnameDebug00000000000000000000055abuildSettingsGCC_WARN_ABOUT_RETURN_TYPEYESGCC_WARN_UNUSED_VARIABLEYESHEADER_SEARCH_PATHS../src/main/include../src/examples/cpp/usr/include/apr-1${inherited)LIBRARY_SEARCH_PATHS..OTHER_LDFLAGS-laprutil-1-lapr-1-lpthread-lstdc++PREBINDINGNOSDKROOT/Developer/SDKs/MacOSX10.5.sdkisaXCBuildConfigurationnameRelease00000000000000000000055bbuildConfigurations00000000000000000000055900000000000000000000055adefaultConfigurationIsVisible0defaultConfigurationNameDebugisaXCConfigurationList00000000000000000000055cProjectReferencesProductGroup000000000000000000000561ProjectRef00000000000000000000055dbuildConfigurationList00000000000000000000055bhasScannedForEncodings0isaPBXProjectmainGroup000000000000000000000558projectDirPathprojectRoot..targets00000000000000000000056900000000000000000000055disaPBXFileReferencenamelog4cxx.xcodeprojpathlog4cxx.xcodeprojsourceTreeSOURCE_ROOT00000000000000000000055econtainerPortal00000000000000000000055disaPBXContainerItemProxyproxyType2remoteInfolog4cxx00000000000000000000055ffileTypecompiled.mach-o.dylibisaPBXReferenceProxypathlog4cxx.dylibremoteRef00000000000000000000055esourceTreeBUILT_PRODUCTS_DIR000000000000000000000560fileRef00000000000000000000055fisaPBXBuildFilesettings000000000000000000000561children00000000000000000000055fisaPBXGroupnameProductssourceTree<group>000000000000000000000562buildSettingsCOPY_PHASE_STRIPNOGCC_DYNAMIC_NO_PICNOGCC_ENABLE_FIX_AND_CONTINUEYESGCC_MODEL_TUNINGG5GCC_OPTIMIZATION_LEVEL0INSTALL_PATH$(HOME)/binPRODUCT_NAMEstreamZERO_LINKYESisaXCBuildConfigurationnameDebug000000000000000000000563buildSettingsARCHSppci386GCC_GENERATE_DEBUGGING_SYMBOLSNOGCC_MODEL_TUNINGG5INSTALL_PATH$(HOME)/binPRODUCT_NAMEstreamisaXCBuildConfigurationnameRelease000000000000000000000564buildConfigurations000000000000000000000562000000000000000000000563isaXCConfigurationList000000000000000000000565fileRef000000000000000000000553isaPBXBuildFilesettingsATTRIBUTES000000000000000000000566buildActionMask2147483647files000000000000000000000565isaPBXSourcesBuildPhaserunOnlyForDeploymentPostprocessing0000000000000000000000567buildActionMask8files000000000000000000000560isaPBXFrameworksBuildPhaserunOnlyForDeploymentPostprocessing0000000000000000000000568buildActionMask8dstPath/usr/share/man/man1dstSubfolderSpec0filesisaPBXCopyFilesBuildPhaserunOnlyForDeploymentPostprocessing1000000000000000000000569buildConfigurationList000000000000000000000564buildPhases000000000000000000000566000000000000000000000567000000000000000000000568buildRulesdependenciesisaPBXNativeTargetnamestreamproductInstallPath$(HOME)/binproductNamestreamproductReference000000000000000000000555productTypecom.apple.product-type.toolrootObject00000000000000000000055capache-log4cxx-0.10.0/projects/console.xcodeproj/project.pbxproj100644 0 0 24056 10774263472 22134 0ustar 0 0 archiveVersion1classesobjectVersion42objects00000000000000000000056aisaPBXFileReferencenameconsole.cpppath../src/examples/cpp/console.cppsourceTreeSOURCE_ROOT00000000000000000000056bchildren00000000000000000000056aisaPBXGroupnameSourcesourceTree<source>00000000000000000000056cexplicitFileTypecompiled.mach-o.executableincludeInIndex0isaPBXFileReferencenameconsolepathconsolesourceTreeBUILD_PRODUCTS_DIR00000000000000000000056dchildren00000000000000000000056cisaPBXGroupnameProductssourceTree<source>00000000000000000000056echildrenisaPBXGroupnameDocumentationsourceTree<source>00000000000000000000056fchildren00000000000000000000056b00000000000000000000056e00000000000000000000056d000000000000000000000574comments Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You 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. isaPBXGroupnameconsolesourceTree<source>000000000000000000000570buildSettingsGCC_WARN_ABOUT_RETURN_TYPEYESGCC_WARN_UNUSED_VARIABLEYESHEADER_SEARCH_PATHS../src/main/include../src/examples/cpp/usr/include/apr-1${inherited)LIBRARY_SEARCH_PATHS..OTHER_LDFLAGS-laprutil-1-lapr-1-lpthread-lstdc++PREBINDINGNOSDKROOT/Developer/SDKs/MacOSX10.5.sdkisaXCBuildConfigurationnameDebug000000000000000000000571buildSettingsGCC_WARN_ABOUT_RETURN_TYPEYESGCC_WARN_UNUSED_VARIABLEYESHEADER_SEARCH_PATHS../src/main/include../src/examples/cpp/usr/include/apr-1${inherited)LIBRARY_SEARCH_PATHS..OTHER_LDFLAGS-laprutil-1-lapr-1-lpthread-lstdc++PREBINDINGNOSDKROOT/Developer/SDKs/MacOSX10.5.sdkisaXCBuildConfigurationnameRelease000000000000000000000572buildConfigurations000000000000000000000570000000000000000000000571defaultConfigurationIsVisible0defaultConfigurationNameDebugisaXCConfigurationList000000000000000000000573ProjectReferencesProductGroup000000000000000000000578ProjectRef000000000000000000000574buildConfigurationList000000000000000000000572hasScannedForEncodings0isaPBXProjectmainGroup00000000000000000000056fprojectDirPathprojectRoot..targets000000000000000000000580000000000000000000000574isaPBXFileReferencenamelog4cxx.xcodeprojpathlog4cxx.xcodeprojsourceTreeSOURCE_ROOT000000000000000000000575containerPortal000000000000000000000574isaPBXContainerItemProxyproxyType2remoteInfolog4cxx000000000000000000000576fileTypecompiled.mach-o.dylibisaPBXReferenceProxypathlog4cxx.dylibremoteRef000000000000000000000575sourceTreeBUILT_PRODUCTS_DIR000000000000000000000577fileRef000000000000000000000576isaPBXBuildFilesettings000000000000000000000578children000000000000000000000576isaPBXGroupnameProductssourceTree<group>000000000000000000000579buildSettingsCOPY_PHASE_STRIPNOGCC_DYNAMIC_NO_PICNOGCC_ENABLE_FIX_AND_CONTINUEYESGCC_MODEL_TUNINGG5GCC_OPTIMIZATION_LEVEL0INSTALL_PATH$(HOME)/binPRODUCT_NAMEconsoleZERO_LINKYESisaXCBuildConfigurationnameDebug00000000000000000000057abuildSettingsARCHSppci386GCC_GENERATE_DEBUGGING_SYMBOLSNOGCC_MODEL_TUNINGG5INSTALL_PATH$(HOME)/binPRODUCT_NAMEconsoleisaXCBuildConfigurationnameRelease00000000000000000000057bbuildConfigurations00000000000000000000057900000000000000000000057aisaXCConfigurationList00000000000000000000057cfileRef00000000000000000000056aisaPBXBuildFilesettingsATTRIBUTES00000000000000000000057dbuildActionMask2147483647files00000000000000000000057cisaPBXSourcesBuildPhaserunOnlyForDeploymentPostprocessing000000000000000000000057ebuildActionMask8files000000000000000000000577isaPBXFrameworksBuildPhaserunOnlyForDeploymentPostprocessing000000000000000000000057fbuildActionMask8dstPath/usr/share/man/man1dstSubfolderSpec0filesisaPBXCopyFilesBuildPhaserunOnlyForDeploymentPostprocessing1000000000000000000000580buildConfigurationList00000000000000000000057bbuildPhases00000000000000000000057d00000000000000000000057e00000000000000000000057fbuildRulesdependenciesisaPBXNativeTargetnameconsoleproductInstallPath$(HOME)/binproductNameconsoleproductReference00000000000000000000056cproductTypecom.apple.product-type.toolrootObject000000000000000000000573apache-log4cxx-0.10.0/site/stylesheets/project.html100644 0 0 15566 10774263473 17454 0ustar 0 0 log4cxx -
log4cxx

apache-log4cxx-0.10.0/site/index.html100644 0 0 121726 10774263473 14555 0ustar 0 0 log4cxx - Short introduction to Apache log4cxx

Short introduction to Apache log4cxx

Introduction

Apache log4cxx is a logging framework for C++ patterned after Apache log4j . Apache log4cxx uses Apache Portable Runtime for most platform-specific code and should be usable on any platform supported by APR. Apache log4cxx is licensed under the Apache License , an open source license certified by the Open Source Initiative .

Almost every large application includes its own logging or tracing API. Inserting log statements into code is a low-tech method for debugging it. It may also be the only way because debuggers are not always available or applicable. This is usually the case for multithreaded applications and distributed applications at large.

Experience indicates that logging is an important component of the development cycle. It offeres several advantages. It provides precise context about a run of the application. Once inserted into the code, the generation of logging output requires no human intervention. Moreover, log output can be saved in persistent medium to be studied at a later time. In addition to its use in the development cycle, a sufficiently rich logging package can also be viewed as an auditing tool.

Logging does have its drawbacks. It can slow down an application. If too verbose, it can cause scrolling blindness. To alleviate these concerns, log4cxx is designed to be reliable, fast and extensible. Since logging is rarely the main focus of an application, the log4cxx API strives to be simple to understand and to use.

Loggers, Appenders and Layouts

Log4cxx has three main components: loggers, appenders and layouts. These three types of components work together to enable developers to log messages according to message type and level, and to control at runtime how these messages are formatted and where they are reported.

Logger hierarchy

The first and foremost advantage of any logging API over plain std::cout resides in its ability to disable certain log statements while allowing others to print unhindered. This capability assumes that the logging space, that is, the space of all possible logging statements, is categorized according to some developer-chosen criteria.

Loggers are named entities. Logger names are case-sensitive and they follow the hierarchical naming rule:

Named Hierarchy
A logger is said to be an ancestor of another logger if its name followed by a dot is a prefix of the descendant logger name. A logger is said to be a parent of a child logger if there are no ancestors between itself and the descendant logger.

For example, the logger named "com.foo" is a parent of the logger named "com.foo.Bar". Similarly, "java" is a parent of "java.util" and an ancestor of "java.util.Vector". This naming scheme should be familiar to most developers.

The root logger resides at the top of the logger hierarchy. It is exceptional in two ways:

  1. it always exists,
  2. it cannot be retrieved by name.

Invoking the class static log4cxx::Logger::getRootLogger method retrieves it. All other loggers are instantiated and retrieved with the class static log4cxx::Logger::getLogger method. This method takes the name of the desired logger as a parameter. Some of the basic methods in the Logger class are listed below.

  namespace log4cxx {

    class Logger
 {
       public:
       // Creation & retrieval methods:
       static LoggerPtr getRootLogger();
       static LoggerPtr getLogger(const std::string& name);
       static LoggerPtr getLogger(const std::wstring& name);

     }
   }
//
//   Use these macros instead of calling Logger methods directly.
//   Macros will handle char or wchar_t pointers or strings
//   or most right-hand side expressions of an 
//   std::basic_string::operator<<.
//   
#define LOG4CXX_TRACE(logger, expression) ...   
#define LOG4CXX_DEBUG(logger, expression) ...   
#define LOG4CXX_INFO(logger, expression) ...   
#define LOG4CXX_WARN(logger, expression) ...   
#define LOG4CXX_ERROR(logger, expression) ...   
#define LOG4CXX_FATAL(logger, expression) ...   

Loggers may be assigned levels. The pre-defined levels: TRACE, DEBUG, INFO, WARN, ERROR and FATAL are defined in the log4cxx::Level class which provides accessor functions.

If a given logger is not assigned a level, then it inherits one from its closest ancestor with an assigned level. More formally:

Level Inheritance
The inherited level for a given logger C , is equal to the first non-null level in the logger hierarchy, starting at C and proceeding upwards in the hierarchy towards the root logger.

To ensure that all loggers can eventually inherit a level, the root logger always has an assigned level.

Below are four tables with various assigned level values and the resulting inherited levels according to the above rule.

Logger
name
Assigned
level
Inherited
level
root Proot Proot
X none Proot
X.Y none Proot
X.Y.Z none Proot
Example 1

In example 1 above, only the root logger is assigned a level. This level value, Proot, is inherited by the other loggers X, X.Y and X.Y.Z.

Logger
name
Assigned
level
Inherited
level
root Proot Proot
X Px Px
X.Y Pxy Pxy
X.Y.Z Pxyz Pxyz
Example 2

In example 2, all loggers have an assigned level value. There is no need for level inheritence.

Logger
name
Assigned
level
Inherited
level
root Proot Proot
X Px Px
X.Y none Px
X.Y.Z Pxyz Pxyz
Example 3

In example 3, the loggers root, X and X.Y.Z are assigned the levels Proot, Px and Pxyz respectively. The logger X.Y inherits its level value from its parent X.

Logger
name
Assigned
level
Inherited
level
root Proot Proot
X Px Px
X.Y none Px
X.Y.Z none Px
Example 4

In example 4, the loggers root and X and are assigned the levels Proot and Px respectively. The loggers X.Y and X.Y.Z inherits their level value from their nearest parent X having an assigned level.

Logging requests are made by invoking a method of a logger instance, preferrably through the use of LOG4CXX_INFO or similar macros which support short-circuiting if the threshold is not satisfied and use of the insertion operator (<<) in the message parameter.

   log4cxx::LoggerPtr logger(log4cxx::Logger::getLogger("com.foo"));
   const char* region = "World";
   LOG4CXX_INFO(logger, "Simple message text.");
   LOG4CXX_INFO(logger, "Hello, " << region);
   LOG4CXX_DEBUG(logger, L"Iteration " << i);
   LOG4CXX_DEBUG(logger, "e^10 = " << std::scientific << exp(10.0));
   //
   //  Use a wchar_t first operand to force use of wchar_t based stream.    
   //
   LOG4CXX_WARN(logger, L"" << i << L" is the number of the iteration.");

A logging request is said to be enabled if its level is higher than or equal to the level of its logger. Otherwise, the request is said to be disabled. A logger without an assigned level will inherit one from the hierarchy. This rule is summarized below.

Basic Selection Rule
A log request of level p in a logger with (either assigned or inherited, whichever is appropriate) level q , is enabled if p >= q .

This rule is at the heart of log4cxx. It assumes that levels are ordered. For the standard levels, we have TRACE < DEBUG < INFO < WARN < ERROR < FATAL.

Here is an example of this rule.


   // get a logger instance named "com.foo"
   log4cxx::LoggerPtr  logger(log4cxx::Logger::getLogger("com.foo"));

   // Now set its level. Normally you do not need to set the
   // level of a logger programmatically. This is usually done
   // in configuration files.
   logger->setLevel(log4cxx::Level::getInfo());

   log4cxx::LoggerPtr barlogger(log4cxx::Logger::getLogger("com.foo.Bar");

   // This request is enabled, because WARN >= INFO.
   LOG4CXX_WARN(logger, "Low fuel level.");

   // This request is disabled, because DEBUG < INFO.
   LOG4CXX_DEBUG(logger, "Starting search for nearest gas station.");

   // The logger instance barlogger, named "com.foo.Bar",
   // will inherit its level from the logger named
   // "com.foo" Thus, the following request is enabled
   // because INFO >= INFO.
   LOG4CXX_INFO(barlogger. "Located nearest gas station.");

   // This request is disabled, because DEBUG < INFO.
   LOG4CXX_DEBUG(barlogger, "Exiting gas station search");

Calling the getLogger method with the same name will always return a reference to the exact same logger object.

For example, in
   log4cxx::LoggerPtr x = log4cxx::Logger::getLogger("wombat");
   log4cxx::LoggerPtr y = log4cxx::Logger::getLogger("wombat");
x and y refer to exactly the same logger object.

Thus, it is possible to configure a logger and then to retrieve the same instance somewhere else in the code without passing around references. In fundamental contradiction to biological parenthood, where parents always preceed their children, log4cxx loggers can be created and configured in any order. In particular, a "parent" logger will find and link to its descendants even if it is instantiated after them.

Configuration of the log4cxx environment is typically done at application initialization. The preferred way is by reading a configuration file. This approach will be discussed shortly.

Log4cxx makes it easy to name loggers by software component. This can be accomplished by statically instantiating a logger in each class, with the logger name equal to the fully qualified name of the class. This is a useful and straightforward method of defining loggers. As the log output bears the name of the generating logger, this naming strategy makes it easy to identify the origin of a log message. However, this is only one possible, albeit common, strategy for naming loggers. Log4cxx does not restrict the possible set of loggers. The developer is free to name the loggers as desired.

Nevertheless, naming loggers after the class where they are located seems to be the best strategy known so far.

Appenders and Layouts

The ability to selectively enable or disable logging requests based on their logger is only part of the picture. Log4cxx allows logging requests to print to multiple destinations. In log4cxx speak, an output destination is called an appender. Currently, appenders exist for the console , files , GUI components, remote socket servers, NT Event Loggers , and remote UNIX Syslog daemons. It is also possible to log asynchronously .

More than one appender can be attached to a logger.

The addAppender method adds an appender to a given logger. Each enabled logging request for a given logger will be forwarded to all the appenders in that logger as well as the appenders higher in the hierarchy. In other words, appenders are inherited additively from the logger hierarchy. For example, if a console appender is added to the root logger, then all enabled logging requests will at least print on the console. If in addition a file appender is added to a logger, say C, then enabled logging requests for C and C's children will print on a file and on the console. It is possible to override this default behavior so that appender accumulation is no longer additive by setting the additivity flag to false.

The rules governing appender additivity are summarized below.

Appender Additivity
The output of a log statement of logger C will go to all the appenders in C and its ancestors. This is the meaning of the term "appender additivity".

However, if an ancestor of logger C , say P , has the additivity flag set to false, then C 's output will be directed to all the appenders in C and it's ancestors upto and including P but not the appenders in any of the ancestors of P .

Loggers have their additivity flag set to true by default.

The table below shows an example:

Logger
Name
Added
Appenders
Additivity
Flag
Output Targets Comment
root A1 not applicable A1 The root logger is anonymous but can be accessed with the log4cxx::Logger::getRootLogger() method. There is no default appender attached to root.
x A-x1, A-x2 true A1, A-x1, A-x2 Appenders of "x" and root.
x.y none true A1, A-x1, A-x2 Appenders of "x" and root.
x.y.z A-xyz1 true A1, A-x1, A-x2, A-xyz1 Appenders in "x.y.z", "x" and root.
security A-sec false A-sec No appender accumulation since the additivity flag is set to false.
security.access none true A-sec Only appenders of "security" because the additivity flag in "security" is set to false.

More often than not, users wish to customize not only the output destination but also the output format. This is accomplished by associating a layout with an appender. The layout is responsible for formatting the logging request according to the user's wishes, whereas an appender takes care of sending the formatted output to its destination.

The PatternLayout , part of the standard log4cxx distribution, lets the user specify the output format according to conversion patterns similar to the C language printf function.

For example, the PatternLayout with the conversion pattern "%r [%t] %-5p %c - %m%n" will output something akin to:

176 [main] INFO  org.foo.Bar - Located nearest gas station.

The first field is the number of milliseconds elapsed since the start of the program. The second field is the thread making the log request. The third field is the level of the log statement. The fourth field is the name of the logger associated with the log request. The text after the '-' is the message of the statement.

Configuration

Inserting log requests into the application code requires a fair amount of planning and effort. Observation shows that approximately 4 percent of code is dedicated to logging. Consequently, even moderately sized applications will have thousands of logging statements embedded within their code. Given their number, it becomes imperative to manage these log statements without the need to modify them manually.

The log4cxx environment is fully configurable programmatically. However, it is far more flexible to configure log4cxx using configuration files. Currently, configuration files can be written in XML or in Java properties (key=value) format.

Let us give a taste of how this is done with the help of an imaginary application MyApp that uses log4cxx.

#include "com/foo/bar.h"
using namespace com::foo;

// include log4cxx header files.
#include "log4cxx/logger.h"
#include "log4cxx/basicconfigurator.h"
#include "log4cxx/helpers/exception.h"

using namespace log4cxx;
using namespace log4cxx::helpers;

LoggerPtr logger(Logger::getLogger("MyApp"));

int main(int argc, char **argv)
{
        int result = EXIT_SUCCESS;
        try
        {
                // Set up a simple configuration that logs on the console.
                BasicConfigurator::configure();

                LOG4CXX_INFO(logger, "Entering application.");
                Bar bar;
                bar.doIt();
                LOG4CXX_INFO(logger, "Exiting application.");
        }
        catch(Exception&)
        {
                result = EXIT_FAILURE;
        }

        return result;
}

MyApp begins by including log4cxx headers. It then defines a static logger variable with the name MyApp which happens to be the fully qualified name of the class.

MyApp uses the Bar class defined in header file com/foo/bar.h.

//  file com/foo/bar.h
#include "log4cxx/logger.h"

namespace com {
   namespace foo {
      class Bar {
          static log4cxx::LoggerPtr logger;
          
      public:
          void doIt();
       }
    }
}
// file bar.cpp
#include "com/foo/bar.h"

using namespace com::foo;
using namespace log4cxx;

LoggerPtr Bar::logger(Logger::getLogger("com.foo.bar"));

void Bar::doIt() {
   LOG4CXX_DEBUG(logger, "Did it again!");
}

The invocation of the BasicConfigurator::configure method creates a rather simple log4cxx setup. This method is hardwired to add to the root logger a ConsoleAppender . The output will be formatted using a PatternLayout set to the pattern "%-4r [%t] %-5p %c %x - %m%n".

Note that by default, the root logger is assigned to Level::getDebug().

The output of MyApp is:

0    [12345] INFO  MyApp  - Entering application.
36   [12345] DEBUG com.foo.Bar  - Did it again!
51   [12345] INFO  MyApp  - Exiting application.

The previous example always outputs the same log information. Fortunately, it is easy to modify MyApp so that the log output can be controlled at run-time. Here is a slightly modified version.

// file MyApp2.cpp

#include "com/foo/bar.h"
using namespace com::foo;

// include log4cxx header files.
#include "log4cxx/logger.h"
#include "log4cxx/basicconfigurator.h"
#include "log4cxx/propertyconfigurator.h"
#include "log4cxx/helpers/exception.h"

using namespace log4cxx;
using namespace log4cxx::helpers;
// Define a static logger variable so that it references the
// Logger instance named "MyApp".
LoggerPtr logger(Logger::getLogger("MyApp"));

int main(int argc, char **argv)
{
        int result = EXIT_SUCCESS;
        try
        {
                if (argc > 1)
                {
                        // BasicConfigurator replaced with PropertyConfigurator.
                        PropertyConfigurator::configure(argv[1]);
                }
                else
                {
                        BasicConfigurator::configure();
                }

                LOG4CXX_INFO(logger, "Entering application.");
                Bar bar
                bar.doIt();
                LOG4CXX_INFO(logger, "Exiting application.");
        }
        catch(Exception&)
        {
                result = EXIT_FAILURE;
        }

        return result;
}

This version of MyApp instructs PropertyConfigurator to parse a configuration file and set up logging accordingly.

Here is a sample configuration file that results in exactly same output as the previous BasicConfigurator based example.

# Set root logger level to DEBUG and its only appender to A1.
log4j.rootLogger=DEBUG, A1

# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender

# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

It can be noticed that the PropertyConfigurator file format is the same as log4j.

Suppose we are no longer interested in seeing the output of any component belonging to the com::foo package. The following configuration file shows one possible way of achieving this.

log4j.rootLogger=DEBUG, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout

# Print the date in ISO 8601 format
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

# Print only messages of level WARN or above in the package com.foo.
log4j.logger.com.foo=WARN

The output of MyApp configured with this file is shown below.

2000-09-07 14:07:41,508 [12345] INFO  MyApp - Entering application.
2000-09-07 14:07:41,529 [12345] INFO  MyApp - Exiting application.

As the logger com.foo.Bar does not have an assigned level, it inherits its level from com.foo, which was set to WARN in the configuration file. The log statement from the Bar::doIt method has the level DEBUG, lower than the logger level WARN. Consequently, doIt() method's log request is suppressed.

Here is another configuration file that uses multiple appenders.

log4j.rootLogger=debug, stdout, R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log

log4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

Calling the enhanced MyApp with the this configuration file will output the following on the console.

 INFO [12345] (MyApp2.cpp:31) - Entering application.
DEBUG [12345] (Bar.h:16) - Doing it again!
 INFO [12345] (MyApp2.cpp:34) - Exiting application.

In addition, as the root logger has been allocated a second appender, output will also be directed to the example.log file. This file will be rolled over when it reaches 100KB. When roll-over occurs, the old version of example.log is automatically moved to example.log.1.

Note that to obtain these different logging behaviors we did not need to recompile code. We could just as easily have logged to a UNIX Syslog daemon, redirected all com.foo output to an NT Event logger, or forwarded logging events to a remote log4cxx server, which would log according to local server policy, for example by forwarding the log event to a second log4cxx server.

Default Initialization Procedure

The log4cxx library does not make any assumptions about its environment. In particular, there are no default log4cxx appenders. Under certain well-defined circumstances however, the static inializer of the Logger class will attempt to automatically configure log4cxx.

The exact default initialization algorithm is defined as follows:

  1. Set the configurationOptionStr string variable to the value of the LOG4CXX_CONFIGURATION environment variable if set, otherwise the value of the log4j.configuration or LOG4CXX_CONFIGURATION environment variable if set, otherwise the first of the following file names which exist in the current working directory, "log4cxx.xml", "log4cxx.properties", "log4j.xml" and "log4j.properties". If configurationOptionStr has not been set, then disable logging.
  2. Unless a custom configurator is specified using the LOG4CXX_CONFIGURATOR_CLASS or log4j.configuratorClass environment variable, the PropertyConfigurator will be used to configure log4cxx unless the file name ends with the ".xml" extension, in which case the DOMConfigurator will be used. If a custom configurator is specified, the environment variable should contain a fully qualified class name of a class that implements the Configurator interface.

Nested Diagnostic Contexts

Most real-world systems have to deal with multiple clients simultaneously. In a typical multithreaded implementation of such a system, different threads will handle different clients. Logging is especially well suited to trace and debug complex distributed applications. A common approach to differentiate the logging output of one client from another is to instantiate a new separate logger for each client. This promotes the proliferation of loggers and increases the management overhead of logging.

A lighter technique is to uniquely stamp each log request initiated from the same client interaction. Neil Harrison described this method in the book "Patterns for Logging Diagnostic Messages," in Pattern Languages of Program Design 3, edited by R. Martin, D. Riehle, and F. Buschmann (Addison-Wesley, 1997).

To uniquely stamp each request, the user pushes contextual information into the NDC, the abbreviation of Nested Diagnostic Context. The NDC class is shown below.

namespace log4cxx {
  class NDC {
  public:
    //  pushes the value on construction and pops on destruction.
    NDC(const std::string& value);
    NDC(const std::wstring& value);

    // Remove the top of the context from the NDC.
    static LogString pop();

    // Add diagnostic context for the current thread.
    static void push(const std::string& message);
    static void push(const std::wstring& message);
  }

The NDC is managed per thread as a stack of contextual information. Note that all methods of the log4cxx::NDC class are static. Assuming that NDC printing is turned on, every time a log request is made, the appropriate log4cxx component will include the entire NDC stack for the current thread in the log output. This is done without the intervention of the user, who is responsible only for placing the correct information in the NDC by using the push and pop methods at a few well-defined points in the code. In contrast, the per-client logger approach commands extensive changes in the code.

To illustrate this point, let us take the example of a servlet delivering content to numerous clients. The servlet can build the NDC at the very beginning of the request before executing other code. The contextual information can be the client's host name and other information inherent to the request, typically information contained in cookies. Hence, even if the servlet is serving multiple clients simultaneously, the logs initiated by the same code, i.e. belonging to the same logger, can still be distinguished because each client request will have a different NDC stack. Contrast this with the complexity of passing a freshly instantiated logger to all code exercised during the client's request.

Nevertheless, some sophisticated applications, such as virtual hosting web servers, must log differently depending on the virtual host context and also depending on the software component issuing the request. Recent log4cxx releases support multiple hierarchy trees. This enhancement allows each virtual host to possess its own copy of the logger hierarchy.

Performance

One of the often-cited arguments against logging is its computational cost. This is a legitimate concern as even moderately sized applications can generate thousands of log requests. Much effort was spent measuring and tweaking logging performance. Log4cxx claims to be fast and flexible: speed first, flexibility second.

The user should be aware of the following performance issues.

  1. Logging performance when logging is turned off.
    When logging is turned off entirely or just for a set of levels, the cost of a log request consists of a method invocation plus an integer comparison. The LOG4CXX_DEBUG and similar macros suppress unnecessary expression evaluation if the request is not enabled.
  2. The performance of deciding whether to log or not to log when logging is turned on.
    This is essentially the performance of walking the logger hierarchy. When logging is turned on, log4cxx still needs to compare the level of the log request with the level of the request logger. However, loggers may not have an assigned level; they can inherit them from the logger hierarchy. Thus, before inheriting a level, the logger may need to search its ancestors.

    There has been a serious effort to make this hierarchy walk to be as fast as possible. For example, child loggers link only to their existing ancestors. In the BasicConfigurator example shown earlier, the logger named com.foo.Bar is linked directly to the root logger, thereby circumventing the nonexistent com or com.foo loggers. This significantly improves the speed of the walk, especially in "sparse" hierarchies.

    The cost of walking the hierarchy is typically 3 times slower than when logging is turned off entirely.

  3. Actually outputting log messages
    This is the cost of formatting the log output and sending it to its target destination. Here again, a serious effort was made to make layouts (formatters) perform as quickly as possible. The same is true for appenders.

Conclusions

Apache Log4cxx is a popular logging package written in C++. One of its distinctive features is the notion of inheritance in loggers. Using a logger hierarchy it is possible to control which log statements are output at arbitrary granularity. This helps reduce the volume of logged output and minimize the cost of logging.

One of the advantages of the log4cxx API is its manageability. Once the log statements have been inserted into the code, they can be controlled with configuration files. They can be selectively enabled or disabled, and sent to different and multiple output targets in user-chosen formats. The log4cxx package is designed so that log statements can remain in shipped code without incurring a heavy performance cost.


apache-log4cxx-0.10.0/site/building/autotools.html100644 0 0 24404 10774263472 17246 0ustar 0 0 log4cxx - Building Apache log4cxx with autotools

Building Apache log4cxx with autotools

Quick start:

Install or build apr 1.x, apr-util 1.x, gzip and zip.

$ cd apache-log4cxx-0.10.0
$ ./configure
$ make
$ make check
$ sudo make install

configure options

--with-apr path to non-default location for APR.
--with-apr-util path to non-default location for APR-Util.
--enable-wchar_t Enable wchar_t API methods, choice of yes (default), no.
--enable-unichar Enable UniChar API methods, choice of yes, no (default).
--enable-cfstring Enable CFString API methods, requires Mac OS/X CoreFoundation, choice of yes, no (default).
--with-logchar Interal character representation, choice of utf-8 (default), wchar_t , unichar.
--with-charset Exteral character encoding, choice of utf-8, iso-8859-1, usascii, ebcdic, auto (default).
--with-SMTP SMTP implementation for SMTPAppender, choice of libesmtp, no (default).
--with-ODBC OBDC implementation for ODBCAppender, choice of unixODBC, iODBC, Microsoft, no (default).
-help Display help showing all options and exit.

SMTP and ODBC options can depend on libraries that that have different licenses. You should review the corresponding licenses and understand the implications before redistribution.

Platform specific notes:

Mac OS/X:

APR and APR-Util are provided by the platform in Mac OS/X 10.5 and iODBC in 10.4.

Debian:

APR, APR-Util and zip may be installed by:

$ sudo apt-get install libapr1.0-dev libaprutil1.0-dev zip

FreeBSD:

APR, APR-Util and zip may be installed from the ports collection by:

# cd /usr/ports/archivers/zip
# make
# make install
# cd /usr/ports/devel/apr
# make
# make install

Cygwin:

Install zip (used by RollingFileAppender) and sed (used to normalize output files for comparison in the unit tests). The prepackaged APR currently available from Cygwin has APR_HAS_THREADS == 0. Some appenders will not be available and some may operate with reduced functionality. There have been reports of building APR on Cygwin with threads enabled.

MinGW:

Recent APR 1.2.x releases fail ./configure with a error of "decision on anonymous shared memory failed". That issue has been fixed in the current APR SVN HEAD. The follow sequence worked with MSYS (with Python on Path):

$ cd expat-2.0.1
$ ./configure
$ make install
$ cd ..
$ svn co https://svn.apache.org/repos/asf/apr/apr/trunk apr
$ cd apr
$ ./buildconf.sh
$ ./configure 
$ make install
$ cd ..
$ svn co \
   https://svn.apache.org/repos/asf/apr/apr-util/trunk \
   apr-util
$ cd apr-util
$ ./buildconf.sh
$ ./configure --with-apr=/usr/local --with-expat=/usr/local
$ make install
$ cd ../apache-log4cxx-0.10.0
$ ./configure --with-apr=/usr/local \
   --with-apr-util=/usr/local --with-logchar=wchar_t
$ make install

Running "make check" was observed to fail with unexpected exceptions in streamtestcase and datetimedateformattestcase. See LOGCXX-244 .


apache-log4cxx-0.10.0/site/building/vstudio.html100644 0 0 21554 10774263473 16716 0ustar 0 0 log4cxx - Building Apache log4cxx with Microsoft Visual Studio

Building Apache log4cxx with Microsoft Visual Studio

Preparation

unzip apr-1.2.11-win32-src.zip
rename apr-1.2.11 apr
unzip apr-util-1.2.10-win32-src.zip
rename apr-util-1.2.10 apr-util
cd apache-log4cxx-0.10.0
configure
configure-aprutil

configure.bat copies the prefabricated log4cxx.hw and private/log4cxx_private.hw over to log4cxx.h and private/log4cxx_private.h.

configure-aprutil.bat uses "sed" to modify apu.hw and apr_ldap.hw to disable APR-Iconv and LDAP which are not necessary for log4cxx and problematic to build. If "sed" is not available, the modifications would be trivial to do in any text editor.

Use the Win32 source zips for APR and APR-Util to preserve the required line endings for the project files. Directories need to be renamed to "apr" and "apr-util" respectively.

Building log4cxx.dll

Open projects/log4cxx.dsw with Microsoft Visual Studio 6 or later at which time you may be prompted to upgrade the projects to the format used by your version of Microsoft Visual Studio.

Select log4cxx as active project and build.

Running unit tests

To pass the unit tests, gzip, zip and sed must be on the path. Also three environment variables need to be defined: TOTO=wonderful, key1=value1 and key2=value2. These must be done outside of Microsoft Visual Studio, either in the Control Panel or in a Command Prompt uses to launch Microsoft Visual Studio.

Open projects/testsuite.dsw or projects/testsuite-standalone.dsw (test suite and implementation in one project) in Microsoft Visual Studio, select active project and build.

On the Debug Tab of the Project/Settings dialog, set the Working Directory to "../src/test/resources". Individual tests can be specified in Program Arguments and "-v" can be specified to output verbose test results.

Known Issues

  • APR 1.2.12 has a known issue that will prevent compilation with Visual Studio 6 unless a later Platform SDK is installed. See APR bug 44327 . APR 1.2.11 and the corresponding APR-Util 1.2.10 will compile with Visual Studio 6.
  • APR-Util requires later LDAP headers than provided with Visual Studio 6 and will fail to compile. log4cxx does not use LDAP, it can be disabled in apr_ldap.hw.
  • APR-Iconv is problematic and not used by log4cxx, it can be disabled in apu.hw.

apache-log4cxx-0.10.0/site/building/ant.html100644 0 0 36552 10774263472 16006 0ustar 0 0 log4cxx - Building Apache log4cxx with Apache Ant

Building Apache log4cxx with Apache Ant

Apache Ant with cpptasks from the Ant-Contrib project can be used to build log4cxx with supported compilers and is also used to generate the IDE project files included in the releases. The Apache Maven build which is used to generate the site documentation and release packaging delegates to this build. The Ant build can build APR and APR-Util if source is available.

Quick start:

  • Install Apache Ant 1.6.5 or later.
  • Install cpptasks 1.0b5 or later from the Ant-Contrib Project . ant-contribs 1.0b3 or later is needed for some less frequent build targets.
  • Install APR and APR-Util or place source in apr and apr-util directories as a sibling to the log4cxx directory.
  • Install gzip and zip (used for compression by RollingFileAppender) and sed (used to normalize output files for comparison in unit tests).
  • Install log4j 1.2. Used in testing of SocketAppender.

    Building and testing log4cxx on a Unix platform with packaged APR and APR-Util.

    $ export CLASSPATH=~/cpptasks/cpptasks-1.0b5.jar
    $ cd apache-log4cxx-0.10.0
    $ ant

    Building and testing log4cxx on a Unix platform with APR and APR-Util built from source.

    $ export CLASSPATH=~/cpptasks/cpptasks-1.0b5.jar
    $ tar -xvzf apr-1.2.12.tar.gz
    $ mv apr-1.2.12 apr
    $ tar -xvzf apr-util-1.2.12.tar.gz
    $ mv apr-util-1.2.12 apr-util
    $ cd apache-log4cxx-0.10.0
    $ ant

    Building and testing log4cxx on a Microsoft Windows with APR and APR-Util built from source.

    set PATH=\apache-ant-1.7.0\bin;%PATH%
    set CLASSPATH=\cpptasks\cpptasks-1.0b5.jar
    tar -xvzf apr-1.2.12.tar.gz
    rename apr-1.2.12 apr
    tar -xvzf apr-util-1.2.12.tar.gz
    rename apr-util-1.2.12 apr-util
    cd apache-log4cxx-0.10.0
    ant -Dfind=false

Common ant targets

build build log4cxx library.
check build logcxx library and build and run unit tests and examples.
clean Delete all generated files.
build-unittest build log4cxx library and unit test.
run-socketserver Tests SocketAppender with Java-based receiver.
build-projects-vc6 Build Microsoft Visual Studio 6 project files.
build-projects-vc7 Build Microsoft Visual Studio .NET project files.
build-projects-vc8 Build Microsoft Visual Studio 2005 project files.
build-projects-vc9 Build Microsoft Visual Studio 2008 project files.
build-projects-xcode Build Apple Xcode project files.

All build products will be placed in the target subdirectory.

Project files should be generated after successfully building the library, however it is possible to generate Microsoft Visual Studio project files on other platforms. The project files will typically be missing references to the Platform SDK libraries. The Maven project modifies the generated project files for release preparation. Generation of Xcode projects from Microsoft Windows is not supported.

ant options

-Dcompiler Compiler, see cpptasks documentation for full list.
-Ddebug Build for debugging, yes (default), no.
-Dfind Attempt to locate compiled APR and APR-Util, yes (default), no.
-Dwith-apr path to non-default location for APR.
-Dwith-apr-util path to non-default location for APR-Util.
-Denable-wchar_t Enable wchar_t API methods, choice of yes (default), no.
-Denable-unichar Enable UniChar API methods, choice of yes, no (default).
-Denable-cfstring Enable CFString API methods, requires Mac OS/X CoreFoundation, choice of yes, no (default).
-Dwith-logchar Interal character representation, choice of utf-8 (default), wchar_t , unichar.
-Dwith-charset Exteral character encoding, choice of utf-8, iso-8859-1, usascii, ebcdic, auto (default).
-Dwith-SMTP SMTP implementation for SMTPAppender, choice of libesmtp, no (default).
-Dwith-ODBC OBDC implementation for ODBCAppender, choice of unixODBC, iODBC, Microsoft, no (default).
-Dlog4j.jar Path to log4j.jar for run-socketserver.
-Dprojects.dir Location for generated IDE projects.
-Dlib.type Library type to create, choice of shared (default), static.
-Druntime Type of C runtime library to use, choice of dynamic (default), static.
-Doptimization Optimization: none (default), size, minimal, speed, full, aggressive, extreme, unsafe.
-p Display available targets and quit.

SMTP and ODBC options can depend on libraries that that have different licenses. You should review the corresponding licenses and understand the implications before redistribution.

Combining -Dlib.type=shared and -Druntime=static is unsafe.

Properties may also be placed in a build.properties file in the log4cxx directory.

Platform specific notes:

  • Microsoft Windows

    GnuWin32 provides binary versions of sed, gzip and zip. Alternative, the bin directory of Cygwin may be placed on the path.

    If -Dwith-SMTP=libesmtp is specified, the build will attempt to build libesmtp from source, unfortunately libesmtp depends on poll.h and will not build.

    APR 1.2.12 has a known issue that will prevent compilation with Visual Studio 6 unless a later Platform SDK is installed. See APR bug 44327 . APR 1.2.11 and the corresponding APR-Util 1.2.10 will compile with Visual Studio 6.

  • Cygwin:

    gcc 3.x does not provide wchar_t support which needs to be explicitly disabled. The Win32 path to the APR libraries need to be provided (CYGWIN_HOME/lib) if compiling against an installed APR and APR-Util.

    $ cd apache-log4cxx-0.10.0
    $ ant -Dos.family=cygwin \
       -Dwith-apr=/cygwin/lib \
       -Dwith-apr-util=/cygwin/lib \
       -Denable-wchar_t=0
  • MinGW:
    $ cd apache-log4cxx-0.10.0
    $ path c:\mingw\bin;%PATH%
    $ ant -Dcompiler=gcc -Dfind=false build-all
    $ cd src\test\resources
    $ set TOTO=wonderful
    $ set key1=value1
    $ set key2=value2
    $ ..\..\..\target\debug\shared\testsuite -v 
    $ ..\..\..\target\debug\shared\trivial
    $ ..\..\..\target\debug\shared\stream 

    Running "ant check" was observed to fail with unexpected exceptions in streamtestcase and datetimedateformattestcase. See LOGCXX-244 .

  • Debian:

    Apache APR, APR-Util, Ant and log4j and zip may be installed using:

    $ sudo apt-get install libapr1.0-dev libaprutil1.0-dev \
          ant ant-optional liblog4j1.2-java zip
  • Mac OS/X:

    APR and APR-Util are provided by the platform in Mac OS/X 10.5 and iODBC in 10.4.

    Site generation requires "doxygen" command on path which can be provided by installing Doxygen.app and then setting the path like:

    $ setenv PATH /Applications/Doxygen.app/Contents/Resources:$PATH

apache-log4cxx-0.10.0/site/building/xcode.html100644 0 0 20207 10774263473 16315 0ustar 0 0 log4cxx - Building Apache log4cxx with Apple Xcode

Building Apache log4cxx with Apple Xcode

Building log4cxx.dylib

Run configure to generate log4cxx.h and log4cxx_private.h then launch Xcode.

cd apache-log4cxx-0.10.0
./configure
open projects/log4cxx.xcodeproj

Running unit tests

Run configure then open projects/testsuite.xcodeproj or projects/testsuite-standalone.xcodeproj (test suite and implementation in one project) in Xcode.

The unit tests require the working directory and several environment variables to be set. To set these, elect the executable in Groups & Files and press Info and:

  • In the General pane, set Working Directory to Custom with path "../src/test/resources".
  • In the Arguments pane, add following key value pairs to "Variables to be set in the environment": TOTO=wonderful, key1=value1 and key2=value2.
  • In the Arguments pane, add "-v" for verbose output, or individual test names in "Arguments to be passed on launch".

Issues

The project file generation does does not properly create an entry in the "Link Binary with Libraries" build phase for projects (such as the examples and unit tests) that depend on log4cxx. To work around the problem, open the project in Xcode and in the Groups & Files pane, drag log4cxx.dylib and drop on the "Link Binary with Libraries" folder under Targets.

See issue LOGCXX-245 for further information.

The projects provided in the release target Mac OS/X 10.5 which provides preinstalled APR and APR-Util libraries. To generate XCode projects to target Mac OS/X 10.4, set up the ant build and then "ant build-projects-xcode -Dfind=false".


apache-log4cxx-0.10.0/site/building/maven.html100644 0 0 22013 10774263472 16315 0ustar 0 0 log4cxx - Building Apache log4cxx with Apache Maven 2

Building Apache log4cxx with Apache Maven 2

Apache Maven 2 is used to generate the release assemblies and generate product documentation. It delegates to the Apache Ant build to build and test log4cxx and can be used as an alternate front end to the Ant build process since it can automatically download and use ant-contrib, cpptasks and log4j. The Maven build, like the Ant build, can build APR and APR-Util from source.

Quick start:

  • Install Apache Maven 2.0.8 or later.
  • Install APR and APR-Util or place source in apr and apr-util directories in same parent directory as log4cxx directory.

    Building and testing log4cxx on a Unix platform with packaged APR and APR-Util.

     sudo apt-get install libapr1.0-dev libaprutil1.0-dev doxygen
     cd apache-log4cxx-0.10.0
     export PATH=/home/myself/maven-2.0.8/bin:$PATH
     mvn package

    Building and testing log4cxx on a Microsoft Windows with APR and APR-Util built from source.

     set PATH=\maven-2.0.8\bin;%PATH%
     tar -xvzf apr-1.2.12.tar.gz
     rename apr-1.2.12 apr
     tar -xvzf apr-util-1.2.12.tar.gz
     rename apr-util-1.2.12 apr-util
     cd apache-log4cxx-0.10.0
     mvn package

Common Maven targets

compile build log4cxx library.
package build logcxx library and build and run unit tests and examples.
site Generate documentation and IDE project files, requires doxygen.
site assembly:assembly Generate snapshot tarball and zip file.
site-deploy Publish website to staging area on ASF subversion repository (requires credentials).
clean Delete all generated files.

All build products will be placed in the target subdirectory.

It is not possible to directly pass options to the Ant build, however the ant build will read any build.properties file in the log4cxx directory.

SMTP and ODBC options can depend on libraries that that have different licenses. You should review the corresponding licenses and understand the implications before redistribution.

Platform specific notes:

See the Apache Ant build for platform specific notes.


apache-log4cxx-0.10.0/site/download.html100644 0 0 20573 10774263473 15233 0ustar 0 0 log4cxx - Download Apache log4cxx 0.10.0

Download Apache log4cxx 0.10.0

Apache log4cxx 0.10.0 is distributed under the Apache License, version 2.0 .

The link in the Mirrors column should display a list of available mirrors with a default selection based on your inferred location. If you do not see that page, try a different browser. The checksum and signature are links to the originals on the main distribution server.

Mirrors Checksum Signature
Apache log4cxx 0.10.0 (tar.gz) apache-log4cxx-0.10.0.tar.gz apache-log4cxx-0.10.0.tar.gz.md5 apache-log4cxx-0.10.0.tar.gz.asc
Apache log4cxx 0.10.0 (zip) apache-log4cxx-0.10.0.zip apache-log4cxx-0.10.0.zip.md5 apache-log4cxx-0.10.0.zip.asc

Please read Verifying Apache HTTP Server Releases for more information on why you should verify our releases.

Previous Releases

All previous releases of Apache log4cxx can be found in the archive repository .


apache-log4cxx-0.10.0/site/faq.html100644 0 0 22463 10774263473 14173 0ustar 0 0 log4cxx - Frequently Asked Technical Questions
How do I add a custom level to Apache log4cxx?

This is a common topic for all the Apache logging frameworks and typically motivated to try to categorize events by functionality or audience. An common request is to add an AUDIT level so that the user can configure AUDIT level messages to go to a specific appender. However, the logger name was designed explicitly to support routing of messages by topic or audience. The common pattern of using classnames for logger names obscures the more general capability of logger name to represent the topic or audience of the logging request. The easiest approach to solve the underlying issue is to use a logger names like "AUDIT.com.example.MyPackage.MyClass" that allow all AUDIT messages to be routed to a particular appender. If you attempted to use a level for that then you would lose the ability to distinguish between different significances within the audit messages.

[top]

My application on Windows crashes on shutdown?

Apache log4cxx API calls use C++ Standard Template Library string parameters. If the caller is using a different instance or type of the C Runtime Library that log4cxx, then it is very likely that some memory that was originally allocated by log4cxx would be freed by the caller. If log4cxx and the caller are using different C RTL's, the program will likely crash at the point. Use "Multithread DLL" with release builds of log4cxx and "Multithread DLL Debug" with debug builds.

[top]

Does Apache log4cxx support Unicode?

Yes. Apache log4cxx exposes API methods in multiple string flavors const char*, std::string, wchar_t*, std::wstring, CFStringRef et al. const char* and std::string are interpreted according to the current locale settings. Applications should call setlocale(LC_ALL, "") on startup or the C RTL will assume US-ASCII. Before being processed internally, all these are converted to the LogString type which is one of several supported Unicode representations selected by the --with-logchar option. When using methods that take LogString arguments, the LOG4CXX_STR() macro can be used to convert ASCII literals to the current LogString type. FileAppenders support an encoding property which should be explicitly specified to "UTF-8" or "UTF-16" for XML files.

[top]

apache-log4cxx-0.10.0/site/dependencies.html100644 0 0 17121 10774263473 16045 0ustar 0 0 log4cxx - Project Dependencies

Project Dependencies

test

The following is a list of test dependencies for this project. These dependencies are only required to compile and run unit tests for the application:

GroupId ArtifactId Version Classifier Type Optional
log4j log4j 1.2.14 - jar

Project Transitive Dependencies

The following is a list of transitive dependencies for this project. Transitive dependencies are the dependencies of the project dependencies.

Project Dependency Graph


apache-log4cxx-0.10.0/site/issue-tracking.html100644 0 0 15147 10774263473 16355 0ustar 0 0 log4cxx - Issue Tracking

Overview

This project uses Jira a J2EE-based, issue tracking and project management application.

Issue Tracking

Issues, bugs, and feature requests should be submitted to the following issue tracking system for this project.


apache-log4cxx-0.10.0/site/license.html100644 0 0 43313 10774263473 15043 0ustar 0 0 log4cxx - Project License

Overview

Typically the licenses listed for the project are that of the project itself, and not of dependencies.

Project License

Apache License, Version 2.0

                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright [yyyy] [name of copyright owner]

   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.

apache-log4cxx-0.10.0/site/mail-lists.html100644 0 0 20561 10774263473 15477 0ustar 0 0 log4cxx - Project Mailing Lists

Project Mailing Lists

These are the mailing lists that have been established for this project. For each list, there is a subscribe, unsubscribe, and an archive link.

Name Subscribe Unsubscribe Post Archive Other Archives
log4cxx-user : log4cxx usage Subscribe Unsubscribe Post mail-archives.apache.org markmail.org
marc.info
dir.gmane.org
log4cxx-dev : log4cxx development Subscribe Unsubscribe Post mail-archives.apache.org markmail.org
marc.info
dir.gmane.org

apache-log4cxx-0.10.0/site/source-repository.html100644 0 0 21274 10774263473 17140 0ustar 0 0 log4cxx - Source Repository

Overview

This project uses Subversion to manage its source code. Instructions on Subversion use can be found at http://svnbook.red-bean.com/ .

Web Access

The following is a link to the online source repository.

Anonymous access

The source can be checked out anonymously from SVN with this command:

$ svn checkout http://svn.apache.org/repos/asf/logging/log4cxx/trunk apache-log4cxx

Developer access

Everyone can access the Subversion repository via HTTPS, but Committers must checkout the Subversion repository via HTTPS.

$ svn checkout https://svn.apache.org/repos/asf/logging/log4cxx/trunk apache-log4cxx

To commit changes to the repository, execute the following command to commit your changes (svn will prompt you for your password)

$ svn commit --username your-username -m "A message"

Access from behind a firewall

For those users who are stuck behind a corporate firewall which is blocking http access to the Subversion repository, you can try to access it via the developer connection:

$ svn checkout https://svn.apache.org/repos/asf/logging/log4cxx/trunk apache-log4cxx

Access through a proxy

The Subversion client can go through a proxy, if you configure it to do so. First, edit your "servers" configuration file to indicate which proxy to use. The files location depends on your operating system. On Linux or Unix it is located in the directory "~/.subversion". On Windows it is in "%APPDATA%\Subversion". (Try "echo %APPDATA%", note this is a hidden directory.)

There are comments in the file explaining what to do. If you don't have that file, get the latest Subversion client and run any command; this will cause the configuration directory and template files to be created.

Example : Edit the 'servers' file and add something like :

[global]
http-proxy-host = your.proxy.name
http-proxy-port = 3128

apache-log4cxx-0.10.0/site/changes-report.html100644 0 0 236546 10774263473 16376 0ustar 0 0 log4cxx -

Changes Report

Release History

Version Date Description
0.10.0 2008-04-03 First Apache release
0.9.7 2004-05-10
0.9.6 2004-04-11
0.9.5 2004-02-04
0.9.4 2003-10-25
0.9.3 2003-09-19
0.9.2 2003-08-10
0.9.1 2003-08-06
0.9.0 2003-08-06
0.1.1 2003-07-09
0.1.0 2003-07-08
0.0.1 2003-05-31


Release 0.10.0 - 2008-04-03

Type Changes By
? logger.h includes config.h Fixes LOGCXX-2 .
? Missing #else Fixes LOGCXX-3 .
? initialization not working on many OS's Fixes LOGCXX-4 .
? Preprocessor macro WIN32 used instead of _WIN32 Fixes LOGCXX-5 .
? Win32 OutputDebugString Fixes LOGCXX-6 .
? SocketAppender binary format not compatible with Chainsaw Fixes LOGCXX-7 .
? Compilation problems using VC5 or VC6 with later Platform SDKs Fixes LOGCXX-8 .
? Conflicting definitions of tchar.h/simulatenous Unicode+MBCS Fixes LOGCXX-10 .
? Timezone may have side-effects Fixes LOGCXX-11 .
? the threshold of ApenderSkeleton can not be set by calling setOption. Fixes LOGCXX-12 .
? Add branch optimization hint to LOG4CXX_DEBUG macro Fixes LOGCXX-13 .
? add -Wall to compile log4cxx will get many warning Fixes LOGCXX-14 .
? PatternLayout don't use locale time zone,it's use GMT tome zone Fixes LOGCXX-15 .
? Misleading statements in Introduction to log4cxx Fixes LOGCXX-16 .
? Use of non reentrant time functions Fixes LOGCXX-17 .
? LoggerStream Feature Fixes LOGCXX-18 .
? Add .cvsignore's to ignore generated files Fixes LOGCXX-19 .
? Add check that libxml2 not libxml has been included Fixes LOGCXX-21 .
? Backslashes in filenames in XML config of FileAppender broken Fixes LOGCXX-22 .
? Unit tests have become stale Fixes LOGCXX-23 .
? Class and module name not available in LogEvent Fixes LOGCXX-24 .
? Add Ant+cpptasks build file Fixes LOGCXX-25 .
? Default initialization is broken Fixes LOGCXX-26 .
? Appender threshold cannot be set in configuration files Fixes LOGCXX-27 .
? Appender threshold cannot be set in configuration files Fixes LOGCXX-28 .
? Appender attributes are not passed passed to setOption correctly. Fixes LOGCXX-29 .
? StringTokenizer uses evil strtok and wcstok functions Fixes LOGCXX-30 .
? Missing const qualifiers, Exception::getMessage() in particular. Fixes LOGCXX-31 .
? Missing copy constructors and assignment operators Fixes LOGCXX-32 .
? log4cxx::Exception is not derived from std::exception Fixes LOGCXX-33 .
? Visual Studio 6 CVS build broken Fixes LOGCXX-34 .
? Avoid use of MSXML Fixes LOGCXX-35 .
? Migrate to Apache Portable Runtime threads Fixes LOGCXX-36 .
? Unable to build log4cxx under Borland C++ Fixes LOGCXX-37 .
? Remove DailyRollingFileAppender Fixes LOGCXX-39 .
? PatternLayout does not support Java date format specifiers Fixes LOGCXX-40 .
? Layout timestamp doesn't seem to adjust for daylight saving Fixes LOGCXX-41 .
? configure/make help needed Fixes LOGCXX-43 .
? GUMP integation Fixes LOGCXX-44 .
? _T causes error : 1048576 cannot be used as a function Fixes LOGCXX-45 .
? Extra semicolon after namespace closing paren Fixes LOGCXX-46 .
? Check headers for missing declarations and Effective C++ violations Fixes LOGCXX-47 .
? Use hex representation for thread identifier Fixes LOGCXX-48 .
? Move timezone specification into pattern, remove locale specification Fixes LOGCXX-49 .
? variable name clash in macro Fixes LOGCXX-50 .
? Migrate log4j 1.3 RollingFileAppender Fixes LOGCXX-52 .
? Problems compiling with MsDev 6.0 (space in paths) Fixes LOGCXX-53 .
? Eliminate use of boost-regex in unit tests Fixes LOGCXX-54 .
? DailyRolling File Appender Fixes LOGCXX-55 .
? BasicConfiguration is unreliable Fixes LOGCXX-56 .
? Port log4j performance test Fixes LOGCXX-57 .
? ImmediateFlush'd FileAppenders extremely slow on Windows Fixes LOGCXX-58 .
? Implement encoding support for Writer appender Fixes LOGCXX-59 .
? XML layout can be mismatched with document encoding Fixes LOGCXX-60 .
? log4cxx 0.10.0 release Fixes LOGCXX-62 .
? Platform appropriate line-feed convention Fixes LOGCXX-63 .
? Migrate to APR network IO Fixes LOGCXX-64 .
? SyslogAppender append method currently stubbed out Fixes LOGCXX-66 .
? NTEventLogAppender always uses RPC method for logging and has inadequate error handling. Fixes LOGCXX-67 .
? Logic flaws in StringHelper::startsWith and StringHelper::endsWith Fixes LOGCXX-70 .
? Update performance page on web site Fixes LOGCXX-71 .
? INSTALL out of date Fixes LOGCXX-72 .
? Not loading configuration from log4cxx.properties or log4cxx.xml Fixes LOGCXX-73 .
? MinGW build Fixes LOGCXX-74 .
? Cygwin build Fixes LOGCXX-75 .
? user.home, user.dir, java.io.tmpdir available within configuration files Fixes LOGCXX-76 .
? Static builds broken Fixes LOGCXX-77 .
? configure check for apr-util Fixes LOGCXX-79 .
? Migrated network appenders to APR network IO Fixes LOGCXX-80 .
? SimpleDateFormat does not compile on Solaris 2.95.2 gcc Fixes LOGCXX-81 .
? Compiling with stream.h in multiple object files errors Fixes LOGCXX-82 .
? log4cxx::Level::ERROR fails to compile when GDI enabled Fixes LOGCXX-83 .
? Problems with stream logging in UTF8, no WCHAR_T build Fixes LOGCXX-84 .
? Mac OS/X fixes and enhancements Fixes LOGCXX-85 .
? Add TRACE level Fixes LOGCXX-86 .
? Remove remaining uses of Category and Priority Fixes LOGCXX-87 .
? Explore use of security-enhanced CRT methods Fixes LOGCXX-88 .
? simplesocketserver.cpp should use LOG4CXX_STR("...") not L"..." Fixes LOGCXX-94 .
? Gump build fails for log4cxx-ant-no-wchar-t target Fixes LOGCXX-98 .
? Fixes for ODBCAppender Fixes LOGCXX-100 .
? Much of CVS HEAD seems #if 0 out, especially ResourceBundle stuff Fixes LOGCXX-103 .
? ODBCAppender::close does not check if appender is already closed Fixes LOGCXX-104 .
? Infinite loop in string replacing Fixes LOGCXX-105 .
? maxFileSize has bad type in SizeBasedTriggeringPolicy file Fixes LOGCXX-106 .
? Can't compile log4cxx in ascii on Windows Fixes LOGCXX-107 .
? try fix 64bit log4cxx_intptr_t Fixes LOGCXX-110 .
? make Logger cache a LoggerRepositoryPtr instead of a "blind" pointer Fixes LOGCXX-111 .
? change "static" to "auto" for Transcoder::decode() decoder and CharsetDecoder::getDefaultDecoder() decoder Fixes LOGCXX-112 .
? separate apr detection m4 codes from aclocal.m4 Fixes LOGCXX-113 .
? Upgrade APR to 1.2.2 from 1.1.0 Fixes LOGCXX-114 .
? SVN head does not compile with Borland C++ compiler Fixes LOGCXX-115 .
? SVN head does not compiler with MinGW compiler Fixes LOGCXX-116 .
? Memory leak with ThreadSpecificData on Win32 Fixes LOGCXX-117 .
? Hierarchy corrupts with PropertyConfigurator Fixes LOGCXX-118 .
? ndctestcase not working Fixes LOGCXX-119 .
? Wrong parameter description in Patternlayout Fixes LOGCXX-120 .
? UTF-8 build fails on Linux Fixes LOGCXX-123 .
? wchar_t constructor missing in class NDC Fixes LOGCXX-124 .
? L7dTestCase is stubbed out Fixes LOGCXX-125 .
? std::cout stops working if log4cxx is first to output Fixes LOGCXX-126 .
? Main build.xml not referencing "env" properly. Fixes LOGCXX-127 .
? Asyncappender is full of race conditions (improper use of condition variables) Fixes LOGCXX-129 .
? Compile fails on gcc4.1 Fixes LOGCXX-130 .
? TimeBasedRollingPolicy is declared "abstract" Fixes LOGCXX-131 .
? various segmentation faults in multithreaded application Fixes LOGCXX-132 .
? Missing parenthesis in LOG4CXX_ASSERT Fixes LOGCXX-133 .
? FileAppender could create missing directories Fixes LOGCXX-134 .
? Use std::string with logstream Fixes LOGCXX-135 .
? DailyRollingFileAppender not using Property options Fixes LOGCXX-136 .
? XMLLayoutTestCase output and filtered output gets overwritten Fixes LOGCXX-138 .
? XMLLayoutTestCase uses inadequate filters for 64 bit platforms Fixes LOGCXX-139 .
? Handle leak with LoggingEvent::getCurrentThreadName Fixes LOGCXX-140 .
? Upgrade to APR 1.2.7 or later Fixes LOGCXX-141 .
? socketservertestcase.cpp does not compile with Sun Studio 11 on Solaris Fixes LOGCXX-142 .
? -xarch=v8plus should be removed from Makefile.in Fixes LOGCXX-143 .
? DailyRollingFileAppender::~DailyRollingFileAppender must call finalize Fixes LOGCXX-146 .
? make dist does not work Fixes LOGCXX-149 .
? logstream's operator < < declared in the wrong namespace Fixes LOGCXX-150 .
? Umlauts as literal in patternlayout won't be logged correct Fixes LOGCXX-151 .
? gcc warning about cast from `const void*' to `log4cxx::helpers::Object*' discards qualifiers from pointer target typ Fixes LOGCXX-152 .
? Automate log4cxx site and doxygen generation and deployment Fixes LOGCXX-153 .
? Update source headers per new ASF header policy Fixes LOGCXX-155 .
? immediate flush in console appender Fixes LOGCXX-156 .
? make install fails since @manual_dest@ replacement is missing in Makefiles Fixes LOGCXX-157 .
? tolower not defined in stringhelper.cpp Fixes LOGCXX-158 .
? Initialization of local static objects out of order on Linux Fixes LOGCXX-159 .
? helpers/object.h: DECLARE_LOG4CXX_OBJECT macro definition is missing virtual destructor declaration Fixes LOGCXX-160 .
? Using RollingFileAppender increases the working set with each rollover Fixes LOGCXX-161 .
? Problem printing string with embedded NULL character Fixes LOGCXX-162 .
? liblog4cxx (svn 480882) does not link on Mac OS X 10.4 Fixes LOGCXX-163 .
? XMLSocketAppender is disabled Fixes LOGCXX-164 .
? XMLSocketAppender may generate erroneous output due to mismatched encoding Fixes LOGCXX-165 .
? system locale charmap is not determined properly on Fedora Core 6 Fixes LOGCXX-167 .
? log4j.dtd does not contain rollingPolicy and other o.a.l.r.RFA elements Fixes LOGCXX-168 .
? XMLLayoutTestCase fails on compilers that do not provide location info Fixes LOGCXX-169 .
? Add project description file for projects.apache.org Fixes LOGCXX-171 .
? configure fail with ".infig.status: error: cannot find input file:" Fixes LOGCXX-172 .
? APRCharsetEncoder is not thread safe Fixes LOGCXX-175 .
? SocketImpl::accept uses private APR function: apr_wait_for_io_or_timeout Fixes LOGCXX-177 .
? Link failure if wchar_t cannot be determined as UTF-16 or UTF-32 Fixes LOGCXX-178 .
? example applications do SIGABRT on aix 5.2 Fixes LOGCXX-179 .
? Build fails at domconfigurator.h Fixes LOGCXX-180 .
? Level::DEBUG and other non-local statics cause crash on app shutdown on AIX Fixes LOGCXX-181 .
? missing man page for simplesocketserver Fixes LOGCXX-182 .
? Compiler warning: dereferencing type-punned pointer will break strict-aliasing rules Fixes LOGCXX-183 .
? Crash when log level set to 'inherited' Fixes LOGCXX-184 .
? Garbage characters in log files when log requests from multiple threads with hyperthreading enabled Fixes LOGCXX-186 .
? LogLog::emit() could potentially interleave messages Fixes LOGCXX-187 .
? Upgrade to apr 1.2.9 and apr-util 1.2.8 Fixes LOGCXX-188 .
? Migrate to Maven 2.0 for documentation and packaging Fixes LOGCXX-189 .
? The 'logger.h' header includes itself. Fixes LOGCXX-190 .
? Application cores when syslog appender is given an unreachable host/ip. Fixes LOGCXX-191 .
? Suggested improvements to log4cxx webpages Fixes LOGCXX-192 .
? Please rename or remove new local variable "buf" in Logger.h macros Fixes LOGCXX-193 .
? Garbage in log files when appenders are defined in multiple levels of the logger hierarchy Fixes LOGCXX-194 .
? Syslog appender adds characters to output. Fixes LOGCXX-195 .
? Syslog appender destructor can cause core Fixes LOGCXX-196 .
? ant can't generate vc6 project Fixes LOGCXX-197 .
? Implement compression for RollingFileAppender Fixes LOGCXX-200 .
? Visual Studio 6 build Fixes LOGCXX-201 .
? ObjectPtrT has inconsistent const-ness on accessors Fixes LOGCXX-202 .
? PatternParserTestCase and FileNamePatternTestCase fail only with VC6 Fixes LOGCXX-204 .
? isTraceEnabled implemenation missing in logger.cpp (Revision: 592627) Fixes LOGCXX-208 .
? A message of type wchar_t* is not beeing written correctly to the internal message buffer (Revision: 592627) Fixes LOGCXX-209 .
? HTMLLayout NDC null check Fixes LOGCXX-210 .
? Crash(Segmentation Fault) in DailyRollingFileAppender when file change Fixes LOGCXX-211 .
? unittest failed Fixes LOGCXX-212 .
? trace method implementation is missing Fixes LOGCXX-213 .
? Possible memory leak due to fault in build process (via make) Fixes LOGCXX-214 .
? Eliminate sqlext.h from odbcappender.h Fixes LOGCXX-215 .
? crash on program exit Fixes LOGCXX-216 .
? Not initialized LoggerPtr segfault program. Fixes LOGCXX-217 .
? Visual Studio 8 build Fixes LOGCXX-218 .
? suspicious warnings Fixes LOGCXX-219 .
? Memory leaks when using MFC Fixes LOGCXX-220 .
? ThreadID layout does not match debugger Fixes LOGCXX-221 .
? trunk compile error. Fixes LOGCXX-222 .
? Migrate unit tests from LGPL'd CPPUNIT to an ASL'd testing framework Fixes LOGCXX-225 .
? Default configurator uses *.properties in preference to *.xml Fixes LOGCXX-226 .
? Remove @since tags Fixes LOGCXX-227 .
? Remove @author tags Fixes LOGCXX-228 .
? Align ant build options with automake Fixes LOGCXX-230 .
? Deadlock in AsyncAppender Fixes LOGCXX-231 .
? Drop src/performance Fixes LOGCXX-232 .
? Unnecessary casts in ObjectPtrT Fixes LOGCXX-233 .
? Assignment operator removes const qualifier Fixes LOGCXX-234 .
? Add ObjectPtrT::exchange Fixes LOGCXX-235 .
? Re-order constructor initialiser lists to match declaration order Fixes LOGCXX-236 .
? Include missing headers Fixes LOGCXX-237 .
? Inconsistent const qualification on logging methods. Fixes LOGCXX-239 .
? Non-ascii named files have names mangled Fixes LOGCXX-241 .
? Eliminate log4cxx proxies for APR types Fixes LOGCXX-242 .
? Problem Compile in Doxy Fixes LOGCXX-243 .
? Config refresh hangs a client application that uses TelnetAppender Fixes LOGCXX-246 .
? MSVC project has wrong additional include directories Fixes LOGCXX-247 .
? ODBCAppender has unicode issues Fixes LOGCXX-248 .
? NDC::cloneStack and NDC::inherit missing in 0.10.0 RC2 Fixes LOGCXX-251 .
? Add documentation for use of operator < < in logging requests Fixes LOGCXX-252 .
? Transcoder compilation error with utf-8 charset Fixes LOGCXX-253 .
? Add build option for static C RTL Fixes LOGCXX-254 .
? SocketHubAppender fails after accepting connection Fixes LOGCXX-256 .
? ServerSocket::accept hangs on Unix Fixes LOGCXX-257 .
? unable to build from make dist package due to missing doxygen file Fixes LOGCXX-258 .
? Several appenders fail to compile in Visual Studio 2008 Fixes LOGCXX-259 .

Release 0.9.7 - 2004-05-10

Type Changes By
fix Fixed examples source code in the "Short introduction to log4cxx".
fix Fixed, in the renaming algorithm of RollingFileAppender and DailyRollingFileAppender, a problem specific to Unicode.
fix Fixed conflict with Windows macros "min" and "max", by renaming StrictMath::min and StrictMath::max to StrictMath::minimum and StrictMath::maximum.
add Port to HPUX 11.0.
fix Fixed segmentation fault in PropertyConfigurator.
add Port to Solaris.
fix Fixed MutexException thrown while destroying RollingFileAppender.
fix Logging macros can be used without explicity declaring the use of log4cxx namespace.
fix Fixed static library unresolved externals for msvc 6 and 7.1

Release 0.9.6 - 2004-04-11

Type Changes By
? 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)

Release 0.9.5 - 2004-02-04

Type Changes By
? 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 and 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 and NDC.

Release 0.9.4 - 2003-10-25

Type Changes By
? 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.

Release 0.9.3 - 2003-09-19

Type Changes By
? 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

Release 0.9.2 - 2003-08-10

Type Changes By
? 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.

Release 0.9.1 - 2003-08-06

Type Changes By
? 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".

Release 0.9.0 - 2003-08-06

Type Changes By
? 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.

Release 0.1.1 - 2003-07-09

Type Changes By
? Fixed MSVC 6.0 compilation problems concerning the 'Release' target
? Added MSVC 6.0 tests projects

Release 0.1.0 - 2003-07-08

Type Changes By
? 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)

Release 0.0.1 - 2003-05-31

Type Changes By
add Loggers, Hierarchy, Filters, Appenders, Layouts, NDC
add Appenders: AsyncAppender, ConsoleAppender, FileAppender, NTEventLogAppender, RollingFileAppender, SocketAppender, SocketHubAappender, TelnetAppender
add Layouts: HTMLLayout, PatternLayout, SimpleLayout, TTCCLayout, XMLLayout
add Filters: DenyAllFilter, LevelMatchFilter, LevelRangeFilter, StringMatchFilter
add Configurators: DOMConfigurator

apache-log4cxx-0.10.0/site/images/add.gif100644 0 0 317 10774263451 15150 0ustar 0 0 GIF89a*|~Η0XpN>tA9CGOs+ج!,|I8kl_@4DJ,l Ѡ*e|q8HH ET8(`"B`A`iM0[!KǸ|NianVXp\ KXDNNRmKcEXcJn#;apache-log4cxx-0.10.0/site/images/fix.gif100644 0 0 265 10774263451 15210 0ustar 0 0 GIF89a-H/Ʊ8)&#騦rT:$TRTxwv!,b9 ^+_'nYE1REAeWܮQ!{pKe0`!5 VJ`Q7  );apache-log4cxx-0.10.0/site/images/icon_help_sml.gif100644 0 0 1773 10774263451 17262 0ustar 0 0 GIF89a~K|sH~݁{ۃ*$6/KB"bW/aV/HRSWW}{wuttq[݁~}|{zyyxwvuuƱh܁ڀ}zw܂<4dW/rd8~GSζjʳhȰg`qpҺmйl͵j˳icr׿pӼn4,Y[Xb`_]\ZƮfŭeªdǯgXWVUTSRQPYwEJ}I{HN~J|IOMuDqBn@m@yG{d:k>|e;rZ4x`8t]6jS0nV2qY4iR0X@&!,5JF7pرBF6.H( :F` $Xx@aB AftltA &@DH 7s4!" $?h#"2f*W¡  F݈Ds ,;apache-log4cxx-0.10.0/site/images/remove.gif100644 0 0 343 10774263451 15714 0ustar 0 0 GIF89a!ᕔHJG=9121۽NJgduqMusVQLH!,IûeY(jh ,Bǫ.x D]/Y0`h @N0-PpV2GA\ތ@`PC‚h &<)<] X% ng~ v? \  c 8 W TM;apache-log4cxx-0.10.0/site/images/rss.png100644 0 0 371 10774263451 15246 0ustar 0 0 PNG  IHDR"MD.tEXtCreation Timejeu. 8 juil. 2004 00:26:46 +0100tIME,h pHYs  ~gAMA a PLTEffff/bSp9IDATxc`qv@t&8` Fbч AU#iE3:SOx?#USIENDB`apache-log4cxx-0.10.0/site/images/update.gif100644 0 0 300 10774263451 15672 0ustar 0 0 GIF89a ٕ\Ҫ?!y~LWA(xdGϾV.6+Vqg! ,mPI8!Hhy7E"[\Ӭ' OHvhz߉u  "y.F#J*` < c` Af{ ;apache-log4cxx-0.10.0/site/images/external.png100644 0 0 346 10774263451 16263 0ustar 0 0 PNG  IHDR Ӻ&gAMA7tEXtSoftwareAdobe ImageReadyqe< PLTEuuuPtRNS@*PIDATxb`&& @ P6#@ `XĆ2 d@A3 ( *tIENDB`apache-log4cxx-0.10.0/site/images/icon_error_sml.gif100644 0 0 1762 10774263451 17461 0ustar 0 0 GIF89a  q x v m;@GJf46_     i [        ~ } s q p n X V L     v l ~ "",9?6;{6:df島$')OWͱ-/*"4"3s}%8&:(=*@+A*?5H=MM\+B.F/G0I2M3O2N%9J.FprN3Ovx{@-EL6RO8V08G3O1:bGm3=4>7 C5AgOx?2ME7TmW|d}gu^V!,; H AJgN޴Yc* FrM/]HIh $5iΌ %BT 0P8$2,ㅋ,Z(DL@;Gk$<Hd >`'!\2?vhp  u@ .X = q0 )f$Tp"FQGr̉C;apache-log4cxx-0.10.0/site/images/icon_info_sml.gif100644 0 0 1136 10774263451 17256 0ustar 0 0 GIF89ar 'SG]}]yVpOgLcJ`EYxCWtI^~FZyehgjlmpXltvdyw|~wunzw…ǘƂ˦ΩЭҬџ԰ӵָؼݲ@TpAUqy}ŞɧŹ!r,r`fg`l\d LG^qqopnQmbj.MObhNgr\oP6 [ig%dmE4k_^eL PRah YcHBjfV F`\- 5Z=97D`] I' 130@KICA@,"c $XA ?tr兊!8h2† @Pab ;apache-log4cxx-0.10.0/site/images/icon_success_sml.gif100644 0 0 1736 10774263451 20001 0ustar 0 0 GIF89aΧμc~w˗éSq*/%(#8='*!37,/(CH'AF&>B/2*,)FI"!PrkjtŲFcO7G;ȝȣ֩۴߲2B.ᥳ⦷㫸䬸䭺导屏€㩲ࢲࣜΈޘܙٗۗ]B΅ԋۑ̈́՗]>Ԅሻfrmjb7Jw*U0W2im;Ag$r?o=e8f8b7Z2Y1S.Jt)Qy1WYuQeFcE{{hGv@u?k:h7`3Jr(E^3Q|,S~-Dh%}DEi&QŢIm&Qx+Ot)Mo(Ll&Ig%Gc$!, HA!,XE aCF5pAƏ *01#"NT0A=Y& NRI1bJ':o8b3-e˓у>|¥ (qŋ4hԱ(ЋmT"J;*d("4lp ,P( ;apache-log4cxx-0.10.0/site/images/icon_warning_sml.gif100644 0 0 1100 10774263451 17757 0ustar 0 0 GIF89ab`awr}~j|fsη⣴[M@K? kTN G J$wsrpiffecb_[ZTQOJ E D E ? i2 nm]XWVH A = h2 ]-bz{z&Zi&i(j&127m-D2%p4BI|Du@Ya\}R׈[v[mI:2̓`vّs=.()+*砅.!ӗ<,&餍5&!:*%y*vp묜*,-~zǟ!v,v oaed][sv iT u^PW\ZMIgXUGADSRQ?4VONK)#CnJHFE0=7'6*v B@%+8, l !5"9.:/Lt"$&(-3:c Yf3cđ# ;;apache-log4cxx-0.10.0/site/images/newwindow.png100644 0 0 334 10774263451 16457 0ustar 0 0 PNG  IHDR Ӻ&gAMA7tEXtSoftwareAdobe ImageReadyqe< PLTEuuu8tRNS@*FIDATxb`ffffb@  8@! @`6L& ^IENDB`apache-log4cxx-0.10.0/site/images/expanded.gif100644 0 0 64 10774263451 16167 0ustar 0 0 GIF89a! , j ;apache-log4cxx-0.10.0/site/images/collapsed.gif100644 0 0 65 10774263451 16346 0ustar 0 0 GIF89a! , D`c5 ;apache-log4cxx-0.10.0/site/images/logos/maven-feather.png100644 0 0 6402 10774263451 20325 0ustar 0 0 PNG  IHDRZ#/ pHYs.#.#x?vgAMA|Q cHRMz%u0`:o_F xIDATxb`H  FFblnڳg!߿?x8ߟ? XQtƍ.[LL,##CAAM'O\WW7eooog o߾1cFuu5ABCC&=qߟ7j%7<Ճ Jϟ?yfZZZJJ ''gpp0666mmm c߾}o޼ٰaCoo/\۷oh'.33 366^zW<{sb['>>׌}'|vJzdt9&^=bpE@@*;;ɓ'@ٳg_~ȸz… 1y]>ucǎMO}}ŋդI._ sUU߿֭[@`&F˖-Ѽ}OgU:̪M͟"oo3.?Ú)Jz֝U ݽ?  XTwΝV8P^^2555sa`dxyyZtuu&>}:77䘘ٵk׳gϘ /ԁ&&& 7lxɞ[1K3+J2>eggaA3|~9gǚ37Va㖕e$)8QWW:9s$&&Q T#** 2p XX T`vww[...( ,b`\|1g]*˟ y|?';#?FAvVN=\JzK_`r|y9 y0*r Krp&@!!!'= ~a4)))`2??s;y>/~œO}]_EҜ;q֏, _~:ZGpYGLL"R&X "68~ X@=y`Vd@a?~@9w܃T_\\ ,**rttQUU&+XX@V%=ygO}{;vo/q?Blߘ$lY[{ET8u/NW*pGQ9X*))S{zzXX nnnSS &ܹRkߜ`1  SBl?~rr2<8]>5[V:rn_bz΢U1w?`M=%C.?2~3o=cS@J%+* l71~ ` L u}ߏot?#+'3'&.&L,18 .9}$,f.qfIvvF~t@ X#}݅ÃT~߽~ϯ9}9Y/A2L?M}a]X!DQp Q`'<% ?."T/|ݛ?~{˯nN%A/lls1?l\\<4t3@AM$]VM/` X.B`kXpk޼yR {:"!8Ab 6sssC+u31~QtH#0W ,Ae bh0Zʅ r6"„NSTOr?]PXm;8pKm6{0XbDغ FLKK &R`T4 XkC2`O08 t1#+}@.0^|  c",M7Bv "2<܁l`O!|`[˗/ `Kn.ЕGkY`2`ߙ1> eC`]N3,]UH:t*)$Kxǧ(@ĉᝫOB[l[80??{Ύǖ6$0Ctmذȝ9s& A Ağ AjRRDWcc#XHKx= b9`At+&&owK `3¾r ydx).`xoG€'Q @Cl?{,d0YjT i' ϹV@,D>'OB FV¿ _AVQΐ[) ~102@ԫ[&MD ةb `ρU;$tAvҒO۷oGͭϣ ""$0!xW2002x~"E^Q'+**Acٲeh-1HR0D@5L ρ5Ç ϯ_G `8FED tk.`3 #I… !UV eҥKAQXtApg!9L,l < _߃s-4!##4dD5d= oBB TWbqqq`:@dgF< J@Cх  @q 0*DF̬L> lNΧϮ3Z32rqt1;& H &-THsF0cyyypM^w" (hkkKL } 'ƒ]I@G':`={`Tpr3|~, | HKH`|\v H= ,V^V+*HA< `vY8 P@4P@Z':vrIENDB`apache-log4cxx-0.10.0/site/images/logos/build-by-maven-white.png100644 0 0 4324 10774263451 21535 0ustar 0 0 PNG  IHDRZ#/ pHYs.#.#x?vtIME5BasIDATXY}LS[{_b6(_i _ڠA+ D+*5وp dQyFC$XkX\*R>  VDOj G>|a?Ι3̙sJ!`&^`/&)--{hW^1 ;2j0~!pwtt>|СC"hݳu|~`` |8::ZRR%ɖ-[WXA,hܚJY֯^ R߰aåKFg\]]RD"!իW%&&VWWڵݻ[n%$$cǔJׅ~zr<66uuuslll.B!fx<EQnnn*؁Di***fS5>>>]mX***֭[ ))))FoD0L\\\\\ٳg ERRRaa.]G,TVVV=عsg{{}Ε+WH2jl6fQe9! }}}aaa3t.zqUUU``{ω/mccc|>Ņ(,Z(Lfo8>s,A֖޽{-˗hi:44 }S?L!55uƍ$F02á 3{l/n&'S˲ 1CBCC7Z aFquwwJD1e{6wO+l.@ !͛hJc6KU*J*..BVg\.%R$z||\VT覦'Nxzz:99)ʊyd23&&wRh4Vupp ;UvT6Noooݍc^^^& !t9wtt$9rOimmihdWeddd~ਫ#v˱ O:Eؾ}dpqĽ~޾^z }2VY|9U__9(({^RR~:v5** CVSS#UPP@z߭[>}:22DN8rss?m4ׇoB^Ȍ 1M+v-8nŃj*++C]x?n޼8j}'8p:s 6`4?\\}}=f/^Ln5BBB0SҞ!{BOQ fHtL&|]$ ϟ?OQTcc#YVIx28Ÿ!sDzlcc#WZEǏcӓ`D+Woad( ܃)_+lQ+fz}^^^OO*VݝGHPH.3s5/^* ( JBZ@%?h?"jbQd~(d\A $&21 "R`UJ-Z8m4ɴNǩs}~sɚTWWzxxQ(bYU&⥣f_غu+!6<<|8˲NNNΝKMM~~~1118`rrRT@IID"$www???t޶m[JJJ^^_^__q܅ eǏ ϟ_J5gϞ---(++;;;@TTTxxx@@={ݍKjOOOooﴴ4%0 # vh၁'Or3&`0LOO>իWҥKo czz:;;;>>|ܽ{Í  :;;~_ߘZ9q@#iiike@~~~___ppma̯svvvssC]B<==V<2 R&''Yp|y܀jݻwgv;!2<<'J^j2h2nll}ZVHG-3~;ueH/A:3{ CK7lk׮eC,ˢ?G[lXʹ%>5MSSӇnh4>}ZL&H$'ms<-_f˗Ye^z{{ZVMNNx"lCCCtJQQNvӧjo޼V???Á+q^.{{{7n܈)DX8*CthnnYGAKPP~6fq``˷Z~։zXx,rTʾ:X<33P(oeH$r122;vѣh["=..[#""CWWҋ,5&r1}@.f7BE`II :ujkkcF d0322@R2zu twwF1ߍ=p rwc3{ƶeKKK1͉D"@)(((((XBΝ;tvv RPT*2##̃{.3ckM|ĸccceY\{n<ϗ/_D"]Y,'OB-U*أ$4\R@oݺFVukFͿ'9`3cAaUuV!݋M@, 0;;[TTD<_VVQbtuuc,p344DW{{; <Ͽ{hFׯifosGc/<s_b[k+ ˞?Y]Lͤpof86Tleۨ IR xzqX{[Awsy>/֜|\zb^Ha.Im~jϭUs}smGzoL@߆2œW?/1Q)c֛mhOa vo?jv]MY=JgK(ƻ+skA˯x.ik=gHmR4V㹡ͱäF?sR98ǪɝrHdbbyaʩ$\f~Jwqˊޏqdžܗu ZE{j_[ǶkcM/"͹hϴ6;Emt$}kP/𪪿ˎ.mnUv,ƲJ7;N@RFC~pyW[}/宵$zWqmPW[?o?c.}lkƘ鱵?e]I(]̸^w8BIM!}Adobe Photoshop ElementsAdobe Photoshop Elements 1.0.18BIMAdobed@[1     !1"Q2Aar# 35qBC$DUbd%&VY!1A"Qaq2B# Rbr3$sUCSTt% ?-786f @EI.!`SC)ڦ"q0r]m.9 f;rQ;0DHYir.ά糎Q˅ᗓh(ztX1q2,ԕrɢQI xt& ъ88C̪ZQn@q&r>=AIa=;bIث .Vv(97I媉 ȤUY6+ PJ!#2 $!zӍ ʘBXk#2??S?MxE6>lXJ荝ʼn ISrZ*UVಳ^ĂٺVT;Tg0kTV:2g9QucTSa$&3[WVVXx /ُ}sͺ](W/ Trc9@$F7'|p[8R26FuMd{r:eesYS1T5$NwDŽY^L,&p4:@ yl?ugEi:53 Bj֨WY"Z%.r|EdGWdfgPQPa. \ɎM&Kc֬|cq qiA(0Kp, Q*!`..E`))))))))))))))))))))))))))))))))))))++mU J,pPHgPJA(S#+8292LG#&j6%xWܱC:CQ'/1t;e .cc ҩc+[>BV.|``76oC^Vy࣎|gJ\$Fq0xQ`֭[v)L4,ӵ(f<7f*xeE=cf]%n-+ecCM\ue9}DNjI8cCiWE M[Y kͫ>ezIn`6#.pIå Q"xȈ2B_?d,{ \X$$\Uʾ{YΖ|(rzIFYE jS\Ed,pEnC5 Y Uh雨*'&r~i&4idd`-ka$Z bO@C0[_f|r"T4`nQA]"Gk;GG4^d @HE!șKb~":rَ eLc@p_J[B:Vǽ \*/"ad @B黲) IwZqq)]G08toJ.C~"+u +f WPH_@J7ZŀN +ιdsJaX1QM`qцeӽG܍(1oQ:5瘝zib W"=`1Qh㷏nSD%2.Wء$ h؀<.ֵl>yl[f{b$hìjfs#)ik;>}k!*s6# 2ƚFōdoы gٸl!Oct#4Nkhib@:=tc`}&q+Qer^e&Şɐ!Y 4)*!LIך*ܼp$n3 !YGrlfi&QEKsGҵ`+[g3 őE$]*RJJ5#Өz F' [6OC[l_E-{>^ Z 1D_{ysd=X^?u"c\Vѯ$eJ)u(tSfϰK3(Omdt`D :,.}  Y TkSj>}܌300dǐ7hZgVuBV#YnQ֊m YD",Ux)DYF//{H&ICA.8xGد}.ZăfRAEk͏+Ñ$lUV עtҔҔҔҕ|-97cc}! -1dvMZ1HBDDtlEG~.N-yAfZ(g !Cnxxҹ )M)M)M)]ZwzbkAiFF26MW.Kr!CsC0k 6+~mP+inRY'W }%"coݣD sl"+-ih+N2o# b ,N9LD0;,~)]\RRR MFJnH }RNY333Yg-#c( (BMJ))))))+w/7%!]޻Qto1|Q98ǍdcdZ} .>d8hQM] N1r@@t}ZRRRRRR)+rB5 S1C C b)vA )T}x~d"*`k5fѱ+ "ԓh<!)S>7M! ('6'"CG}8>a7'im22).H{O{"`Rj"Vz5-YB jǨLZ5f,#K"9IRەRHr%d)PION+gn&vvѽQ2'Xc č!(tWLcՆ=Y&MVj$#!ʒ-&*MT=7`+..d#rM7m$]Aѿ7M0ұi8U  " г(QZnSvMW1' Gp>\9Mٞ^q < SƐ ?I#}3oY2=Bbbg[%1Ye`/`IN1Ѕ2b]I%Sc"4]`Uc2M2wO#D͍q~zHei5*{ݖ0J~7ʰsɹcd E=Mu :.]3QmJaL_(u$ҷ*wК  [?'oPd@bPP+X:Or,9tqx@x r 3mn9T#x>\G8.To2-AǤAkrnmQׅqqh@S:@,Bn9*pM>l~xw#!1(t>t)FPcA5bzJP0~:߰=vcY+БU~㛃?L*ZSb mVHuz|hdNXrw'LSMC| aT)a/ɼM" .:lSz{GOs2͠\٬#*9?8KZYJd++XdQuv[;nuE 1\Ng Mc("P{ R9Opg ;x٤ŋ~JkGG7 *u7K,zVZqqb3YkiISphk٬,ʖvϋ)P`uT:g3@j^@.,<aߏm>h7FLQ1":#L|j dzy۱8dcdfn8ccG:QHT*!#E2Iľ`?<ı;UVao nN4hS&\3K"е\N[~Be`2$/c47!rHC [#qqloS5s'abHra}byK:B.=qϖ c'0g'TBragdR9Cs?mEBw٧pF\obw>;:$pnTM7 n.^|wp<Nl)K., 3e6[h&hpze25R|$ԢeyKTJg*@0ܱe"Z "0u_l6BvqMY7+i>Gjw-otx>{my! $G|L 06=˘*ƣ)PDUR]4l̴qti:l]Dznt T.?)6 iѝ4 ۅY.YGGCMeHfc4nqӭ. |ڐW["Ua\TB!hodM1]9gF i+@ O}-J+'&s=Mee%?E#9RDZK;{I{|{YPkYρ6[,,R7˞;UlYf1ϙV1TdtPFi(Ѫn"euN!Y5|G'v0\\?9dYkTnW|KNü5*&ur3kCpe@t)vзP#6+{Sfd7&q6)c`)7:%9^[%gYjc8 %ThU,c*^ckkȬFZDsFx. 4]+\di[8 v5S\g*͔0YB[%Yw0#}WQ52i|hw1,eCm:'3?)7b<*BxQG3H/T).J(Iy'FyHk1YBGH@;Ms2C\P$V&_aqBJ[ĖIL΍)\IHeq$`Rd([<3(Lur SQ'S﨡[.PɑY "2B֛/[.9aV 'Y: ڧ %;Ft$d]`_J7_|)|yT^m@q pk$1~&G&ض!|^}FeXԶ)oBNj iZ7e|vɝ2"2i\$5jق/6]ne SQP QeQ0&M)O? yT6_:M'>a;Xuq%v]R”wԌI#L"I.нHKnϥ/>C[|d.GAf_ke%MǐgWU~"::@fl2qn^][<(<*Q3A+Q\PBo֫R* $E Ƴ]X~qA#E]ƕZQ4]BA>/dH뭂+'4[U~!`3,j9HV-f~a]}Li?OB>/Y \fH NWYa2|vXc|:ʼnrm)S=FU'S%W/Juki goh^6zscCB՘sfeW2aSkGޗE{ƂVfLIb 6aPTܴJ}6M/Y:vit~D"|x;f5.bvN0FXxv=\;p67o\NLǓ׋n3Ur ֒n=բ@:Es?FYTr>SM:›\aL-.kكSfxAKL`!d%U&\*hu_{)$5 `')(4t? j>LDg1 j,㱎d[\h`HTvN#ϺT6;!O.[_aUZz3)PyF2W͘5UDOr;'7N5'q c[ۺW{ oܾ{?~y_)))*=f~(ߐ*W. q$sIAH"A35ҳM*0xYATS_\_ɏ>6TDUP2I}:߭sûθ?q$ͭd1_"̀ #y&p~QoiVd4-.tV<8R+[˫\me9S>XspWB2=%&nm%a&$5Yɦ FDdLNr FN3^Wn;v.C"HhfFv*e`m?[Mof#. Ph+*&H/lloҚg =:yx\VY@^=H$][HZ9͛HC%8 E0K }"$ZdHV f;P爊IR8PS*[  0W}ä@2wkd fxlEľjI~HBd[Céhò +Ϳ˓ų x^5[ZA@g !I4u5pxr1Ҩ{Y;vIG&!DKزnXY1*X-U/q8Ɏ%~ .,U)u[Qa(ד][.c2,'*,"܃uNa.L _d6|^H (ɌMzʬD9Qs`ؿM=8Y.dQdGiO J˨Z6+#&$G*@ͨtS0:1T*Ym- (rvouyV,sr13X6V@@a+w!4.tٲLC(V/`e&$OcV ] 7b(vFٲDӧgC.+ 7=um/NCɹѰkYqqXK4q$TҀ4luiTq\iQ )vD$KS&h+1La)e`ݚ=MR_[c.JtQcy[R=q89RC*P#yМw}r6gWVf?y5mUN)דZIp#5&tԝ2S)Rp6ۅλyn;6mYM#bOQ8fGst;V_ic~Qp{ $GI;+8]˱\|GY>. * qlJzL%bĘ˺o(ICG>wb'wP`}FgD\1?^Ѯ}DNWBC>()'S֧d?,oZQrZ\ǤfkSwM&Kץ0L *Wkln~/.mr%\9ðXf<3+odiI&9x;4dv<#91sqtLlz^9~?mg689 +#xAV T~v^FHmcb}|&2jZ;.==JWeRjZP#(UP)IMy|S~gOW(Day}e:?m ^d{i{j8XPlS|Oamo{U]eUJWMG @t&TXkL$HHdOam|E;sאR`w )k&jPw"oW)HK %9YB+F5`Ty9Ha2/\\6-5 `_Z.:\RH i8)CoW7WXΔV>9$fV-%fNڬ}J^)q" ¹ ͢Qm>xEmɁHQʴOw\K{'fB.Be"[H1 JDƒ ֧yՕ)H0)}ނVŻ=0{=N`Q V%l 5jQ+fǓo^rA2 HnΗV}ƹyYӓnF:\165Jc 4D[zn({c)mm2Y䅧 Z%׻:-8dٲ*d!SL @/SdȶKnE4HbQ˦W)a_z`IC"&!D8G_UѮRyX2?Bj'N^HݜbD^8OF$Lj'QBIU*u|.[eKRM5V(NEB-gBaj5& ldQnPNaBoU]cbG>'b㐈O`Wb9mJZ`ղ7pT"۴C ao~:_Q<̹_>_oiY,8ߒQ_7Gt$ @4GtBnYvJ{,J ̷>_YGyY˘-IEg%JCDȲRi::yXPo멅I~_]Bw*K}~N/\wg\El֏pڪF"':0D"07|UluUj+FB)(F݆A+FUJ1 ? UgCHVCeimҝ'Xc!SjҍOZ47-0 FUB7!{)u\oV^$TCZ{뒮ȮURXVpp=E9} ;-?O/ eF_O7xA'eA.βHJ$*UU*uCzwUf[/X8NbK=K[Uuv&Cq;!G"n&fS~(Η57λOw]?,Z\+)))))+iIR5RP:j&rN0 NCD\2#(E=A\A.D ͟SaEI᛹c՛aڮd&JbwM˽`ʂ%A_O*h{p8v<8eO&,N ;T ~5 kPf36v0)w*厉nRQ˧sX#(K-ggHpQ"*h'P>If&D[dh3$udom>t'׼{nrmw0%/.\0]:qxXr"P<M7~,Ҙsgk$֒#/Xf@PC$" ;n>0˓Ɏ)b*4fbճ|O r.)pDaǕq<;dDE#Tb䠨_+G6nr{ݞ;M{38݃*ϵrs ]9]u`Em4^!ICJg$ s\"VӪcsaqpk`8nښ|ygnlqlʒh#؝f tba &GuctW Vb-m,c'خ$/ᯖJpuNY 9MbnyѸ9ۡLm)*,LOiu(?(*e4.鏽&vƳ`1B- dGzzzI@9$|TW^;OH{Jo`Pn㴴6ّ9-Dd(Ǹ &f@OShԳ]'K,:Z1YMefl}h4ȹ%S/n@ԭo׏g,tKbad'R ՚SEQɔC1irǥ $QQ uY"bEՕo~Mv#NM_=8B;dEk D35Nk}4jNOED`8Mћȋc9,g,%7ͣw{ZVWǝ$u $hGailӮyNcwF٘TS-* iEuiFyIX>Jߖ5$%vh`2nh5,ɳDJì9@C^,ni>kmp۲G2F56<]4M  OWҖ3n`p}ݿ?`GYlnz0dYc步8 ݕ V~=e䫳H@V}]xL>_PZso'#l79ѤrlWtw}&۸w#|x P @ όFa]C3C&v*SeF-u6ycVRd\ 9UUYVj+M܍$˜o%"[9d$E737Su'FIqVumM,"&Y1IQaɄ,qC  \cʘv!`r6ADQ ]ygm2Hhsrbw~Bwgf~q8PRIA ,p035iŒpk/7D{xrZ ]+aƐ$ ^A*/UcxlM)2Vl<R|nߑLf dݪMDdX>"X^vXd[9Ɇ"KHX.@D$%h߹8p+G3%1H`r[P W {_%_Ӑ+J)c$r: VNBUlt-6V4[Jf櫁/fH1lK!|hT"#*!< s"^q!b6V+nzG@EN9gi13fdLUP lEk2nݺr 9r+9[jO{2vy$7yen!5@E$;푽g>nHU6 <Z$ԒOfK+M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)_)))))))*\WĔbq-ۋvvڶZ,NQK'UED Bdv#uqx1)Aթå׭υVy=0w|m2Z\1KPP [|*L6+$4+Z=:Z4.jy팽dw0gPH)6Ls/wx6ex TZҨ {d&|k}X&RX(I^16&/6n?qDV}$d$:V^' ( *} [OqSrmAU+ ف'X\tjin,_G yTnfIQ_2_Z̟&iY2)E91F2FWc!DP x1ٽͽ2$XFuU͓>$hԺrPO@n**Ҕ2ҕHqBLiJ(na#]U1 ?n)M)M)M)M)_)))))))*ݰ4O@l5TJ(bd=#m/~|E-#[2k]>%lp۫n!نac?mqlɒFH.n"# ""~PG1ww}rCƭTϲħ'f\q'v.\ѱIIYiꠊ3j"ɚf9 Q1@w irwj-mG.|5ggfY{d1 v>Pck>nzVX-U&,rT*"v5eEWrȹr VͶ8[\Y;sd5I HPu.mܞn}^ ףXNH@$( .ZNvYkD K^;ڋK2ݷv#o{Ϥ.nSSqb3),֫fGea\n|10=$ XiWs)"֫V³$wIEG^dO<'4I@UyàU8[ e۸PYtOv#6f=' DZ[1W騁f;ȷ~ jː8HRL^eZ4>?cHhk-o5l) <hs)LfY)ooTl']"twoL=OV{ YJŔw A{"m 2l vw],MUn/qW>ns3&TpER3JVdS閪r**1d*9wչfۆȻt69P r+$$kb<5L=ɼO`8vSNn5;9xWY͹vڿn)8,V>v YU" Vt`׉n b.V1 bOw87aQ&F@&(ĠVGårnl=ᛯ**&.AGr1^/Y ݾ^aps׻un!ʯﳲsjAJųBEmUNǯb/ڮ5rw #!d\  l7{y)9&öĘ͊„ J #ָ,8~ky8n_>e$QrN-!U N[`ul"Qp͏\ 2?E::y oslŸ6d2$f#~%SQ,w'doW8qoM4ڍfgWI36zJu<ݱ{mij['7i`*##ۍIRf,nE6m׻0?oKZZg:fɐDb4u@HB2|Jԇnܱ99:Y}\^=3g!tgÆK(E[|`/ZH ҵ\q߭VY2?u'^Y!eafd4jz,#1 f89mxCxd i$*Gn V<\wFy;Ybdo]SVlo/2~^Pud&4rœ2 QTɨ`wǁW.FZ̪|5 gf#դ 'a;_q6݋)c X-bX ^Gqs{[ZJ լMX5 cXkw ZFTQoH$(>,G:4kWAstJN V2;sFcD3rԮY_өnTf[͖Us~©vR4]UMjݑo54Q}W$uIh6D_d۾ tU nq 8{;<ʊ8cMȑV7璧3ظ_,2oT Ckt~,m%G~2Degmy19iG*`nEW 4UQ&MM!=bﻬ!51!cku|Mc{9O;3JlC*1e#Q`_ יY*S[HQuKQ3nkXBY-@nM[IM2n̯ȲUΖMZn9y'11]w%Ө+VŊ؅PKx>z˽NDQ,#bU@]F"(ng1dyٿfl͂R;y&k#4z)(E͜{4\&%DDɘ fnmqE^ݡnYiMRyIcFd%'Tg>=Ãp(dv86F/D–hFH6u{zQ}/q93+;I$U'i|̷E/wݑ[<.k嶉!HPuP|Y3^7d.냪aw}z[TydV#QʣI*lw/ޛIl,Qc^=C#/bY9[5{{X6HBfqύ?OZ{)3d;LlӼ(Cɼ^-86wDXѓ9=QR[UʵOdÃw;fQA̡d_tԐdY߉[[g+{ovV7E y`HZNIB( 7UYLʮqOھ!ͰAgmJ(FTkkէW@w򽻓m\KF ]vAw -ԯ[0דc]4.AP~c3EBbӃ%Ux2f (e ,:Ma䲈zjF!' TsEUpU:@P[doܲ06HLHLM Yâ/ؑzSq!mrHr6DP@>!Y {j?=F"O<1k6v}ԪѰ9D[+(]YY6IuM2:le1wfݷ<9cXLW,@$%mfFܤ: xjfok٭ji$< jʫW\tc_ɻ}u EAP6QP }g{6nW>%1K<|*F[L,U= +(oY|/SZjiڬ *(Eĺ,a LA;a1NJ^''tÚL91UfѪAֳom9\elIb$u-7l܍Ȕ)qԗ@NZǬ]e@JXk9tb'`}e+bǣ8;0=Uµ\oٓoK&69e7Vq1i4b.:]zV %,tOL!o&s:$ZCЀ 0p{A42l凞:o%^aTŝæ>q"˧OSR-&ȖfRibl&V25V,IAII,$ݳdpOۑQU>cqIʳO.\Tk8g$8>MX(,kfe`qai^J-noe   C,fT}{߶P66S71@'Y?/.ظpQTl>@N]LR7mYo7+ܗ]•_J*_[L^n8ILj[j56X[kK0ڎBz]fj2:g)DN:8(8WU{/$/x{G͇UxߥGwds: 6 @6nۥqdL" uۉ8FI#w 8EoRQ^HYad>^n܁V1M ;GRܸӞxx{q̪1ʴ%U̜$ %FT*.kI5$EUJ]qRP/ȶzIA7.LSkX5 :m{{Z˪CII[4[̹3$ڜ c볉CoQn =B"a[=<rǍ cH>vTeN/B<~ʽbQ6_{bFHj7&`xT`Ikk4c3ukL8gz[wʵd}~Np2f0)skr117xH5$W}Kp0= ֵxp\ț.05ǩu op EyʘTrEQ-UWQXKZޤD$p`1QDlr$hf)#޷d "`+}7 j)`7߶emwgx id(^X\,yzżn}=V8.L7N!(w{U/λR]ͰBk0ݛM U\+{x $U19F #ZmAz|tkXpQĶ&|Č$rLсDU/ ,jlԡ|""{sm9q2ץS ^.j2IQeQD6kǹ|sFF.LO uT1n_ ڷ] Ԍæm$P@T)#971ȇ!_B*'[8;P7:v|^cʍ8ͿcVś yǂr?}z0Ȓ-u8QT97QGp]jnLѬpF,-^~^;%סOO(m]Er"բࠉp]^٤ 8׸| dB8z {w r\C椒z'O/LP[t ԙ)vNGL3+$Gsb?ZVad6r L]bx.ǁ3*ģ`(}D"+'C gXZqO*օoRDAU3">|Q) 62C/~̥MX猪G[b iZw1'Xh,Pvp!)6^*ʟ;Ƚ_7k2cn_ 7PXbjS/!R7&K碑BZvzZ.e8eI%"+@1V"xNڪNͼ7Iĕ’"}$x-aWnMs{>N4e=.!EHG˧KWu :.4K%J[LZg2S֔] #H,ڣ:w)},3L]HrfmdVF>0#r< mömb)"w ctIIŸ;[}ZsJlB5c:^^z qTiYPaaM\*0QnrWr1d!C(k! /k٭ZopSŢ׺۴:̫vd>s"P(u, @LEW܍uyD1*b*E^lUwl@OSae8V ʠcjk[_Đe-J%fBA'LW-WECr0_5]q| fWP`#ŗOQttYr\} \ b7>6`a͏ݖ-ݡ K-%g$CPY#e*i.FϚ, wi'm7(ĄúG I]HRVU=DP 馻Uwݓd~ (u2l0r:Rye`_LETU!o 6ZEikSJSJSJW)))))))*yċndiURzy+%+^Yg8bGlN٘2 rK" ǘMW\OpF;*/L#@kZ{ߤ.WLu?z*ۏp۱Ǐ!دSulbf e\#3`@k;DHLL>cuuzmɓ`00rYG=jy{Yp,읳7&C%dnIZUdwXr*[bS # VC)2qn%ݶC$S"AѺA޹l@)KU'ܛ/o[ەnŘ@B`]I^$:lfkYY#hPlF-Rk#s( .HECDd;Ӹ${NܸuNP~eX+zq͟qu2V  <HZـ@X6V\ky_ɳ{V^tĴu] }ԓ(*̻Kc2HUn8DVQ#\{ro &v!L YԠu* ak\XE>vї0LÛ-qm,!AWn8{RnʍBhH-7)DdMM@ޠ =`.Oѹm:POMvkΨ2o9˄ǬbDѨI_B  7#g=*'dmor'f=}U%$ Tz`;R(Z^N7L=ŠG[iԗu[x>nclwlj4;~FVCurWSkbI,-zpzÑr \Av:MY Gpjn+ 63Dt((=r(.mtKX8ɶ=;#aJiE('tpA"YۮQ)٢y!v `XOk #(z78 svhfρZ ֈ z(&0#P@e6.|o.l:^ƥ~{t+3wʗmC$:*H+קJ8ap}4^S!Ļd@AVwY9ߑ(BeS64]g˫)q"Wnݺ[UW{ә*$)Y}R X \ձ\hHVr4:SoC?VDX4+L)zP#Ż?q6c!g!Ng@x^vd܃ǝơQ&, 7RMçk3j3Ͳ6r_}_UUpc4Me.Γc,=21b c\=2"4f=QY#Ifr;&72n~9sԒժ5`E$r6 ]+$C!IR-k|--~43Xq"1U+<)=çQVxOvdsfCJ=zԇ2>!)P`j 6PR÷>I԰{ZO"<߹2vD0F%UE|juoݲ7 `77f;*[*NhR1G5ghβZW#8á6[JNٌl xIt-'S$ÛP&6ͮEs^FF92;-`aOQWj.T(:8b$u2v U.طƭ5]*Un_2vI>QsБҕ6rmL=j _gIsed@|? 6_m+>3dbIPCptƫ^{݋`eY 12 J6H:moo~V9deRJJxաصQРՃT2U4h&=d+(q" c18>_y^EE@nG^Y͏H~эb,ıbXIWWR٭1sU#Z2go!Q(Jv":.OŶvRTGf\%^zw #U dwpHhܗ Xr q泋.0ţdNgV=X՗AA:U۸E7MQCDvWl{ԛfrڔqM`@e!57տl{(Ex2X5,^8Wj[.3j6Qa ʔ 0  aV=+KO\/&6ꊓf!gEO~R~ږzlUzXyŧ=w-Vm脛AIt+LP(*Ɏ?/2M{ju#ȹ$[]{q=SX%NF **^|efVnD dJ7I)-^F>]b̊ T;/t$.ꪲeݓ 籤ih11:eTN{7nv7VJz8" +>N;'IʽkFTU9闔vlN2up*IOArIɶvxv32 =G¥.;.iaFH f @?_ήS˾A}ЙS;v9T/ypP0lm>;|!6=0cr0KUݩ t;g&D,ZP^3?qt]JJb[g$hMQ@ˤčrneo8k(ZܯuY@ AplK5wi'tߡЪ'SXI *81~*&Pe*iELȲq&^J DaQs"H8l䋶OP E!;-#>dfebGMJx0+nq{=|7l'MLq"ȭ ,YXx1*j#E37!ʴ/;rwtm!wWؤ'TOU0PԦWr ~St 4[#  H8tT#$2>w'pcA$>E`2 /vdYpQ- #@Uoʢ5\k`s(mM"z UYl@}A+]>6>)U,ڗn CC,Uj$&@Z8lMX$=zJp?^~VͿ qh_r7b,z@Ҫ y%Wa$qT!ޱpPLrv.nG>7ժ{߈) [꟟d:LPE7A/:z|*c#y3$5yYJ4H[Ȧ@9UITr\!T\I YuJ|;x,(*S՚T]lp~#Hvϸv:B \oal RL5]Յ_F?JVPiJJVV )MJVRC})ZlҔ+]iJ`ҕJVVե)}iJl@}ZRҔҔҔҔҕ))))))))))))+C}ҕĩPvR[3տ7ҕ?C㷮,v~?}Ͷ}fR)M)M)M)[K}_w,v~?}Ͷ}fR)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)M)_apache-log4cxx-0.10.0/site/images/od.gif100644 0 0 13155 10774263451 15066 0ustar 0 0 GIF89aT   !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~! ,T  H*\ȰÇ#J|ŋ3jȱǏ C8ɓ(S\ɲ˗0cʜIsEj "ϟ@ Jѣ'+"]'ӧPJJjOXQʵׯ`K֮#Ӫ]˶ڲp=+,]w.ͫ_|X\È#,LBǃBV,s2b-jg1 -4U }*?6]dMckWƭ5K˾MNx6jPd;"ڌUbGKh5$9rhji݊l*zi`tM奨]ݙ|efLǝ[}\4bxٵYpufSwSNa %҇Agᒐy)hi*KJcvPjy頫I%'z7볣Y$kKJv&_ʢЦG+`*2JblWmj`tH~J- ,$l  ܑŲŝ,4Fuqz 6L+J,a fJI4L>uSM7[N<4\g~].Mm>Sh .5-wjmVe?7mm7 x}]ou3ηފؓϚxtVεC9WJg.⥛~ B3;.0>$n{̿ݟ8'Fڞȧ'LO0pZ_7˳//ce޻Z<_s4xA`H$:Ozx r(VzJƌէ(MЂ:!g5 m' +2ҿ4CЅ )xC;!}*"vMC4"Ք0!2pOSV֣$>&-R͉^"E.dd6jkdܖwGpA[zux 9̊AqxʷH&Gyrxƚ}+d/yV\h>qw?ҕ!Unwr(X*0\_hOq4,JSr[q%ȼ }$0)Is(K #@FO? 4a:樏Xs>* ܼy);2gM `J鈔s&ƭsPEd+7Irrs ޘ,N*M}B$ϔn]J.#u2̎j3F3KM)3pUQ6cA ČX8B/u l[.vd+]gfؒvylw-1v]cr5K=e6@"u6 Ѻ^63[ϖx"j|7Ϲ7W[&zñw7$o%w ˬrK j≎ODRu]r2[?!F{=a|AhmwIps/-]`tp?}?쪮%noޯnolYֹ;du}| -PԳcO'yx1ܗjnxD7o7*fzr~g=TM\򥾼q&Yi2xYȣ9aV{2='a/0~;toߴsr6فxfO@.zkذֵ-[[Frtk1m]G}cV z)Sw&m} xRl$XcՂ꓂*X1X3h45|7F94;h=x?AȁCmEh\GxIhKNMOQ(SUXXWY[c](*_HacXBeHgXihkOmxo\qȆsKuwjyb{e}b8xP8y(uhHxh舑r(}|e8r{vl'F^gᆊOƊ+ 'FfڦƋ拂&aF\.#A.hV"/GwnhS&`GXۨ_eckdvhDmHMPOToP~^V(*⢈Rqr8ǃb[-,7LH+gCIu!RGFRETj R9XR/LEYâS1.-S;vk&*5t IU 9h!U.9V]be/zVxu[bz;㔎WUyl2V”V\LV'iz]nSQm pZ/])`st2,3))ćTrIr%boW&N՗9rSOsOkQb9,{2%RD24)aEd]a#(y/E.T|M^i{T"uYgw`1y1VI"i:94Pw\ɂ"{u79cDyrp9qPni*_~ #">J:*Cz2ڡc&`W8w\b#Nd8)J d a))$I/ʅ a5Ţ;+z- `A IX_MzzG:1ʠɤYz.!ZA|cu*J35ba6I5@k6\*v21y H3NY*Ħqi9ZʧzpjsoΩhۗd F{cKdL8CW:@fMW~xz?j|*kzM}(WǍدǮ iʯϺgʪIP%*G +Ӭղ&‘qʬYU[#ii$[s9j"őE$ʪF[ %B;yPˉRڮLu4zHڴEz`k7ڵI*VlKy@ (z=XÏ+;Y%DGvIm7aʻsy/,#Ѻ\η)< z.Md &Tցyt%ŘӤN*rX(֕_\{K {7̷ΔN7eOw)OirEpΘVkГmć='ҷ\ o\i[ƛΟkmGrLȥܜ5۞WE`Uݿ]ŝWÛF˾&kola TL?ʻ2Kl{͝޴$Ir|`GEʝݽmhmKՓ}͌o s{K}-zᬉZލۤ'[=鬬-L]Ŕaj A&V-NĜ>ǨZK7- }y :]Oi:n[<$c|:l\F',~ن nn|,:uM:Q?EmC腎.JÍ耋~;țX(3Qv~CϹS4Ř;apache-log4cxx-0.10.0/site/project-info.html100644 0 0 16737 10774263473 16032 0ustar 0 0 log4cxx - Project Information

Project Information

This document provides an overview of the various documents and links that are part of this project's general information. All of this content is automatically generated by Maven on behalf of the project.

Overview

Document Description
Dependencies This document lists the projects dependencies and provides information on each dependency.
Mailing Lists This document provides subscription and archive information for this project's mailing lists.
Issue Tracking This is a link to the issue management system for this project. Issues (bugs, features, change requests) can be created and queried using this link.
Source Repository This is a link to the online source repository that can be viewed via a web browser.
Project License This is a link to the definitions of project licenses.

apache-log4cxx-0.10.0/site/project-reports.html100644 0 0 15224 10774263473 16563 0ustar 0 0 log4cxx - Generated Reports

Generated Reports

This document provides an overview of the various reports that are automatically generated by Maven Each report is briefly described below.

Overview

Document Description
Changes Report Changes Report on Releases of the Project.

apache-log4cxx-0.10.0/site/css/maven-theme.css100644 0 0 6771 10774263473 16232 0ustar 0 0 /* Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You 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. */ body { padding: 0px 0px 10px 0px; } body, td, select, input, li{ font-family: Verdana, Helvetica, Arial, sans-serif; font-size: 13px; } code{ font-family: Courier, monospace; font-size: 13px; } a { text-decoration: none; } a:link { color:#36a; } a:visited { color:#47a; } a:active, a:hover { color:#69c; } #legend li.externalLink { background: url(../images/external.png) left top no-repeat; padding-left: 18px; } a.externalLink, a.externalLink:link, a.externalLink:visited, a.externalLink:active, a.externalLink:hover { background: url(../images/external.png) right center no-repeat; padding-right: 18px; } #legend li.newWindow { background: url(../images/newwindow.png) left top no-repeat; padding-left: 18px; } a.newWindow, a.newWindow:link, a.newWindow:visited, a.newWindow:active, a.newWindow:hover { background: url(../images/newwindow.png) right center no-repeat; padding-right: 18px; } h2 { padding: 4px 4px 4px 6px; border: 1px solid #999; color: #900; background-color: #ddd; font-weight:900; font-size: x-large; } h3 { padding: 4px 4px 4px 6px; border: 1px solid #aaa; color: #900; background-color: #eee; font-weight: normal; font-size: large; } h4 { padding: 4px 4px 4px 6px; border: 1px solid #bbb; color: #900; background-color: #fff; font-weight: normal; font-size: large; } h5 { padding: 4px 4px 4px 6px; color: #900; font-size: medium; } p { line-height: 1.3em; font-size: small; } #breadcrumbs { border-top: 1px solid #aaa; border-bottom: 1px solid #aaa; background-color: #ccc; } #leftColumn { margin: 10px 0 0 5px; border: 1px solid #999; background-color: #eee; } #navcolumn h5 { font-size: smaller; border-bottom: 1px solid #aaaaaa; padding-top: 2px; color: #000; } table.bodyTable th { color: white; background-color: #bbb; text-align: left; font-weight: bold; } table.bodyTable th, table.bodyTable td { font-size: 1em; } table.bodyTable tr.a { background-color: #ddd; } table.bodyTable tr.b { background-color: #eee; } .source { border: 1px solid #999; } dl { padding: 4px 4px 4px 6px; border: 1px solid #aaa; background-color: #ffc; } dt { color: #900; } #organizationLogo img, #projectLogo img, #projectLogo span{ margin: 8px; } #banner { border-bottom: 1px solid #fff; } .errormark, .warningmark, .donemark, .infomark { background: url(../images/icon_error_sml.gif) no-repeat; } .warningmark { background-image: url(../images/icon_warning_sml.gif); } .donemark { background-image: url(../images/icon_success_sml.gif); } .infomark { background-image: url(../images/icon_info_sml.gif); } apache-log4cxx-0.10.0/site/css/maven-base.css100644 0 0 6113 10774263473 16030 0ustar 0 0 /* Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You 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. */ body { margin: 0px; padding: 0px; } img { border:none; } table { padding:0px; width: 100%; margin-left: -2px; margin-right: -2px; } acronym { cursor: help; border-bottom: 1px dotted #feb; } table.bodyTable th, table.bodyTable td { padding: 2px 4px 2px 4px; vertical-align: top; } div.clear{ clear:both; visibility: hidden; } div.clear hr{ display: none; } #bannerLeft, #bannerRight { font-size: xx-large; font-weight: bold; } #bannerLeft img, #bannerRight img { margin: 0px; } .xleft, #bannerLeft img { float:left; text-shadow: #7CFC00 1px 1px 1px; } .xright, #bannerRight { float:right; text-shadow: #7CFC00 1px 1px 1px; } #banner { padding: 0px; } #banner img { border: none; } #breadcrumbs { padding: 3px 10px 3px 10px; } #leftColumn { width: 170px; float:left; overflow: auto; } #bodyColumn { margin-right: 1.5em; margin-left: 197px; } #legend { padding: 8px 0 8px 0; } #navcolumn { padding: 8px 4px 0 8px; } #navcolumn h5 { margin: 0; padding: 0; font-size: small; } #navcolumn ul { margin: 0; padding: 0; font-size: small; } #navcolumn li { list-style-type: none; background-image: none; background-repeat: no-repeat; background-position: 0 0.4em; padding-left: 16px; list-style-position: outside; line-height: 1.2em; font-size: smaller; } #navcolumn li.expanded { background-image: url(../images/expanded.gif); } #navcolumn li.collapsed { background-image: url(../images/collapsed.gif); } #poweredBy { text-align: center; } #navcolumn img { margin-top: 10px; margin-bottom: 3px; } #poweredBy img { display:block; margin: 20px 0 20px 17px; } #search img { margin: 0px; display: block; } #search #q, #search #btnG { border: 1px solid #999; margin-bottom:10px; } #search form { margin: 0px; } #lastPublished { font-size: x-small; } .navSection { margin-bottom: 2px; padding: 8px; } .navSectionHead { font-weight: bold; font-size: x-small; } .section { padding: 4px; } #footer { padding: 3px 10px 3px 10px; font-size: x-small; } #breadcrumbs { font-size: x-small; margin: 0pt; } .source { padding: 12px; margin: 1em 7px 1em 7px; } .source pre { margin: 0px; padding: 0px; } apache-log4cxx-0.10.0/site/css/print.css100644 0 0 1746 10774263473 15155 0ustar 0 0 /* Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You 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. */ #banner, #footer, #leftcol, #breadcrumbs, .docs #toc, .docs .courtesylinks, #leftColumn, #navColumn { display: none !important; } #bodyColumn, body.docs div.docs { margin: 0 !important; border: none !important } apache-log4cxx-0.10.0/site/css/site.css100644 0 0 1407 10774263451 14753 0ustar 0 0 /* Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You 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. */ apache-log4cxx-0.10.0/site/.htaccess100644 0 0 3764 10774263451 14313 0ustar 0 0 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You 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. RewriteEngine on # # rewrite site requests to equivalent new URLs # RewriteRule ^contributing\.html$ http://logging.apache.org/log4cxx/issue-tracking.html [R=permanent,L] RewriteRule ^roadmap\.html$ http://logging.apache.org/log4cxx/issue-tracking.html [R=permanent,L] RewriteRule ^support\.html$ http://logging.apache.org/log4cxx/index.html [R=permanent,L] RewriteRule ^team\.html$ http://logging.apache.org/team-list.html [R=permanent,L] RewriteRule ^performance\.html$ http://logging.apache.org/log4cxx/index.html [R=permanent,L] RewriteRule ^ChangeLog$ http://logging.apache.org/log4cxx/changes-report.html [R=permanent,L] RewriteRule ^news$ http://logging.apache.org/log4cxx/changes-report.html [R=permanent,L] RewriteRule ^manual\.html$ http://logging.apache.org/log4cxx/index.html [R=permanent,L] RewriteRule ^manual/index\.html$ http://logging.apache.org/log4cxx/manual.html [R=permanent,L] RewriteRule ^manual/(.*)$ http://logging.apache.org/log4cxx/apidocs/$1 [R=permanent,L] RewriteRule ^manual\.html/index\.html$ http://logging.apache.org/log4cxx/manual.html [R=permanent,L] RewriteRule ^manual\.html/(.*)$ http://logging.apache.org/log4cxx/apidocs/$1 [R=permanent,L] apache-log4cxx-0.10.0/site/apidocs/doxygen.png100644 0 0 2401 10774263460 16305 0ustar 0 0 PNG  IHDRd-ok>gAMAOX2tEXtSoftwareAdobe ImageReadyqe<]PLTEǾ"&ﶻޠ{ԍ눙נED9hg]_X<@:#mhU1tRNSvIDATxbC: d#h` @X",***LK.], X@t b @BD6%""  % B:Hf@ RPy"K`\PbC(!II!h(!Cąl!0[X\J\$TM(>a$S @ Ш@R.$LJBRAG1 (FPhhT%!`&q%u P    CT$B|Wl!B`R$( @A%%@,(%$RPmB U`1IYB  99\1 yCCCf"[N'=TGȒl8^K5<SRɤ%@@  b1qAXH&BR y nP4A j>  t!+(.WQA2MU܂ `1%`19F< 3cZ`e!\ D+. 83!lYYA -6EJV @XXX 4 @86`RdB4I " "@xrʌHA`f ȰC"XV0C b@2H ȓ p)!( 04)(%R $Tʀbb,s@7 Ѱ?f֗\PIx!I"Ȉ3 QYt^^gv- }>WJOAV`$&#88\FF SFJ$ƀƊ 4 - Hf ?5 k1d, ."FˀI"4Hgx|fm)))9. aMD& X@t b @%DK.], X@t b @d`ɽSOIENDB`apache-log4cxx-0.10.0/site/apidocs/tab_b.gif100644 0 0 43 10774263460 15620 0ustar 0 0 GIF89a,D;apache-log4cxx-0.10.0/site/apidocs/tab_l.gif100644 0 0 1302 10774263460 15671 0ustar 0 0 GIF89a ,薴ŝɯͻ, ,@P`H$!%CqVe2XJ(Ġ+3 2$ kv-u*"}|}|~q(" $f 'l(&&$r & !){rƲεҽͼиP?Bm A%V܈!k/Đ;^$Ɩ#Mf)f͇(WLK҄ I)L:eD Cx*4 Uh %A^NKbeXkx!2t !5t]$%X.i[]YfEkg`:zҞ;}jaaM׸c瞽vۺ8ȋ'?9積G_>yu_ߞ]zw߭Ǿm浏G~თ/>٫|W}v;apache-log4cxx-0.10.0/site/apidocs/tab_r.gif100644 0 0 5031 10774263460 15702 0ustar 0 0 GIF89a,薴ŝɯͻ,,@pH,Ȥrl:ШtJZجv h d@L"F:򑐌$9 (8&Nz (GFB^!˨)WVl)1 w̥.wY0Ib|Hpf:e pJ}Ȧ6nz 80%"8v~ @JЂMBІ:D'ZPKF ּ&16юz HGJRb L5Җ0LgJӚ#(e>Ӟ@ PJԢHMRԦ:PTJժ&5;%Uծz` XJVCjYֶp\Uxͫ^׾i)$Mb:v, ಘͬf7z hGKҚMjWֺ*$SPͭnwm +Mr:E?9Zͮv9" xKbLz^A|ͯ0/LN(; n0'LaJ0{/{ؘG|(SCr. v1wc6@LdHNd/PLeOXp|+s2L_153M5t3_:wsgʹπp?/FFЎt!-JҖ1NӞuA-Pԝ>53UWծ4cYZѶsA׀5,aƶ3=e3~-3Sc6mo2Mq>7ӭn$D~7,y1m}v\/N3#S\gu-mO0C\'_S^|.c.0ל49~s=3d:u)?F;ˮW|;W)vt˽w|=xA;apache-log4cxx-0.10.0/site/apidocs/tabs.css100644 0 0 1532 10774263462 15573 0ustar 0 0 /* Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You 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. */ /* Minimal replacement for GPL'd tabs.css */ DIV.tabs { display : none ; } apache-log4cxx-0.10.0/site/apidocs/action_8h.html100644 0 0 11206 10774263472 16712 0ustar 0 0 Apache log4cxx: action.h File Reference

action.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::rolling

Classes

class  Action
 A file system action performed as part of a rollover event. More...

Defines

#define _LOG4CXX_ROLLING_ACTION_H

Functions

 log4cxx::rolling::LOG4CXX_PTR_DEF (Action)


Define Documentation

#define _LOG4CXX_ROLLING_ACTION_H
 

apache-log4cxx-0.10.0/site/apidocs/doxygen.css100644 0 0 1473 10774263462 16323 0ustar 0 0 /* Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You 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. */ /* Minimal replacement for GPL'd doxygen.css */ apache-log4cxx-0.10.0/site/apidocs/main.html100644 0 0 4472 10774263472 15751 0ustar 0 0 Apache log4cxx: Main Page

Apache log4cxx Documentation

Version 0.10.0

apache-log4cxx-0.10.0/site/apidocs/files.html100644 0 0 62115 10774263472 16145 0ustar 0 0 Apache log4cxx: File Index

Apache log4cxx File List

Here is a list of all files with brief descriptions:
absolutetimedateformat.h
action.h
andfilter.h
appender.h
appenderattachable.h
appenderattachableimpl.h
appenderskeleton.h
aprinitializer.h
asyncappender.h
basicconfigurator.h
bufferedoutputstream.h
bufferedwriter.h
bytearrayinputstream.h
bytearrayoutputstream.h
bytebuffer.h
cacheddateformat.h
charsetdecoder.h
charsetencoder.h
class.h
classnamepatternconverter.h
classregistration.h
condition.h
configurator.h
consoleappender.h
cyclicbuffer.h
dailyrollingfileappender.h
datagrampacket.h
datagramsocket.h
date.h
dateformat.h
datelayout.h
datepatternconverter.h
datetimedateformat.h
defaultconfigurator.h
defaultloggerfactory.h
defaultrepositoryselector.h
denyallfilter.h
domconfigurator.h
errorhandler.h
exception.h
expressionfilter.h
fallbackerrorhandler.h
file.h
fileappender.h
filedatepatternconverter.h
fileinputstream.h
filelocationpatternconverter.h
fileoutputstream.h
filerenameaction.h
filewatchdog.h
filter.h
filterbasedtriggeringpolicy.h
fixedwindowrollingpolicy.h
formattinginfo.h
fulllocationpatternconverter.h
gzcompressaction.h
hierarchy.h
hierarchyeventlistener.h
htmllayout.h
inetaddress.h
inputstream.h
inputstreamreader.h
integer.h
integerpatternconverter.h
iso8601dateformat.h
layout.h
level.h
levelmatchfilter.h
levelpatternconverter.h
levelrangefilter.h
linelocationpatternconverter.h
lineseparatorpatternconverter.h
literalpatternconverter.h
loader.h
locale.h
locationinfo.h
locationinfofilter.h
logger.h
loggerfactory.h
loggerpatternconverter.h
loggerrepository.h
loggingevent.h
loggingeventpatternconverter.h
loglog.h
logmanager.h
logstring.h
manualtriggeringpolicy.h
mapfilter.h
mdc.h
messagebuffer.h
messagepatternconverter.h
methodlocationpatternconverter.h
mutex.h
nameabbreviator.h
namepatternconverter.h
ndc.h
ndcpatternconverter.h
nteventlogappender.h
object.h
objectimpl.h
objectoutputstream.h
objectptr.h
odbcappender.h
onlyonceerrorhandler.h
optionconverter.h
optionhandler.h
outputdebugstringappender.h
outputstream.h
outputstreamwriter.h
patternconverter.h
patternlayout.h
patternparser.h
pool.h
portability.h
properties.h
propertiespatternconverter.h
propertyconfigurator.h
propertyfilter.h
propertyresourcebundle.h
propertysetter.h
provisionnode.h
reader.h
relativetimedateformat.h
relativetimepatternconverter.h
repositoryselector.h
resourcebundle.h
rolling/rollingfileappender.h
rollingfileappender.h
rollingfileappenderskeleton.h
rollingpolicy.h
rollingpolicybase.h
rolloverdescription.h
rootlogger.h
serversocket.h
simpledateformat.h
simplelayout.h
sizebasedtriggeringpolicy.h
smtpappender.h
socket.h
socketappender.h
socketappenderskeleton.h
sockethubappender.h
socketoutputstream.h
stream.h
strftimedateformat.h
strictmath.h
stringhelper.h
stringmatchfilter.h
stringtokenizer.h
synchronized.h
syslogappender.h
syslogwriter.h
system.h
systemerrwriter.h
systemoutwriter.h
tchar.h
telnetappender.h
thread.h
threadlocal.h
threadpatternconverter.h
threadspecificdata.h
throwableinformationpatternconverter.h
timebasedrollingpolicy.h
timezone.h
transcoder.h
transform.h
triggeringeventevaluator.h
triggeringpolicy.h
ttcclayout.h
writer.h
writerappender.h
xml.h
xmllayout.h
xmlsocketappender.h
zipcompressaction.h
apache-log4cxx-0.10.0/site/apidocs/absolutetimedateformat_8h.html100644 0 0 7026 10774263472 22166 0ustar 0 0 Apache log4cxx: absolutetimedateformat.h File Reference

absolutetimedateformat.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  AbsoluteTimeDateFormat
 Formats a date in the format HH:mm:ss,SSS for example, "15:49:37,459". More...
apache-log4cxx-0.10.0/site/apidocs/annotated.html100644 0 0 151023 10774263472 17035 0ustar 0 0 Apache log4cxx: Class List

Apache log4cxx Class List

Here are the classes, structs, unions and interfaces with brief descriptions:
AbsoluteTimeDateFormatFormats a date in the format HH:mm:ss,SSS for example, "15:49:37,459"
ActionA file system action performed as part of a rollover event
AndFilterA filter that 'and's the results of any number of contained filters together
AppenderImplement this interface for your own strategies for outputting log statements
AppenderAttachableThis Interface is for attaching Appenders to objects
AppenderAttachableImpl
AppenderSkeletonImplementation base class for all appenders
APRInitializer
AsyncAppenderThe AsyncAppender lets users log events asynchronously
BasicConfiguratorUse this class to quickly configure the package
BindExceptionSignals that an error occurred while attempting to bind a socket to a local address and port
BufferedOutputStreamAbstract class for writing to character streams
BufferedWriterWrites text to a character-output stream buffering requests to increase efficiency
ByteArrayInputStreamInputStream implemented on top of a byte array
ByteArrayOutputStreamOutputStream implemented on top of std::vector
ByteBufferA byte buffer
CachedDateFormat
CharMessageBufferThis class is used by the LOG4CXX_INFO and similar macros to support insertion operators in the message parameter
CharsetDecoderAn abstract engine to transform a sequences of bytes in a specific charset into a LogString
CharsetEncoderAn engine to transform LogStrings into bytes for the specific character set
Class
ClassNamePatternConverterFormats the class name of the site of the logging request
ClassNotFoundExceptionThrown when an application tries to load in a class through its string name but no definition for the class with the specified name could be found
ClassRegistration
ClosedChannelException
ConditionThis class provides a means for one thread to suspend exception until notified by another thread to resume
ConfiguratorImplemented by classes capable of configuring log4j using a URL
ConnectExceptionSignals that an error occurred while attempting to connect a socket to a remote address and port
ConsoleAppenderConsoleAppender appends log events to stdout or stderr using a layout specified by the user
CyclicBufferCyclicBuffer is used by other appenders to hold instances of LoggingEvent for immediate or deferred display
DailyRollingFileAppenderDailyRollingFileAppender extends FileAppender so that the underlying file is rolled over at a user chosen frequency
DatagramPacketThis class represents a datagram packet
DatagramSocketThis class represents a socket for sending and receiving datagram packets
DateSimple transcoder for converting between external char and wchar_t strings and internal strings
DateFormatDateFormat is an abstract class for date/time formatting patterned after java.text.DateFormat
DateLayoutThis abstract layout takes care of all the date related options and formatting work
DatePatternConverterConvert and format the event's date in a StringBuffer
DateTimeDateFormatFormats a date in the format dd MMM yyyy HH:mm:ss,SSS for example, "06 Nov 1994 15:49:37,459"
DefaultConfiguratorConfigures the repository from environmental settings and files
DefaultLoggerFactory
DefaultRepositorySelector
DenyAllFilterThis filter drops all logging events
DOMConfiguratorUse this class to initialize the log4cxx environment using a DOM tree
DOMException
ErrorCode
ErrorHandlerAppenders may delegate their error handling to ErrorHandlers
ExceptionThe class Exception and its subclasses indicate conditions that a reasonable application might want to catch
ExpressionFilterA filter supporting complex expressions - supports both infix and postfix expressions (infix expressions must first be converted to postfix prior to processing)
FallbackErrorHandlerThe FallbackErrorHandler implements the ErrorHandler interface such that a secondary appender may be specified
FileAn abstract representation of file and directory path names
FileAppenderFileAppender appends log events to a file
FileDatePatternConverterFormats an date by delegating to DatePatternConverter
FileInputStreamInputStream implemented on top of APR file IO
FileLocationPatternConverterReturn the event's line location information in a StringBuffer
FileOutputStreamOutputStream implemented on top of APR file IO
FileRenameAction
FileWatchdogCheck every now and then that a certain file has not changed
FilterUsers should extend this class to implement customized logging event filtering
FilterBasedTriggeringPolicyFilterBasedTriggeringPolicy determines if rolling should be triggered by evaluating the current message against a set of filters
FixedWindowRollingPolicyWhen rolling over, FixedWindowRollingPolicy renames files according to a fixed window algorithm as described below
FormattingInfoModifies the output of a pattern converter for a specified minimum and maximum width and alignment
FullLocationPatternConverterFormat the event's line location information
GZCompressAction
HierarchyThis class is specialized in retrieving loggers by name and also maintaining the logger hierarchy
HierarchyEventListenerListen to events occuring within a Hierarchy
HTMLLayoutThis layout outputs events in a HTML table
IllegalArgumentExceptionThrown to indicate that a method has been passed an illegal or inappropriate argument
IllegalMonitorStateException
IllegalStateException
InetAddress
InputStreamAbstract class for reading from character streams
InputStreamReaderClass for reading from character streams
InstantiationExceptionThrown when an application tries to create an instance of a class using the newInstance method in class Class, but the specified class object cannot be instantiated because it is an interface or is an abstract class
Integer
IntegerPatternConverterFormats an integer
InterruptedException
InterruptedIOExceptionSignals that an I/O operation has been interrupted
IOExceptionSignals that an I/O exception of some sort has occurred
ISO8601DateFormatFormats a date in the format yyyy-MM-dd HH:mm:ss,SSS for example "1999-11-27 15:49:37,459"
LayoutExtend this abstract class to create your own log layout format
LevelDefines the minimum set of levels recognized by the system, that is OFF, FATAL, ERROR, WARN, INFO, DEBUG and ALL
Level::LevelClass
LevelMatchFilterThis is a very simple filter based on level matching
LevelPatternConverterReturn the event's level in a StringBuffer
LevelRangeFilterThis is a very simple filter based on level matching, which can be used to reject messages with priorities outside a certain range
LineLocationPatternConverterFormat the event's line location information
LineSeparatorPatternConverterFormats a line separator
LiteralPatternConverterFormats a string literal
Loader
Locale
LocationInfoThis class represents the location of a logging statement
LocationInfoFilterLocation information is usually specified at the appender level - all events associated with an appender either create and parse stack traces or they do not
LoggerThis is the central class in the log4cxx package
LoggerFactoryImplement this interface to create new instances of Logger or a sub-class of Logger
LoggerPatternConverterFormats a logger name
LoggerRepositoryA LoggerRepository is used to create and retrieve Loggers
LoggingEventThe internal representation of logging events
LoggingEventPatternConverterLoggingEventPatternConverter is a base class for pattern converters that can format information from instances of LoggingEvent
LogLogThis class used to output log statements from within the log4cxx package
LogManagerUse the LogManager class to retreive Logger instances or to operate on the current LoggerRepository
logstreamAn STL-like stream API for log4cxx using char as the character type
logstream_baseBase class for the basic_logstream template which attempts to emulate std::basic_ostream but attempts to short-circuit unnecessary operations
ManualTriggeringPolicyManualTriggeringPolicy only rolls over on explicit calls to RollingFileAppender.rollover()
MapFilter
MDCSimilar to the NDC class except that it is based on a map instead of a stack
MessageBufferThis class is used by the LOG4CXX_INFO and similar macros to support insertion operators in the message parameter
MessagePatternConverterFormats the message of an logging event
MethodLocationPatternConverterReturn the event's line location information in a StringBuffer
MissingResourceException
Mutex
MutexException
NameAbbreviatorNameAbbreviator generates abbreviated logger and class names
NamePatternConverterBase class for other pattern converters which can return only parts of their name
NDCNdc class implements nested diagnostic contexts as defined by neil harrison in the article "patterns for logging diagnostic messages" part of the book "pattern languages of program design 3" edited by martin et al
NDCPatternConverterReturn the event's NDC in a StringBuffer
NoSuchElementException
NTEventLogAppenderAppends log events to NT EventLog
NullPointerExceptionThrown when an application attempts to use null in a case where an object is required
ObjectBase class for java-like objects
Object::ClazzObject
ObjectImplImplementation class for Object
ObjectOutputStreamEmulates java serialization
ObjectPtrBase
ObjectPtrTSmart pointer to a Object descendant
ODBCAppender
OnlyOnceErrorHandlerThe OnlyOnceErrorHandler implements log4cxx's default error handling policy which consists of emitting a message for the first error in an appender and ignoring all following errors
OptionConverterA convenience class to convert property values to specific types
OptionHandlerA string based interface to configure package components
OutputDebugStringAppender
OutputStreamAbstract class for writing to character streams
OutputStreamWriterAbstract class for writing to character streams
PatternConverter
PatternLayoutA flexible layout configurable with pattern string
PatternParserMost of the work of the PatternLayout class is delegated to the PatternParser class
Pool
PoolException
Properties
PropertiesPatternConverterAble to handle the contents of the LoggingEvent's Property bundle and either output the entire contents of the properties in a similar format to the java.util.Hashtable.toString(), or to output the value of a specific key within the property bundle when this pattern converter has the option set
PropertyConfiguratorAllows the configuration of log4cxx from an external file
PropertyFilterNOTE: This filter modifies logging events by adding properties to the event
PropertyResourceBundlePropertyResourceBundle is a concrete subclass of ResourceBundle that manages resources for a locale using a set of static strings from a property file
PropertySetterGeneral purpose Object property setter
ReaderAbstract class for reading from character streams
RelativeTimeDateFormatFormats a date by printing the number of seconds elapsed since the start of the application
RelativeTimePatternConverterFormat the relative time in milliseconds
RepositorySelectorThe LogManager uses one (and only one) RepositorySelector implementation to select the LoggerRepository for a particular application context
ResourceBundleResource bundles contain locale-specific objects
RollingFileAppenderRollingFileAppender extends log4cxx::FileAppender to backup the log files depending on RollingPolicy and TriggeringPolicy
RollingFileAppenderRollingFileAppender extends FileAppender to backup the log files when they reach a certain size
RollingFileAppenderSkeletonBase class for log4cxx::rolling::RollingFileAppender and log4cxx::RollingFileAppender (analogues of org.apache.log4j.rolling.RFA from extras companion and org.apache.log4j.RFA from log4j 1.2, respectively)
RollingPolicyA RollingPolicy is responsible for performing the rolling over of the active log file
RollingPolicyBaseImplements methods common to most, it not all, rolling policies
RolloverDescription
RootLoggerRootLogger sits at the top of the logger hierachy
RuntimeExceptionRuntimeException is the parent class of those exceptions that can be thrown during the normal operation of the process
ServerSocket
SimpleDateFormatConcrete class for formatting and parsing dates in a locale-sensitive manner
SimpleLayoutSimpleLayout consists of the level of the log statement, followed by " - " and then the log message itself
SizeBasedTriggeringPolicySizeBasedTriggeringPolicy looks at size of the file being currently written to
SMTPAppenderSend an e-mail when a specific logging event occurs, typically on errors or fatal errors
Socket
SocketAppenderSends LoggingEvent objects to a remote a log server, usually Apache Chainsaw
SocketAppenderSkeletonAbstract base class for SocketAppender and XMLSocketAppender
SocketExceptionThrown to indicate that there is an error in the underlying protocol, such as a TCP error
SocketHubAppenderSends LoggingEvent objects to a set of remote log servers, usually a SocketNode
SocketOutputStream
SocketTimeoutExceptionSignals that an I/O operation has been interrupted
SQLException
StrftimeDateFormatConcrete class for formatting and parsing dates in a locale-sensitive manner
StrictMathThe class StrictMath contains methods for performing basic numeric operations
StringHelperString manipulation routines
StringMatchFilterThis is a very simple filter based on string matching
StringTokenizer
synchronizedUtility class for objects multi-thread synchronization
SyslogAppenderUse SyslogAppender to send log messages to a remote syslog daemon
SyslogWriterSyslogWriter is a wrapper around the DatagramSocket class it writes text to the specified host on the port 514 (UNIX syslog)
SystemSeveral useful class fields and methods
SystemErrWriterAbstract class for writing to character streams
SystemOutWriterAbstract class for writing to character streams
TelnetAppender
ThreadThis class implements an approximation of java.util.Thread
ThreadException
ThreadLocalThis class provides thread-local variables
ThreadPatternConverterFormats the event thread name
ThreadSpecificDataThis class contains all the thread-specific data in use by log4cxx
ThrowableInformationPatternConverterOutputs the ThrowableInformation portion of the LoggingiEvent as a full stacktrace unless this converter's option is 'short', where it just outputs the first line of the trace
TimeBasedRollingPolicyTimeBasedRollingPolicy is both easy to configure and quite powerful
TimeZone
TranscoderSimple transcoder for converting between external char and wchar_t strings and internal strings
TranscoderException
TransformUtility class for transforming strings
TriggeringEventEvaluatorImplementions of this interface allow certain appenders to decide when to perform an appender specific action
TriggeringPolicyA TriggeringPolicy controls the conditions under which rollover occurs
TTCCLayoutTTCC layout format consists of time, thread, logger name and nested diagnostic context information, hence the name
ulogstreamAn STL-like stream API for log4cxx using UniChar as the character type
UniCharMessageBufferThis class is designed to support insertion operations in the message argument to the LOG4CXX_INFO and similar macros and is not designed for general purpose use
UnknownHostException
WideMessageBufferThis class is designed to support insertion operations in the message argument to the LOG4CXX_INFO and similar macros and is not designed for general purpose use
wlogstreamAn STL-like stream API for log4cxx using wchar_t as the character type
WriterAbstract class for writing to character streams
WriterAppenderWriterAppender appends log events to a standard output stream
XMLDOMDocumentThe XMLDOMDocument interface represents an entire XML document
XMLDOMElementThe XMLDOMElement interface represents an element in an XML document
XMLDOMNodeThe XMLDOMNode interface is the primary datatype for the entire Document Object Model
XMLDOMNodeListThe XMLDOMNodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented
XMLLayoutThe output of the XMLLayout consists of a series of log4j:event elements
XMLSocketAppenderSends LoggingEvent objects in XML format to a remote a log server, usually a XMLSocketNode
ZipCompressAction
apache-log4cxx-0.10.0/site/apidocs/andfilter_8h.html100644 0 0 6715 10774263472 17376 0ustar 0 0 Apache log4cxx: andfilter.h File Reference

andfilter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::filter

Classes

class  AndFilter
 A filter that 'and's the results of any number of contained filters together. More...
apache-log4cxx-0.10.0/site/apidocs/appender_8h.html100644 0 0 12567 10774263472 17246 0ustar 0 0 Apache log4cxx: appender.h File Reference

appender.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::spi

Classes

class  Appender
 Implement this interface for your own strategies for outputting log statements. More...

Typedefs

typedef helpers::ObjectPtrT<
LoggingEvent > 
log4cxx::spi::LoggingEventPtr
typedef helpers::ObjectPtrT<
Filter > 
log4cxx::spi::FilterPtr
typedef log4cxx::helpers::ObjectPtrT<
ErrorHandler > 
log4cxx::spi::ErrorHandlerPtr
typedef log4cxx::helpers::ObjectPtrT<
Layout > 
log4cxx::LayoutPtr

Functions

 log4cxx::LOG4CXX_PTR_DEF (Appender)
 log4cxx::LOG4CXX_LIST_DEF (AppenderList, AppenderPtr)
apache-log4cxx-0.10.0/site/apidocs/appenderattachable_8h.html100644 0 0 7422 10774263472 21231 0ustar 0 0 Apache log4cxx: appenderattachable.h File Reference

appenderattachable.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::spi

Classes

class  AppenderAttachable
 This Interface is for attaching Appenders to objects. More...

Functions

 log4cxx::spi::LOG4CXX_PTR_DEF (AppenderAttachable)
apache-log4cxx-0.10.0/site/apidocs/appenderattachableimpl_8h.html100644 0 0 10220 10774263472 22121 0ustar 0 0 Apache log4cxx: appenderattachableimpl.h File Reference

appenderattachableimpl.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::spi
namespace  log4cxx::helpers

Classes

class  AppenderAttachableImpl

Typedefs

typedef helpers::ObjectPtrT<
LoggingEvent > 
log4cxx::spi::LoggingEventPtr

Functions

 log4cxx::helpers::LOG4CXX_PTR_DEF (AppenderAttachableImpl)
apache-log4cxx-0.10.0/site/apidocs/appenderskeleton_8h.html100644 0 0 6353 10774263472 20767 0ustar 0 0 Apache log4cxx: appenderskeleton.h File Reference

appenderskeleton.h File Reference


Namespaces

namespace  log4cxx

Classes

class  AppenderSkeleton
 Implementation base class for all appenders. More...
apache-log4cxx-0.10.0/site/apidocs/aprinitializer_8h.html100644 0 0 6403 10774263472 20446 0ustar 0 0 Apache log4cxx: aprinitializer.h File Reference

aprinitializer.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  APRInitializer
apache-log4cxx-0.10.0/site/apidocs/asyncappender_8h.html100644 0 0 7370 10774263472 20260 0ustar 0 0 Apache log4cxx: asyncappender.h File Reference

asyncappender.h File Reference


Namespaces

namespace  log4cxx

Classes

class  AsyncAppender
 The AsyncAppender lets users log events asynchronously. More...
class  AsyncAppender::DiscardSummary

Functions

 log4cxx::LOG4CXX_PTR_DEF (AsyncAppender)
apache-log4cxx-0.10.0/site/apidocs/basicconfigurator_8h.html100644 0 0 7074 10774263472 21131 0ustar 0 0 Apache log4cxx: basicconfigurator.h File Reference

basicconfigurator.h File Reference


Namespaces

namespace  log4cxx

Classes

class  BasicConfigurator
 Use this class to quickly configure the package. More...

Typedefs

typedef helpers::ObjectPtrT<
Appender > 
log4cxx::AppenderPtr
apache-log4cxx-0.10.0/site/apidocs/bufferedoutputstream_8h.html100644 0 0 7463 10774263472 21706 0ustar 0 0 Apache log4cxx: bufferedoutputstream.h File Reference

bufferedoutputstream.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  BufferedOutputStream
 Abstract class for writing to character streams. More...

Functions

 log4cxx::helpers::LOG4CXX_PTR_DEF (BufferedOutputStream)
apache-log4cxx-0.10.0/site/apidocs/bufferedwriter_8h.html100644 0 0 6760 10774263472 20445 0ustar 0 0 Apache log4cxx: bufferedwriter.h File Reference

bufferedwriter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  BufferedWriter
 Writes text to a character-output stream buffering requests to increase efficiency. More...
apache-log4cxx-0.10.0/site/apidocs/bytearrayinputstream_8h.html100644 0 0 7573 10774263472 21727 0ustar 0 0 Apache log4cxx: bytearrayinputstream.h File Reference

bytearrayinputstream.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  ByteArrayInputStream
 InputStream implemented on top of a byte array. More...

Functions

 log4cxx::helpers::LOG4CXX_PTR_DEF (ByteArrayInputStream)
apache-log4cxx-0.10.0/site/apidocs/bytearrayoutputstream_8h.html100644 0 0 7602 10774263472 22121 0ustar 0 0 Apache log4cxx: bytearrayoutputstream.h File Reference

bytearrayoutputstream.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  ByteArrayOutputStream
 OutputStream implemented on top of std::vector. More...

Functions

 log4cxx::helpers::LOG4CXX_PTR_DEF (ByteArrayOutputStream)
apache-log4cxx-0.10.0/site/apidocs/bytebuffer_8h.html100644 0 0 6627 10774263472 17565 0ustar 0 0 Apache log4cxx: bytebuffer.h File Reference

bytebuffer.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  ByteBuffer
 A byte buffer. More...
apache-log4cxx-0.10.0/site/apidocs/cacheddateformat_8h.html100644 0 0 6412 10774263472 20676 0ustar 0 0 Apache log4cxx: cacheddateformat.h File Reference

cacheddateformat.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::pattern

Classes

class  CachedDateFormat
apache-log4cxx-0.10.0/site/apidocs/charsetdecoder_8h.html100644 0 0 7471 10774263472 20405 0ustar 0 0 Apache log4cxx: charsetdecoder.h File Reference

charsetdecoder.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  CharsetDecoder
 An abstract engine to transform a sequences of bytes in a specific charset into a LogString. More...

Functions

 log4cxx::helpers::LOG4CXX_PTR_DEF (CharsetDecoder)
apache-log4cxx-0.10.0/site/apidocs/charsetencoder_8h.html100644 0 0 7451 10774263472 20415 0ustar 0 0 Apache log4cxx: charsetencoder.h File Reference

charsetencoder.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  CharsetEncoder
 An engine to transform LogStrings into bytes for the specific character set. More...

Functions

 log4cxx::helpers::LOG4CXX_PTR_DEF (CharsetEncoder)
apache-log4cxx-0.10.0/site/apidocs/class_8h.html100644 0 0 7046 10774263472 16531 0ustar 0 0 Apache log4cxx: class.h File Reference

class.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  Class

Typedefs

typedef ObjectPtrT< Object > log4cxx::helpers::ObjectPtr
apache-log4cxx-0.10.0/site/apidocs/classnamepatternconverter_8h.html100644 0 0 7022 10774263472 22712 0ustar 0 0 Apache log4cxx: classnamepatternconverter.h File Reference

classnamepatternconverter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::pattern

Classes

class  ClassNamePatternConverter
 Formats the class name of the site of the logging request. More...
apache-log4cxx-0.10.0/site/apidocs/classregistration_8h.html100644 0 0 6415 10774263472 21163 0ustar 0 0 Apache log4cxx: classregistration.h File Reference

classregistration.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  ClassRegistration
apache-log4cxx-0.10.0/site/apidocs/condition_8h.html100644 0 0 6755 10774263472 17420 0ustar 0 0 Apache log4cxx: condition.h File Reference

condition.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  Condition
 This class provides a means for one thread to suspend exception until notified by another thread to resume. More...
apache-log4cxx-0.10.0/site/apidocs/configurator_8h.html100644 0 0 7367 10774263472 20134 0ustar 0 0 Apache log4cxx: configurator.h File Reference

configurator.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::spi

Classes

class  Configurator
 Implemented by classes capable of configuring log4j using a URL. More...

Functions

 log4cxx::spi::LOG4CXX_PTR_DEF (Configurator)
apache-log4cxx-0.10.0/site/apidocs/consoleappender_8h.html100644 0 0 7235 10774263472 20605 0ustar 0 0 Apache log4cxx: consoleappender.h File Reference

consoleappender.h File Reference


Namespaces

namespace  log4cxx

Classes

class  ConsoleAppender
 ConsoleAppender appends log events to stdout or stderr using a layout specified by the user. More...

Functions

 log4cxx::LOG4CXX_PTR_DEF (ConsoleAppender)
apache-log4cxx-0.10.0/site/apidocs/cyclicbuffer_8h.html100644 0 0 7213 10774263472 20060 0ustar 0 0 Apache log4cxx: cyclicbuffer.h File Reference

cyclicbuffer.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  CyclicBuffer
 CyclicBuffer is used by other appenders to hold instances of LoggingEvent for immediate or deferred display. More...
apache-log4cxx-0.10.0/site/apidocs/dailyrollingfileappender_8h.html100644 0 0 11145 10774263472 22507 0ustar 0 0 Apache log4cxx: dailyrollingfileappender.h File Reference

dailyrollingfileappender.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers
namespace  log4cxx::spi

Classes

class  DailyRollingFileAppender
 DailyRollingFileAppender extends FileAppender so that the underlying file is rolled over at a user chosen frequency. More...

Typedefs

typedef log4cxx::helpers::ObjectPtrT<
ErrorHandler > 
log4cxx::spi::ErrorHandlerPtr

Functions

 log4cxx::LOG4CXX_PTR_DEF (DailyRollingFileAppender)
apache-log4cxx-0.10.0/site/apidocs/datagrampacket_8h.html100644 0 0 7405 10774263472 20373 0ustar 0 0 Apache log4cxx: datagrampacket.h File Reference

datagrampacket.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  DatagramPacket
 This class represents a datagram packet. More...

Functions

 log4cxx::helpers::LOG4CXX_PTR_DEF (DatagramPacket)
apache-log4cxx-0.10.0/site/apidocs/datagramsocket_8h.html100644 0 0 7447 10774263472 20422 0ustar 0 0 Apache log4cxx: datagramsocket.h File Reference

datagramsocket.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  DatagramSocket
 This class represents a socket for sending and receiving datagram packets. More...

Functions

 log4cxx::helpers::LOG4CXX_PTR_DEF (DatagramSocket)
apache-log4cxx-0.10.0/site/apidocs/date_8h.html100644 0 0 7377 10774263472 16350 0ustar 0 0 Apache log4cxx: date.h File Reference

date.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  Date
 Simple transcoder for converting between external char and wchar_t strings and internal strings. More...

Functions

 log4cxx::helpers::LOG4CXX_PTR_DEF (Date)
apache-log4cxx-0.10.0/site/apidocs/dateformat_8h.html100644 0 0 7551 10774263472 17553 0ustar 0 0 Apache log4cxx: dateformat.h File Reference

dateformat.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  DateFormat
 DateFormat is an abstract class for date/time formatting patterned after java.text.DateFormat. More...

Functions

 log4cxx::helpers::LOG4CXX_PTR_DEF (DateFormat)
apache-log4cxx-0.10.0/site/apidocs/datelayout_8h.html100644 0 0 6735 10774263472 17603 0ustar 0 0 Apache log4cxx: datelayout.h File Reference

datelayout.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  DateLayout
 This abstract layout takes care of all the date related options and formatting work. More...
apache-log4cxx-0.10.0/site/apidocs/datepatternconverter_8h.html100644 0 0 7471 10774263472 21671 0ustar 0 0 Apache log4cxx: datepatternconverter.h File Reference

datepatternconverter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::pattern

Classes

class  DatePatternConverter
 Convert and format the event's date in a StringBuffer. More...

Functions

 log4cxx::pattern::LOG4CXX_PTR_DEF (DatePatternConverter)
apache-log4cxx-0.10.0/site/apidocs/datetimedateformat_8h.html100644 0 0 7032 10774263472 21262 0ustar 0 0 Apache log4cxx: datetimedateformat.h File Reference

datetimedateformat.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  DateTimeDateFormat
 Formats a date in the format dd MMM yyyy HH:mm:ss,SSS for example, "06 Nov 1994 15:49:37,459". More...
apache-log4cxx-0.10.0/site/apidocs/defaultconfigurator_8h.html100644 0 0 7474 10774263472 21500 0ustar 0 0 Apache log4cxx: defaultconfigurator.h File Reference

defaultconfigurator.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::spi

Classes

class  DefaultConfigurator
 Configures the repository from environmental settings and files. More...

Typedefs

typedef helpers::ObjectPtrT<
LoggerRepository > 
log4cxx::spi::LoggerRepositoryPtr
apache-log4cxx-0.10.0/site/apidocs/defaultloggerfactory_8h.html100644 0 0 6601 10774263472 21634 0ustar 0 0 Apache log4cxx: defaultloggerfactory.h File Reference

defaultloggerfactory.h File Reference


Namespaces

namespace  log4cxx

Classes

class  DefaultLoggerFactory

Typedefs

typedef helpers::ObjectPtrT<
Logger > 
log4cxx::LoggerPtr
apache-log4cxx-0.10.0/site/apidocs/defaultrepositoryselector_8h.html100644 0 0 6442 10774263472 22750 0ustar 0 0 Apache log4cxx: defaultrepositoryselector.h File Reference

defaultrepositoryselector.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::spi

Classes

class  DefaultRepositorySelector
apache-log4cxx-0.10.0/site/apidocs/denyallfilter_8h.html100644 0 0 7370 10774263472 20262 0ustar 0 0 Apache log4cxx: denyallfilter.h File Reference

denyallfilter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::filter

Classes

class  DenyAllFilter
 This filter drops all logging events. More...

Functions

 log4cxx::filter::LOG4CXX_PTR_DEF (DenyAllFilter)
apache-log4cxx-0.10.0/site/apidocs/domconfigurator_8h.html100644 0 0 7504 10774263472 20625 0ustar 0 0 Apache log4cxx: domconfigurator.h File Reference

domconfigurator.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::xml

Classes

class  DOMConfigurator
 Use this class to initialize the log4cxx environment using a DOM tree. More...

Functions

 log4cxx::xml::LOG4CXX_PTR_DEF (DOMConfigurator)
apache-log4cxx-0.10.0/site/apidocs/errorhandler_8h.html100644 0 0 7721 10774263472 20113 0ustar 0 0 Apache log4cxx: errorhandler.h File Reference

errorhandler.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::spi

Classes

class  ErrorCode
class  ErrorHandler
 Appenders may delegate their error handling to ErrorHandlers. More...

Functions

 log4cxx::spi::LOG4CXX_PTR_DEF (ErrorHandler)
apache-log4cxx-0.10.0/site/apidocs/exception_8h.html100644 0 0 26341 10774263472 17441 0ustar 0 0 Apache log4cxx: exception.h File Reference

exception.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  Exception
 The class Exception and its subclasses indicate conditions that a reasonable application might want to catch. More...
class  RuntimeException
 RuntimeException is the parent class of those exceptions that can be thrown during the normal operation of the process. More...
class  NullPointerException
 Thrown when an application attempts to use null in a case where an object is required. More...
class  IllegalArgumentException
 Thrown to indicate that a method has been passed an illegal or inappropriate argument. More...
class  IOException
 Signals that an I/O exception of some sort has occurred. More...
class  MissingResourceException
class  PoolException
class  MutexException
class  InterruptedException
class  ThreadException
class  TranscoderException
class  IllegalMonitorStateException
class  InstantiationException
 Thrown when an application tries to create an instance of a class using the newInstance method in class Class, but the specified class object cannot be instantiated because it is an interface or is an abstract class. More...
class  ClassNotFoundException
 Thrown when an application tries to load in a class through its string name but no definition for the class with the specified name could be found. More...
class  NoSuchElementException
class  IllegalStateException
class  SocketException
 Thrown to indicate that there is an error in the underlying protocol, such as a TCP error. More...
class  ConnectException
 Signals that an error occurred while attempting to connect a socket to a remote address and port. More...
class  ClosedChannelException
class  BindException
 Signals that an error occurred while attempting to bind a socket to a local address and port. More...
class  InterruptedIOException
 Signals that an I/O operation has been interrupted. More...
class  SocketTimeoutException
 Signals that an I/O operation has been interrupted. More...
apache-log4cxx-0.10.0/site/apidocs/expressionfilter_8h.html100644 0 0 10136 10774263472 21043 0ustar 0 0 Apache log4cxx: expressionfilter.h File Reference

expressionfilter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::rule
namespace  log4cxx::filter

Classes

class  ExpressionFilter
 A filter supporting complex expressions - supports both infix and postfix expressions (infix expressions must first be converted to postfix prior to processing). More...

Typedefs

typedef helpers::ObjectPtrT<
Rule > 
log4cxx::rule::RulePtr
apache-log4cxx-0.10.0/site/apidocs/fallbackerrorhandler_8h.html100644 0 0 7200 10774263472 21563 0ustar 0 0 Apache log4cxx: fallbackerrorhandler.h File Reference

fallbackerrorhandler.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::varia

Classes

class  FallbackErrorHandler
 The FallbackErrorHandler implements the ErrorHandler interface such that a secondary appender may be specified. More...
apache-log4cxx-0.10.0/site/apidocs/file_8h.html100644 0 0 11323 10774263472 16354 0ustar 0 0 Apache log4cxx: file.h File Reference

file.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  File
 An abstract representation of file and directory path names. More...

Defines

#define LOG4CXX_FILE(name)   log4cxx::File(name)


Define Documentation

#define LOG4CXX_FILE name   )     log4cxx::File(name)
 

apache-log4cxx-0.10.0/site/apidocs/fileappender_8h.html100644 0 0 7416 10774263472 20063 0ustar 0 0 Apache log4cxx: fileappender.h File Reference

fileappender.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  FileAppender
 FileAppender appends log events to a file. More...

Functions

 log4cxx::LOG4CXX_PTR_DEF (FileAppender)
apache-log4cxx-0.10.0/site/apidocs/filedatepatternconverter_8h.html100644 0 0 7132 10774263472 22523 0ustar 0 0 Apache log4cxx: filedatepatternconverter.h File Reference

filedatepatternconverter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::pattern

Classes

class  FileDatePatternConverter
 Formats an date by delegating to DatePatternConverter. More...
apache-log4cxx-0.10.0/site/apidocs/fileinputstream_8h.html100644 0 0 7532 10774263472 20637 0ustar 0 0 Apache log4cxx: fileinputstream.h File Reference

fileinputstream.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  FileInputStream
 InputStream implemented on top of APR file IO. More...

Functions

 log4cxx::helpers::LOG4CXX_PTR_DEF (FileInputStream)
apache-log4cxx-0.10.0/site/apidocs/filelocationpatternconverter_8h.html100644 0 0 7046 10774263472 23422 0ustar 0 0 Apache log4cxx: filelocationpatternconverter.h File Reference

filelocationpatternconverter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::pattern

Classes

class  FileLocationPatternConverter
 Return the event's line location information in a StringBuffer. More...
apache-log4cxx-0.10.0/site/apidocs/fileoutputstream_8h.html100644 0 0 7542 10774263472 21041 0ustar 0 0 Apache log4cxx: fileoutputstream.h File Reference

fileoutputstream.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  FileOutputStream
 OutputStream implemented on top of APR file IO. More...

Functions

 log4cxx::helpers::LOG4CXX_PTR_DEF (FileOutputStream)
apache-log4cxx-0.10.0/site/apidocs/filerenameaction_8h.html100644 0 0 11044 10774263472 20742 0ustar 0 0 Apache log4cxx: filerenameaction.h File Reference

filerenameaction.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::rolling

Classes

class  FileRenameAction

Defines

#define _LOG4CXX_ROLLING_FILE_RENAME_ACTION_H

Functions

 log4cxx::rolling::LOG4CXX_PTR_DEF (FileRenameAction)


Define Documentation

#define _LOG4CXX_ROLLING_FILE_RENAME_ACTION_H
 

apache-log4cxx-0.10.0/site/apidocs/filewatchdog_8h.html100644 0 0 6720 10774263472 20062 0ustar 0 0 Apache log4cxx: filewatchdog.h File Reference

filewatchdog.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  FileWatchdog
 Check every now and then that a certain file has not changed. More...
apache-log4cxx-0.10.0/site/apidocs/filter_8h.html100644 0 0 7342 10774263472 16710 0ustar 0 0 Apache log4cxx: filter.h File Reference

filter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::spi

Classes

class  Filter
 Users should extend this class to implement customized logging event filtering. More...

Functions

 log4cxx::spi::LOG4CXX_PTR_DEF (Filter)
apache-log4cxx-0.10.0/site/apidocs/filterbasedtriggeringpolicy_8h.html100644 0 0 12355 10774263472 23231 0ustar 0 0 Apache log4cxx: filterbasedtriggeringpolicy.h File Reference

filterbasedtriggeringpolicy.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers
namespace  log4cxx::rolling

Classes

class  FilterBasedTriggeringPolicy
 FilterBasedTriggeringPolicy determines if rolling should be triggered by evaluating the current message against a set of filters. More...

Defines

#define _LOG4CXX_ROLLING_FILTER_BASED_TRIGGERING_POLICY_H

Functions

 log4cxx::rolling::LOG4CXX_PTR_DEF (FilterBasedTriggeringPolicy)


Define Documentation

#define _LOG4CXX_ROLLING_FILTER_BASED_TRIGGERING_POLICY_H
 

apache-log4cxx-0.10.0/site/apidocs/fixedwindowrollingpolicy_8h.html100644 0 0 12310 10774263472 22570 0ustar 0 0 Apache log4cxx: fixedwindowrollingpolicy.h File Reference

fixedwindowrollingpolicy.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers
namespace  log4cxx::rolling

Classes

class  FixedWindowRollingPolicy
 When rolling over, FixedWindowRollingPolicy renames files according to a fixed window algorithm as described below. More...

Defines

#define _LOG4CXX_ROLLING_FIXED_WINDOW_ROLLING_POLICY_H

Functions

 log4cxx::rolling::LOG4CXX_PTR_DEF (FixedWindowRollingPolicy)


Define Documentation

#define _LOG4CXX_ROLLING_FIXED_WINDOW_ROLLING_POLICY_H
 

apache-log4cxx-0.10.0/site/apidocs/formattinginfo_8h.html100644 0 0 10250 10774263472 20461 0ustar 0 0 Apache log4cxx: formattinginfo.h File Reference

formattinginfo.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::pattern

Classes

class  FormattingInfo
 Modifies the output of a pattern converter for a specified minimum and maximum width and alignment. More...

Typedefs

typedef helpers::ObjectPtrT<
FormattingInfo > 
log4cxx::pattern::FormattingInfoPtr

Functions

 log4cxx::pattern::LOG4CXX_PTR_DEF (FormattingInfo)
apache-log4cxx-0.10.0/site/apidocs/fulllocationpatternconverter_8h.html100644 0 0 7024 10774263472 23441 0ustar 0 0 Apache log4cxx: fulllocationpatternconverter.h File Reference

fulllocationpatternconverter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::pattern

Classes

class  FullLocationPatternConverter
 Format the event's line location information. More...
apache-log4cxx-0.10.0/site/apidocs/gzcompressaction_8h.html100644 0 0 11045 10774263472 21030 0ustar 0 0 Apache log4cxx: gzcompressaction.h File Reference

gzcompressaction.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::rolling

Classes

class  GZCompressAction

Defines

#define _LOG4CXX_ROLLING_GZ_COMPRESS_ACTION_H

Functions

 log4cxx::rolling::LOG4CXX_PTR_DEF (GZCompressAction)


Define Documentation

#define _LOG4CXX_ROLLING_GZ_COMPRESS_ACTION_H
 

apache-log4cxx-0.10.0/site/apidocs/hierarchy_8h.html100644 0 0 6374 10774263472 17405 0ustar 0 0 Apache log4cxx: hierarchy.h File Reference

hierarchy.h File Reference


Namespaces

namespace  log4cxx

Classes

class  Hierarchy
 This class is specialized in retrieving loggers by name and also maintaining the logger hierarchy. More...
apache-log4cxx-0.10.0/site/apidocs/hierarchyeventlistener_8h.html100644 0 0 10210 10774263472 22215 0ustar 0 0 Apache log4cxx: hierarchyeventlistener.h File Reference

hierarchyeventlistener.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::spi

Classes

class  HierarchyEventListener
 Listen to events occuring within a Hierarchy. More...

Functions

 log4cxx::spi::LOG4CXX_PTR_DEF (HierarchyEventListener)
 log4cxx::spi::LOG4CXX_LIST_DEF (HierarchyEventListenerList, HierarchyEventListenerPtr)
apache-log4cxx-0.10.0/site/apidocs/htmllayout_8h.html100644 0 0 6772 10774263472 17633 0ustar 0 0 Apache log4cxx: htmllayout.h File Reference

htmllayout.h File Reference


Namespaces

namespace  log4cxx

Classes

class  HTMLLayout
 This layout outputs events in a HTML table. More...

Functions

 log4cxx::LOG4CXX_PTR_DEF (HTMLLayout)
apache-log4cxx-0.10.0/site/apidocs/inetaddress_8h.html100644 0 0 10070 10774263472 17740 0ustar 0 0 Apache log4cxx: inetaddress.h File Reference

inetaddress.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  UnknownHostException
class  InetAddress

Functions

 log4cxx::helpers::LOG4CXX_PTR_DEF (InetAddress)
 log4cxx::helpers::LOG4CXX_LIST_DEF (InetAddressList, InetAddressPtr)
apache-log4cxx-0.10.0/site/apidocs/inputstream_8h.html100644 0 0 7375 10774263472 20004 0ustar 0 0 Apache log4cxx: inputstream.h File Reference

inputstream.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  InputStream
 Abstract class for reading from character streams. More...

Functions

 log4cxx::helpers::LOG4CXX_PTR_DEF (InputStream)
apache-log4cxx-0.10.0/site/apidocs/inputstreamreader_8h.html100644 0 0 7532 10774263472 21162 0ustar 0 0 Apache log4cxx: inputstreamreader.h File Reference

inputstreamreader.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  InputStreamReader
 Class for reading from character streams. More...

Functions

 log4cxx::helpers::LOG4CXX_PTR_DEF (InputStreamReader)
apache-log4cxx-0.10.0/site/apidocs/integer_8h.html100644 0 0 7035 10774263472 17057 0ustar 0 0 Apache log4cxx: integer.h File Reference

integer.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  Integer

Functions

 log4cxx::helpers::LOG4CXX_PTR_DEF (Integer)
apache-log4cxx-0.10.0/site/apidocs/integerpatternconverter_8h.html100644 0 0 7450 10774263472 22406 0ustar 0 0 Apache log4cxx: integerpatternconverter.h File Reference

integerpatternconverter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::pattern

Classes

class  IntegerPatternConverter
 Formats an integer. More...

Functions

 log4cxx::pattern::LOG4CXX_PTR_DEF (IntegerPatternConverter)
apache-log4cxx-0.10.0/site/apidocs/iso8601dateformat_8h.html100644 0 0 7024 10774263472 20600 0ustar 0 0 Apache log4cxx: iso8601dateformat.h File Reference

iso8601dateformat.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  ISO8601DateFormat
 Formats a date in the format yyyy-MM-dd HH:mm:ss,SSS for example "1999-11-27 15:49:37,459". More...
apache-log4cxx-0.10.0/site/apidocs/layout_8h.html100644 0 0 6757 10774263472 16751 0ustar 0 0 Apache log4cxx: layout.h File Reference

layout.h File Reference


Namespaces

namespace  log4cxx

Classes

class  Layout
 Extend this abstract class to create your own log layout format. More...

Functions

 log4cxx::LOG4CXX_PTR_DEF (Layout)
apache-log4cxx-0.10.0/site/apidocs/level_8h.html100644 0 0 17510 10774263472 16550 0ustar 0 0 Apache log4cxx: level.h File Reference

level.h File Reference


Namespaces

namespace  log4cxx

Classes

class  Level
 Defines the minimum set of levels recognized by the system, that is OFF, FATAL, ERROR, WARN, INFO, DEBUG and ALL. More...
class  Level::LevelClass

Defines

#define DECLARE_LOG4CXX_LEVEL(level)
#define IMPLEMENT_LOG4CXX_LEVEL(level)   IMPLEMENT_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS(level, Class##level)

Functions

 log4cxx::LOG4CXX_PTR_DEF (Level)
 smart pointer to a Level instance


Define Documentation

#define DECLARE_LOG4CXX_LEVEL level   ) 
 

Value:

public:\
        class Class##level : public Level::LevelClass\
{\
public:\
        Class##level() : Level::LevelClass() {}\
        virtual LogString getName() const { return LOG4CXX_STR(#level); } \
        virtual LevelPtr toLevel(const LogString& sArg) const\
        { return level::toLevelLS(sArg); }\
        virtual LevelPtr toLevel(int val) const\
        { return level::toLevel(val); }\
};\
DECLARE_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS(level, Class##level)

#define IMPLEMENT_LOG4CXX_LEVEL level   )     IMPLEMENT_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS(level, Class##level)
 

apache-log4cxx-0.10.0/site/apidocs/levelmatchfilter_8h.html100644 0 0 7432 10774263472 20755 0ustar 0 0 Apache log4cxx: levelmatchfilter.h File Reference

levelmatchfilter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::filter

Classes

class  LevelMatchFilter
 This is a very simple filter based on level matching. More...

Functions

 log4cxx::filter::LOG4CXX_PTR_DEF (LevelMatchFilter)
apache-log4cxx-0.10.0/site/apidocs/levelpatternconverter_8h.html100644 0 0 6755 10774263472 22067 0ustar 0 0 Apache log4cxx: levelpatternconverter.h File Reference

levelpatternconverter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::pattern

Classes

class  LevelPatternConverter
 Return the event's level in a StringBuffer. More...
apache-log4cxx-0.10.0/site/apidocs/levelrangefilter_8h.html100644 0 0 7550 10774263472 20756 0ustar 0 0 Apache log4cxx: levelrangefilter.h File Reference

levelrangefilter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::filter

Classes

class  LevelRangeFilter
 This is a very simple filter based on level matching, which can be used to reject messages with priorities outside a certain range. More...

Functions

 log4cxx::filter::LOG4CXX_PTR_DEF (LevelRangeFilter)
apache-log4cxx-0.10.0/site/apidocs/linelocationpatternconverter_8h.html100644 0 0 7024 10774263472 23426 0ustar 0 0 Apache log4cxx: linelocationpatternconverter.h File Reference

linelocationpatternconverter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::pattern

Classes

class  LineLocationPatternConverter
 Format the event's line location information. More...
apache-log4cxx-0.10.0/site/apidocs/lineseparatorpatternconverter_8h.html100644 0 0 7005 10774263472 23615 0ustar 0 0 Apache log4cxx: lineseparatorpatternconverter.h File Reference

lineseparatorpatternconverter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::pattern

Classes

class  LineSeparatorPatternConverter
 Formats a line separator. More...
apache-log4cxx-0.10.0/site/apidocs/literalpatternconverter_8h.html100644 0 0 6745 10774263472 22413 0ustar 0 0 Apache log4cxx: literalpatternconverter.h File Reference

literalpatternconverter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::pattern

Classes

class  LiteralPatternConverter
 Formats a string literal. More...
apache-log4cxx-0.10.0/site/apidocs/loader_8h.html100644 0 0 6340 10774263472 16666 0ustar 0 0 Apache log4cxx: loader.h File Reference

loader.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  Loader
apache-log4cxx-0.10.0/site/apidocs/locale_8h.html100644 0 0 6340 10774263472 16657 0ustar 0 0 Apache log4cxx: locale.h File Reference

locale.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  Locale
apache-log4cxx-0.10.0/site/apidocs/locationinfo_8h.html100644 0 0 13067 10774263472 20130 0ustar 0 0 Apache log4cxx: locationinfo.h File Reference

locationinfo.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::spi

Classes

class  LocationInfo
 This class represents the location of a logging statement. More...

Defines

#define __LOG4CXX_FUNC__   ""
#define LOG4CXX_LOCATION


Define Documentation

#define __LOG4CXX_FUNC__   ""
 

#define LOG4CXX_LOCATION
 

Value:

apache-log4cxx-0.10.0/site/apidocs/locationinfofilter_8h.html100644 0 0 10624 10774263472 21332 0ustar 0 0 Apache log4cxx: locationinfofilter.h File Reference

locationinfofilter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::rule
namespace  log4cxx::filter

Classes

class  LocationInfoFilter
 Location information is usually specified at the appender level - all events associated with an appender either create and parse stack traces or they do not. More...

Typedefs

typedef helpers::ObjectPtrT<
Rule > 
log4cxx::rule::RulePtr
typedef helpers::ObjectPtrT<
ExpressionRule > 
log4cxx::rule::ExpressionRulePtr
apache-log4cxx-0.10.0/site/apidocs/logger_8h.html100644 0 0 26664 10774263472 16732 0ustar 0 0 Apache log4cxx: logger.h File Reference

logger.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers
namespace  log4cxx::spi

Classes

class  Logger
 This is the central class in the log4cxx package. More...

Defines

#define LOG4CXX_UNLIKELY(expr)   expr
 Provides optimization hint to the compiler to optimize for the expression being false.
#define LOG4CXX_LOG(logger, level, message)
 Logs a message to a specified logger with a specified level.
#define LOG4CXX_LOGLS(logger, level, message)
 Logs a message to a specified logger with a specified level.
#define LOG4CXX_DEBUG(logger, message)
 Logs a message to a specified logger with the DEBUG level.
#define LOG4CXX_TRACE(logger, message)
 Logs a message to a specified logger with the TRACE level.
#define LOG4CXX_INFO(logger, message)
 Logs a message to a specified logger with the INFO level.
#define LOG4CXX_WARN(logger, message)
 Logs a message to a specified logger with the WARN level.
#define LOG4CXX_ERROR(logger, message)
 Logs a message to a specified logger with the ERROR level.
#define LOG4CXX_ASSERT(logger, condition, message)
 Logs a error if the condition is not true.
#define LOG4CXX_FATAL(logger, message)
 Logs a message to a specified logger with the FATAL level.
#define LOG4CXX_L7DLOG(logger, level, key)
 Logs a localized message with no parameter.
#define LOG4CXX_L7DLOG1(logger, level, key, p1)
 Logs a localized message with one parameter.
#define LOG4CXX_L7DLOG2(logger, level, key, p1, p2)
 Logs a localized message with two parameters.
#define LOG4CXX_L7DLOG3(logger, level, key, p1, p2, p3)
 Logs a localized message with three parameters.

Functions

 log4cxx::spi::LOG4CXX_PTR_DEF (LoggerRepository)
 log4cxx::spi::LOG4CXX_PTR_DEF (LoggerFactory)
 log4cxx::LOG4CXX_PTR_DEF (Logger)
 smart pointer to a Logger class
 log4cxx::LOG4CXX_LIST_DEF (LoggerList, LoggerPtr)
apache-log4cxx-0.10.0/site/apidocs/loggerfactory_8h.html100644 0 0 7110 10774263472 20263 0ustar 0 0 Apache log4cxx: loggerfactory.h File Reference

loggerfactory.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::spi

Classes

class  LoggerFactory
 Implement this interface to create new instances of Logger or a sub-class of Logger. More...
apache-log4cxx-0.10.0/site/apidocs/loggerpatternconverter_8h.html100644 0 0 6735 10774263472 22235 0ustar 0 0 Apache log4cxx: loggerpatternconverter.h File Reference

loggerpatternconverter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::pattern

Classes

class  LoggerPatternConverter
 Formats a logger name. More...
apache-log4cxx-0.10.0/site/apidocs/loggerrepository_8h.html100644 0 0 7063 10774263472 21042 0ustar 0 0 Apache log4cxx: loggerrepository.h File Reference

loggerrepository.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::spi

Classes

class  LoggerRepository
 A LoggerRepository is used to create and retrieve Loggers. More...
apache-log4cxx-0.10.0/site/apidocs/loggingevent_8h.html100644 0 0 10447 10774263472 20133 0ustar 0 0 Apache log4cxx: loggingevent.h File Reference

loggingevent.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers
namespace  log4cxx::spi

Classes

class  LoggingEvent
 The internal representation of logging events. More...

Functions

 log4cxx::spi::LOG4CXX_PTR_DEF (LoggingEvent)
 log4cxx::spi::LOG4CXX_LIST_DEF (LoggingEventList, LoggingEventPtr)
apache-log4cxx-0.10.0/site/apidocs/loggingeventpatternconverter_8h.html100644 0 0 10016 10774263472 23451 0ustar 0 0 Apache log4cxx: loggingeventpatternconverter.h File Reference

loggingeventpatternconverter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::pattern

Classes

class  LoggingEventPatternConverter
 LoggingEventPatternConverter is a base class for pattern converters that can format information from instances of LoggingEvent. More...

Functions

 log4cxx::pattern::LOG4CXX_PTR_DEF (LoggingEventPatternConverter)
apache-log4cxx-0.10.0/site/apidocs/loglog_8h.html100644 0 0 16623 10774263472 16730 0ustar 0 0 Apache log4cxx: loglog.h File Reference

loglog.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  LogLog
 This class used to output log statements from within the log4cxx package. More...

Defines

#define LOGLOG_DEBUG(log)
#define LOGLOG_WARN(log)
#define LOGLOG_ERROR(log)


Define Documentation

#define LOGLOG_DEBUG log   ) 
 

Value:

#define LOGLOG_ERROR log   ) 
 

Value:

#define LOGLOG_WARN log   ) 
 

Value:

apache-log4cxx-0.10.0/site/apidocs/logmanager_8h.html100644 0 0 11132 10774263472 17547 0ustar 0 0 Apache log4cxx: logmanager.h File Reference

logmanager.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::spi

Classes

class  LogManager
 Use the LogManager class to retreive Logger instances or to operate on the current LoggerRepository. More...

Typedefs

typedef helpers::ObjectPtrT<
Logger > 
log4cxx::LoggerPtr
typedef std::vector< LoggerPtrlog4cxx::LoggerList
typedef helpers::ObjectPtrT<
LoggerFactory > 
log4cxx::spi::LoggerFactoryPtr
apache-log4cxx-0.10.0/site/apidocs/logstring_8h.html100644 0 0 12360 10774263472 17447 0ustar 0 0 Apache log4cxx: logstring.h File Reference

logstring.h File Reference


Namespaces

namespace  log4cxx

Defines

#define LOG4CXX_EOL   LOG4CXX_STR("\x0A")

Typedefs

typedef const struct __CFString * CFStringRef
typedef unsigned short log4cxx::UniChar
typedef std::basic_string<
logchar > 
log4cxx::LogString


Define Documentation

#define LOG4CXX_EOL   LOG4CXX_STR("\x0A")
 


Typedef Documentation

typedef const struct __CFString* CFStringRef
 

apache-log4cxx-0.10.0/site/apidocs/mainpage_8dox.html100644 0 0 5044 10774263472 17544 0ustar 0 0 Apache log4cxx: mainpage.dox File Reference

mainpage.dox File Reference

apache-log4cxx-0.10.0/site/apidocs/manualtriggeringpolicy_8h.html100644 0 0 11667 10774263472 22227 0ustar 0 0 Apache log4cxx: manualtriggeringpolicy.h File Reference

manualtriggeringpolicy.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers
namespace  log4cxx::rolling

Classes

class  ManualTriggeringPolicy
 ManualTriggeringPolicy only rolls over on explicit calls to RollingFileAppender.rollover(). More...

Defines

#define _LOG4CXX_ROLLING_MANUAL_TRIGGERING_POLICY_H


Define Documentation

#define _LOG4CXX_ROLLING_MANUAL_TRIGGERING_POLICY_H
 

apache-log4cxx-0.10.0/site/apidocs/mapfilter_8h.html100644 0 0 6352 10774263472 17406 0ustar 0 0 Apache log4cxx: mapfilter.h File Reference

mapfilter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::filter

Classes

class  MapFilter
apache-log4cxx-0.10.0/site/apidocs/mdc_8h.html100644 0 0 6510 10774263472 16162 0ustar 0 0 Apache log4cxx: mdc.h File Reference

mdc.h File Reference


Namespaces

namespace  log4cxx

Classes

class  MDC
 The MDC class is similar to the NDC class except that it is based on a map instead of a stack. More...
apache-log4cxx-0.10.0/site/apidocs/messagebuffer_8h.html100644 0 0 16216 10774263472 20261 0ustar 0 0 Apache log4cxx: messagebuffer.h File Reference

messagebuffer.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  CharMessageBuffer
 This class is used by the LOG4CXX_INFO and similar macros to support insertion operators in the message parameter. More...
class  UniCharMessageBuffer
 This class is designed to support insertion operations in the message argument to the LOG4CXX_INFO and similar macros and is not designed for general purpose use. More...
class  WideMessageBuffer
 This class is designed to support insertion operations in the message argument to the LOG4CXX_INFO and similar macros and is not designed for general purpose use. More...
class  MessageBuffer
 This class is used by the LOG4CXX_INFO and similar macros to support insertion operators in the message parameter. More...

Typedefs

typedef std::ios_base &(* log4cxx::helpers::ios_base_manip )(std::ios_base &)

Functions

template<class V>
std::basic_ostream< char > & log4cxx::helpers::operator<< (CharMessageBuffer &os, const V &val)
template<class V>
UniCharMessageBuffer::uostream & log4cxx::helpers::operator<< (UniCharMessageBuffer &os, const V &val)
template<class V>
std::basic_ostream< wchar_t > & log4cxx::helpers::operator<< (WideMessageBuffer &os, const V &val)
template<class V>
std::ostream & log4cxx::helpers::operator<< (MessageBuffer &os, const V &val)
apache-log4cxx-0.10.0/site/apidocs/messagepatternconverter_8h.html100644 0 0 6764 10774263472 22404 0ustar 0 0 Apache log4cxx: messagepatternconverter.h File Reference

messagepatternconverter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::pattern

Classes

class  MessagePatternConverter
 Formats the message of an logging event. More...
apache-log4cxx-0.10.0/site/apidocs/methodlocationpatternconverter_8h.html100644 0 0 7060 10774263472 23757 0ustar 0 0 Apache log4cxx: methodlocationpatternconverter.h File Reference

methodlocationpatternconverter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::pattern

Classes

class  MethodLocationPatternConverter
 Return the event's line location information in a StringBuffer. More...
apache-log4cxx-0.10.0/site/apidocs/mutex_8h.html100644 0 0 6334 10774263472 16565 0ustar 0 0 Apache log4cxx: mutex.h File Reference

mutex.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  Mutex
apache-log4cxx-0.10.0/site/apidocs/nameabbreviator_8h.html100644 0 0 7553 10774263472 20570 0ustar 0 0 Apache log4cxx: nameabbreviator.h File Reference

nameabbreviator.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::pattern

Classes

class  NameAbbreviator
 NameAbbreviator generates abbreviated logger and class names. More...

Functions

 log4cxx::pattern::LOG4CXX_PTR_DEF (NameAbbreviator)
apache-log4cxx-0.10.0/site/apidocs/namepatternconverter_8h.html100644 0 0 7017 10774263472 21670 0ustar 0 0 Apache log4cxx: namepatternconverter.h File Reference

namepatternconverter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::pattern

Classes

class  NamePatternConverter
 Base class for other pattern converters which can return only parts of their name. More...
apache-log4cxx-0.10.0/site/apidocs/ndc_8h.html100644 0 0 6554 10774263472 16173 0ustar 0 0 Apache log4cxx: ndc.h File Reference

ndc.h File Reference


Namespaces

namespace  log4cxx

Classes

class  NDC
 the ndc class implements nested diagnostic contexts as defined by neil harrison in the article "patterns for logging diagnostic messages" part of the book "pattern languages of program design 3" edited by martin et al. More...
apache-log4cxx-0.10.0/site/apidocs/ndcpatternconverter_8h.html100644 0 0 7032 10774263472 21511 0ustar 0 0 Apache log4cxx: ndcpatternconverter.h File Reference

ndcpatternconverter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::pattern

Classes

class  NDCPatternConverter
 Return the event's NDC in a StringBuffer. More...
apache-log4cxx-0.10.0/site/apidocs/nteventlogappender_8h.html100644 0 0 7377 10774263472 21337 0ustar 0 0 Apache log4cxx: nteventlogappender.h File Reference

nteventlogappender.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::nt

Classes

class  NTEventLogAppender
 Appends log events to NT EventLog. More...

Functions

 log4cxx::nt::LOG4CXX_PTR_DEF (NTEventLogAppender)
apache-log4cxx-0.10.0/site/apidocs/object_8h.html100644 0 0 55514 10774263472 16715 0ustar 0 0 Apache log4cxx: object.h File Reference

object.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  Object
 base class for java-like objects. More...
class  Object::ClazzObject

Defines

#define DECLARE_ABSTRACT_LOG4CXX_OBJECT(object)
#define DECLARE_LOG4CXX_OBJECT(object)
#define DECLARE_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS(object, class)
#define IMPLEMENT_LOG4CXX_OBJECT(object)
#define IMPLEMENT_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS(object, class)
#define BEGIN_LOG4CXX_CAST_MAP()
#define END_LOG4CXX_CAST_MAP()
#define LOG4CXX_CAST_ENTRY(Interface)   if (&clazz == &Interface::getStaticClass()) return (const Interface *)this;
#define LOG4CXX_CAST_ENTRY2(Interface, interface2)   if (&clazz == &Interface::getStaticClass()) return (Interface *)(interface2 *)this;
#define LOG4CXX_CAST_ENTRY_CHAIN(Interface)

Functions

 log4cxx::helpers::LOG4CXX_PTR_DEF (Object)


Define Documentation

 
#define BEGIN_LOG4CXX_CAST_MAP  ) 
 

Value:

const void * cast(const helpers::Class& clazz) const\
{\
        const void * object = 0;\
        if (&clazz == &helpers::Object::getStaticClass()) return (const helpers::Object *)this;

#define DECLARE_ABSTRACT_LOG4CXX_OBJECT object   ) 
 

Value:

public:\
class Clazz##object : public helpers::Class\
{\
public:\
        Clazz##object() : helpers::Class() {}\
        virtual ~Clazz##object() {}\
        virtual log4cxx::LogString getName() const { return LOG4CXX_STR(#object); } \
};\
virtual const helpers::Class& getClass() const;\
static const helpers::Class& getStaticClass(); \
static const log4cxx::helpers::ClassRegistration& registerClass();

#define DECLARE_LOG4CXX_OBJECT object   ) 
 

Value:

public:\
class Clazz##object : public helpers::Class\
{\
public:\
        Clazz##object() : helpers::Class() {}\
        virtual ~Clazz##object() {}\
        virtual log4cxx::LogString getName() const { return LOG4CXX_STR(#object); } \
        virtual helpers::ObjectPtr newInstance() const\
        {\
                return new object();\
        }\
};\
virtual const helpers::Class& getClass() const;\
static const helpers::Class& getStaticClass(); \
static const log4cxx::helpers::ClassRegistration& registerClass();

#define DECLARE_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS object,
class   ) 
 

Value:

public:\
virtual const helpers::Class& getClass() const;\
static const helpers::Class& getStaticClass();\
static const log4cxx::helpers::ClassRegistration&  registerClass();

 
#define END_LOG4CXX_CAST_MAP  ) 
 

Value:

return object;\
}\
bool instanceof(const helpers::Class& clazz) const\
{ return cast(clazz) != 0; }

#define IMPLEMENT_LOG4CXX_OBJECT object   ) 
 

Value:

const log4cxx::helpers::Class& object::getClass() const { return getStaticClass(); }\
const log4cxx::helpers::Class& object::getStaticClass() { \
   static Clazz##object theClass;                         \
   return theClass;                                       \
}                                                                      \
const log4cxx::helpers::ClassRegistration& object::registerClass() {   \
    static log4cxx::helpers::ClassRegistration classReg(object::getStaticClass); \
    return classReg; \
}\
namespace log4cxx { namespace classes { \
const log4cxx::helpers::ClassRegistration& object##Registration = object::registerClass(); \
} }

#define IMPLEMENT_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS object,
class   ) 
 

Value:

const log4cxx::helpers::Class& object::getClass() const { return getStaticClass(); }\
const log4cxx::helpers::Class& object::getStaticClass() { \
   static class theClass;                                 \
   return theClass;                                       \
}                                                         \
const log4cxx::helpers::ClassRegistration& object::registerClass() {   \
    static log4cxx::helpers::ClassRegistration classReg(object::getStaticClass); \
    return classReg; \
}\
namespace log4cxx { namespace classes { \
const log4cxx::helpers::ClassRegistration& object##Registration = object::registerClass(); \
} }

#define LOG4CXX_CAST_ENTRY Interface   )     if (&clazz == &Interface::getStaticClass()) return (const Interface *)this;
 

#define LOG4CXX_CAST_ENTRY2 Interface,
interface2   )     if (&clazz == &Interface::getStaticClass()) return (Interface *)(interface2 *)this;
 

#define LOG4CXX_CAST_ENTRY_CHAIN Interface   ) 
 

Value:

object = Interface::cast(clazz);\
if (object != 0) return object;
apache-log4cxx-0.10.0/site/apidocs/objectimpl_8h.html100644 0 0 6752 10774263472 17557 0ustar 0 0 Apache log4cxx: objectimpl.h File Reference

objectimpl.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  ObjectImpl
 Implementation class for Object. More...
apache-log4cxx-0.10.0/site/apidocs/objectoutputstream_8h.html100644 0 0 7423 10774263472 21366 0ustar 0 0 Apache log4cxx: objectoutputstream.h File Reference

objectoutputstream.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  ObjectOutputStream
 Emulates java serialization. More...

Functions

 log4cxx::helpers::LOG4CXX_PTR_DEF (ObjectOutputStream)
apache-log4cxx-0.10.0/site/apidocs/objectptr_8h.html100644 0 0 11661 10774263472 17436 0ustar 0 0 Apache log4cxx: objectptr.h File Reference

objectptr.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  ObjectPtrBase
class  ObjectPtrT
 smart pointer to a Object descendant More...

Defines

#define _LOG4CXX_OBJECTPTR_INIT(x)   : p(x) {


Define Documentation

#define _LOG4CXX_OBJECTPTR_INIT  )     : p(x) {
 

apache-log4cxx-0.10.0/site/apidocs/odbcappender_8h.html100644 0 0 7366 10774263472 20057 0ustar 0 0 Apache log4cxx: odbcappender.h File Reference

odbcappender.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::db

Classes

class  SQLException
class  ODBCAppender

Functions

 log4cxx::db::LOG4CXX_PTR_DEF (ODBCAppender)
apache-log4cxx-0.10.0/site/apidocs/onlyonceerrorhandler_8h.html100644 0 0 7324 10774263472 21661 0ustar 0 0 Apache log4cxx: onlyonceerrorhandler.h File Reference

onlyonceerrorhandler.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  OnlyOnceErrorHandler
 The OnlyOnceErrorHandler implements log4cxx's default error handling policy which consists of emitting a message for the first error in an appender and ignoring all following errors. More...
apache-log4cxx-0.10.0/site/apidocs/optionconverter_8h.html100644 0 0 11065 10774263472 20700 0ustar 0 0 Apache log4cxx: optionconverter.h File Reference

optionconverter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::spi
namespace  log4cxx::helpers

Classes

class  OptionConverter
 A convenience class to convert property values to specific types. More...

Typedefs

typedef helpers::ObjectPtrT<
Level > 
log4cxx::LevelPtr
typedef helpers::ObjectPtrT<
LoggerRepository > 
log4cxx::spi::LoggerRepositoryPtr
typedef ObjectPtrT< Object > log4cxx::helpers::ObjectPtr
apache-log4cxx-0.10.0/site/apidocs/optionhandler_8h.html100644 0 0 7437 10774263472 20276 0ustar 0 0 Apache log4cxx: optionhandler.h File Reference

optionhandler.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::spi

Classes

class  OptionHandler
 A string based interface to configure package components. More...

Typedefs

typedef helpers::ObjectPtrT<
OptionHandler > 
log4cxx::spi::OptionHandlerPtr
apache-log4cxx-0.10.0/site/apidocs/outputdebugstringappender_8h.html100644 0 0 6440 10774263472 22736 0ustar 0 0 Apache log4cxx: outputdebugstringappender.h File Reference

outputdebugstringappender.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::nt

Classes

class  OutputDebugStringAppender
apache-log4cxx-0.10.0/site/apidocs/outputstream_8h.html100644 0 0 7401 10774263472 20173 0ustar 0 0 Apache log4cxx: outputstream.h File Reference

outputstream.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  OutputStream
 Abstract class for writing to character streams. More...

Functions

 log4cxx::helpers::LOG4CXX_PTR_DEF (OutputStream)
apache-log4cxx-0.10.0/site/apidocs/outputstreamwriter_8h.html100644 0 0 7447 10774263472 21442 0ustar 0 0 Apache log4cxx: outputstreamwriter.h File Reference

outputstreamwriter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  OutputStreamWriter
 Abstract class for writing to character streams. More...

Functions

 log4cxx::helpers::LOG4CXX_PTR_DEF (OutputStreamWriter)
apache-log4cxx-0.10.0/site/apidocs/patternconverter_8h.html100644 0 0 12437 10774263472 21051 0ustar 0 0 Apache log4cxx: patternconverter.h File Reference

patternconverter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::pattern

Classes

class  PatternConverter

Defines

#define DECLARE_LOG4CXX_PATTERN(cls)   DECLARE_ABSTRACT_LOG4CXX_OBJECT(cls)

Typedefs

typedef std::vector< LogStringlog4cxx::pattern::OptionsList

Functions

 log4cxx::pattern::LOG4CXX_PTR_DEF (PatternConverter)


Define Documentation

#define DECLARE_LOG4CXX_PATTERN cls   )     DECLARE_ABSTRACT_LOG4CXX_OBJECT(cls)
 

apache-log4cxx-0.10.0/site/apidocs/patternlayout_8h.html100644 0 0 7016 10774263472 20334 0ustar 0 0 Apache log4cxx: patternlayout.h File Reference

patternlayout.h File Reference


Namespaces

namespace  log4cxx

Classes

class  PatternLayout
 A flexible layout configurable with pattern string. More...

Functions

 log4cxx::LOG4CXX_PTR_DEF (PatternLayout)
apache-log4cxx-0.10.0/site/apidocs/patternparser_8h.html100644 0 0 11042 10774263472 20325 0ustar 0 0 Apache log4cxx: patternparser.h File Reference

patternparser.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::pattern

Classes

class  PatternParser
 Most of the work of the PatternLayout class is delegated to the PatternParser class. More...

Typedefs

typedef PatternConverterPtr(* log4cxx::pattern::PatternConstructor )(const std::vector< LogString > &options)
typedef std::map< LogString,
PatternConstructor
log4cxx::pattern::PatternMap
apache-log4cxx-0.10.0/site/apidocs/pool_8h.html100644 0 0 6330 10774263472 16370 0ustar 0 0 Apache log4cxx: pool.h File Reference

pool.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  Pool
apache-log4cxx-0.10.0/site/apidocs/portability_8h.html100644 0 0 5046 10774263472 17764 0ustar 0 0 Apache log4cxx: portability.h File Reference

portability.h File Reference

apache-log4cxx-0.10.0/site/apidocs/properties_8h.html100644 0 0 6360 10774263472 17616 0ustar 0 0 Apache log4cxx: properties.h File Reference

properties.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  Properties
apache-log4cxx-0.10.0/site/apidocs/propertiespatternconverter_8h.html100644 0 0 7403 10774263472 23143 0ustar 0 0 Apache log4cxx: propertiespatternconverter.h File Reference

propertiespatternconverter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::pattern

Classes

class  PropertiesPatternConverter
 Able to handle the contents of the LoggingEvent's Property bundle and either output the entire contents of the properties in a similar format to the java.util.Hashtable.toString(), or to output the value of a specific key within the property bundle when this pattern converter has the option set. More...
apache-log4cxx-0.10.0/site/apidocs/propertyconfigurator_8h.html100644 0 0 10460 10774263472 21745 0ustar 0 0 Apache log4cxx: propertyconfigurator.h File Reference

propertyconfigurator.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers
namespace  log4cxx::spi

Classes

class  PropertyConfigurator
 Allows the configuration of log4cxx from an external file. More...

Typedefs

typedef helpers::ObjectPtrT<
Logger > 
log4cxx::LoggerPtr
typedef helpers::ObjectPtrT<
Appender > 
log4cxx::AppenderPtr
apache-log4cxx-0.10.0/site/apidocs/propertyfilter_8h.html100644 0 0 6745 10774263472 20523 0ustar 0 0 Apache log4cxx: propertyfilter.h File Reference

propertyfilter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::filter

Classes

class  PropertyFilter
 NOTE: This filter modifies logging events by adding properties to the event. More...
apache-log4cxx-0.10.0/site/apidocs/propertysetter_8h.html100644 0 0 7734 10774263472 20543 0ustar 0 0 Apache log4cxx: propertysetter.h File Reference

propertysetter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers
namespace  log4cxx::config

Classes

class  PropertySetter
 General purpose Object property setter. More...

Typedefs

typedef ObjectPtrT< Object > log4cxx::helpers::ObjectPtr
apache-log4cxx-0.10.0/site/apidocs/propertyresourcebundle_8h.html100644 0 0 10103 10774263472 22256 0ustar 0 0 Apache log4cxx: propertyresourcebundle.h File Reference

propertyresourcebundle.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  PropertyResourceBundle
 PropertyResourceBundle is a concrete subclass of ResourceBundle that manages resources for a locale using a set of static strings from a property file. More...

Functions

 log4cxx::helpers::LOG4CXX_PTR_DEF (PropertyResourceBundle)
apache-log4cxx-0.10.0/site/apidocs/provisionnode_8h.html100644 0 0 6674 10774263472 20330 0ustar 0 0 Apache log4cxx: provisionnode.h File Reference

provisionnode.h File Reference


Namespaces

namespace  log4cxx

Typedefs

typedef helpers::ObjectPtrT<
Logger > 
log4cxx::LoggerPtr
typedef std::vector< LoggerPtrlog4cxx::ProvisionNode
apache-log4cxx-0.10.0/site/apidocs/reader_8h.html100644 0 0 7335 10774263472 16667 0ustar 0 0 Apache log4cxx: reader.h File Reference

reader.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  Reader
 Abstract class for reading from character streams. More...

Functions

 log4cxx::helpers::LOG4CXX_PTR_DEF (Reader)
apache-log4cxx-0.10.0/site/apidocs/relativetimedateformat_8h.html100644 0 0 7045 10774263472 22164 0ustar 0 0 Apache log4cxx: relativetimedateformat.h File Reference

relativetimedateformat.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  RelativeTimeDateFormat
 Formats a date by printing the number of seconds elapsed since the start of the application. More...
apache-log4cxx-0.10.0/site/apidocs/relativetimepatternconverter_8h.html100644 0 0 7020 10774263472 23434 0ustar 0 0 Apache log4cxx: relativetimepatternconverter.h File Reference

relativetimepatternconverter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::pattern

Classes

class  RelativeTimePatternConverter
 Format the relative time in milliseconds. More...
apache-log4cxx-0.10.0/site/apidocs/repositoryselector_8h.html100644 0 0 10665 10774263472 21425 0ustar 0 0 Apache log4cxx: repositoryselector.h File Reference

repositoryselector.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::spi

Classes

class  RepositorySelector
 The LogManager uses one (and only one) RepositorySelector implementation to select the LoggerRepository for a particular application context. More...

Typedefs

typedef helpers::ObjectPtrT<
LoggerRepository > 
log4cxx::spi::LoggerRepositoryPtr

Functions

 log4cxx::spi::LOG4CXX_PTR_DEF (RepositorySelector)
apache-log4cxx-0.10.0/site/apidocs/resourcebundle_8h.html100644 0 0 7416 10774263472 20446 0ustar 0 0 Apache log4cxx: resourcebundle.h File Reference

resourcebundle.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  ResourceBundle
 Resource bundles contain locale-specific objects. More...

Functions

 log4cxx::helpers::LOG4CXX_PTR_DEF (ResourceBundle)
apache-log4cxx-0.10.0/site/apidocs/rolling_2rollingfileappender_8h.html100644 0 0 12236 10774263472 23276 0ustar 0 0 Apache log4cxx: rollingfileappender.h File Reference

rollingfileappender.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::rolling

Classes

class  RollingFileAppender
 RollingFileAppender extends log4cxx::FileAppender to backup the log files depending on RollingPolicy and TriggeringPolicy. More...

Defines

#define _LOG4CXX_ROLLING_ROLLING_FILE_APPENDER_H

Functions

 log4cxx::rolling::LOG4CXX_PTR_DEF (RollingFileAppender)


Define Documentation

#define _LOG4CXX_ROLLING_ROLLING_FILE_APPENDER_H
 

apache-log4cxx-0.10.0/site/apidocs/rollingfileappender_8h.html100644 0 0 7343 10774263472 21451 0ustar 0 0 Apache log4cxx: rollingfileappender.h File Reference

rollingfileappender.h File Reference


Namespaces

namespace  log4cxx

Classes

class  RollingFileAppender
 RollingFileAppender extends FileAppender to backup the log files when they reach a certain size. More...

Functions

 log4cxx::LOG4CXX_PTR_DEF (RollingFileAppender)
apache-log4cxx-0.10.0/site/apidocs/rollingfileappenderskeleton_8h.html100644 0 0 12244 10774263472 23232 0ustar 0 0 Apache log4cxx: rollingfileappenderskeleton.h File Reference

rollingfileappenderskeleton.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::rolling

Classes

class  RollingFileAppenderSkeleton
 Base class for log4cxx::rolling::RollingFileAppender and log4cxx::RollingFileAppender (analogues of org.apache.log4j.rolling.RFA from extras companion and org.apache.log4j.RFA from log4j 1.2, respectively). More...

Defines

#define _LOG4CXX_ROLLING_ROLLING_FILE_APPENDER_SKELETON_H

Functions

 log4cxx::rolling::LOG4CXX_PTR_DEF (RollingFileAppenderSkeleton)


Define Documentation

#define _LOG4CXX_ROLLING_ROLLING_FILE_APPENDER_SKELETON_H
 

apache-log4cxx-0.10.0/site/apidocs/rollingpolicy_8h.html100644 0 0 11511 10774263472 20322 0ustar 0 0 Apache log4cxx: rollingpolicy.h File Reference

rollingpolicy.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::rolling

Classes

class  RollingPolicy
 A RollingPolicy is responsible for performing the rolling over of the active log file. More...

Defines

#define _LOG4CXX_ROLLING_ROLLING_POLICY_H

Functions

 log4cxx::rolling::LOG4CXX_PTR_DEF (RollingPolicy)


Define Documentation

#define _LOG4CXX_ROLLING_ROLLING_POLICY_H
 

apache-log4cxx-0.10.0/site/apidocs/rollingpolicybase_8h.html100644 0 0 10713 10774263472 21160 0ustar 0 0 Apache log4cxx: rollingpolicybase.h File Reference

rollingpolicybase.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::rolling

Classes

class  RollingPolicyBase
 Implements methods common to most, it not all, rolling policies. More...

Defines

#define _LOG4CXX_ROLLING_ROLLING_POLICY_BASE_H


Define Documentation

#define _LOG4CXX_ROLLING_ROLLING_POLICY_BASE_H
 

apache-log4cxx-0.10.0/site/apidocs/rolloverdescription_8h.html100644 0 0 11076 10774263472 21552 0ustar 0 0 Apache log4cxx: rolloverdescription.h File Reference

rolloverdescription.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::rolling

Classes

class  RolloverDescription

Defines

#define _LOG4CXX_ROLLING_ROLLOVER_DESCRIPTION_H

Functions

 log4cxx::rolling::LOG4CXX_PTR_DEF (RolloverDescription)


Define Documentation

#define _LOG4CXX_ROLLING_ROLLOVER_DESCRIPTION_H
 

apache-log4cxx-0.10.0/site/apidocs/rootlogger_8h.html100644 0 0 6755 10774263472 17615 0ustar 0 0 Apache log4cxx: rootlogger.h File Reference

rootlogger.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::spi

Classes

class  RootLogger
 RootLogger sits at the top of the logger hierachy. More...
apache-log4cxx-0.10.0/site/apidocs/serversocket_8h.html100644 0 0 6371 10774263472 20143 0ustar 0 0 Apache log4cxx: serversocket.h File Reference

serversocket.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  ServerSocket
apache-log4cxx-0.10.0/site/apidocs/simpledateformat_8h.html100644 0 0 7660 10774263472 20766 0ustar 0 0 Apache log4cxx: simpledateformat.h File Reference

simpledateformat.h File Reference


Namespaces

namespace  std
namespace  log4cxx
namespace  log4cxx::helpers
namespace  log4cxx::helpers::SimpleDateFormatImpl

Classes

class  SimpleDateFormat
 Concrete class for formatting and parsing dates in a locale-sensitive manner. More...
apache-log4cxx-0.10.0/site/apidocs/simplelayout_8h.html100644 0 0 7175 10774263472 20156 0ustar 0 0 Apache log4cxx: simplelayout.h File Reference

simplelayout.h File Reference


Namespaces

namespace  log4cxx

Classes

class  SimpleLayout
 SimpleLayout consists of the level of the log statement, followed by " - " and then the log message itself. More...

Functions

 log4cxx::LOG4CXX_PTR_DEF (SimpleLayout)
apache-log4cxx-0.10.0/site/apidocs/sizebasedtriggeringpolicy_8h.html100644 0 0 12243 10774263472 22712 0ustar 0 0 Apache log4cxx: sizebasedtriggeringpolicy.h File Reference

sizebasedtriggeringpolicy.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers
namespace  log4cxx::rolling

Classes

class  SizeBasedTriggeringPolicy
 SizeBasedTriggeringPolicy looks at size of the file being currently written to. More...

Defines

#define _LOG4CXX_ROLLING_SIZE_BASED_TRIGGERING_POLICY_H

Functions

 log4cxx::rolling::LOG4CXX_PTR_DEF (SizeBasedTriggeringPolicy)


Define Documentation

#define _LOG4CXX_ROLLING_SIZE_BASED_TRIGGERING_POLICY_H
 

apache-log4cxx-0.10.0/site/apidocs/smtpappender_8h.html100644 0 0 7430 10774263472 20123 0ustar 0 0 Apache log4cxx: smtpappender.h File Reference

smtpappender.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::net

Classes

class  SMTPAppender
 Send an e-mail when a specific logging event occurs, typically on errors or fatal errors. More...

Functions

 log4cxx::net::LOG4CXX_PTR_DEF (SMTPAppender)
apache-log4cxx-0.10.0/site/apidocs/socket_8h.html100644 0 0 7030 10774263472 16705 0ustar 0 0 Apache log4cxx: socket.h File Reference

socket.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  Socket

Functions

 log4cxx::helpers::LOG4CXX_PTR_DEF (Socket)
apache-log4cxx-0.10.0/site/apidocs/socketappender_8h.html100644 0 0 7526 10774263472 20436 0ustar 0 0 Apache log4cxx: socketappender.h File Reference

socketappender.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::net

Classes

class  SocketAppender
 Sends LoggingEvent objects to a remote a log server, usually Apache Chainsaw. More...

Functions

 log4cxx::net::LOG4CXX_PTR_DEF (SocketAppender)
apache-log4cxx-0.10.0/site/apidocs/socketappenderskeleton_8h.html100644 0 0 7206 10774263472 22176 0ustar 0 0 Apache log4cxx: socketappenderskeleton.h File Reference

socketappenderskeleton.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::net

Classes

class  SocketAppenderSkeleton
 Abstract base class for SocketAppender and XMLSocketAppender. More...
apache-log4cxx-0.10.0/site/apidocs/sockethubappender_8h.html100644 0 0 10641 10774263472 21145 0ustar 0 0 Apache log4cxx: sockethubappender.h File Reference

sockethubappender.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers
namespace  log4cxx::net

Classes

class  SocketHubAppender
 Sends LoggingEvent objects to a set of remote log servers, usually a SocketNode. More...

Typedefs

typedef ObjectPtrT< ObjectOutputStream > log4cxx::helpers::ObjectOutputStreamPtr

Functions

 log4cxx::net::LOG4CXX_PTR_DEF (SocketHubAppender)
apache-log4cxx-0.10.0/site/apidocs/socketoutputstream_8h.html100644 0 0 7126 10774263472 21410 0ustar 0 0 Apache log4cxx: socketoutputstream.h File Reference

socketoutputstream.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  SocketOutputStream

Functions

 log4cxx::helpers::LOG4CXX_PTR_DEF (SocketOutputStream)
apache-log4cxx-0.10.0/site/apidocs/stream_8h.html100644 0 0 15024 10774263472 16732 0ustar 0 0 Apache log4cxx: stream.h File Reference

stream.h File Reference


Namespaces

namespace  log4cxx

Classes

class  logstream_base
 Base class for the basic_logstream template which attempts to emulate std::basic_ostream but attempts to short-circuit unnecessary operations. More...
class  logstream_base::logstream_ios_base
 Minimal extension of std::ios_base to allow creation of embedded IO states.
class  logstream
 An STL-like stream API for log4cxx using char as the character type. More...
class  wlogstream
 An STL-like stream API for log4cxx using wchar_t as the character type. More...
class  ulogstream
 An STL-like stream API for log4cxx using UniChar as the character type. More...

Defines

#define LOG4CXX_ENDMSG   LOG4CXX_LOCATION << (log4cxx::logstream_manipulator) log4cxx::logstream_base::endmsg

Typedefs

typedef logstream_base &(* log4cxx::logstream_manipulator )(logstream_base &)


Define Documentation

#define LOG4CXX_ENDMSG   LOG4CXX_LOCATION << (log4cxx::logstream_manipulator) log4cxx::logstream_base::endmsg
 

apache-log4cxx-0.10.0/site/apidocs/strftimedateformat_8h.html100644 0 0 7000 10774263472 21316 0ustar 0 0 Apache log4cxx: strftimedateformat.h File Reference

strftimedateformat.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  StrftimeDateFormat
 Concrete class for formatting and parsing dates in a locale-sensitive manner. More...
apache-log4cxx-0.10.0/site/apidocs/strictmath_8h.html100644 0 0 7035 10774263472 17604 0ustar 0 0 Apache log4cxx: strictmath.h File Reference

strictmath.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  StrictMath
 The class StrictMath contains methods for performing basic numeric operations. More...
apache-log4cxx-0.10.0/site/apidocs/stringhelper_8h.html100644 0 0 6660 10774263472 20133 0ustar 0 0 Apache log4cxx: stringhelper.h File Reference

stringhelper.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  StringHelper
 String manipulation routines. More...
apache-log4cxx-0.10.0/site/apidocs/stringmatchfilter_8h.html100644 0 0 7441 10774263472 21154 0ustar 0 0 Apache log4cxx: stringmatchfilter.h File Reference

stringmatchfilter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::filter

Classes

class  StringMatchFilter
 This is a very simple filter based on string matching. More...

Functions

 log4cxx::filter::LOG4CXX_PTR_DEF (StringMatchFilter)
apache-log4cxx-0.10.0/site/apidocs/stringtokenizer_8h.html100644 0 0 6405 10774263472 20663 0ustar 0 0 Apache log4cxx: stringtokenizer.h File Reference

stringtokenizer.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  StringTokenizer
apache-log4cxx-0.10.0/site/apidocs/synchronized_8h.html100644 0 0 6706 10774263472 20145 0ustar 0 0 Apache log4cxx: synchronized.h File Reference

synchronized.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  synchronized
 utility class for objects multi-thread synchronization. More...
apache-log4cxx-0.10.0/site/apidocs/syslogappender_8h.html100644 0 0 7515 10774263472 20464 0ustar 0 0 Apache log4cxx: syslogappender.h File Reference

syslogappender.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::net

Classes

class  SyslogAppender
 Use SyslogAppender to send log messages to a remote syslog daemon. More...

Functions

 log4cxx::net::LOG4CXX_PTR_DEF (SyslogAppender)
apache-log4cxx-0.10.0/site/apidocs/syslogwriter_8h.html100644 0 0 7242 10774263472 20177 0ustar 0 0 Apache log4cxx: syslogwriter.h File Reference

syslogwriter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  SyslogWriter
 SyslogWriter is a wrapper around the DatagramSocket class it writes text to the specified host on the port 514 (UNIX syslog). More...
apache-log4cxx-0.10.0/site/apidocs/system_8h.html100644 0 0 6766 10774263472 16760 0ustar 0 0 Apache log4cxx: system.h File Reference

system.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  System
 The System class contains several useful class fields and methods. More...
apache-log4cxx-0.10.0/site/apidocs/systemerrwriter_8h.html100644 0 0 6724 10774263472 20720 0ustar 0 0 Apache log4cxx: systemerrwriter.h File Reference

systemerrwriter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  SystemErrWriter
 Abstract class for writing to character streams. More...
apache-log4cxx-0.10.0/site/apidocs/systemoutwriter_8h.html100644 0 0 6724 10774263472 20737 0ustar 0 0 Apache log4cxx: systemoutwriter.h File Reference

systemoutwriter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  SystemOutWriter
 Abstract class for writing to character streams. More...
apache-log4cxx-0.10.0/site/apidocs/tchar_8h.html100644 0 0 5032 10774263472 16516 0ustar 0 0 Apache log4cxx: tchar.h File Reference

tchar.h File Reference

apache-log4cxx-0.10.0/site/apidocs/telnetappender_8h.html100644 0 0 7377 10774263472 20445 0ustar 0 0 Apache log4cxx: telnetappender.h File Reference

telnetappender.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers
namespace  log4cxx::net

Classes

class  TelnetAppender

Functions

 log4cxx::net::LOG4CXX_PTR_DEF (TelnetAppender)
apache-log4cxx-0.10.0/site/apidocs/thread_8h.html100644 0 0 15066 10774263472 16714 0ustar 0 0 Apache log4cxx: thread.h File Reference

thread.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  Thread
 This class implements an approximation of java.util.Thread. More...
class  Thread::LaunchPackage
 This class is used to encapsulate the parameters to Thread::run when they are passed to Thread::launcher.
class  Thread::LaunchStatus
 This object atomically sets the specified memory location to non-zero on construction and to zero on destruction.

Defines

#define LOG4CXX_THREAD_FUNC

Typedefs

typedef apr_thread_t apr_thread_t
typedef void *(* log4cxx::helpers::Runnable )(apr_thread_t *thread, void *data)


Define Documentation

#define LOG4CXX_THREAD_FUNC
 


Typedef Documentation

typedef struct apr_thread_t apr_thread_t
 

apache-log4cxx-0.10.0/site/apidocs/threadlocal_8h.html100644 0 0 10521 10774263472 17716 0ustar 0 0 Apache log4cxx: threadlocal.h File Reference

threadlocal.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  ThreadLocal
 This class provides thread-local variables. More...

Defines

#define LOG4CXX_THREAD_FUNC


Define Documentation

#define LOG4CXX_THREAD_FUNC
 

apache-log4cxx-0.10.0/site/apidocs/threadpatternconverter_8h.html100644 0 0 6745 10774263472 22226 0ustar 0 0 Apache log4cxx: threadpatternconverter.h File Reference

threadpatternconverter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::pattern

Classes

class  ThreadPatternConverter
 Formats the event thread name. More...
apache-log4cxx-0.10.0/site/apidocs/threadspecificdata_8h.html100644 0 0 7045 10774263472 21232 0ustar 0 0 Apache log4cxx: threadspecificdata.h File Reference

threadspecificdata.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  ThreadSpecificData
 This class contains all the thread-specific data in use by log4cxx. More...
apache-log4cxx-0.10.0/site/apidocs/throwableinformationpatternconverter_8h.html100644 0 0 7277 10774263472 25215 0ustar 0 0 Apache log4cxx: throwableinformationpatternconverter.h File Reference

throwableinformationpatternconverter.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::pattern

Classes

class  ThrowableInformationPatternConverter
 Outputs the ThrowableInformation portion of the LoggingiEvent as a full stacktrace unless this converter's option is 'short', where it just outputs the first line of the trace. More...
apache-log4cxx-0.10.0/site/apidocs/timebasedrollingpolicy_8h.html100644 0 0 11657 10774263472 22213 0ustar 0 0 Apache log4cxx: timebasedrollingpolicy.h File Reference

timebasedrollingpolicy.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::rolling

Classes

class  TimeBasedRollingPolicy
 TimeBasedRollingPolicy is both easy to configure and quite powerful. More...

Defines

#define _LOG4CXX_ROLLING_TIME_BASED_ROLLING_POLICY_H

Functions

 log4cxx::rolling::LOG4CXX_PTR_DEF (TimeBasedRollingPolicy)


Define Documentation

#define _LOG4CXX_ROLLING_TIME_BASED_ROLLING_POLICY_H
 

apache-log4cxx-0.10.0/site/apidocs/timezone_8h.html100644 0 0 7043 10774263472 17253 0ustar 0 0 Apache log4cxx: timezone.h File Reference

timezone.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  TimeZone

Functions

 log4cxx::helpers::LOG4CXX_PTR_DEF (TimeZone)
apache-log4cxx-0.10.0/site/apidocs/transcoder_8h.html100644 0 0 37570 10774263472 17615 0ustar 0 0 Apache log4cxx: transcoder.h File Reference

transcoder.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  Transcoder
 Simple transcoder for converting between external char and wchar_t strings and internal strings. More...

Defines

#define LOG4CXX_ENCODE_CHAR(var, src)
#define LOG4CXX_DECODE_CHAR(var, src)
#define LOG4CXX_DECODE_CFSTRING(var, src)
#define LOG4CXX_ENCODE_CFSTRING(var, src)   CFStringRef var = log4cxx::helpers::Transcoder::encode(src)
#define LOG4CXX_ENCODE_WCHAR(var, src)
#define LOG4CXX_DECODE_WCHAR(var, src)
#define LOG4CXX_ENCODE_UNICHAR(var, src)
#define LOG4CXX_DECODE_UNICHAR(var, src)


Define Documentation

#define LOG4CXX_DECODE_CFSTRING var,
src   ) 
 

Value:

#define LOG4CXX_DECODE_CHAR var,
src   ) 
 

Value:

#define LOG4CXX_DECODE_UNICHAR var,
src   ) 
 

Value:

#define LOG4CXX_DECODE_WCHAR var,
src   ) 
 

Value:

#define LOG4CXX_ENCODE_CFSTRING var,
src   )     CFStringRef var = log4cxx::helpers::Transcoder::encode(src)
 

#define LOG4CXX_ENCODE_CHAR var,
src   ) 
 

Value:

std::string var;                      \
log4cxx::helpers::Transcoder::encode(src, var)

#define LOG4CXX_ENCODE_UNICHAR var,
src   ) 
 

Value:

std::basic_string<UniChar> var;          \
log4cxx::helpers::Transcoder::encode(src, var)

#define LOG4CXX_ENCODE_WCHAR var,
src   ) 
 

Value:

std::wstring var;                      \
log4cxx::helpers::Transcoder::encode(src, var)
apache-log4cxx-0.10.0/site/apidocs/transform_8h.html100644 0 0 6651 10774263472 17440 0ustar 0 0 Apache log4cxx: transform.h File Reference

transform.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  Transform
 Utility class for transforming strings. More...
apache-log4cxx-0.10.0/site/apidocs/triggeringeventevaluator_8h.html100644 0 0 7561 10774263472 22554 0ustar 0 0 Apache log4cxx: triggeringeventevaluator.h File Reference

triggeringeventevaluator.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::spi

Classes

class  TriggeringEventEvaluator
 Implementions of this interface allow certain appenders to decide when to perform an appender specific action. More...

Functions

 log4cxx::spi::LOG4CXX_PTR_DEF (TriggeringEventEvaluator)
apache-log4cxx-0.10.0/site/apidocs/triggeringpolicy_8h.html100644 0 0 11525 10774263472 21022 0ustar 0 0 Apache log4cxx: triggeringpolicy.h File Reference

triggeringpolicy.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::rolling

Classes

class  TriggeringPolicy
 A TriggeringPolicy controls the conditions under which rollover occurs. More...

Defines

#define _LOG4CXX_ROLLING_TRIGGER_POLICY_H

Functions

 log4cxx::rolling::LOG4CXX_PTR_DEF (TriggeringPolicy)


Define Documentation

#define _LOG4CXX_ROLLING_TRIGGER_POLICY_H
 

apache-log4cxx-0.10.0/site/apidocs/ttcclayout_8h.html100644 0 0 7102 10774263472 17610 0ustar 0 0 Apache log4cxx: ttcclayout.h File Reference

ttcclayout.h File Reference


Namespaces

namespace  log4cxx

Classes

class  TTCCLayout
 TTCC layout format consists of time, thread, logger name and nested diagnostic context information, hence the name. More...

Functions

 log4cxx::LOG4CXX_PTR_DEF (TTCCLayout)
apache-log4cxx-0.10.0/site/apidocs/writer_8h.html100644 0 0 7333 10774263472 16737 0ustar 0 0 Apache log4cxx: writer.h File Reference

writer.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  Writer
 Abstract class for writing to character streams. More...

Functions

 log4cxx::helpers::LOG4CXX_PTR_DEF (Writer)
apache-log4cxx-0.10.0/site/apidocs/writerappender_8h.html100644 0 0 7460 10774263472 20457 0ustar 0 0 Apache log4cxx: writerappender.h File Reference

writerappender.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  WriterAppender
 WriterAppender appends log events to a standard output stream. More...

Functions

 log4cxx::LOG4CXX_PTR_DEF (WriterAppender)
apache-log4cxx-0.10.0/site/apidocs/xml_8h.html100644 0 0 16770 10774263472 16250 0ustar 0 0 Apache log4cxx: xml.h File Reference

xml.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::helpers

Classes

class  DOMException
class  XMLDOMNode
 The XMLDOMNode interface is the primary datatype for the entire Document Object Model. More...
class  XMLDOMElement
 The XMLDOMElement interface represents an element in an XML document. More...
class  XMLDOMDocument
 The XMLDOMDocument interface represents an entire XML document. More...
class  XMLDOMNodeList
 The XMLDOMNodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. More...

Typedefs

typedef helpers::ObjectPtrT<
XMLDOMNode > 
log4cxx::helpers::XMLDOMNodePtr
typedef helpers::ObjectPtrT<
XMLDOMDocument > 
log4cxx::helpers::XMLDOMDocumentPtr
typedef helpers::ObjectPtrT<
XMLDOMNodeList > 
log4cxx::helpers::XMLDOMNodeListPtr

Functions

 log4cxx::helpers::LOG4CXX_PTR_DEF (XMLDOMNode)
 log4cxx::helpers::LOG4CXX_PTR_DEF (XMLDOMElement)
 log4cxx::helpers::LOG4CXX_PTR_DEF (XMLDOMDocument)
 log4cxx::helpers::LOG4CXX_PTR_DEF (XMLDOMNodeList)
apache-log4cxx-0.10.0/site/apidocs/xmllayout_8h.html100644 0 0 7467 10774263472 17471 0ustar 0 0 Apache log4cxx: xmllayout.h File Reference

xmllayout.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::xml

Classes

class  XMLLayout
 The output of the XMLLayout consists of a series of log4j:event elements. More...

Functions

 log4cxx::xml::LOG4CXX_PTR_DEF (XMLLayout)
apache-log4cxx-0.10.0/site/apidocs/xmlsocketappender_8h.html100644 0 0 7574 10774263472 21162 0ustar 0 0 Apache log4cxx: xmlsocketappender.h File Reference

xmlsocketappender.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::net

Classes

class  XMLSocketAppender
 Sends LoggingEvent objects in XML format to a remote a log server, usually a XMLSocketNode. More...

Functions

 log4cxx::net::LOG4CXX_PTR_DEF (XMLSocketAppender)
apache-log4cxx-0.10.0/site/apidocs/zipcompressaction_8h.html100644 0 0 11056 10774263472 21214 0ustar 0 0 Apache log4cxx: zipcompressaction.h File Reference

zipcompressaction.h File Reference


Namespaces

namespace  log4cxx
namespace  log4cxx::rolling

Classes

class  ZipCompressAction

Defines

#define _LOG4CXX_ROLLING_ZIP_COMPRESS_ACTION_H

Functions

 log4cxx::rolling::LOG4CXX_PTR_DEF (ZipCompressAction)


Define Documentation

#define _LOG4CXX_ROLLING_ZIP_COMPRESS_ACTION_H
 

apache-log4cxx-0.10.0/site/apidocs/classes.html100644 0 0 137157 10774263472 16531 0ustar 0 0 Apache log4cxx: Alphabetical List

Apache log4cxx Class Index

A | B | C | D | E | F | G | H | I | L | M | N | O | P | R | S | T | U | W | X | Z

  A  
MDC (log4cxx)   
AbsoluteTimeDateFormat (log4cxx::helpers)   MessageBuffer (log4cxx::helpers)   
Action (log4cxx::rolling)   MessagePatternConverter (log4cxx::pattern)   
AndFilter (log4cxx::filter)   MethodLocationPatternConverter (log4cxx::pattern)   
Appender (log4cxx)   MissingResourceException (log4cxx::helpers)   
AppenderAttachable (log4cxx::spi)   Mutex (log4cxx::helpers)   
AppenderAttachableImpl (log4cxx::helpers)   MutexException (log4cxx::helpers)   
AppenderSkeleton (log4cxx)   
  N  
APRInitializer (log4cxx::helpers)   NameAbbreviator (log4cxx::pattern)   
AsyncAppender (log4cxx)   NamePatternConverter (log4cxx::pattern)   
  B  
NDC (log4cxx)   
BasicConfigurator (log4cxx)   NDCPatternConverter (log4cxx::pattern)   
BindException (log4cxx::helpers)   NoSuchElementException (log4cxx::helpers)   
BufferedOutputStream (log4cxx::helpers)   NTEventLogAppender (log4cxx::nt)   
BufferedWriter (log4cxx::helpers)   NullPointerException (log4cxx::helpers)   
ByteArrayInputStream (log4cxx::helpers)   
  O  
ByteArrayOutputStream (log4cxx::helpers)   Object (log4cxx::helpers)   
ByteBuffer (log4cxx::helpers)   Object::ClazzObject (log4cxx::helpers)   
  C  
ObjectImpl (log4cxx::helpers)   
CachedDateFormat (log4cxx::pattern)   ObjectOutputStream (log4cxx::helpers)   
CharMessageBuffer (log4cxx::helpers)   ObjectPtrBase (log4cxx::helpers)   
CharsetDecoder (log4cxx::helpers)   ObjectPtrT (log4cxx::helpers)   
CharsetEncoder (log4cxx::helpers)   ODBCAppender (log4cxx::db)   
Class (log4cxx::helpers)   OnlyOnceErrorHandler (log4cxx::helpers)   
ClassNamePatternConverter (log4cxx::pattern)   OptionConverter (log4cxx::helpers)   
ClassNotFoundException (log4cxx::helpers)   OptionHandler (log4cxx::spi)   
ClassRegistration (log4cxx::helpers)   OutputDebugStringAppender (log4cxx::nt)   
ClosedChannelException (log4cxx::helpers)   OutputStream (log4cxx::helpers)   
Condition (log4cxx::helpers)   OutputStreamWriter (log4cxx::helpers)   
Configurator (log4cxx::spi)   
  P  
ConnectException (log4cxx::helpers)   PatternConverter (log4cxx::pattern)   
ConsoleAppender (log4cxx)   PatternLayout (log4cxx)   
CyclicBuffer (log4cxx::helpers)   PatternParser (log4cxx::pattern)   
  D  
Pool (log4cxx::helpers)   
DailyRollingFileAppender (log4cxx)   PoolException (log4cxx::helpers)   
DatagramPacket (log4cxx::helpers)   Properties (log4cxx::helpers)   
DatagramSocket (log4cxx::helpers)   PropertiesPatternConverter (log4cxx::pattern)   
Date (log4cxx::helpers)   PropertyConfigurator (log4cxx)   
DateFormat (log4cxx::helpers)   PropertyFilter (log4cxx::filter)   
DateLayout (log4cxx::helpers)   PropertyResourceBundle (log4cxx::helpers)   
DatePatternConverter (log4cxx::pattern)   PropertySetter (log4cxx::config)   
DateTimeDateFormat (log4cxx::helpers)   
  R  
DefaultConfigurator (log4cxx)   Reader (log4cxx::helpers)   
DefaultLoggerFactory (log4cxx)   RelativeTimeDateFormat (log4cxx::helpers)   
DefaultRepositorySelector (log4cxx::spi)   RelativeTimePatternConverter (log4cxx::pattern)   
DenyAllFilter (log4cxx::filter)   RepositorySelector (log4cxx::spi)   
DOMConfigurator (log4cxx::xml)   ResourceBundle (log4cxx::helpers)   
DOMException (log4cxx::helpers)   RollingFileAppender (log4cxx)   
  E  
RollingFileAppender (log4cxx::rolling)   
ErrorCode (log4cxx::spi)   RollingFileAppenderSkeleton (log4cxx::rolling)   
ErrorHandler (log4cxx::spi)   RollingPolicy (log4cxx::rolling)   
Exception (log4cxx::helpers)   RollingPolicyBase (log4cxx::rolling)   
ExpressionFilter (log4cxx::filter)   RolloverDescription (log4cxx::rolling)   
  F  
RootLogger (log4cxx::spi)   
FallbackErrorHandler (log4cxx::varia)   RuntimeException (log4cxx::helpers)   
File (log4cxx)   
  S  
FileAppender (log4cxx)   ServerSocket (log4cxx::helpers)   
FileDatePatternConverter (log4cxx::pattern)   SimpleDateFormat (log4cxx::helpers)   
FileInputStream (log4cxx::helpers)   SimpleLayout (log4cxx)   
FileLocationPatternConverter (log4cxx::pattern)   SizeBasedTriggeringPolicy (log4cxx::rolling)   
FileOutputStream (log4cxx::helpers)   SMTPAppender (log4cxx::net)   
FileRenameAction (log4cxx::rolling)   Socket (log4cxx::helpers)   
FileWatchdog (log4cxx::helpers)   SocketAppender (log4cxx::net)   
Filter (log4cxx::spi)   SocketAppenderSkeleton (log4cxx::net)   
FilterBasedTriggeringPolicy (log4cxx::rolling)   SocketException (log4cxx::helpers)   
FixedWindowRollingPolicy (log4cxx::rolling)   SocketHubAppender (log4cxx::net)   
FormattingInfo (log4cxx::pattern)   SocketOutputStream (log4cxx::helpers)   
FullLocationPatternConverter (log4cxx::pattern)   SocketTimeoutException (log4cxx::helpers)   
  G  
SQLException (log4cxx::db)   
GZCompressAction (log4cxx::rolling)   StrftimeDateFormat (log4cxx::helpers)   
  H  
StrictMath (log4cxx::helpers)   
Hierarchy (log4cxx)   StringHelper (log4cxx::helpers)   
HierarchyEventListener (log4cxx::spi)   StringMatchFilter (log4cxx::filter)   
HTMLLayout (log4cxx)   StringTokenizer (log4cxx::helpers)   
  I  
synchronized (log4cxx::helpers)   
IllegalArgumentException (log4cxx::helpers)   SyslogAppender (log4cxx::net)   
IllegalMonitorStateException (log4cxx::helpers)   SyslogWriter (log4cxx::helpers)   
IllegalStateException (log4cxx::helpers)   System (log4cxx::helpers)   
InetAddress (log4cxx::helpers)   SystemErrWriter (log4cxx::helpers)   
InputStream (log4cxx::helpers)   SystemOutWriter (log4cxx::helpers)   
InputStreamReader (log4cxx::helpers)   
  T  
InstantiationException (log4cxx::helpers)   TelnetAppender (log4cxx::net)   
Integer (log4cxx::helpers)   Thread (log4cxx::helpers)   
IntegerPatternConverter (log4cxx::pattern)   ThreadException (log4cxx::helpers)   
InterruptedException (log4cxx::helpers)   ThreadLocal (log4cxx::helpers)   
InterruptedIOException (log4cxx::helpers)   ThreadPatternConverter (log4cxx::pattern)   
IOException (log4cxx::helpers)   ThreadSpecificData (log4cxx::helpers)   
ISO8601DateFormat (log4cxx::helpers)   ThrowableInformationPatternConverter (log4cxx::pattern)   
  L  
TimeBasedRollingPolicy (log4cxx::rolling)   
Layout (log4cxx)   TimeZone (log4cxx::helpers)   
Level (log4cxx)   Transcoder (log4cxx::helpers)   
Level::LevelClass (log4cxx)   TranscoderException (log4cxx::helpers)   
LevelMatchFilter (log4cxx::filter)   Transform (log4cxx::helpers)   
LevelPatternConverter (log4cxx::pattern)   TriggeringEventEvaluator (log4cxx::spi)   
LevelRangeFilter (log4cxx::filter)   TriggeringPolicy (log4cxx::rolling)   
LineLocationPatternConverter (log4cxx::pattern)   TTCCLayout (log4cxx)   
LineSeparatorPatternConverter (log4cxx::pattern)   
  U  
LiteralPatternConverter (log4cxx::pattern)   ulogstream (log4cxx)   
Loader (log4cxx::helpers)   UniCharMessageBuffer (log4cxx::helpers)   
Locale (log4cxx::helpers)   UnknownHostException (log4cxx::helpers)   
LocationInfo (log4cxx::spi)   
  W  
LocationInfoFilter (log4cxx::filter)   WideMessageBuffer (log4cxx::helpers)   
Logger (log4cxx)   wlogstream (log4cxx)   
LoggerFactory (log4cxx::spi)   Writer (log4cxx::helpers)   
LoggerPatternConverter (log4cxx::pattern)   WriterAppender (log4cxx)   
LoggerRepository (log4cxx::spi)   
  X  
LoggingEvent (log4cxx::spi)   XMLDOMDocument (log4cxx::helpers)   
LoggingEventPatternConverter (log4cxx::pattern)   XMLDOMElement (log4cxx::helpers)   
LogLog (log4cxx::helpers)   XMLDOMNode (log4cxx::helpers)   
LogManager (log4cxx)   XMLDOMNodeList (log4cxx::helpers)   
logstream (log4cxx)   XMLLayout (log4cxx::xml)   
logstream_base (log4cxx)   XMLSocketAppender (log4cxx::net)   
  M  
  Z  
ManualTriggeringPolicy (log4cxx::rolling)   ZipCompressAction (log4cxx::rolling)   
MapFilter (log4cxx::filter)   

A | B | C | D | E | F | G | H | I | L | M | N | O | P | R | S | T | U | W | X | Z

apache-log4cxx-0.10.0/site/apidocs/functions.html100644 0 0 42777 10774263472 17067 0ustar 0 0 Apache log4cxx: Class Members

Here is a list of all class members with links to the classes they belong to:

- a -

apache-log4cxx-0.10.0/site/apidocs/hierarchy.html100644 0 0 57434 10774263472 17031 0ustar 0 0 Apache log4cxx: Hierarchical Index

Apache log4cxx Class Hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically: apache-log4cxx-0.10.0/site/apidocs/globals.html100644 0 0 63302 10774263472 16465 0ustar 0 0 Apache log4cxx: Class Members

Here is a list of all file members with links to the files they belong to:

- _ -

- a -

- b -

- c -

- d -

- e -

- f -

- i -

- l -

- o -

- p -

- r -

- u -

- x -

apache-log4cxx-0.10.0/site/apidocs/functions_0x62.html100644 0 0 16336 10774263472 17636 0ustar 0 0 Apache log4cxx: Class Members

Here is a list of all class members with links to the classes they belong to:

- b -

apache-log4cxx-0.10.0/site/apidocs/functions_0x63.html100644 0 0 40131 10774263472 17625 0ustar 0 0 Apache log4cxx: Class Members

Here is a list of all class members with links to the classes they belong to:

- c -

apache-log4cxx-0.10.0/site/apidocs/functions_0x64.html100644 0 0 26531 10774263472 17636 0ustar 0 0 Apache log4cxx: Class Members

Here is a list of all class members with links to the classes they belong to:

- d -

apache-log4cxx-0.10.0/site/apidocs/functions_0x65.html100644 0 0 24031 10774263472 17630 0ustar 0 0 Apache log4cxx: Class Members

Here is a list of all class members with links to the classes they belong to:

- e -

apache-log4cxx-0.10.0/site/apidocs/functions_0x66.html100644 0 0 37374 10774263472 17647 0ustar 0 0 Apache log4cxx: Class Members

Here is a list of all class members with links to the classes they belong to:

- f -

apache-log4cxx-0.10.0/site/apidocs/functions_0x67.html100644 0 0 116046 10774263472 17662 0ustar 0 0 Apache log4cxx: Class Members

Here is a list of all class members with links to the classes they belong to:

- g -

apache-log4cxx-0.10.0/site/apidocs/functions_0x68.html100644 0 0 15262 10774263472 17641 0ustar 0 0 Apache log4cxx: Class Members

Here is a list of all class members with links to the classes they belong to:

- h -

apache-log4cxx-0.10.0/site/apidocs/functions_0x69.html100644 0 0 35150 10774263472 17640 0ustar 0 0 Apache log4cxx: Class Members

Here is a list of all class members with links to the classes they belong to:

- i -

apache-log4cxx-0.10.0/site/apidocs/functions_0x6a.html100644 0 0 12073 10774263472 17707 0ustar 0 0 Apache log4cxx: Class Members

Here is a list of all class members with links to the classes they belong to:

- j -

apache-log4cxx-0.10.0/site/apidocs/functions_0x6c.html100644 0 0 23074 10774263472 17714 0ustar 0 0 Apache log4cxx: Class Members

Here is a list of all class members with links to the classes they belong to:

- l -

apache-log4cxx-0.10.0/site/apidocs/functions_0x6d.html100644 0 0 16302 10774263472 17711 0ustar 0 0 Apache log4cxx: Class Members

Here is a list of all class members with links to the classes they belong to:

- m -

apache-log4cxx-0.10.0/site/apidocs/functions_0x6e.html100644 0 0 23765 10774263472 17725 0ustar 0 0 Apache log4cxx: Class Members

Here is a list of all class members with links to the classes they belong to:

- n -

apache-log4cxx-0.10.0/site/apidocs/functions_0x6f.html100644 0 0 32255 10774263472 17720 0ustar 0 0 Apache log4cxx: Class Members

Here is a list of all class members with links to the classes they belong to:

- o -

apache-log4cxx-0.10.0/site/apidocs/functions_0x70.html100644 0 0 27364 10774263472 17640 0ustar 0 0 Apache log4cxx: Class Members

Here is a list of all class members with links to the classes they belong to:

- p -

apache-log4cxx-0.10.0/site/apidocs/functions_0x72.html100644 0 0 36523 10774263472 17637 0ustar 0 0 Apache log4cxx: Class Members

Here is a list of all class members with links to the classes they belong to:

- r -

apache-log4cxx-0.10.0/site/apidocs/functions_0x73.html100644 0 0 102676 10774263472 17663 0ustar 0 0 Apache log4cxx: Class Members

Here is a list of all class members with links to the classes they belong to:

- s -

apache-log4cxx-0.10.0/site/apidocs/functions_0x74.html100644 0 0 24476 10774263472 17645 0ustar 0 0 Apache log4cxx: Class Members

Here is a list of all class members with links to the classes they belong to:

- t -

apache-log4cxx-0.10.0/site/apidocs/functions_0x75.html100644 0 0 13330 10774263472 17631 0ustar 0 0 Apache log4cxx: Class Members

Here is a list of all class members with links to the classes they belong to:

- u -

apache-log4cxx-0.10.0/site/apidocs/functions_0x76.html100644 0 0 12074 10774263472 17636 0ustar 0 0 Apache log4cxx: Class Members

Here is a list of all class members with links to the classes they belong to:

- v -

apache-log4cxx-0.10.0/site/apidocs/functions_0x77.html100644 0 0 23103 10774263472 17632 0ustar 0 0 Apache log4cxx: Class Members

Here is a list of all class members with links to the classes they belong to:

- w -

apache-log4cxx-0.10.0/site/apidocs/functions_0x78.html100644 0 0 12550 10774263472 17637 0ustar 0 0 Apache log4cxx: Class Members

Here is a list of all class members with links to the classes they belong to:

- x -

apache-log4cxx-0.10.0/site/apidocs/functions_0x7a.html100644 0 0 12140 10774263472 17703 0ustar 0 0 Apache log4cxx: Class Members

Here is a list of all class members with links to the classes they belong to:

- z -

apache-log4cxx-0.10.0/site/apidocs/functions_0x7e.html100644 0 0 43357 10774263472 17725 0ustar 0 0 Apache log4cxx: Class Members

Here is a list of all class members with links to the classes they belong to:

- ~ -

apache-log4cxx-0.10.0/site/apidocs/functions_func.html100644 0 0 40656 10774263472 20074 0ustar 0 0 Apache log4cxx: Class Members - Functions

 

- a -

apache-log4cxx-0.10.0/site/apidocs/functions_func_0x62.html100644 0 0 14133 10774263472 20642 0ustar 0 0 Apache log4cxx: Class Members - Functions

 

- b -

apache-log4cxx-0.10.0/site/apidocs/functions_func_0x63.html100644 0 0 36640 10774263472 20652 0ustar 0 0 Apache log4cxx: Class Members - Functions

 

- c -

apache-log4cxx-0.10.0/site/apidocs/functions_func_0x64.html100644 0 0 22330 10774263472 20642 0ustar 0 0 Apache log4cxx: Class Members - Functions

 

- d -

apache-log4cxx-0.10.0/site/apidocs/functions_func_0x65.html100644 0 0 22725 10774263472 20653 0ustar 0 0 Apache log4cxx: Class Members - Functions

 

- e -

apache-log4cxx-0.10.0/site/apidocs/functions_func_0x66.html100644 0 0 35041 10774263472 20647 0ustar 0 0 Apache log4cxx: Class Members - Functions

 

- f -

apache-log4cxx-0.10.0/site/apidocs/functions_func_0x67.html100644 0 0 115567 10774263472 20704 0ustar 0 0 Apache log4cxx: Class Members - Functions

 

- g -

apache-log4cxx-0.10.0/site/apidocs/functions_func_0x68.html100644 0 0 14410 10774263472 20646 0ustar 0 0 Apache log4cxx: Class Members - Functions

 

- h -

apache-log4cxx-0.10.0/site/apidocs/functions_func_0x69.html100644 0 0 34316 10774263472 20656 0ustar 0 0 Apache log4cxx: Class Members - Functions

 

- i -

apache-log4cxx-0.10.0/site/apidocs/functions_func_0x6a.html100644 0 0 12055 10774263472 20722 0ustar 0 0 Apache log4cxx: Class Members - Functions

 

- j -

apache-log4cxx-0.10.0/site/apidocs/functions_func_0x6c.html100644 0 0 21044 10774263472 20722 0ustar 0 0 Apache log4cxx: Class Members - Functions

 

- l -

apache-log4cxx-0.10.0/site/apidocs/functions_func_0x6d.html100644 0 0 14776 10774263472 20741 0ustar 0 0 Apache log4cxx: Class Members - Functions

 

- m -

apache-log4cxx-0.10.0/site/apidocs/functions_func_0x6e.html100644 0 0 22031 10774263472 20721 0ustar 0 0 Apache log4cxx: Class Members - Functions

 

- n -

apache-log4cxx-0.10.0/site/apidocs/functions_func_0x6f.html100644 0 0 31416 10774263472 20731 0ustar 0 0 Apache log4cxx: Class Members - Functions

 

- o -

apache-log4cxx-0.10.0/site/apidocs/functions_func_0x70.html100644 0 0 25140 10774263472 20641 0ustar 0 0 Apache log4cxx: Class Members - Functions

 

- p -

apache-log4cxx-0.10.0/site/apidocs/functions_func_0x72.html100644 0 0 35164 10774263472 20652 0ustar 0 0 Apache log4cxx: Class Members - Functions

 

- r -

apache-log4cxx-0.10.0/site/apidocs/functions_func_0x73.html100644 0 0 75642 10774263472 20660 0ustar 0 0 Apache log4cxx: Class Members - Functions

 

- s -

apache-log4cxx-0.10.0/site/apidocs/functions_func_0x74.html100644 0 0 20523 10774263472 20645 0ustar 0 0 Apache log4cxx: Class Members - Functions

 

- t -

apache-log4cxx-0.10.0/site/apidocs/functions_func_0x75.html100644 0 0 12566 10774263472 20656 0ustar 0 0 Apache log4cxx: Class Members - Functions

 

- u -

apache-log4cxx-0.10.0/site/apidocs/functions_func_0x77.html100644 0 0 22203 10774263472 20645 0ustar 0 0 Apache log4cxx: Class Members - Functions

 

- w -

apache-log4cxx-0.10.0/site/apidocs/functions_func_0x78.html100644 0 0 12317 10774263472 20653 0ustar 0 0 Apache log4cxx: Class Members - Functions

 

- x -

apache-log4cxx-0.10.0/site/apidocs/functions_func_0x7a.html100644 0 0 12122 10774263472 20716 0ustar 0 0 Apache log4cxx: Class Members - Functions

 

- z -

apache-log4cxx-0.10.0/site/apidocs/functions_func_0x7e.html100644 0 0 43341 10774263472 20731 0ustar 0 0 Apache log4cxx: Class Members - Functions

 

- ~ -

apache-log4cxx-0.10.0/site/apidocs/functions_vars.html100644 0 0 37505 10774263472 20113 0ustar 0 0 Apache log4cxx: Class Members - Variables

 

- a -

- b -

- c -

- d -

- e -

- f -

- h -

- i -

- l -

- m -

- n -

- o -

- p -

- r -

- s -

- t -

- v -

- w -

apache-log4cxx-0.10.0/site/apidocs/functions_type.html100644 0 0 12244 10774263472 20112 0ustar 0 0 Apache log4cxx: Class Members - Typedefs  

apache-log4cxx-0.10.0/site/apidocs/functions_enum.html100644 0 0 6631 10774263472 20060 0ustar 0 0 Apache log4cxx: Class Members - Enumerations  

apache-log4cxx-0.10.0/site/apidocs/functions_eval.html100644 0 0 25377 10774263472 20073 0ustar 0 0 Apache log4cxx: Class Members - Enumerator

 

- a -

- c -

- d -

- e -

- f -

- g -

- i -

- l -

- m -

- n -

- o -

- s -

- t -

- u -

- w -

apache-log4cxx-0.10.0/site/apidocs/functions_rela.html100644 0 0 7357 10774263472 20045 0ustar 0 0 Apache log4cxx: Class Members - Related Functions  

apache-log4cxx-0.10.0/site/apidocs/group___logging_macros.html100644 0 0 111464 10774263472 21571 0ustar 0 0 Apache log4cxx: Logging macros

Logging macros


Defines

#define LOG4CXX_UNLIKELY(expr)   expr
 Provides optimization hint to the compiler to optimize for the expression being false.
#define LOG4CXX_LOG(logger, level, message)
 Logs a message to a specified logger with a specified level.
#define LOG4CXX_LOGLS(logger, level, message)
 Logs a message to a specified logger with a specified level.
#define LOG4CXX_DEBUG(logger, message)
 Logs a message to a specified logger with the DEBUG level.
#define LOG4CXX_TRACE(logger, message)
 Logs a message to a specified logger with the TRACE level.
#define LOG4CXX_INFO(logger, message)
 Logs a message to a specified logger with the INFO level.
#define LOG4CXX_WARN(logger, message)
 Logs a message to a specified logger with the WARN level.
#define LOG4CXX_ERROR(logger, message)
 Logs a message to a specified logger with the ERROR level.
#define LOG4CXX_ASSERT(logger, condition, message)
 Logs a error if the condition is not true.
#define LOG4CXX_FATAL(logger, message)
 Logs a message to a specified logger with the FATAL level.
#define LOG4CXX_L7DLOG(logger, level, key)
 Logs a localized message with no parameter.
#define LOG4CXX_L7DLOG1(logger, level, key, p1)
 Logs a localized message with one parameter.
#define LOG4CXX_L7DLOG2(logger, level, key, p1, p2)
 Logs a localized message with two parameters.
#define LOG4CXX_L7DLOG3(logger, level, key, p1, p2, p3)
 Logs a localized message with three parameters.


Define Documentation

#define LOG4CXX_ASSERT logger,
condition,
message   ) 
 

Value:

{ \
        if (!(condition) && logger->isErrorEnabled()) {\
           ::log4cxx::helpers::MessageBuffer oss_; \
           logger->forcedLog(::log4cxx::Level::getError(), oss_.str(oss_ << message), LOG4CXX_LOCATION); }}
Logs a error if the condition is not true.

Parameters:
logger the logger to be used.
condition condition
message the message string to log.

#define LOG4CXX_DEBUG logger,
message   ) 
 

Value:

{ \
        if (LOG4CXX_UNLIKELY(logger->isDebugEnabled())) {\
           ::log4cxx::helpers::MessageBuffer oss_; \
           logger->forcedLog(::log4cxx::Level::getDebug(), oss_.str(oss_ << message), LOG4CXX_LOCATION); }}
Logs a message to a specified logger with the DEBUG level.

Parameters:
logger the logger to be used.
message the message string to log.

#define LOG4CXX_ERROR logger,
message   ) 
 

Value:

{ \
        if (logger->isErrorEnabled()) {\
           ::log4cxx::helpers::MessageBuffer oss_; \
           logger->forcedLog(::log4cxx::Level::getError(), oss_.str(oss_ << message), LOG4CXX_LOCATION); }}
Logs a message to a specified logger with the ERROR level.

Parameters:
logger the logger to be used.
message the message string to log.

#define LOG4CXX_FATAL logger,
message   ) 
 

Value:

{ \
        if (logger->isFatalEnabled()) {\
           ::log4cxx::helpers::MessageBuffer oss_; \
           logger->forcedLog(::log4cxx::Level::getFatal(), oss_.str(oss_ << message), LOG4CXX_LOCATION); }}
Logs a message to a specified logger with the FATAL level.

Parameters:
logger the logger to be used.
message the message string to log.

#define LOG4CXX_INFO logger,
message   ) 
 

Value:

{ \
        if (logger->isInfoEnabled()) {\
           ::log4cxx::helpers::MessageBuffer oss_; \
           logger->forcedLog(::log4cxx::Level::getInfo(), oss_.str(oss_ << message), LOG4CXX_LOCATION); }}
Logs a message to a specified logger with the INFO level.

Parameters:
logger the logger to be used.
message the message string to log.

#define LOG4CXX_L7DLOG logger,
level,
key   ) 
 

Value:

{ \
        if (logger->isEnabledFor(level)) {\
        logger->l7dlog(level, key, LOG4CXX_LOCATION); }}
Logs a localized message with no parameter.

Parameters:
logger the logger to be used.
level the level to log.
key the key to be searched in the resourceBundle of the logger.

#define LOG4CXX_L7DLOG1 logger,
level,
key,
p1   ) 
 

Value:

{ \
        if (logger->isEnabledFor(level)) {\
        logger->l7dlog(level, key, LOG4CXX_LOCATION, p1); }}
Logs a localized message with one parameter.

Parameters:
logger the logger to be used.
level the level to log.
key the key to be searched in the resourceBundle of the logger.
p1 the unique parameter.

#define LOG4CXX_L7DLOG2 logger,
level,
key,
p1,
p2   ) 
 

Value:

{ \
        if (logger->isEnabledFor(level)) {\
        logger->l7dlog(level, key, LOG4CXX_LOCATION, p1, p2); }}
Logs a localized message with two parameters.

Parameters:
logger the logger to be used.
level the level to log.
key the key to be searched in the resourceBundle of the logger.
p1 the first parameter.
p2 the second parameter.

#define LOG4CXX_L7DLOG3 logger,
level,
key,
p1,
p2,
p3   ) 
 

Value:

{ \
        if (logger->isEnabledFor(level)) {\
        logger->l7dlog(level, key, LOG4CXX_LOCATION, p1, p2, p3); }}
Logs a localized message with three parameters.

Parameters:
logger the logger to be used.
level the level to log.
key the key to be searched in the resourceBundle of the logger.
p1 the first parameter.
p2 the second parameter.
p3 the third parameter.

#define LOG4CXX_LOG logger,
level,
message   ) 
 

Value:

{ \
        if (logger->isEnabledFor(level)) {\
           ::log4cxx::helpers::MessageBuffer oss_; \
           logger->forcedLog(level, oss_.str(oss_ << message), LOG4CXX_LOCATION); } }
Logs a message to a specified logger with a specified level.

Parameters:
logger the logger to be used.
level the level to log.
message the message string to log.

#define LOG4CXX_LOGLS logger,
level,
message   ) 
 

Value:

{ \
        if (logger->isEnabledFor(level)) {\
           ::log4cxx::helpers::LogCharMessageBuffer oss_; \
           logger->forcedLog(level, oss_.str(oss_ << message), LOG4CXX_LOCATION); } }
Logs a message to a specified logger with a specified level.

Parameters:
logger the logger to be used.
level the level to log.
message the message string to log in the internal encoding.

#define LOG4CXX_TRACE logger,
message   ) 
 

Value:

{ \
        if (LOG4CXX_UNLIKELY(logger->isTraceEnabled())) {\
           ::log4cxx::helpers::MessageBuffer oss_; \
           logger->forcedLog(::log4cxx::Level::getTrace(), oss_.str(oss_ << message), LOG4CXX_LOCATION); }}
Logs a message to a specified logger with the TRACE level.

Parameters:
logger the logger to be used.
message the message string to log.

#define LOG4CXX_UNLIKELY expr   )     expr
 

Provides optimization hint to the compiler to optimize for the expression being false.

Parameters:
expr boolean expression.
Returns:
value of expression.

#define LOG4CXX_WARN logger,
message   ) 
 

Value:

{ \
        if (logger->isWarnEnabled()) {\
           ::log4cxx::helpers::MessageBuffer oss_; \
           logger->forcedLog(::log4cxx::Level::getWarn(), oss_.str(oss_ << message), LOG4CXX_LOCATION); }}
Logs a message to a specified logger with the WARN level.

Parameters:
logger the logger to be used.
message the message string to log.
apache-log4cxx-0.10.0/site/apidocs/namespaces.html100644 0 0 11054 10774263472 17156 0ustar 0 0 Apache log4cxx: Namespace Index

Apache log4cxx Namespace List

Here is a list of all namespaces with brief descriptions:
log4cxx
log4cxx::config
log4cxx::db
log4cxx::filter
log4cxx::helpers
log4cxx::helpers::SimpleDateFormatImpl
log4cxx::net
log4cxx::nt
log4cxx::pattern
log4cxx::rolling
log4cxx::rule
log4cxx::spi
log4cxx::varia
log4cxx::xml
std
apache-log4cxx-0.10.0/site/apidocs/namespacelog4cxx.html100644 0 0 150604 10774263472 20331 0ustar 0 0 Apache log4cxx: log4cxx Namespace Reference

log4cxx Namespace Reference


Classes

class  Appender
 Implement this interface for your own strategies for outputting log statements. More...
class  AppenderSkeleton
 Implementation base class for all appenders. More...
class  AsyncAppender
 The AsyncAppender lets users log events asynchronously. More...
class  BasicConfigurator
 Use this class to quickly configure the package. More...
class  ConsoleAppender
 ConsoleAppender appends log events to stdout or stderr using a layout specified by the user. More...
class  DailyRollingFileAppender
 DailyRollingFileAppender extends FileAppender so that the underlying file is rolled over at a user chosen frequency. More...
class  DefaultConfigurator
 Configures the repository from environmental settings and files. More...
class  DefaultLoggerFactory
class  File
 An abstract representation of file and directory path names. More...
class  FileAppender
 FileAppender appends log events to a file. More...
class  Hierarchy
 This class is specialized in retrieving loggers by name and also maintaining the logger hierarchy. More...
class  HTMLLayout
 This layout outputs events in a HTML table. More...
class  Layout
 Extend this abstract class to create your own log layout format. More...
class  Level
 Defines the minimum set of levels recognized by the system, that is OFF, FATAL, ERROR, WARN, INFO, DEBUG and ALL. More...
class  Logger
 This is the central class in the log4cxx package. More...
class  LogManager
 Use the LogManager class to retreive Logger instances or to operate on the current LoggerRepository. More...
class  MDC
 The MDC class is similar to the NDC class except that it is based on a map instead of a stack. More...
class  NDC
 the ndc class implements nested diagnostic contexts as defined by neil harrison in the article "patterns for logging diagnostic messages" part of the book "pattern languages of program design 3" edited by martin et al. More...
class  PatternLayout
 A flexible layout configurable with pattern string. More...
class  PropertyConfigurator
 Allows the configuration of log4cxx from an external file. More...
class  RollingFileAppender
 RollingFileAppender extends FileAppender to backup the log files when they reach a certain size. More...
class  SimpleLayout
 SimpleLayout consists of the level of the log statement, followed by " - " and then the log message itself. More...
class  logstream_base
 Base class for the basic_logstream template which attempts to emulate std::basic_ostream but attempts to short-circuit unnecessary operations. More...
class  logstream
 An STL-like stream API for log4cxx using char as the character type. More...
class  wlogstream
 An STL-like stream API for log4cxx using wchar_t as the character type. More...
class  ulogstream
 An STL-like stream API for log4cxx using UniChar as the character type. More...
class  TTCCLayout
 TTCC layout format consists of time, thread, logger name and nested diagnostic context information, hence the name. More...
class  WriterAppender
 WriterAppender appends log events to a standard output stream. More...

Namespaces

namespace  config
namespace  db
namespace  filter
namespace  helpers
namespace  net
namespace  nt
namespace  pattern
namespace  rolling
namespace  rule
namespace  spi
namespace  varia
namespace  xml

Typedefs

typedef log4cxx::helpers::ObjectPtrT<
Layout
LayoutPtr
typedef helpers::ObjectPtrT<
Appender
AppenderPtr
typedef helpers::ObjectPtrT<
Logger
LoggerPtr
typedef helpers::ObjectPtrT<
Level
LevelPtr
typedef helpers::ObjectPtrT<
Logger
LoggerPtr
typedef std::vector< LoggerPtrLoggerList
typedef unsigned short UniChar
typedef std::basic_string<
logchar > 
LogString
typedef helpers::ObjectPtrT<
Logger
LoggerPtr
typedef helpers::ObjectPtrT<
Appender
AppenderPtr
typedef helpers::ObjectPtrT<
Logger
LoggerPtr
typedef std::vector< LoggerPtrProvisionNode
typedef logstream_base &(* logstream_manipulator )(logstream_base &)

Functions

 LOG4CXX_PTR_DEF (Appender)
 LOG4CXX_LIST_DEF (AppenderList, AppenderPtr)
 LOG4CXX_PTR_DEF (AsyncAppender)
 LOG4CXX_PTR_DEF (ConsoleAppender)
 LOG4CXX_PTR_DEF (DailyRollingFileAppender)
 LOG4CXX_PTR_DEF (FileAppender)
 LOG4CXX_PTR_DEF (HTMLLayout)
 LOG4CXX_PTR_DEF (Layout)
 LOG4CXX_PTR_DEF (Level)
 smart pointer to a Level instance
 LOG4CXX_PTR_DEF (Logger)
 smart pointer to a Logger class
 LOG4CXX_LIST_DEF (LoggerList, LoggerPtr)
 LOG4CXX_PTR_DEF (PatternLayout)
 LOG4CXX_PTR_DEF (RollingFileAppender)
 LOG4CXX_PTR_DEF (SimpleLayout)
 LOG4CXX_PTR_DEF (TTCCLayout)
 LOG4CXX_PTR_DEF (WriterAppender)


Typedef Documentation

typedef helpers::ObjectPtrT<Appender> AppenderPtr
 

typedef helpers::ObjectPtrT<Appender> AppenderPtr
 

typedef log4cxx::helpers::ObjectPtrT<Layout> LayoutPtr
 

typedef helpers::ObjectPtrT<Level> LevelPtr
 

typedef std::vector<LoggerPtr> LoggerList
 

typedef helpers::ObjectPtrT<Logger> LoggerPtr
 

typedef helpers::ObjectPtrT<Logger> LoggerPtr
 

typedef helpers::ObjectPtrT<Logger> LoggerPtr
 

typedef helpers::ObjectPtrT<Logger> LoggerPtr
 

typedef logstream_base&(* logstream_manipulator)(logstream_base &)
 

typedef std::basic_string<logchar> LogString
 

typedef std::vector<LoggerPtr> ProvisionNode
 

typedef unsigned short UniChar
 


Function Documentation

LOG4CXX_LIST_DEF LoggerList  ,
LoggerPtr 
 

log4cxx::LOG4CXX_LIST_DEF AppenderList  ,
AppenderPtr 
 

log4cxx::LOG4CXX_PTR_DEF WriterAppender   ) 
 

log4cxx::LOG4CXX_PTR_DEF TTCCLayout   ) 
 

log4cxx::LOG4CXX_PTR_DEF SimpleLayout   ) 
 

log4cxx::LOG4CXX_PTR_DEF RollingFileAppender   ) 
 

log4cxx::LOG4CXX_PTR_DEF PatternLayout   ) 
 

log4cxx::LOG4CXX_PTR_DEF Logger   ) 
 

smart pointer to a Logger class

log4cxx::LOG4CXX_PTR_DEF Level   ) 
 

smart pointer to a Level instance

log4cxx::LOG4CXX_PTR_DEF Layout   ) 
 

log4cxx::LOG4CXX_PTR_DEF HTMLLayout   ) 
 

log4cxx::LOG4CXX_PTR_DEF FileAppender   ) 
 

log4cxx::LOG4CXX_PTR_DEF DailyRollingFileAppender   ) 
 

log4cxx::LOG4CXX_PTR_DEF ConsoleAppender   ) 
 

log4cxx::LOG4CXX_PTR_DEF AsyncAppender   ) 
 

log4cxx::LOG4CXX_PTR_DEF Appender   ) 
 

apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_appender.html100644 0 0 61177 10774263472 22006 0ustar 0 0 Apache log4cxx: Appender Class Reference

Appender Class Reference

Inherits OptionHandler.

Inherited by AppenderSkeleton [virtual].

List of all members.


Detailed Description

Implement this interface for your own strategies for outputting log statements.


Public Member Functions

virtual ~Appender ()
virtual void addFilter (const spi::FilterPtr &newFilter)=0
 Add a filter to the end of the filter list.
virtual spi::FilterPtr getFilter () const =0
 Returns the head Filter.
virtual void clearFilters ()=0
 Clear the list of filters by removing all the filters in it.
virtual void close ()=0
 Release any resources allocated within the appender such as file handles, network connections, etc.
virtual void doAppend (const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)=0
 Log in Appender specific way.
virtual LogString getName () const =0
 Get the name of this appender.
virtual void setLayout (const LayoutPtr &layout)=0
 Set the Layout for this appender.
virtual LayoutPtr getLayout () const =0
 Returns this appenders layout.
virtual void setName (const LogString &name)=0
 Set the name of this appender.
virtual bool requiresLayout () const =0
 Configurators call this method to determine if the appender requires a layout.


Constructor & Destructor Documentation

virtual ~Appender  )  [inline, virtual]
 


Member Function Documentation

virtual void addFilter const spi::FilterPtr newFilter  )  [pure virtual]
 

Add a filter to the end of the filter list.

Implemented in AppenderSkeleton.

virtual void clearFilters  )  [pure virtual]
 

Clear the list of filters by removing all the filters in it.

Implemented in AppenderSkeleton.

virtual void close  )  [pure virtual]
 

Release any resources allocated within the appender such as file handles, network connections, etc.

It is a programming error to append to a closed appender.

Implemented in AsyncAppender, ODBCAppender, SMTPAppender, SocketAppenderSkeleton, SocketHubAppender, SyslogAppender, TelnetAppender, NTEventLogAppender, OutputDebugStringAppender, RollingFileAppenderSkeleton, and WriterAppender.

virtual void doAppend const spi::LoggingEventPtr event,
log4cxx::helpers::Pool pool
[pure virtual]
 

Log in Appender specific way.

When appropriate, Loggers will call the doAppend method of appender implementations in order to log.

Implemented in AppenderSkeleton.

virtual spi::FilterPtr getFilter  )  const [pure virtual]
 

Returns the head Filter.

The Filters are organized in a linked list and so all Filters on this Appender are available through the result.

Returns:
the head Filter or null, if no Filters are present

Implemented in AppenderSkeleton.

virtual LayoutPtr getLayout  )  const [pure virtual]
 

Returns this appenders layout.

Implemented in AppenderSkeleton.

virtual LogString getName  )  const [pure virtual]
 

Get the name of this appender.

The name uniquely identifies the appender.

Implemented in AppenderSkeleton.

virtual bool requiresLayout  )  const [pure virtual]
 

Configurators call this method to determine if the appender requires a layout.

If this method returns true, meaning that layout is required, then the configurator will configure an layout using the configuration information at its disposal. If this method returns false, meaning that a layout is not required, then layout configuration will be skipped even if there is available layout configuration information at the disposal of the configurator..

In the rather exceptional case, where the appender implementation admits a layout but can also work without it, then the appender should return true.

Implemented in AsyncAppender, ODBCAppender, SMTPAppender, SocketAppenderSkeleton, SocketHubAppender, SyslogAppender, TelnetAppender, NTEventLogAppender, OutputDebugStringAppender, and WriterAppender.

virtual void setLayout const LayoutPtr layout  )  [pure virtual]
 

Set the Layout for this appender.

Implemented in AppenderSkeleton.

virtual void setName const LogString name  )  [pure virtual]
 

Set the name of this appender.

The name is used by other components to identify this appender.

Implemented in AppenderSkeleton.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_appender-members.html100644 0 0 21215 10774263472 23423 0ustar 0 0 Apache log4cxx: Member List

Appender Member List

This is the complete list of members for Appender, including all inherited members.

activateOptions(log4cxx::helpers::Pool &p)=0OptionHandler [pure virtual]
addFilter(const spi::FilterPtr &newFilter)=0Appender [pure virtual]
addRef() const =0Object [pure virtual]
cast(const Class &clazz) const =0Object [pure virtual]
clearFilters()=0Appender [pure virtual]
close()=0Appender [pure virtual]
doAppend(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)=0Appender [pure virtual]
getClass() const Object [virtual]
getFilter() const =0Appender [pure virtual]
getLayout() const =0Appender [pure virtual]
getName() const =0Appender [pure virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
registerClass()Object [static]
releaseRef() const =0Object [pure virtual]
requiresLayout() const =0Appender [pure virtual]
setLayout(const LayoutPtr &layout)=0Appender [pure virtual]
setName(const LogString &name)=0Appender [pure virtual]
setOption(const LogString &option, const LogString &value)=0OptionHandler [pure virtual]
~Appender()Appender [inline, virtual]
~Object()Object [inline, virtual]
~OptionHandler()OptionHandler [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_appender_skeleton.html100644 0 0 163663 10774263472 23735 0ustar 0 0 Apache log4cxx: AppenderSkeleton Class Reference

AppenderSkeleton Class Reference

Inherits Appender, and ObjectImpl.

Inherited by AsyncAppender [virtual], ODBCAppender, SMTPAppender, SocketAppenderSkeleton, SocketHubAppender, SyslogAppender, TelnetAppender, NTEventLogAppender, OutputDebugStringAppender, and WriterAppender.

List of all members.


Detailed Description

Implementation base class for all appenders.

This class provides the code for common functionality, such as support for threshold filtering and support for general filters.


Public Member Functions

 AppenderSkeleton ()
 AppenderSkeleton (const LayoutPtr &layout)
void addRef () const
void releaseRef () const
void finalize ()
 Finalize this appender by calling the derived class' close method.
virtual void activateOptions (log4cxx::helpers::Pool &)
 Derived appenders should override this method if option structure requires it.
virtual void setOption (const LogString &option, const LogString &value)
 Set option to value.
void addFilter (const spi::FilterPtr &newFilter)
 Add a filter to end of the filter list.
void clearFilters ()
 Clear the filters chain.
const spi::ErrorHandlerPtrgetErrorHandler () const
 Return the currently set spi::ErrorHandler for this Appender.
spi::FilterPtr getFilter () const
 Returns the head Filter.
const spi::FilterPtrgetFirstFilter () const
 Return the first filter in the filter chain for this Appender.
LayoutPtr getLayout () const
 Returns the layout of this appender.
LogString getName () const
 Returns the name of this Appender.
const LevelPtrgetThreshold ()
 Returns this appenders threshold level.
bool isAsSevereAsThreshold (const LevelPtr &level) const
 Check whether the message level is below the appender's threshold.
void doAppend (const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)
 This method performs threshold checks and invokes filters before delegating actual logging to the subclasses specific AppenderSkeleton::append method.
void setErrorHandler (const spi::ErrorHandlerPtr &eh)
 Set the ErrorHandler for this Appender.
void setLayout (const LayoutPtr &layout1)
 Set the layout for this appender.
void setName (const LogString &name1)
 Set the name of this Appender.
void setThreshold (const LevelPtr &threshold)
 Set the threshold level.

Protected Member Functions

virtual void append (const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)=0
 Subclasses of AppenderSkeleton should implement this method to perform actual logging.

Protected Attributes

LayoutPtr layout
 The layout variable does not need to be set if the appender implementation has its own layout.
LogString name
 Appenders are named.
LevelPtr threshold
 There is no level threshold filtering by default.
spi::ErrorHandlerPtr errorHandler
 It is assumed and enforced that errorHandler is never null.
spi::FilterPtr headFilter
 The first filter in the filter chain.
spi::FilterPtr tailFilter
 The last filter in the filter chain.
bool closed
 Is this appender closed?
log4cxx::helpers::Pool pool
log4cxx::helpers::Mutex mutex


Constructor & Destructor Documentation

AppenderSkeleton  ) 
 

AppenderSkeleton const LayoutPtr layout  ) 
 


Member Function Documentation

virtual void activateOptions log4cxx::helpers::Pool  )  [inline, virtual]
 

Derived appenders should override this method if option structure requires it.

Implements OptionHandler.

Reimplemented in ConsoleAppender, DailyRollingFileAppender, ODBCAppender, FileAppender, SMTPAppender, SocketAppenderSkeleton, SocketHubAppender, SyslogAppender, TelnetAppender, NTEventLogAppender, RollingFileAppenderSkeleton, RollingFileAppender, and WriterAppender.

void addFilter const spi::FilterPtr newFilter  )  [virtual]
 

Add a filter to end of the filter list.

Implements Appender.

void addRef  )  const [virtual]
 

Reimplemented from ObjectImpl.

Reimplemented in AsyncAppender.

virtual void append const spi::LoggingEventPtr event,
log4cxx::helpers::Pool p
[protected, pure virtual]
 

Subclasses of AppenderSkeleton should implement this method to perform actual logging.

See also AppenderSkeleton::doAppend method.

Implemented in AsyncAppender, ODBCAppender, SMTPAppender, SocketAppender, SocketHubAppender, SyslogAppender, TelnetAppender, XMLSocketAppender, NTEventLogAppender, OutputDebugStringAppender, and WriterAppender.

void clearFilters  )  [virtual]
 

Clear the filters chain.

Implements Appender.

void doAppend const spi::LoggingEventPtr event,
log4cxx::helpers::Pool pool
[virtual]
 

This method performs threshold checks and invokes filters before delegating actual logging to the subclasses specific AppenderSkeleton::append method.

Implements Appender.

void finalize  ) 
 

Finalize this appender by calling the derived class' close method.

const spi::ErrorHandlerPtr& getErrorHandler  )  const [inline]
 

Return the currently set spi::ErrorHandler for this Appender.

spi::FilterPtr getFilter  )  const [inline, virtual]
 

Returns the head Filter.

Implements Appender.

const spi::FilterPtr& getFirstFilter  )  const [inline]
 

Return the first filter in the filter chain for this Appender.

The return value may be 0 if no is filter is set.

LayoutPtr getLayout  )  const [inline, virtual]
 

Returns the layout of this appender.

The value may be 0.

Implements Appender.

LogString getName  )  const [inline, virtual]
 

Returns the name of this Appender.

Implements Appender.

const LevelPtr& getThreshold  )  [inline]
 

Returns this appenders threshold level.

See the setThreshold method for the meaning of this option.

bool isAsSevereAsThreshold const LevelPtr level  )  const
 

Check whether the message level is below the appender's threshold.

If there is no threshold set, then the return value is always true.

void releaseRef  )  const [virtual]
 

Reimplemented from ObjectImpl.

Reimplemented in AsyncAppender.

void setErrorHandler const spi::ErrorHandlerPtr eh  ) 
 

Set the ErrorHandler for this Appender.

void setLayout const LayoutPtr layout1  )  [inline, virtual]
 

Set the layout for this appender.

Note that some appenders have their own (fixed) layouts or do not use one. For example, the SocketAppender ignores the layout set here.

Implements Appender.

void setName const LogString name1  )  [inline, virtual]
 

Set the name of this Appender.

Implements Appender.

virtual void setOption const LogString option,
const LogString value
[virtual]
 

Set option to value.

The handling of each option depends on the OptionHandler instance. Some options may become active immediately whereas other may be activated only when activateOptions is called.

Implements OptionHandler.

Reimplemented in AsyncAppender, ConsoleAppender, DailyRollingFileAppender, ODBCAppender, FileAppender, SMTPAppender, SocketAppenderSkeleton, SocketHubAppender, SyslogAppender, TelnetAppender, NTEventLogAppender, RollingFileAppender, and WriterAppender.

void setThreshold const LevelPtr threshold  ) 
 

Set the threshold level.

All log events with lower level than the threshold level are ignored by the appender.

In configuration files this option is specified by setting the value of the Threshold option to a level string, such as "DEBUG", "INFO" and so on.


Member Data Documentation

bool closed [protected]
 

Is this appender closed?

spi::ErrorHandlerPtr errorHandler [protected]
 

It is assumed and enforced that errorHandler is never null.

spi::FilterPtr headFilter [protected]
 

The first filter in the filter chain.

Set to null initially.

LayoutPtr layout [protected]
 

The layout variable does not need to be set if the appender implementation has its own layout.

log4cxx::helpers::Mutex mutex [protected]
 

LogString name [protected]
 

Appenders are named.

log4cxx::helpers::Pool pool [protected]
 

spi::FilterPtr tailFilter [protected]
 

The last filter in the filter chain.

LevelPtr threshold [protected]
 

There is no level threshold filtering by default.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_appender_skeleton-members.html100644 0 0 35317 10774263472 25337 0ustar 0 0 Apache log4cxx: Member List

AppenderSkeleton Member List

This is the complete list of members for AppenderSkeleton, including all inherited members.

activateOptions(log4cxx::helpers::Pool &)AppenderSkeleton [inline, virtual]
addFilter(const spi::FilterPtr &newFilter)AppenderSkeleton [virtual]
addRef() const AppenderSkeleton [virtual]
append(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)=0AppenderSkeleton [protected, pure virtual]
AppenderSkeleton()AppenderSkeleton
AppenderSkeleton(const LayoutPtr &layout)AppenderSkeleton
cast(const Class &clazz) const =0Object [pure virtual]
clearFilters()AppenderSkeleton [virtual]
close()=0Appender [pure virtual]
closedAppenderSkeleton [protected]
doAppend(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)AppenderSkeleton [virtual]
errorHandlerAppenderSkeleton [protected]
finalize()AppenderSkeleton
getClass() const Object [virtual]
getErrorHandler() const AppenderSkeleton [inline]
getFilter() const AppenderSkeleton [inline, virtual]
getFirstFilter() const AppenderSkeleton [inline]
getLayout() const AppenderSkeleton [inline, virtual]
getName() const AppenderSkeleton [inline, virtual]
getStaticClass()Object [static]
getThreshold()AppenderSkeleton [inline]
headFilterAppenderSkeleton [protected]
instanceof(const Class &clazz) const =0Object [pure virtual]
isAsSevereAsThreshold(const LevelPtr &level) const AppenderSkeleton
layoutAppenderSkeleton [protected]
mutexAppenderSkeleton [protected]
nameAppenderSkeleton [protected]
ObjectImpl()ObjectImpl
poolAppenderSkeleton [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const AppenderSkeleton [virtual]
requiresLayout() const =0Appender [pure virtual]
setErrorHandler(const spi::ErrorHandlerPtr &eh)AppenderSkeleton
setLayout(const LayoutPtr &layout1)AppenderSkeleton [inline, virtual]
setName(const LogString &name1)AppenderSkeleton [inline, virtual]
setOption(const LogString &option, const LogString &value)AppenderSkeleton [virtual]
setThreshold(const LevelPtr &threshold)AppenderSkeleton
tailFilterAppenderSkeleton [protected]
thresholdAppenderSkeleton [protected]
~Appender()Appender [inline, virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_async_appender.html100644 0 0 120243 10774263472 23211 0ustar 0 0 Apache log4cxx: AsyncAppender Class Reference

AsyncAppender Class Reference

Inherits AppenderAttachable, and AppenderSkeleton.

List of all members.


Detailed Description

The AsyncAppender lets users log events asynchronously.

It uses a bounded buffer to store logging events.

The AsyncAppender will collect the events sent to it and then dispatch them to all the appenders that are attached to it. You can attach multiple appenders to an AsyncAppender.

The AsyncAppender uses a separate thread to serve the events in its bounded buffer.

Important note: The AsyncAppender can only be script configured using the DOMConfigurator.


Public Member Functions

 AsyncAppender ()
 Create new instance.
virtual ~AsyncAppender ()
 Destructor.
void addRef () const
void releaseRef () const
void addAppender (const AppenderPtr &newAppender)
 Add appender.
void append (const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)
 Subclasses of AppenderSkeleton should implement this method to perform actual logging.
void close ()
 Close this AsyncAppender by interrupting the dispatcher thread which will process all pending events before exiting.
AppenderList getAllAppenders () const
 Get iterator over attached appenders.
AppenderPtr getAppender (const LogString &name) const
 Get appender by name.
bool getLocationInfo () const
 Gets whether the location of the logging request call should be captured.
bool isAttached (const AppenderPtr &appender) const
 Determines if specified appender is attached.
virtual bool requiresLayout () const
 Configurators call this method to determine if the appender requires a layout.
void removeAllAppenders ()
 Removes and closes all attached appenders.
void removeAppender (const AppenderPtr &appender)
 Removes an appender.
void removeAppender (const LogString &name)
 Remove appender by name.
void setLocationInfo (bool flag)
 The LocationInfo attribute is provided for compatibility with log4j and has no effect on the log output.
void setBufferSize (int size)
 The BufferSize option takes a non-negative integer value.
int getBufferSize () const
 Gets the current buffer size.
void setBlocking (bool value)
 Sets whether appender should wait if there is no space available in the event buffer or immediately return.
bool getBlocking () const
 Gets whether appender should block calling thread when buffer is full.
void setOption (const LogString &option, const LogString &value)
 Set appender properties by name.

Classes

class  DiscardSummary


Constructor & Destructor Documentation

AsyncAppender  ) 
 

Create new instance.

virtual ~AsyncAppender  )  [virtual]
 

Destructor.


Member Function Documentation

void addAppender const AppenderPtr newAppender  )  [virtual]
 

Add appender.

Parameters:
newAppender appender to add, may not be null.

Implements AppenderAttachable.

void addRef  )  const [virtual]
 

Reimplemented from AppenderSkeleton.

void append const spi::LoggingEventPtr event,
log4cxx::helpers::Pool p
[virtual]
 

Subclasses of AppenderSkeleton should implement this method to perform actual logging.

See also AppenderSkeleton::doAppend method.

Implements AppenderSkeleton.

void close  )  [virtual]
 

Close this AsyncAppender by interrupting the dispatcher thread which will process all pending events before exiting.

Implements Appender.

AppenderList getAllAppenders  )  const [virtual]
 

Get iterator over attached appenders.

Returns:
list of all attached appenders.

Implements AppenderAttachable.

AppenderPtr getAppender const LogString name  )  const [virtual]
 

Get appender by name.

Parameters:
name name, may not be null.
Returns:
matching appender or null.

Implements AppenderAttachable.

bool getBlocking  )  const
 

Gets whether appender should block calling thread when buffer is full.

If false, messages will be counted by logger and a summary message appended after the contents of the buffer have been appended.

Returns:
true if calling thread will be blocked when buffer is full.

int getBufferSize  )  const
 

Gets the current buffer size.

Returns:
the current value of the BufferSize option.

bool getLocationInfo  )  const
 

Gets whether the location of the logging request call should be captured.

Returns:
the current value of the LocationInfo option.

bool isAttached const AppenderPtr appender  )  const [virtual]
 

Determines if specified appender is attached.

Parameters:
appender appender.
Returns:
true if attached.

Implements AppenderAttachable.

void releaseRef  )  const [virtual]
 

Reimplemented from AppenderSkeleton.

void removeAllAppenders  )  [virtual]
 

Removes and closes all attached appenders.

Implements AppenderAttachable.

void removeAppender const LogString name  )  [virtual]
 

Remove appender by name.

Parameters:
name name.

Implements AppenderAttachable.

void removeAppender const AppenderPtr appender  )  [virtual]
 

Removes an appender.

Parameters:
appender appender to remove.

Implements AppenderAttachable.

virtual bool requiresLayout  )  const [virtual]
 

Configurators call this method to determine if the appender requires a layout.

If this method returns true, meaning that layout is required, then the configurator will configure an layout using the configuration information at its disposal. If this method returns false, meaning that a layout is not required, then layout configuration will be skipped even if there is available layout configuration information at the disposal of the configurator..

In the rather exceptional case, where the appender implementation admits a layout but can also work without it, then the appender should return true.

Implements Appender.

void setBlocking bool  value  ) 
 

Sets whether appender should wait if there is no space available in the event buffer or immediately return.

Parameters:
value true if appender should wait until available space in buffer.

void setBufferSize int  size  ) 
 

The BufferSize option takes a non-negative integer value.

This integer value determines the maximum size of the bounded buffer.

void setLocationInfo bool  flag  ) 
 

The LocationInfo attribute is provided for compatibility with log4j and has no effect on the log output.

Parameters:
flag new value.

void setOption const LogString option,
const LogString value
[virtual]
 

Set appender properties by name.

Parameters:
option property name.
value property value.

Reimplemented from AppenderSkeleton.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_async_appender-members.html100644 0 0 45570 10774263472 24632 0ustar 0 0 Apache log4cxx: Member List

AsyncAppender Member List

This is the complete list of members for AsyncAppender, including all inherited members.

activateOptions(log4cxx::helpers::Pool &)AppenderSkeleton [inline, virtual]
addAppender(const AppenderPtr &newAppender)AsyncAppender [virtual]
addFilter(const spi::FilterPtr &newFilter)AppenderSkeleton [virtual]
addRef() const AsyncAppender [virtual]
append(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)AsyncAppender [virtual]
AppenderSkeleton()AppenderSkeleton
AppenderSkeleton(const LayoutPtr &layout)AppenderSkeleton
AsyncAppender()AsyncAppender
cast(const Class &clazz) const =0Object [pure virtual]
clearFilters()AppenderSkeleton [virtual]
close()AsyncAppender [virtual]
closedAppenderSkeleton [protected]
doAppend(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)AppenderSkeleton [virtual]
errorHandlerAppenderSkeleton [protected]
finalize()AppenderSkeleton
getAllAppenders() const AsyncAppender [virtual]
getAppender(const LogString &name) const AsyncAppender [virtual]
getBlocking() const AsyncAppender
getBufferSize() const AsyncAppender
getClass() const Object [virtual]
getErrorHandler() const AppenderSkeleton [inline]
getFilter() const AppenderSkeleton [inline, virtual]
getFirstFilter() const AppenderSkeleton [inline]
getLayout() const AppenderSkeleton [inline, virtual]
getLocationInfo() const AsyncAppender
getName() const AppenderSkeleton [inline, virtual]
getStaticClass()Object [static]
getThreshold()AppenderSkeleton [inline]
headFilterAppenderSkeleton [protected]
instanceof(const Class &clazz) const =0Object [pure virtual]
isAsSevereAsThreshold(const LevelPtr &level) const AppenderSkeleton
isAttached(const AppenderPtr &appender) const AsyncAppender [virtual]
layoutAppenderSkeleton [protected]
mutexAppenderSkeleton [protected]
nameAppenderSkeleton [protected]
ObjectImpl()ObjectImpl
poolAppenderSkeleton [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const AsyncAppender [virtual]
removeAllAppenders()AsyncAppender [virtual]
removeAppender(const AppenderPtr &appender)AsyncAppender [virtual]
removeAppender(const LogString &name)AsyncAppender [virtual]
requiresLayout() const AsyncAppender [virtual]
setBlocking(bool value)AsyncAppender
setBufferSize(int size)AsyncAppender
setErrorHandler(const spi::ErrorHandlerPtr &eh)AppenderSkeleton
setLayout(const LayoutPtr &layout1)AppenderSkeleton [inline, virtual]
setLocationInfo(bool flag)AsyncAppender
setName(const LogString &name1)AppenderSkeleton [inline, virtual]
setOption(const LogString &option, const LogString &value)AsyncAppender [virtual]
setThreshold(const LevelPtr &threshold)AppenderSkeleton
tailFilterAppenderSkeleton [protected]
thresholdAppenderSkeleton [protected]
~Appender()Appender [inline, virtual]
~AppenderAttachable()AppenderAttachable [inline, virtual]
~AsyncAppender()AsyncAppender [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_basic_configurator.html100644 0 0 23740 10774263472 24045 0ustar 0 0 Apache log4cxx: BasicConfigurator Class Reference

BasicConfigurator Class Reference

List of all members.

Detailed Description

Use this class to quickly configure the package.

For file based configuration see PropertyConfigurator. For XML based configuration see DOMConfigurator.


Static Public Member Functions

static void configure ()
 Add a ConsoleAppender that uses PatternLayout using the PatternLayout::TTCC_CONVERSION_PATTERN and prints to stdout to the root logger.
static void configure (const AppenderPtr &appender)
 Add appender to the root logger.
static void resetConfiguration ()
 Reset the default hierarchy to its defaut.

Protected Member Functions

 BasicConfigurator ()


Constructor & Destructor Documentation

BasicConfigurator  )  [inline, protected]
 


Member Function Documentation

static void configure const AppenderPtr appender  )  [static]
 

Add appender to the root logger.

Parameters:
appender The appender to add to the root logger.

static void configure  )  [static]
 

Add a ConsoleAppender that uses PatternLayout using the PatternLayout::TTCC_CONVERSION_PATTERN and prints to stdout to the root logger.

static void resetConfiguration  )  [static]
 

Reset the default hierarchy to its defaut.

It is equivalent to calling Logger::getDefaultHierarchy()->resetConfiguration(). See Hierarchy::resetConfiguration() for more details.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_basic_configurator-members.html100644 0 0 7606 10774263472 25460 0ustar 0 0 Apache log4cxx: Member List

BasicConfigurator Member List

This is the complete list of members for BasicConfigurator, including all inherited members.

BasicConfigurator()BasicConfigurator [inline, protected]
configure()BasicConfigurator [static]
configure(const AppenderPtr &appender)BasicConfigurator [static]
resetConfiguration()BasicConfigurator [static]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_console_appender.html100644 0 0 46464 10774263472 23532 0ustar 0 0 Apache log4cxx: ConsoleAppender Class Reference

ConsoleAppender Class Reference

Inherits WriterAppender.

List of all members.


Detailed Description

ConsoleAppender appends log events to stdout or stderr using a layout specified by the user.

The default target is stdout.


Public Member Functions

 ConsoleAppender ()
 ConsoleAppender (const LayoutPtr &layout)
 ConsoleAppender (const LayoutPtr &layout, const LogString &target)
 ~ConsoleAppender ()
void setTarget (const LogString &value)
 Sets the value of the target property.
LogString getTarget () const
 Returns the current value of the target property.
void activateOptions (log4cxx::helpers::Pool &p)
 Derived appenders should override this method if option structure requires it.
void setOption (const LogString &option, const LogString &value)
 Set option to value.

Static Public Member Functions

static const LogStringgetSystemOut ()
static const LogStringgetSystemErr ()


Constructor & Destructor Documentation

ConsoleAppender  ) 
 

ConsoleAppender const LayoutPtr layout  ) 
 

ConsoleAppender const LayoutPtr layout,
const LogString target
 

~ConsoleAppender  ) 
 


Member Function Documentation

void activateOptions log4cxx::helpers::Pool p  )  [virtual]
 

Derived appenders should override this method if option structure requires it.

Reimplemented from WriterAppender.

static const LogString& getSystemErr  )  [static]
 

static const LogString& getSystemOut  )  [static]
 

LogString getTarget  )  const
 

Returns the current value of the target property.

The default value of the option is "System.out".

See also setTarget.

void setOption const LogString option,
const LogString value
[virtual]
 

Set option to value.

The handling of each option depends on the OptionHandler instance. Some options may become active immediately whereas other may be activated only when activateOptions is called.

Reimplemented from WriterAppender.

void setTarget const LogString value  ) 
 

Sets the value of the target property.

Recognized values are "System.out" and "System.err". Any other value will be ignored.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_console_appender-members.html100644 0 0 51736 10774263472 25160 0ustar 0 0 Apache log4cxx: Member List

ConsoleAppender Member List

This is the complete list of members for ConsoleAppender, including all inherited members.

activateOptions(log4cxx::helpers::Pool &p)ConsoleAppender [virtual]
addFilter(const spi::FilterPtr &newFilter)AppenderSkeleton [virtual]
addRef() const AppenderSkeleton [virtual]
append(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)WriterAppender [virtual]
AppenderSkeleton()AppenderSkeleton
AppenderSkeleton(const LayoutPtr &layout)AppenderSkeleton
cast(const Class &clazz) const =0Object [pure virtual]
checkEntryConditions() const WriterAppender [protected, virtual]
clearFilters()AppenderSkeleton [virtual]
close()WriterAppender [virtual]
closedAppenderSkeleton [protected]
closeWriter()WriterAppender [protected]
ConsoleAppender()ConsoleAppender
ConsoleAppender(const LayoutPtr &layout)ConsoleAppender
ConsoleAppender(const LayoutPtr &layout, const LogString &target)ConsoleAppender
log4cxx::WriterAppender::createWriter(log4cxx::helpers::OutputStreamPtr &os)WriterAppender [protected, virtual]
doAppend(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)AppenderSkeleton [virtual]
errorHandlerAppenderSkeleton [protected]
finalize()AppenderSkeleton
getClass() const Object [virtual]
getEncoding() const WriterAppender
getErrorHandler() const AppenderSkeleton [inline]
getFilter() const AppenderSkeleton [inline, virtual]
getFirstFilter() const AppenderSkeleton [inline]
getImmediateFlush() const WriterAppender [inline]
getLayout() const AppenderSkeleton [inline, virtual]
getName() const AppenderSkeleton [inline, virtual]
getStaticClass()Object [static]
getSystemErr()ConsoleAppender [static]
getSystemOut()ConsoleAppender [static]
getTarget() const ConsoleAppender
getThreshold()AppenderSkeleton [inline]
headFilterAppenderSkeleton [protected]
instanceof(const Class &clazz) const =0Object [pure virtual]
isAsSevereAsThreshold(const LevelPtr &level) const AppenderSkeleton
layoutAppenderSkeleton [protected]
mutexAppenderSkeleton [protected]
nameAppenderSkeleton [protected]
ObjectImpl()ObjectImpl
poolAppenderSkeleton [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const AppenderSkeleton [virtual]
requiresLayout() const WriterAppender [virtual]
setEncoding(const LogString &value)WriterAppender
setErrorHandler(const spi::ErrorHandlerPtr &eh)AppenderSkeleton
setImmediateFlush(bool value)WriterAppender
setLayout(const LayoutPtr &layout1)AppenderSkeleton [inline, virtual]
setName(const LogString &name1)AppenderSkeleton [inline, virtual]
setOption(const LogString &option, const LogString &value)ConsoleAppender [virtual]
setTarget(const LogString &value)ConsoleAppender
setThreshold(const LevelPtr &threshold)AppenderSkeleton
setWriter(const log4cxx::helpers::WriterPtr &writer)WriterAppender
subAppend(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)WriterAppender [protected, virtual]
tailFilterAppenderSkeleton [protected]
thresholdAppenderSkeleton [protected]
writeFooter(log4cxx::helpers::Pool &p)WriterAppender [protected, virtual]
writeHeader(log4cxx::helpers::Pool &p)WriterAppender [protected, virtual]
WriterAppender()WriterAppender
WriterAppender(const LayoutPtr &layout, log4cxx::helpers::WriterPtr &writer)WriterAppender [protected]
WriterAppender(const LayoutPtr &layout)WriterAppender [protected]
~Appender()Appender [inline, virtual]
~ConsoleAppender()ConsoleAppender
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
~WriterAppender()WriterAppender
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_daily_rolling_file_appender.html100644 0 0 46766 10774263472 25724 0ustar 0 0 Apache log4cxx: DailyRollingFileAppender Class Reference

DailyRollingFileAppender Class Reference

Inherits RollingFileAppenderSkeleton.

List of all members.


Detailed Description

DailyRollingFileAppender extends FileAppender so that the underlying file is rolled over at a user chosen frequency.

The rolling schedule is specified by the DatePattern option. This pattern should follow the SimpleDateFormat conventions. In particular, you must escape literal text within a pair of single quotes. A formatted version of the date pattern is used as the suffix for the rolled file name.

For example, if the File option is set to /foo/bar.log and the DatePattern set to '.'yyyy-MM-dd, on 2001-02-16 at midnight, the logging file /foo/bar.log will be copied to /foo/bar.log.2001-02-16 and logging for 2001-02-17 will continue in /foo/bar.log until it rolls over the next day.

Is is possible to specify monthly, weekly, half-daily, daily, hourly, or minutely rollover schedules.

DatePattern Rollover schedule Example

'.'yyyy-MM Rollover at the beginning of each month

At midnight of May 31st, 2002 /foo/bar.log will be copied to /foo/bar.log.2002-05. Logging for the month of June will be output to /foo/bar.log until it is also rolled over the next month.

'.'yyyy-ww

Rollover at the first day of each week. The first day of the week depends on the locale.

Assuming the first day of the week is Sunday, on Saturday midnight, June 9th 2002, the file /foo/bar.log will be copied to /foo/bar.log.2002-23. Logging for the 24th week of 2002 will be output to /foo/bar.log until it is rolled over the next week.

'.'yyyy-MM-dd

Rollover at midnight each day.

At midnight, on March 8th, 2002, /foo/bar.log will be copied to /foo/bar.log.2002-03-08. Logging for the 9th day of March will be output to /foo/bar.log until it is rolled over the next day.

'.'yyyy-MM-dd-a

Rollover at midnight and midday of each day.

At noon, on March 9th, 2002, /foo/bar.log will be copied to /foo/bar.log.2002-03-09-AM. Logging for the afternoon of the 9th will be output to /foo/bar.log until it is rolled over at midnight.

'.'yyyy-MM-dd-HH

Rollover at the top of every hour.

At approximately 11:00.000 o'clock on March 9th, 2002, /foo/bar.log will be copied to /foo/bar.log.2002-03-09-10. Logging for the 11th hour of the 9th of March will be output to /foo/bar.log until it is rolled over at the beginning of the next hour.

'.'yyyy-MM-dd-HH-mm

Rollover at the beginning of every minute.

At approximately 11:23,000, on March 9th, 2001, /foo/bar.log will be copied to /foo/bar.log.2001-03-09-10-22. Logging for the minute of 11:23 (9th of March) will be output to /foo/bar.log until it is rolled over the next minute.

Do not use the colon ":" character in anywhere in the DatePattern option. The text before the colon is interpeted as the protocol specificaion of a URL which is probably not what you want.


Public Member Functions

 DailyRollingFileAppender ()
 The default constructor simply calls its parents constructor.
 DailyRollingFileAppender (const LayoutPtr &layout, const LogString &filename, const LogString &datePattern)
 Instantiate a DailyRollingFileAppender and open the file designated by filename.
void setDatePattern (const LogString &pattern)
 The DatePattern takes a string in the same format as expected by SimpleDateFormat.
LogString getDatePattern ()
 Returns the value of the DatePattern option.
void setOption (const LogString &option, const LogString &value)
 Set option to value.
void activateOptions (log4cxx::helpers::Pool &)
 Prepares DailyRollingFileAppender for use.


Constructor & Destructor Documentation

DailyRollingFileAppender  ) 
 

The default constructor simply calls its parents constructor.

DailyRollingFileAppender const LayoutPtr layout,
const LogString filename,
const LogString datePattern
 

Instantiate a DailyRollingFileAppender and open the file designated by filename.

The opened filename will become the ouput destination for this appender.


Member Function Documentation

void activateOptions log4cxx::helpers::Pool  )  [virtual]
 

Prepares DailyRollingFileAppender for use.

Reimplemented from RollingFileAppenderSkeleton.

LogString getDatePattern  ) 
 

Returns the value of the DatePattern option.

void setDatePattern const LogString pattern  ) 
 

The DatePattern takes a string in the same format as expected by SimpleDateFormat.

This options determines the rollover schedule.

void setOption const LogString option,
const LogString value
[virtual]
 

Set option to value.

The handling of each option depends on the OptionHandler instance. Some options may become active immediately whereas other may be activated only when activateOptions is called.

Reimplemented from FileAppender.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_daily_rolling_file_appender-members.html100644 0 0 70170 10774263472 27336 0ustar 0 0 Apache log4cxx: Member List

DailyRollingFileAppender Member List

This is the complete list of members for DailyRollingFileAppender, including all inherited members.

activateOptions(log4cxx::helpers::Pool &)DailyRollingFileAppender [virtual]
addFilter(const spi::FilterPtr &newFilter)AppenderSkeleton [virtual]
addRef() const AppenderSkeleton [virtual]
append(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)WriterAppender [virtual]
AppenderSkeleton()AppenderSkeleton
AppenderSkeleton(const LayoutPtr &layout)AppenderSkeleton
bufferedIOFileAppender [protected]
bufferSizeFileAppender [protected]
cast(const Class &clazz) const =0Object [pure virtual]
checkEntryConditions() const WriterAppender [protected, virtual]
clearFilters()AppenderSkeleton [virtual]
close()RollingFileAppenderSkeleton [virtual]
closedAppenderSkeleton [protected]
closeWriter()WriterAppender [protected]
createWriter(log4cxx::helpers::OutputStreamPtr &os)RollingFileAppenderSkeleton [protected, virtual]
DailyRollingFileAppender()DailyRollingFileAppender
DailyRollingFileAppender(const LayoutPtr &layout, const LogString &filename, const LogString &datePattern)DailyRollingFileAppender
doAppend(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)AppenderSkeleton [virtual]
errorHandlerAppenderSkeleton [protected]
fileAppendFileAppender [protected]
FileAppender()FileAppender
FileAppender(const LayoutPtr &layout, const LogString &filename, bool append, bool bufferedIO, int bufferSize)FileAppender
FileAppender(const LayoutPtr &layout, const LogString &filename, bool append)FileAppender
FileAppender(const LayoutPtr &layout, const LogString &filename)FileAppender
fileNameFileAppender [protected]
finalize()AppenderSkeleton
getAppend() const FileAppender [inline]
getBufferedIO() const FileAppender [inline]
getBufferSize() const FileAppender [inline]
getClass() const Object [virtual]
getDatePattern()DailyRollingFileAppender
getEncoding() const WriterAppender
getErrorHandler() const AppenderSkeleton [inline]
getFile() const FileAppender [inline]
getFileLength() const RollingFileAppenderSkeleton
getFilter() const AppenderSkeleton [inline, virtual]
getFirstFilter() const AppenderSkeleton [inline]
getImmediateFlush() const WriterAppender [inline]
getLayout() const AppenderSkeleton [inline, virtual]
getName() const AppenderSkeleton [inline, virtual]
getRollingPolicy() const RollingFileAppenderSkeleton [protected]
getStaticClass()Object [static]
getThreshold()AppenderSkeleton [inline]
getTriggeringPolicy() const RollingFileAppenderSkeleton [protected]
headFilterAppenderSkeleton [protected]
incrementFileLength(size_t increment)RollingFileAppenderSkeleton
instanceof(const Class &clazz) const =0Object [pure virtual]
isAsSevereAsThreshold(const LevelPtr &level) const AppenderSkeleton
layoutAppenderSkeleton [protected]
mutexAppenderSkeleton [protected]
nameAppenderSkeleton [protected]
ObjectImpl()ObjectImpl
poolAppenderSkeleton [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const AppenderSkeleton [virtual]
requiresLayout() const WriterAppender [virtual]
RollingFileAppenderSkeleton()RollingFileAppenderSkeleton
rollover(log4cxx::helpers::Pool &p)RollingFileAppenderSkeleton
setAppend(bool fileAppend1)FileAppender
setBufferedIO(bool bufferedIO)FileAppender
setBufferSize(int bufferSize1)FileAppender [inline]
setDatePattern(const LogString &pattern)DailyRollingFileAppender
setEncoding(const LogString &value)WriterAppender
setErrorHandler(const spi::ErrorHandlerPtr &eh)AppenderSkeleton
setFile(const LogString &file)FileAppender [virtual]
setFile(const LogString &file, bool append, bool bufferedIO, size_t bufferSize, log4cxx::helpers::Pool &p)FileAppender [virtual]
setImmediateFlush(bool value)WriterAppender
setLayout(const LayoutPtr &layout1)AppenderSkeleton [inline, virtual]
setName(const LogString &name1)AppenderSkeleton [inline, virtual]
setOption(const LogString &option, const LogString &value)DailyRollingFileAppender [virtual]
setRollingPolicy(const RollingPolicyPtr &policy)RollingFileAppenderSkeleton [protected]
setThreshold(const LevelPtr &threshold)AppenderSkeleton
setTriggeringPolicy(const TriggeringPolicyPtr &policy)RollingFileAppenderSkeleton [protected]
setWriter(const log4cxx::helpers::WriterPtr &writer)WriterAppender
stripDuplicateBackslashes(const LogString &name)FileAppender [static]
subAppend(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)RollingFileAppenderSkeleton [protected, virtual]
tailFilterAppenderSkeleton [protected]
thresholdAppenderSkeleton [protected]
writeFooter(log4cxx::helpers::Pool &p)WriterAppender [protected, virtual]
writeHeader(log4cxx::helpers::Pool &p)WriterAppender [protected, virtual]
WriterAppender()WriterAppender
WriterAppender(const LayoutPtr &layout, log4cxx::helpers::WriterPtr &writer)WriterAppender [protected]
WriterAppender(const LayoutPtr &layout)WriterAppender [protected]
~Appender()Appender [inline, virtual]
~FileAppender()FileAppender
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
~WriterAppender()WriterAppender
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_default_configurator.html100644 0 0 12655 10774263472 24413 0ustar 0 0 Apache log4cxx: DefaultConfigurator Class Reference

DefaultConfigurator Class Reference

List of all members.

Detailed Description

Configures the repository from environmental settings and files.


Static Public Member Functions

static void configure (log4cxx::spi::LoggerRepository *)
 Add a ConsoleAppender that uses PatternLayout using the PatternLayout::TTCC_CONVERSION_PATTERN and prints to stdout to the root logger.


Member Function Documentation

static void configure log4cxx::spi::LoggerRepository  )  [static]
 

Add a ConsoleAppender that uses PatternLayout using the PatternLayout::TTCC_CONVERSION_PATTERN and prints to stdout to the root logger.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_default_configurator-members.html100644 0 0 6115 10774263472 26015 0ustar 0 0 Apache log4cxx: Member List

DefaultConfigurator Member List

This is the complete list of members for DefaultConfigurator, including all inherited members.

configure(log4cxx::spi::LoggerRepository *)DefaultConfigurator [static]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_default_logger_factory.html100644 0 0 13273 10774263472 24714 0ustar 0 0 Apache log4cxx: DefaultLoggerFactory Class Reference

DefaultLoggerFactory Class Reference

Inherits LoggerFactory, and ObjectImpl.

List of all members.

Public Member Functions

virtual LoggerPtr makeNewLoggerInstance (log4cxx::helpers::Pool &pool, const LogString &name) const


Member Function Documentation

virtual LoggerPtr makeNewLoggerInstance log4cxx::helpers::Pool pool,
const LogString name
const [virtual]
 

Implements LoggerFactory.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_default_logger_factory-members.html100644 0 0 15675 10774263472 26354 0ustar 0 0 Apache log4cxx: Member List

DefaultLoggerFactory Member List

This is the complete list of members for DefaultLoggerFactory, including all inherited members.

log4cxx::addRef() const =0Object [pure virtual]
log4cxx::helpers::ObjectImpl::addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
makeNewLoggerInstance(log4cxx::helpers::Pool &pool, const LogString &name) const DefaultLoggerFactory [virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
log4cxx::releaseRef() const =0Object [pure virtual]
log4cxx::helpers::ObjectImpl::releaseRef() const ObjectImpl [virtual]
~LoggerFactory()LoggerFactory [inline, virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_file.html100644 0 0 124631 10774263472 21142 0ustar 0 0 Apache log4cxx: File Class Reference

File Class Reference

List of all members.

Detailed Description

An abstract representation of file and directory path names.


Public Member Functions

 File ()
 Construct a new instance.
 File (const char *path)
 Construct a new instance.
 File (const std::string &path)
 Construct a new instance.
 File (const wchar_t *path)
 Construct a new instance.
 File (const std::wstring &path)
 Construct a new instance.
 File (const UniChar *path)
 Construct a new instance.
 File (const std::basic_string< UniChar > &path)
 Construct a new instance.
 File (const CFStringRef &path)
 Construct a new instance.
 File (const File &src)
 Copy constructor.
Fileoperator= (const File &src)
 Assignment operator.
 ~File ()
 Destructor.
bool exists (log4cxx::helpers::Pool &p) const
 Determines if file exists.
size_t length (log4cxx::helpers::Pool &p) const
 Determines length of file.
log4cxx_time_t lastModified (log4cxx::helpers::Pool &p) const
 Determines last modification date.
LogString getName () const
 Get final portion of file path.
LogString getPath () const
 Get file path.
FilesetPath (const LogString &)
 Set file path.
log4cxx_status_t open (apr_file_t **file, int flags, int perm, log4cxx::helpers::Pool &p) const
 Open file.
std::vector< LogStringlist (log4cxx::helpers::Pool &p) const
 List files if current file is a directory.
bool deleteFile (log4cxx::helpers::Pool &p) const
 Delete file.
bool renameTo (const File &dest, log4cxx::helpers::Pool &p) const
 Rename file.
LogString getParent (log4cxx::helpers::Pool &p) const
 Get path of parent directory.
bool mkdirs (log4cxx::helpers::Pool &p) const
 Make directories recursively.


Constructor & Destructor Documentation

File  ) 
 

Construct a new instance.

File const char *  path  ) 
 

Construct a new instance.

Use setPath to specify path using a LogString.

Parameters:
path file path in local encoding.

File const std::string &  path  ) 
 

Construct a new instance.

Use setPath to specify path using a LogString.

Parameters:
path file path in current encoding.

File const wchar_t *  path  ) 
 

Construct a new instance.

Use setPath to specify path using a LogString.

Parameters:
path file path.

File const std::wstring &  path  ) 
 

Construct a new instance.

Use setPath to specify path using a LogString.

Parameters:
path file path.

File const UniChar path  ) 
 

Construct a new instance.

Use setPath to specify path using a LogString.

Parameters:
path file path.

File const std::basic_string< UniChar > &  path  ) 
 

Construct a new instance.

Use setPath to specify path using a LogString.

Parameters:
path file path.

File const CFStringRef path  ) 
 

Construct a new instance.

Use setPath to specify path using a LogString.

Parameters:
path file path.

File const File src  ) 
 

Copy constructor.

~File  ) 
 

Destructor.


Member Function Documentation

bool deleteFile log4cxx::helpers::Pool p  )  const
 

Delete file.

Parameters:
p pool.
Returns:
true if file successfully deleted.

bool exists log4cxx::helpers::Pool p  )  const
 

Determines if file exists.

Parameters:
p pool.
Returns:
true if file exists.

LogString getName  )  const
 

Get final portion of file path.

Returns:
file name.

LogString getParent log4cxx::helpers::Pool p  )  const
 

Get path of parent directory.

Parameters:
p pool.
Returns:
path of parent directory.

LogString getPath  )  const
 

Get file path.

Returns:
file path.

log4cxx_time_t lastModified log4cxx::helpers::Pool p  )  const
 

Determines last modification date.

Parameters:
p pool.
Returns:
length of file.

size_t length log4cxx::helpers::Pool p  )  const
 

Determines length of file.

May not be accurate if file is current open.

Parameters:
p pool.
Returns:
length of file.

std::vector<LogString> list log4cxx::helpers::Pool p  )  const
 

List files if current file is a directory.

Parameters:
p pool.
Returns:
list of files in this directory, operation of non-directory returns empty list.

bool mkdirs log4cxx::helpers::Pool p  )  const
 

Make directories recursively.

Parameters:
p pool.
Returns:
true if all requested directories existed or have been created.

log4cxx_status_t open apr_file_t **  file,
int  flags,
int  perm,
log4cxx::helpers::Pool p
const
 

Open file.

See apr_file_open for details.

Parameters:
file APR file handle.
flags flags.
perm permissions.
p pool.
Returns:
APR_SUCCESS if successful.

File& operator= const File src  ) 
 

Assignment operator.

bool renameTo const File dest,
log4cxx::helpers::Pool p
const
 

Rename file.

Parameters:
dest new path for file.
p pool.
Returns:
true if file successfully renamed.

File& setPath const LogString  ) 
 

Set file path.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_file-members.html100644 0 0 17702 10774263472 22552 0ustar 0 0 Apache log4cxx: Member List

File Member List

This is the complete list of members for File, including all inherited members.

deleteFile(log4cxx::helpers::Pool &p) const File
exists(log4cxx::helpers::Pool &p) const File
File()File
File(const char *path)File
File(const std::string &path)File
File(const wchar_t *path)File
File(const std::wstring &path)File
File(const UniChar *path)File
File(const std::basic_string< UniChar > &path)File
File(const CFStringRef &path)File
File(const File &src)File
getName() const File
getParent(log4cxx::helpers::Pool &p) const File
getPath() const File
lastModified(log4cxx::helpers::Pool &p) const File
length(log4cxx::helpers::Pool &p) const File
list(log4cxx::helpers::Pool &p) const File
mkdirs(log4cxx::helpers::Pool &p) const File
open(apr_file_t **file, int flags, int perm, log4cxx::helpers::Pool &p) const File
operator=(const File &src)File
renameTo(const File &dest, log4cxx::helpers::Pool &p) const File
setPath(const LogString &)File
~File()File
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_file_appender.html100644 0 0 130064 10774263472 23015 0ustar 0 0 Apache log4cxx: FileAppender Class Reference

FileAppender Class Reference

Inherits WriterAppender.

Inherited by RollingFileAppenderSkeleton.

List of all members.


Detailed Description

FileAppender appends log events to a file.

Support for java.io.Writer and console appending has been deprecated and then removed. See the replacement solutions: WriterAppender and ConsoleAppender.


Public Member Functions

 FileAppender ()
 The default constructor does not do anything.
 FileAppender (const LayoutPtr &layout, const LogString &filename, bool append, bool bufferedIO, int bufferSize)
 Instantiate a FileAppender and open the file designated by filename.
 FileAppender (const LayoutPtr &layout, const LogString &filename, bool append)
 Instantiate a FileAppender and open the file designated by filename.
 FileAppender (const LayoutPtr &layout, const LogString &filename)
 Instantiate a FileAppender and open the file designated by filename.
 ~FileAppender ()
virtual void setFile (const LogString &file)
 The File property takes a string value which should be the name of the file to append to.
virtual void setFile (const LogString &file, bool append, bool bufferedIO, size_t bufferSize, log4cxx::helpers::Pool &p)
 Sets and opens the file where the log output will go.
bool getAppend () const
 Returns the value of the Append option.
LogString getFile () const
 Returns the value of the File option.
void activateOptions (log4cxx::helpers::Pool &p)
void setOption (const LogString &option, const LogString &value)
 Set option to value.
bool getBufferedIO () const
 Get the value of the BufferedIO option.
int getBufferSize () const
 Get the size of the IO buffer.
void setAppend (bool fileAppend1)
 The Append option takes a boolean value.
void setBufferedIO (bool bufferedIO)
 The BufferedIO option takes a boolean value.
void setBufferSize (int bufferSize1)
 Set the size of the IO buffer.

Static Public Member Functions

static LogString stripDuplicateBackslashes (const LogString &name)
 Replaces double backslashes with single backslashes for compatibility with paths from earlier XML configurations files.

Protected Attributes

bool fileAppend
 Append to or truncate the file? The default value for this variable is true, meaning that by default a FileAppender will append to an existing file and not truncate it.
LogString fileName
 The name of the log file.
bool bufferedIO
 Do we do bufferedIO?
int bufferSize
 How big should the IO buffer be? Default is 8K.


Constructor & Destructor Documentation

FileAppender  ) 
 

The default constructor does not do anything.

FileAppender const LayoutPtr layout,
const LogString filename,
bool  append,
bool  bufferedIO,
int  bufferSize
 

Instantiate a FileAppender and open the file designated by filename.

The opened filename will become the output destination for this appender.

If the append parameter is true, the file will be appended to. Otherwise, the file designated by filename will be truncated before being opened.

If the bufferedIO parameter is true, then buffered IO will be used to write to the output file.

FileAppender const LayoutPtr layout,
const LogString filename,
bool  append
 

Instantiate a FileAppender and open the file designated by filename.

The opened filename will become the output destination for this appender.

If the append parameter is true, the file will be appended to. Otherwise, the file designated by filename will be truncated before being opened.

FileAppender const LayoutPtr layout,
const LogString filename
 

Instantiate a FileAppender and open the file designated by filename.

The opened filename will become the output destination for this appender.

The file will be appended to.

~FileAppender  ) 
 


Member Function Documentation

void activateOptions log4cxx::helpers::Pool p  )  [virtual]
 

Sets and opens the file where the log output will go. The specified file must be writable.

If there was already an opened file, then the previous file is closed first.

Reimplemented from WriterAppender.

Reimplemented in DailyRollingFileAppender, RollingFileAppenderSkeleton, and RollingFileAppender.

bool getAppend  )  const [inline]
 

Returns the value of the Append option.

bool getBufferedIO  )  const [inline]
 

Get the value of the BufferedIO option.

BufferedIO will significatnly increase performance on heavily loaded systems.

int getBufferSize  )  const [inline]
 

Get the size of the IO buffer.

LogString getFile  )  const [inline]
 

Returns the value of the File option.

void setAppend bool  fileAppend1  ) 
 

The Append option takes a boolean value.

It is set to true by default. If true, then File will be opened in append mode by setFile (see above). Otherwise, setFile will open File in truncate mode.

Note: Actual opening of the file is made when activateOptions is called, not when the options are set.

void setBufferedIO bool  bufferedIO  ) 
 

The BufferedIO option takes a boolean value.

It is set to false by default. If true, then File will be opened in buffered mode.

BufferedIO will significantly increase performance on heavily loaded systems.

void setBufferSize int  bufferSize1  )  [inline]
 

Set the size of the IO buffer.

virtual void setFile const LogString file,
bool  append,
bool  bufferedIO,
size_t  bufferSize,
log4cxx::helpers::Pool p
[virtual]
 

Sets and opens the file where the log output will go.

The specified file must be writable.

If there was already an opened file, then the previous file is closed first.

Do not use this method directly. To configure a FileAppender or one of its subclasses, set its properties one by one and then call activateOptions.

Parameters:
file The path to the log file.
append If true will append to fileName. Otherwise will truncate fileName.
bufferedIO Do we do bufferedIO?
bufferSize How big should the IO buffer be?
p memory pool for operation.

virtual void setFile const LogString file  )  [virtual]
 

The File property takes a string value which should be the name of the file to append to.

Note that the special values "System.out" or "System.err" are no longer honored.

Note: Actual opening of the file is made when activateOptions is called, not when the options are set.

void setOption const LogString option,
const LogString value
[virtual]
 

Set option to value.

The handling of each option depends on the OptionHandler instance. Some options may become active immediately whereas other may be activated only when activateOptions is called.

Reimplemented from WriterAppender.

Reimplemented in DailyRollingFileAppender, and RollingFileAppender.

static LogString stripDuplicateBackslashes const LogString name  )  [static]
 

Replaces double backslashes with single backslashes for compatibility with paths from earlier XML configurations files.

Parameters:
name file name
Returns:
corrected file name


Member Data Documentation

bool bufferedIO [protected]
 

Do we do bufferedIO?

int bufferSize [protected]
 

How big should the IO buffer be? Default is 8K.

bool fileAppend [protected]
 

Append to or truncate the file? The default value for this variable is true, meaning that by default a FileAppender will append to an existing file and not truncate it.

This option is meaningful only if the FileAppender opens the file.

LogString fileName [protected]
 

The name of the log file.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_file_appender-members.html100644 0 0 57656 10774263472 24444 0ustar 0 0 Apache log4cxx: Member List

FileAppender Member List

This is the complete list of members for FileAppender, including all inherited members.

activateOptions(log4cxx::helpers::Pool &p)FileAppender [virtual]
addFilter(const spi::FilterPtr &newFilter)AppenderSkeleton [virtual]
addRef() const AppenderSkeleton [virtual]
append(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)WriterAppender [virtual]
AppenderSkeleton()AppenderSkeleton
AppenderSkeleton(const LayoutPtr &layout)AppenderSkeleton
bufferedIOFileAppender [protected]
bufferSizeFileAppender [protected]
cast(const Class &clazz) const =0Object [pure virtual]
checkEntryConditions() const WriterAppender [protected, virtual]
clearFilters()AppenderSkeleton [virtual]
close()WriterAppender [virtual]
closedAppenderSkeleton [protected]
closeWriter()WriterAppender [protected]
createWriter(log4cxx::helpers::OutputStreamPtr &os)WriterAppender [protected, virtual]
doAppend(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)AppenderSkeleton [virtual]
errorHandlerAppenderSkeleton [protected]
fileAppendFileAppender [protected]
FileAppender()FileAppender
FileAppender(const LayoutPtr &layout, const LogString &filename, bool append, bool bufferedIO, int bufferSize)FileAppender
FileAppender(const LayoutPtr &layout, const LogString &filename, bool append)FileAppender
FileAppender(const LayoutPtr &layout, const LogString &filename)FileAppender
fileNameFileAppender [protected]
finalize()AppenderSkeleton
getAppend() const FileAppender [inline]
getBufferedIO() const FileAppender [inline]
getBufferSize() const FileAppender [inline]
getClass() const Object [virtual]
getEncoding() const WriterAppender
getErrorHandler() const AppenderSkeleton [inline]
getFile() const FileAppender [inline]
getFilter() const AppenderSkeleton [inline, virtual]
getFirstFilter() const AppenderSkeleton [inline]
getImmediateFlush() const WriterAppender [inline]
getLayout() const AppenderSkeleton [inline, virtual]
getName() const AppenderSkeleton [inline, virtual]
getStaticClass()Object [static]
getThreshold()AppenderSkeleton [inline]
headFilterAppenderSkeleton [protected]
instanceof(const Class &clazz) const =0Object [pure virtual]
isAsSevereAsThreshold(const LevelPtr &level) const AppenderSkeleton
layoutAppenderSkeleton [protected]
mutexAppenderSkeleton [protected]
nameAppenderSkeleton [protected]
ObjectImpl()ObjectImpl
poolAppenderSkeleton [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const AppenderSkeleton [virtual]
requiresLayout() const WriterAppender [virtual]
setAppend(bool fileAppend1)FileAppender
setBufferedIO(bool bufferedIO)FileAppender
setBufferSize(int bufferSize1)FileAppender [inline]
setEncoding(const LogString &value)WriterAppender
setErrorHandler(const spi::ErrorHandlerPtr &eh)AppenderSkeleton
setFile(const LogString &file)FileAppender [virtual]
setFile(const LogString &file, bool append, bool bufferedIO, size_t bufferSize, log4cxx::helpers::Pool &p)FileAppender [virtual]
setImmediateFlush(bool value)WriterAppender
setLayout(const LayoutPtr &layout1)AppenderSkeleton [inline, virtual]
setName(const LogString &name1)AppenderSkeleton [inline, virtual]
setOption(const LogString &option, const LogString &value)FileAppender [virtual]
setThreshold(const LevelPtr &threshold)AppenderSkeleton
setWriter(const log4cxx::helpers::WriterPtr &writer)WriterAppender
stripDuplicateBackslashes(const LogString &name)FileAppender [static]
subAppend(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)WriterAppender [protected, virtual]
tailFilterAppenderSkeleton [protected]
thresholdAppenderSkeleton [protected]
writeFooter(log4cxx::helpers::Pool &p)WriterAppender [protected, virtual]
writeHeader(log4cxx::helpers::Pool &p)WriterAppender [protected, virtual]
WriterAppender()WriterAppender
WriterAppender(const LayoutPtr &layout, log4cxx::helpers::WriterPtr &writer)WriterAppender [protected]
WriterAppender(const LayoutPtr &layout)WriterAppender [protected]
~Appender()Appender [inline, virtual]
~FileAppender()FileAppender
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
~WriterAppender()WriterAppender
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_hierarchy.html100644 0 0 122627 10774263472 22204 0ustar 0 0 Apache log4cxx: Hierarchy Class Reference

Hierarchy Class Reference

Inherits LoggerRepository, and ObjectImpl.

List of all members.


Detailed Description

This class is specialized in retrieving loggers by name and also maintaining the logger hierarchy.

The casual user does not have to deal with this class directly.

The structure of the logger hierarchy is maintained by the getLogger method. The hierarchy is such that children link to their parent but parents do not have any pointers to their children. Moreover, loggers can be instantiated in any order, in particular descendant before ancestor.

In case a descendant is created before a particular ancestor, then it creates a provision node for the ancestor and adds itself to the provision node. Other descendants of the same ancestor add themselves to the previously created provision node.


Public Member Functions

 Hierarchy ()
 Create a new logger hierarchy.
 ~Hierarchy ()
void addRef () const
void releaseRef () const
void addHierarchyEventListener (const spi::HierarchyEventListenerPtr &listener)
void clear ()
 This call will clear all logger definitions from the internal hashtable.
void emitNoAppenderWarning (const LoggerPtr &logger)
LoggerPtr exists (const LogString &name)
 Check if the named logger exists in the hierarchy.
void setThreshold (const LogString &levelStr)
 The string form of setThreshold.
void setThreshold (const LevelPtr &l)
 Enable logging for logging requests with level l or higher.
void fireAddAppenderEvent (const LoggerPtr &logger, const AppenderPtr &appender)
void fireRemoveAppenderEvent (const LoggerPtr &logger, const AppenderPtr &appender)
const LevelPtrgetThreshold () const
 Returns a Level representation of the enable state.
LoggerPtr getLogger (const LogString &name)
 Return a new logger instance named as the first parameter using the default factory.
LoggerPtr getLogger (const LogString &name, const spi::LoggerFactoryPtr &factory)
 Return a new logger instance named as the first parameter using factory.
LoggerList getCurrentLoggers () const
 Returns all the currently defined loggers in this hierarchy as a LoggerList.
LoggerPtr getRootLogger () const
 Get the root of this hierarchy.
bool isDisabled (int level) const
 This method will return true if this repository is disabled for level object passed as parameter and false otherwise.
void resetConfiguration ()
 Reset all values contained in this hierarchy instance to their default.
void shutdown ()
 Shutting down a hierarchy will safely close and remove all appenders in all categories including the root logger.
virtual bool isConfigured ()
virtual void setConfigured (bool configured)


Constructor & Destructor Documentation

Hierarchy  ) 
 

Create a new logger hierarchy.

~Hierarchy  ) 
 


Member Function Documentation

void addHierarchyEventListener const spi::HierarchyEventListenerPtr &  listener  ) 
 

void addRef  )  const [virtual]
 

Reimplemented from ObjectImpl.

void clear  ) 
 

This call will clear all logger definitions from the internal hashtable.

Invoking this method will irrevocably mess up the logger hierarchy.

You should really know what you are doing before invoking this method.

void emitNoAppenderWarning const LoggerPtr logger  )  [virtual]
 

Implements LoggerRepository.

LoggerPtr exists const LogString name  )  [virtual]
 

Check if the named logger exists in the hierarchy.

If so return its reference, otherwise returns null.

Parameters:
name The name of the logger to search for.

Implements LoggerRepository.

void fireAddAppenderEvent const LoggerPtr logger,
const AppenderPtr appender
[virtual]
 

Implements LoggerRepository.

void fireRemoveAppenderEvent const LoggerPtr logger,
const AppenderPtr appender
 

LoggerList getCurrentLoggers  )  const [virtual]
 

Returns all the currently defined loggers in this hierarchy as a LoggerList.

The root logger is not included in the returned LoggerList.

Implements LoggerRepository.

LoggerPtr getLogger const LogString name,
const spi::LoggerFactoryPtr factory
[virtual]
 

Return a new logger instance named as the first parameter using factory.

If a logger of that name already exists, then it will be returned. Otherwise, a new logger will be instantiated by the factory parameter and linked with its existing ancestors as well as children.

Parameters:
name The name of the logger to retrieve.
factory The factory that will make the new logger instance.

Implements LoggerRepository.

LoggerPtr getLogger const LogString name  )  [virtual]
 

Return a new logger instance named as the first parameter using the default factory.

If a logger of that name already exists, then it will be returned. Otherwise, a new logger will be instantiated and then linked with its existing ancestors as well as children.

Parameters:
name The name of the logger to retrieve.

Implements LoggerRepository.

LoggerPtr getRootLogger  )  const [virtual]
 

Get the root of this hierarchy.

Implements LoggerRepository.

const LevelPtr& getThreshold  )  const [virtual]
 

Returns a Level representation of the enable state.

Implements LoggerRepository.

virtual bool isConfigured  )  [virtual]
 

Implements LoggerRepository.

bool isDisabled int  level  )  const [virtual]
 

This method will return true if this repository is disabled for level object passed as parameter and false otherwise.

See also the setThreshold method.

Implements LoggerRepository.

void releaseRef  )  const [virtual]
 

Reimplemented from ObjectImpl.

void resetConfiguration  )  [virtual]
 

Reset all values contained in this hierarchy instance to their default.

This removes all appenders from all categories, sets the level of all non-root categories to null, sets their additivity flag to true and sets the level of the root logger to DEBUG. Moreover, message disabling is set its default "off" value.

Existing categories are not removed. They are just reset.

This method should be used sparingly and with care as it will block all logging until it is completed.

Implements LoggerRepository.

virtual void setConfigured bool  configured  )  [virtual]
 

Implements LoggerRepository.

void setThreshold const LevelPtr l  )  [virtual]
 

Enable logging for logging requests with level l or higher.

By default all levels are enabled.

Parameters:
l The minimum level for which logging requests are sent to their appenders.

Implements LoggerRepository.

void setThreshold const LogString levelStr  )  [virtual]
 

The string form of setThreshold.

Implements LoggerRepository.

void shutdown  )  [virtual]
 

Shutting down a hierarchy will safely close and remove all appenders in all categories including the root logger.

Some appenders such as SocketAppender and AsyncAppender need to be closed before the application exists. Otherwise, pending logging events might be lost.

The shutdown method is careful to close nested appenders before closing regular appenders. This is allows configurations where a regular appender is attached to a logger and again to a nested appender.

Implements LoggerRepository.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_hierarchy-members.html100644 0 0 26677 10774263472 23624 0ustar 0 0 Apache log4cxx: Member List

Hierarchy Member List

This is the complete list of members for Hierarchy, including all inherited members.

addHierarchyEventListener(const spi::HierarchyEventListenerPtr &listener)Hierarchy
log4cxx::spi::LoggerRepository::addHierarchyEventListener(const HierarchyEventListenerPtr &listener)=0LoggerRepository [pure virtual]
addRef() const Hierarchy [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
clear()Hierarchy
emitNoAppenderWarning(const LoggerPtr &logger)Hierarchy [virtual]
exists(const LogString &name)Hierarchy [virtual]
fireAddAppenderEvent(const LoggerPtr &logger, const AppenderPtr &appender)Hierarchy [virtual]
fireRemoveAppenderEvent(const LoggerPtr &logger, const AppenderPtr &appender)Hierarchy
getClass() const Object [virtual]
getCurrentLoggers() const Hierarchy [virtual]
getLogger(const LogString &name)Hierarchy [virtual]
getLogger(const LogString &name, const spi::LoggerFactoryPtr &factory)Hierarchy [virtual]
getRootLogger() const Hierarchy [virtual]
getStaticClass()Object [static]
getThreshold() const Hierarchy [virtual]
Hierarchy()Hierarchy
instanceof(const Class &clazz) const =0Object [pure virtual]
isConfigured()Hierarchy [virtual]
isDisabled(int level) const Hierarchy [virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const Hierarchy [virtual]
resetConfiguration()Hierarchy [virtual]
setConfigured(bool configured)Hierarchy [virtual]
setThreshold(const LogString &levelStr)Hierarchy [virtual]
setThreshold(const LevelPtr &l)Hierarchy [virtual]
shutdown()Hierarchy [virtual]
~Hierarchy()Hierarchy
~LoggerRepository()LoggerRepository [inline, virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_h_t_m_l_layout.html100644 0 0 61014 10774263472 23174 0ustar 0 0 Apache log4cxx: HTMLLayout Class Reference

HTMLLayout Class Reference

Inherits Layout.

List of all members.


Detailed Description

This layout outputs events in a HTML table.


Public Member Functions

 HTMLLayout ()
void setLocationInfo (bool locationInfoFlag)
 The LocationInfo option takes a boolean value.
bool getLocationInfo () const
 Returns the current value of the LocationInfo option.
void setTitle (const LogString &title1)
 The Title option takes a String value.
const LogStringgetTitle () const
 Returns the current value of the Title option.
virtual LogString getContentType () const
 Returns the content type output by this layout, i.e "text/html".
virtual void activateOptions (log4cxx::helpers::Pool &)
 No options to activate.
virtual void setOption (const LogString &option, const LogString &value)
 Set options.
virtual void format (LogString &output, const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool) const
 Implement this method to create your own layout format.
virtual void appendHeader (LogString &output, log4cxx::helpers::Pool &pool)
 Append appropriate HTML headers.
virtual void appendFooter (LogString &output, log4cxx::helpers::Pool &pool)
 Append the appropriate HTML footers.
virtual bool ignoresThrowable () const
 The HTML layout handles the throwable contained in logging events.


Constructor & Destructor Documentation

HTMLLayout  ) 
 


Member Function Documentation

virtual void activateOptions log4cxx::helpers::Pool  )  [inline, virtual]
 

No options to activate.

Implements OptionHandler.

virtual void appendFooter LogString output,
log4cxx::helpers::Pool pool
[virtual]
 

Append the appropriate HTML footers.

Reimplemented from Layout.

virtual void appendHeader LogString output,
log4cxx::helpers::Pool pool
[virtual]
 

Append appropriate HTML headers.

Reimplemented from Layout.

virtual void format LogString output,
const spi::LoggingEventPtr event,
log4cxx::helpers::Pool pool
const [virtual]
 

Implement this method to create your own layout format.

Implements Layout.

virtual LogString getContentType  )  const [inline, virtual]
 

Returns the content type output by this layout, i.e "text/html".

Reimplemented from Layout.

bool getLocationInfo  )  const [inline]
 

Returns the current value of the LocationInfo option.

const LogString& getTitle  )  const [inline]
 

Returns the current value of the Title option.

virtual bool ignoresThrowable  )  const [inline, virtual]
 

The HTML layout handles the throwable contained in logging events.

Hence, this method return false.

Implements Layout.

void setLocationInfo bool  locationInfoFlag  )  [inline]
 

The LocationInfo option takes a boolean value.

By default, it is set to false which means there will be no location information output by this layout. If the the option is set to true, then the file name and line number of the statement at the origin of the log statement will be output.

If you are embedding this layout within an SMTPAppender then make sure to set the LocationInfo option of that appender as well.

virtual void setOption const LogString option,
const LogString value
[virtual]
 

Set options.

Implements OptionHandler.

void setTitle const LogString title1  )  [inline]
 

The Title option takes a String value.

This option sets the document title of the generated HTML document.

Defaults to 'Log4cxx Log Messages'.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_h_t_m_l_layout-members.html100644 0 0 22776 10774263472 24640 0ustar 0 0 Apache log4cxx: Member List

HTMLLayout Member List

This is the complete list of members for HTMLLayout, including all inherited members.

activateOptions(log4cxx::helpers::Pool &)HTMLLayout [inline, virtual]
addRef() const Layout [virtual]
appendFooter(LogString &output, log4cxx::helpers::Pool &pool)HTMLLayout [virtual]
appendHeader(LogString &output, log4cxx::helpers::Pool &pool)HTMLLayout [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
format(LogString &output, const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool) const HTMLLayout [virtual]
getClass() const Object [virtual]
getContentType() const HTMLLayout [inline, virtual]
getLocationInfo() const HTMLLayout [inline]
getStaticClass()Object [static]
getTitle() const HTMLLayout [inline]
HTMLLayout()HTMLLayout
ignoresThrowable() const HTMLLayout [inline, virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const Layout [virtual]
setLocationInfo(bool locationInfoFlag)HTMLLayout [inline]
setOption(const LogString &option, const LogString &value)HTMLLayout [virtual]
setTitle(const LogString &title1)HTMLLayout [inline]
~Layout()Layout [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_layout.html100644 0 0 45717 10774263472 21527 0ustar 0 0 Apache log4cxx: Layout Class Reference

Layout Class Reference

Inherits OptionHandler, and ObjectImpl.

Inherited by DateLayout, HTMLLayout, PatternLayout, SimpleLayout, and XMLLayout.

List of all members.


Detailed Description

Extend this abstract class to create your own log layout format.


Public Member Functions

virtual ~Layout ()
void addRef () const
void releaseRef () const
virtual void format (LogString &output, const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool) const =0
 Implement this method to create your own layout format.
virtual LogString getContentType () const
 Returns the content type output by this layout.
virtual void appendHeader (LogString &output, log4cxx::helpers::Pool &p)
 Append the header for the layout format.
virtual void appendFooter (LogString &output, log4cxx::helpers::Pool &p)
 Append the footer for the layout format.
virtual bool ignoresThrowable () const =0
 If the layout handles the throwable object contained within LoggingEvent, then the layout should return false.


Constructor & Destructor Documentation

virtual ~Layout  )  [virtual]
 


Member Function Documentation

void addRef  )  const [virtual]
 

Reimplemented from ObjectImpl.

virtual void appendFooter LogString output,
log4cxx::helpers::Pool p
[virtual]
 

Append the footer for the layout format.

The base class does nothing.

Reimplemented in HTMLLayout.

virtual void appendHeader LogString output,
log4cxx::helpers::Pool p
[virtual]
 

Append the header for the layout format.

The base class does nothing.

Reimplemented in HTMLLayout.

virtual void format LogString output,
const spi::LoggingEventPtr event,
log4cxx::helpers::Pool pool
const [pure virtual]
 

Implement this method to create your own layout format.

Implemented in HTMLLayout, PatternLayout, SimpleLayout, TTCCLayout, and XMLLayout.

virtual LogString getContentType  )  const [virtual]
 

Returns the content type output by this layout.

The base class returns "text/plain".

Reimplemented in HTMLLayout.

virtual bool ignoresThrowable  )  const [pure virtual]
 

If the layout handles the throwable object contained within LoggingEvent, then the layout should return false.

Otherwise, if the layout ignores throwable object, then the layout should return true.

The SimpleLayout, TTCCLayout, PatternLayout all return true. The XMLLayout returns false.

Implemented in HTMLLayout, PatternLayout, SimpleLayout, TTCCLayout, and XMLLayout.

void releaseRef  )  const [virtual]
 

Reimplemented from ObjectImpl.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_layout-members.html100644 0 0 20175 10774263472 23146 0ustar 0 0 Apache log4cxx: Member List

Layout Member List

This is the complete list of members for Layout, including all inherited members.

activateOptions(log4cxx::helpers::Pool &p)=0OptionHandler [pure virtual]
addRef() const Layout [virtual]
appendFooter(LogString &output, log4cxx::helpers::Pool &p)Layout [virtual]
appendHeader(LogString &output, log4cxx::helpers::Pool &p)Layout [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
format(LogString &output, const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool) const =0Layout [pure virtual]
getClass() const Object [virtual]
getContentType() const Layout [virtual]
getStaticClass()Object [static]
ignoresThrowable() const =0Layout [pure virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const Layout [virtual]
setOption(const LogString &option, const LogString &value)=0OptionHandler [pure virtual]
~Layout()Layout [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_level.html100644 0 0 174711 10774263472 21336 0ustar 0 0 Apache log4cxx: Level Class Reference

Level Class Reference

Inherits ObjectImpl.

List of all members.


Detailed Description

Defines the minimum set of levels recognized by the system, that is OFF, FATAL, ERROR, WARN, INFO, DEBUG and ALL.

The Level class may be subclassed to define a larger level set.


Public Types

enum  {
  OFF_INT = INT_MAX, FATAL_INT = 50000, ERROR_INT = 40000, WARN_INT = 30000,
  INFO_INT = 20000, DEBUG_INT = 10000, TRACE_INT = 5000, ALL_INT = INT_MIN
}

Public Member Functions

 Level (int level, const LogString &name, int syslogEquivalent)
 Instantiate a Level object.
void toString (std::string &name) const
 Get the name of the level in the current encoding.
void toString (std::wstring &name) const
 Get the name of the level.
void toString (std::basic_string< UniChar > &name) const
 Get the name of the level.
void toString (CFStringRef &name) const
 Get the name of the level.
LogString toString () const
 Returns the string representation of this level.
virtual bool equals (const LevelPtr &level) const
 Two levels are equal if their level fields are equal.
bool operator== (const Level &level1) const
bool operator!= (const Level &level1) const
int getSyslogEquivalent () const
 Return the syslog equivalent of this level as an integer.
virtual bool isGreaterOrEqual (const LevelPtr &level) const
 Returns true if this level has a higher or equal level than the level passed as argument, false otherwise.
int toInt () const
 Returns the integer representation of this level.

Static Public Member Functions

static LevelPtr toLevel (const std::string &sArg)
 Convert the string passed as argument to a level.
static LevelPtr toLevel (const std::string &sArg, const LevelPtr &defaultLevel)
 Convert the string passed as argument to a level.
static LevelPtr toLevel (const std::wstring &sArg)
 Convert the string passed as argument to a level.
static LevelPtr toLevel (const std::wstring &sArg, const LevelPtr &defaultLevel)
 Convert the string passed as argument to a level.
static LevelPtr toLevel (const std::basic_string< UniChar > &sArg)
 Convert the string passed as argument to a level.
static LevelPtr toLevel (const std::basic_string< UniChar > &sArg, const LevelPtr &defaultLevel)
 Convert the string passed as argument to a level.
static LevelPtr toLevel (const CFStringRef &sArg)
 Convert the string passed as argument to a level.
static LevelPtr toLevel (const CFStringRef &sArg, const LevelPtr &defaultLevel)
 Convert the string passed as argument to a level.
static LevelPtr toLevelLS (const LogString &sArg)
 Convert the string passed as argument to a level.
static LevelPtr toLevelLS (const LogString &sArg, const LevelPtr &defaultLevel)
 Convert the string passed as argument to a level.
static LevelPtr toLevel (int val)
 Convert an integer passed as argument to a level.
static LevelPtr toLevel (int val, const LevelPtr &defaultLevel)
 Convert an integer passed as argument to a level.
static LevelPtr getAll ()
static LevelPtr getFatal ()
static LevelPtr getError ()
static LevelPtr getWarn ()
static LevelPtr getInfo ()
static LevelPtr getDebug ()
static LevelPtr getTrace ()
static LevelPtr getOff ()

Classes

class  LevelClass


Member Enumeration Documentation

anonymous enum
 

Enumerator:
OFF_INT 
FATAL_INT 
ERROR_INT 
WARN_INT 
INFO_INT 
DEBUG_INT 
TRACE_INT 
ALL_INT 


Constructor & Destructor Documentation

Level int  level,
const LogString name,
int  syslogEquivalent
 

Instantiate a Level object.


Member Function Documentation

virtual bool equals const LevelPtr level  )  const [virtual]
 

Two levels are equal if their level fields are equal.

static LevelPtr getAll  )  [static]
 

static LevelPtr getDebug  )  [static]
 

static LevelPtr getError  )  [static]
 

static LevelPtr getFatal  )  [static]
 

static LevelPtr getInfo  )  [static]
 

static LevelPtr getOff  )  [static]
 

int getSyslogEquivalent  )  const [inline]
 

Return the syslog equivalent of this level as an integer.

static LevelPtr getTrace  )  [static]
 

static LevelPtr getWarn  )  [static]
 

virtual bool isGreaterOrEqual const LevelPtr level  )  const [virtual]
 

Returns true if this level has a higher or equal level than the level passed as argument, false otherwise.

You should think twice before overriding the default implementation of isGreaterOrEqual method.

bool operator!= const Level level1  )  const [inline]
 

bool operator== const Level level1  )  const [inline]
 

int toInt  )  const [inline]
 

Returns the integer representation of this level.

static LevelPtr toLevel int  val,
const LevelPtr defaultLevel
[static]
 

Convert an integer passed as argument to a level.

If the conversion fails, then this method returns the specified default.

static LevelPtr toLevel int  val  )  [static]
 

Convert an integer passed as argument to a level.

If the conversion fails, then this method returns DEBUG.

static LevelPtr toLevel const CFStringRef sArg,
const LevelPtr defaultLevel
[static]
 

Convert the string passed as argument to a level.

If the conversion fails, then this method returns the value of defaultLevel.

Parameters:
sArg level name.
defaultLevel level to return if no match.
Returns:

static LevelPtr toLevel const CFStringRef sArg  )  [static]
 

Convert the string passed as argument to a level.

If the conversion fails, then this method returns DEBUG.

Parameters:
sArg level name.

static LevelPtr toLevel const std::basic_string< UniChar > &  sArg,
const LevelPtr defaultLevel
[static]
 

Convert the string passed as argument to a level.

If the conversion fails, then this method returns the value of defaultLevel.

Parameters:
sArg level name.
defaultLevel level to return if no match.
Returns:

static LevelPtr toLevel const std::basic_string< UniChar > &  sArg  )  [static]
 

Convert the string passed as argument to a level.

If the conversion fails, then this method returns DEBUG.

Parameters:
sArg level name.

static LevelPtr toLevel const std::wstring &  sArg,
const LevelPtr defaultLevel
[static]
 

Convert the string passed as argument to a level.

If the conversion fails, then this method returns the value of defaultLevel.

Parameters:
sArg level name.
defaultLevel level to return if no match.
Returns:

static LevelPtr toLevel const std::wstring &  sArg  )  [static]
 

Convert the string passed as argument to a level.

If the conversion fails, then this method returns DEBUG.

Parameters:
sArg level name.

static LevelPtr toLevel const std::string &  sArg,
const LevelPtr defaultLevel
[static]
 

Convert the string passed as argument to a level.

If the conversion fails, then this method returns the value of defaultLevel.

Parameters:
sArg level name.
defaultLevel level to return if no match.
Returns:

static LevelPtr toLevel const std::string &  sArg  )  [static]
 

Convert the string passed as argument to a level.

If the conversion fails, then this method returns DEBUG.

Parameters:
sArg level name.

static LevelPtr toLevelLS const LogString sArg,
const LevelPtr defaultLevel
[static]
 

Convert the string passed as argument to a level.

If the conversion fails, then this method returns the value of defaultLevel.

Parameters:
sArg level name.
defaultLevel level to return if no match.
Returns:

static LevelPtr toLevelLS const LogString sArg  )  [static]
 

Convert the string passed as argument to a level.

If the conversion fails, then this method returns DEBUG.

Parameters:
sArg level name.

LogString toString  )  const
 

Returns the string representation of this level.

Returns:
level name.

void toString CFStringRef name  )  const
 

Get the name of the level.

Parameters:
name buffer to which name is appended.

void toString std::basic_string< UniChar > &  name  )  const
 

Get the name of the level.

Parameters:
name buffer to which name is appended.

void toString std::wstring &  name  )  const
 

Get the name of the level.

Parameters:
name buffer to which name is appended.

void toString std::string &  name  )  const
 

Get the name of the level in the current encoding.

Parameters:
name buffer to which name is appended.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_level-members.html100644 0 0 37064 10774263472 22745 0ustar 0 0 Apache log4cxx: Member List

Level Member List

This is the complete list of members for Level, including all inherited members.

addRef() const ObjectImpl [virtual]
ALL_INT enum valueLevel
cast(const Class &clazz) const =0Object [pure virtual]
DEBUG_INT enum valueLevel
equals(const LevelPtr &level) const Level [virtual]
ERROR_INT enum valueLevel
FATAL_INT enum valueLevel
getAll()Level [static]
getClass() const Object [virtual]
getDebug()Level [static]
getError()Level [static]
getFatal()Level [static]
getInfo()Level [static]
getOff()Level [static]
getStaticClass()Object [static]
getSyslogEquivalent() const Level [inline]
getTrace()Level [static]
getWarn()Level [static]
INFO_INT enum valueLevel
instanceof(const Class &clazz) const =0Object [pure virtual]
isGreaterOrEqual(const LevelPtr &level) const Level [virtual]
Level(int level, const LogString &name, int syslogEquivalent)Level
ObjectImpl()ObjectImpl
OFF_INT enum valueLevel
operator!=(const Level &level1) const Level [inline]
operator==(const Level &level1) const Level [inline]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
toInt() const Level [inline]
toLevel(const std::string &sArg)Level [static]
toLevel(const std::string &sArg, const LevelPtr &defaultLevel)Level [static]
toLevel(const std::wstring &sArg)Level [static]
toLevel(const std::wstring &sArg, const LevelPtr &defaultLevel)Level [static]
toLevel(const std::basic_string< UniChar > &sArg)Level [static]
toLevel(const std::basic_string< UniChar > &sArg, const LevelPtr &defaultLevel)Level [static]
toLevel(const CFStringRef &sArg)Level [static]
toLevel(const CFStringRef &sArg, const LevelPtr &defaultLevel)Level [static]
toLevel(int val)Level [static]
toLevel(int val, const LevelPtr &defaultLevel)Level [static]
toLevelLS(const LogString &sArg)Level [static]
toLevelLS(const LogString &sArg, const LevelPtr &defaultLevel)Level [static]
toString(std::string &name) const Level
toString(std::wstring &name) const Level
toString(std::basic_string< UniChar > &name) const Level
toString(CFStringRef &name) const Level
toString() const Level
TRACE_INT enum valueLevel
WARN_INT enum valueLevel
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_level_1_1_level_class.html100644 0 0 21475 10774263472 24330 0ustar 0 0 Apache log4cxx: Level::LevelClass Class Reference

Level::LevelClass Class Reference

Inherits Class.

List of all members.

Public Member Functions

 LevelClass ()
virtual LogString getName () const
virtual LevelPtr toLevel (const LogString &sArg) const
virtual LevelPtr toLevel (int val) const


Constructor & Destructor Documentation

LevelClass  )  [inline]
 


Member Function Documentation

virtual LogString getName  )  const [inline, virtual]
 

Implements Class.

virtual LevelPtr toLevel int  val  )  const [inline, virtual]
 

virtual LevelPtr toLevel const LogString sArg  )  const [inline, virtual]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_level_1_1_level_class-members.html100644 0 0 12725 10774263472 25756 0ustar 0 0 Apache log4cxx: Member List

Level::LevelClass Member List

This is the complete list of members for Level::LevelClass, including all inherited members.

Class()Class [protected]
forName(const LogString &className)Class [static]
getName() const Level::LevelClass [inline, virtual]
LevelClass()Level::LevelClass [inline]
newInstance() const Class [virtual]
registerClass(const Class &newClass)Class [static]
toLevel(const LogString &sArg) const Level::LevelClass [inline, virtual]
toLevel(int val) const Level::LevelClass [inline, virtual]
toString() const Class
~Class()Class [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_logger.html100644 0 0 1250130 10774263472 21515 0ustar 0 0 Apache log4cxx: Logger Class Reference

Logger Class Reference

Inherits AppenderAttachable, and ObjectImpl.

Inherited by RootLogger.

List of all members.


Detailed Description

This is the central class in the log4cxx package.

Most logging operations, except configuration, are done through this class.


Public Member Functions

 ~Logger ()
void addRef () const
void releaseRef () const
virtual void addAppender (const AppenderPtr &newAppender)
 Add newAppender to the list of appenders of this Logger instance.
void callAppenders (const log4cxx::spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p) const
 Call the appenders in the hierrachy starting at this.
void closeNestedAppenders ()
 Close all attached appenders implementing the AppenderAttachable interface.
void debug (const std::string &msg, const log4cxx::spi::LocationInfo &location) const
 Log a message string with the DEBUG level.
void debug (const std::string &msg) const
 Log a message string with the DEBUG level.
void debug (const std::wstring &msg, const log4cxx::spi::LocationInfo &location) const
 Log a message string with the DEBUG level.
void debug (const std::wstring &msg) const
 Log a message string with the DEBUG level.
void debug (const std::basic_string< UniChar > &msg, const log4cxx::spi::LocationInfo &location) const
 Log a message string with the DEBUG level.
void debug (const std::basic_string< UniChar > &msg) const
 Log a message string with the DEBUG level.
void debug (const CFStringRef &msg, const log4cxx::spi::LocationInfo &location) const
 Log a message string with the DEBUG level.
void debug (const CFStringRef &msg) const
 Log a message string with the DEBUG level.
void error (const std::string &msg, const log4cxx::spi::LocationInfo &location) const
 Log a message string with the ERROR level.
void error (const std::string &msg) const
 Log a message string with the ERROR level.
void error (const std::wstring &msg) const
 Log a message string with the ERROR level.
void error (const std::wstring &msg, const log4cxx::spi::LocationInfo &location) const
 Log a message string with the ERROR level.
void error (const std::basic_string< UniChar > &msg, const log4cxx::spi::LocationInfo &location) const
 Log a message string with the ERROR level.
void error (const std::basic_string< UniChar > &msg) const
 Log a message string with the ERROR level.
void error (const CFStringRef &msg, const log4cxx::spi::LocationInfo &location) const
 Log a message string with the ERROR level.
void error (const CFStringRef &msg) const
 Log a message string with the ERROR level.
void fatal (const std::string &msg, const log4cxx::spi::LocationInfo &location) const
 Log a message string with the FATAL level.
void fatal (const std::string &msg) const
 Log a message string with the ERROR level.
void fatal (const std::wstring &msg, const log4cxx::spi::LocationInfo &location) const
 Log a message string with the ERROR level.
void fatal (const std::wstring &msg) const
 Log a message string with the ERROR level.
void fatal (const std::basic_string< UniChar > &msg, const log4cxx::spi::LocationInfo &location) const
 Log a message string with the ERROR level.
void fatal (const std::basic_string< UniChar > &msg) const
 Log a message string with the ERROR level.
void fatal (const CFStringRef &msg, const log4cxx::spi::LocationInfo &location) const
 Log a message string with the ERROR level.
void fatal (const CFStringRef &msg) const
 Log a message string with the ERROR level.
void forcedLog (const LevelPtr &level, const std::string &message, const log4cxx::spi::LocationInfo &location) const
 This method creates a new logging event and logs the event without further checks.
void forcedLog (const LevelPtr &level, const std::string &message) const
 This method creates a new logging event and logs the event without further checks.
void forcedLog (const LevelPtr &level, const std::wstring &message, const log4cxx::spi::LocationInfo &location) const
 This method creates a new logging event and logs the event without further checks.
void forcedLog (const LevelPtr &level, const std::wstring &message) const
 This method creates a new logging event and logs the event without further checks.
void forcedLog (const LevelPtr &level, const std::basic_string< UniChar > &message, const log4cxx::spi::LocationInfo &location) const
 This method creates a new logging event and logs the event without further checks.
void forcedLog (const LevelPtr &level, const std::basic_string< UniChar > &message) const
 This method creates a new logging event and logs the event without further checks.
void forcedLog (const LevelPtr &level, const CFStringRef &message, const log4cxx::spi::LocationInfo &location) const
 This method creates a new logging event and logs the event without further checks.
void forcedLog (const LevelPtr &level, const CFStringRef &message) const
 This method creates a new logging event and logs the event without further checks.
void forcedLogLS (const LevelPtr &level, const LogString &message, const log4cxx::spi::LocationInfo &location) const
 This method creates a new logging event and logs the event without further checks.
bool getAdditivity () const
 Get the additivity flag for this Logger instance.
AppenderList getAllAppenders () const
 Get the appenders contained in this logger as an AppenderList.
AppenderPtr getAppender (const LogString &name) const
 Look for the appender named as name.
virtual const LevelPtrgetEffectiveLevel () const
 Starting from this logger, search the logger hierarchy for a non-null level and return it.
log4cxx::spi::LoggerRepositoryPtr getLoggerRepository () const
 Return the the LoggerRepository where this Logger is attached.
const LogString getName () const
 Get the logger name.
void getName (std::string &name) const
 Get logger name in current encoding.
void getName (std::wstring &name) const
 Get logger name.
void getName (std::basic_string< UniChar > &name) const
 Get logger name.
void getName (CFStringRef &name) const
 Get logger name.
LoggerPtr getParent () const
 Returns the parent of this logger.
LevelPtr getLevel () const
 Returns the assigned Level, if any, for this Logger.
helpers::ResourceBundlePtr getResourceBundle () const
 Return the inherited ResourceBundle for this logger.
void info (const std::string &msg, const log4cxx::spi::LocationInfo &location) const
 Log a message string with the INFO level.
void info (const std::string &msg) const
void info (const std::wstring &msg, const log4cxx::spi::LocationInfo &location) const
 Log a message string with the INFO level.
void info (const std::wstring &msg) const
 Log a message string with the INFO level.
void info (const std::basic_string< UniChar > &msg, const log4cxx::spi::LocationInfo &location) const
 Log a message string with the INFO level.
void info (const std::basic_string< UniChar > &msg) const
 Log a message string with the INFO level.
void info (const CFStringRef &msg, const log4cxx::spi::LocationInfo &location) const
 Log a message string with the INFO level.
void info (const CFStringRef &msg) const
 Log a message string with the INFO level.
bool isAttached (const AppenderPtr &appender) const
 Is the appender passed as parameter attached to this logger?
bool isDebugEnabled () const
 Check whether this logger is enabled for the DEBUG Level.
bool isEnabledFor (const LevelPtr &level) const
 Check whether this logger is enabled for a given Level passed as parameter.
bool isInfoEnabled () const
 Check whether this logger is enabled for the info Level.
bool isWarnEnabled () const
 Check whether this logger is enabled for the warn Level.
bool isErrorEnabled () const
 Check whether this logger is enabled for the error Level.
bool isFatalEnabled () const
 Check whether this logger is enabled for the fatal Level.
bool isTraceEnabled () const
 Check whether this logger is enabled for the trace level.
void l7dlog (const LevelPtr &level, const LogString &key, const log4cxx::spi::LocationInfo &locationInfo, const std::vector< LogString > &values) const
 Log a localized and parameterized message.
void l7dlog (const LevelPtr &level, const std::string &key, const log4cxx::spi::LocationInfo &locationInfo) const
 Log a localized and parameterized message.
void l7dlog (const LevelPtr &level, const std::string &key, const log4cxx::spi::LocationInfo &locationInfo, const std::string &val1) const
 Log a localized and parameterized message.
void l7dlog (const LevelPtr &level, const std::string &key, const log4cxx::spi::LocationInfo &locationInfo, const std::string &val1, const std::string &val2) const
 Log a localized and parameterized message.
void l7dlog (const LevelPtr &level, const std::string &key, const log4cxx::spi::LocationInfo &locationInfo, const std::string &val1, const std::string &val2, const std::string &val3) const
 Log a localized and parameterized message.
void l7dlog (const LevelPtr &level, const std::wstring &key, const log4cxx::spi::LocationInfo &locationInfo) const
 Log a localized and parameterized message.
void l7dlog (const LevelPtr &level, const std::wstring &key, const log4cxx::spi::LocationInfo &locationInfo, const std::wstring &val1) const
 Log a localized and parameterized message.
void l7dlog (const LevelPtr &level, const std::wstring &key, const log4cxx::spi::LocationInfo &locationInfo, const std::wstring &val1, const std::wstring &val2) const
 Log a localized and parameterized message.
void l7dlog (const LevelPtr &level, const std::wstring &key, const log4cxx::spi::LocationInfo &locationInfo, const std::wstring &val1, const std::wstring &val2, const std::wstring &val3) const
 Log a localized and parameterized message.
void l7dlog (const LevelPtr &level, const std::basic_string< UniChar > &key, const log4cxx::spi::LocationInfo &locationInfo) const
 Log a localized and parameterized message.
void l7dlog (const LevelPtr &level, const std::basic_string< UniChar > &key, const log4cxx::spi::LocationInfo &locationInfo, const std::basic_string< UniChar > &val1) const
 Log a localized and parameterized message.
void l7dlog (const LevelPtr &level, const std::basic_string< UniChar > &key, const log4cxx::spi::LocationInfo &locationInfo, const std::basic_string< UniChar > &val1, const std::basic_string< UniChar > &val2) const
 Log a localized and parameterized message.
void l7dlog (const LevelPtr &level, const std::basic_string< UniChar > &key, const log4cxx::spi::LocationInfo &locationInfo, const std::basic_string< UniChar > &val1, const std::basic_string< UniChar > &val2, const std::basic_string< UniChar > &val3) const
 Log a localized and parameterized message.
void l7dlog (const LevelPtr &level, const CFStringRef &key, const log4cxx::spi::LocationInfo &locationInfo) const
 Log a localized and parameterized message.
void l7dlog (const LevelPtr &level, const CFStringRef &key, const log4cxx::spi::LocationInfo &locationInfo, const CFStringRef &val1) const
 Log a localized and parameterized message.
void l7dlog (const LevelPtr &level, const CFStringRef &key, const log4cxx::spi::LocationInfo &locationInfo, const CFStringRef &val1, const CFStringRef &val2) const
 Log a localized and parameterized message.
void l7dlog (const LevelPtr &level, const CFStringRef &key, const log4cxx::spi::LocationInfo &locationInfo, const CFStringRef &val1, const CFStringRef &val2, const CFStringRef &val3) const
 Log a localized and parameterized message.
void log (const LevelPtr &level, const std::string &message, const log4cxx::spi::LocationInfo &location) const
 This is the most generic printing method.
void log (const LevelPtr &level, const std::string &message) const
 This is the most generic printing method.
void log (const LevelPtr &level, const std::wstring &message, const log4cxx::spi::LocationInfo &location) const
 This is the most generic printing method.
void log (const LevelPtr &level, const std::wstring &message) const
 This is the most generic printing method.
void log (const LevelPtr &level, const std::basic_string< UniChar > &message, const log4cxx::spi::LocationInfo &location) const
 This is the most generic printing method.
void log (const LevelPtr &level, const std::basic_string< UniChar > &message) const
 This is the most generic printing method.
void log (const LevelPtr &level, const CFStringRef &message, const log4cxx::spi::LocationInfo &location) const
 This is the most generic printing method.
void log (const LevelPtr &level, const CFStringRef &message) const
 This is the most generic printing method.
void logLS (const LevelPtr &level, const LogString &message, const log4cxx::spi::LocationInfo &location) const
 This is the most generic printing method.
void removeAllAppenders ()
 Remove all previously added appenders from this logger instance.
void removeAppender (const AppenderPtr &appender)
 Remove the appender passed as parameter form the list of appenders.
void removeAppender (const LogString &name)
 Remove the appender with the name passed as parameter form the list of appenders.
void setAdditivity (bool additive)
 Set the additivity flag for this Logger instance.
virtual void setLevel (const LevelPtr &level)
 Set the level of this Logger.
void setResourceBundle (const helpers::ResourceBundlePtr &bundle)
 Set the resource bundle to be used with localized logging methods.
void warn (const std::wstring &msg, const log4cxx::spi::LocationInfo &location) const
 Log a message string with the WARN level.
void warn (const std::wstring &msg) const
 Log a message string with the WARN level.
void warn (const std::basic_string< UniChar > &msg, const log4cxx::spi::LocationInfo &location) const
 Log a message string with the WARN level.
void warn (const std::basic_string< UniChar > &msg) const
 Log a message string with the WARN level.
void warn (const CFStringRef &msg, const log4cxx::spi::LocationInfo &location) const
 Log a message string with the WARN level.
void warn (const CFStringRef &msg) const
 Log a message string with the WARN level.
void warn (const std::string &msg, const log4cxx::spi::LocationInfo &location) const
 Log a message string with the WARN level.
void warn (const std::string &msg) const
 Log a message string with the WARN level.
void trace (const std::wstring &msg, const log4cxx::spi::LocationInfo &location) const
 Log a message string with the TRACE level.
void trace (const std::wstring &msg) const
 Log a message string with the TRACE level.
void trace (const std::basic_string< UniChar > &msg, const log4cxx::spi::LocationInfo &location) const
 Log a message string with the TRACE level.
void trace (const std::basic_string< UniChar > &msg) const
 Log a message string with the TRACE level.
void trace (const CFStringRef &msg, const log4cxx::spi::LocationInfo &location) const
 Log a message string with the TRACE level.
void trace (const CFStringRef &msg) const
 Log a message string with the TRACE level.
void trace (const std::string &msg, const log4cxx::spi::LocationInfo &location) const
 Log a message string with the TRACE level.
void trace (const std::string &msg) const
 Log a message string with the TRACE level.
const log4cxx::helpers::MutexgetMutex () const

Static Public Member Functions

static LoggerPtr getLogger (const std::string &name)
 Retrieve a logger by name in current encoding.
static LoggerPtr getLogger (const char *const name)
 Retrieve a logger by name in current encoding.
static LoggerPtr getLogger (const std::wstring &name)
 Retrieve a logger by name.
static LoggerPtr getLogger (const wchar_t *const name)
 Retrieve a logger by name.
static LoggerPtr getLogger (const std::basic_string< UniChar > &name)
 Retrieve a logger by name.
static LoggerPtr getLogger (const CFStringRef &name)
 Retrieve a logger by name.
static LoggerPtr getLoggerLS (const LogString &name)
 Retrieve a logger by name in Unicode.
static LoggerPtr getRootLogger ()
 Retrieve the root logger.
static LoggerPtr getLoggerLS (const LogString &name, const log4cxx::spi::LoggerFactoryPtr &factory)
 Like getLogger except that the type of logger instantiated depends on the type returned by the LoggerFactory::makeNewLoggerInstance method of the factory parameter.
static LoggerPtr getLogger (const std::string &name, const log4cxx::spi::LoggerFactoryPtr &factory)
 Like getLogger except that the type of logger instantiated depends on the type returned by the LoggerFactory::makeNewLoggerInstance method of the factory parameter.
static LoggerPtr getLogger (const std::wstring &name, const log4cxx::spi::LoggerFactoryPtr &factory)
 Like getLogger except that the type of logger instantiated depends on the type returned by the LoggerFactory::makeNewLoggerInstance method of the factory parameter.
static LoggerPtr getLogger (const std::basic_string< UniChar > &name, const log4cxx::spi::LoggerFactoryPtr &factory)
 Like getLogger except that the type of logger instantiated depends on the type returned by the LoggerFactory::makeNewLoggerInstance method of the factory parameter.
static LoggerPtr getLogger (const CFStringRef &name, const log4cxx::spi::LoggerFactoryPtr &factory)
 Like getLogger except that the type of logger instantiated depends on the type returned by the LoggerFactory::makeNewLoggerInstance method of the factory parameter.

Protected Member Functions

 Logger (log4cxx::helpers::Pool &pool, const LogString &name)
 This constructor created a new logger instance and sets its name.
LogString getResourceBundleString (const LogString &key) const
 Returns the string resource coresponding to key in this logger's inherited resource bundle.
void setHierarchy (spi::LoggerRepository *repository)
 Only the Hierarchy class can set the hierarchy of a logger.

Protected Attributes

LogString name
 The name of this logger.
LevelPtr level
 The assigned level of this logger.
LoggerPtr parent
 The parent of this logger.
helpers::ResourceBundlePtr resourceBundle
 The resourceBundle for localized messages.
log4cxx::spi::LoggerRepositoryrepository
helpers::AppenderAttachableImplPtr aai
bool additive
 Additivity is set to true by default, that is children inherit the appenders of their ancestors by default.

Friends

class DefaultLoggerFactory
class Hierarchy
class log4cxx::helpers::synchronized


Constructor & Destructor Documentation

Logger log4cxx::helpers::Pool pool,
const LogString name
[protected]
 

This constructor created a new logger instance and sets its name.

It is intended to be used by sub-classes only. You should not create categories directly.

Parameters:
pool lifetime of pool must be longer than logger.
name The name of the logger.

~Logger  ) 
 


Member Function Documentation

virtual void addAppender const AppenderPtr newAppender  )  [virtual]
 

Add newAppender to the list of appenders of this Logger instance.

If newAppender is already in the list of appenders, then it won't be added again.

Implements AppenderAttachable.

void addRef  )  const [virtual]
 

Reimplemented from ObjectImpl.

void callAppenders const log4cxx::spi::LoggingEventPtr event,
log4cxx::helpers::Pool p
const
 

Call the appenders in the hierrachy starting at this.

If no appenders could be found, emit a warning.

This method calls all the appenders inherited from the hierarchy circumventing any evaluation of whether to log or not to log the particular log request.

Parameters:
event the event to log.
p memory pool for any allocations needed to process request.

void closeNestedAppenders  ) 
 

Close all attached appenders implementing the AppenderAttachable interface.

void debug const CFStringRef msg  )  const
 

Log a message string with the DEBUG level.

This method first checks if this logger is DEBUG enabled by comparing the level of this logger with the DEBUG level. If this logger is DEBUG enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.

void debug const CFStringRef msg,
const log4cxx::spi::LocationInfo location
const
 

Log a message string with the DEBUG level.

This method first checks if this logger is DEBUG enabled by comparing the level of this logger with the DEBUG level. If this logger is DEBUG enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.
location location of source of logging request.

void debug const std::basic_string< UniChar > &  msg  )  const
 

Log a message string with the DEBUG level.

This method first checks if this logger is DEBUG enabled by comparing the level of this logger with the DEBUG level. If this logger is DEBUG enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.

void debug const std::basic_string< UniChar > &  msg,
const log4cxx::spi::LocationInfo location
const
 

Log a message string with the DEBUG level.

This method first checks if this logger is DEBUG enabled by comparing the level of this logger with the DEBUG level. If this logger is DEBUG enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.
location location of source of logging request.

void debug const std::wstring &  msg  )  const
 

Log a message string with the DEBUG level.

This method first checks if this logger is DEBUG enabled by comparing the level of this logger with the DEBUG level. If this logger is DEBUG enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.

void debug const std::wstring &  msg,
const log4cxx::spi::LocationInfo location
const
 

Log a message string with the DEBUG level.

This method first checks if this logger is DEBUG enabled by comparing the level of this logger with the DEBUG level. If this logger is DEBUG enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.
location location of source of logging request.

void debug const std::string &  msg  )  const
 

Log a message string with the DEBUG level.

This method first checks if this logger is DEBUG enabled by comparing the level of this logger with the DEBUG level. If this logger is DEBUG enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.

void debug const std::string &  msg,
const log4cxx::spi::LocationInfo location
const
 

Log a message string with the DEBUG level.

This method first checks if this logger is DEBUG enabled by comparing the level of this logger with the DEBUG level. If this logger is DEBUG enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.
location location of source of logging request.

void error const CFStringRef msg  )  const
 

Log a message string with the ERROR level.

This method first checks if this logger is ERROR enabled by comparing the level of this logger with the ERROR level. If this logger is ERROR enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.

void error const CFStringRef msg,
const log4cxx::spi::LocationInfo location
const
 

Log a message string with the ERROR level.

This method first checks if this logger is ERROR enabled by comparing the level of this logger with the ERROR level. If this logger is ERROR enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.
location location of source of logging request.

void error const std::basic_string< UniChar > &  msg  )  const
 

Log a message string with the ERROR level.

This method first checks if this logger is ERROR enabled by comparing the level of this logger with the ERROR level. If this logger is ERROR enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.

void error const std::basic_string< UniChar > &  msg,
const log4cxx::spi::LocationInfo location
const
 

Log a message string with the ERROR level.

This method first checks if this logger is ERROR enabled by comparing the level of this logger with the ERROR level. If this logger is ERROR enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.
location location of source of logging request.

void error const std::wstring &  msg,
const log4cxx::spi::LocationInfo location
const
 

Log a message string with the ERROR level.

This method first checks if this logger is ERROR enabled by comparing the level of this logger with the ERROR level. If this logger is ERROR enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.
location location of source of logging request.

void error const std::wstring &  msg  )  const
 

Log a message string with the ERROR level.

This method first checks if this logger is ERROR enabled by comparing the level of this logger with the ERROR level. If this logger is ERROR enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.

void error const std::string &  msg  )  const
 

Log a message string with the ERROR level.

This method first checks if this logger is ERROR enabled by comparing the level of this logger with the ERROR level. If this logger is ERROR enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.

void error const std::string &  msg,
const log4cxx::spi::LocationInfo location
const
 

Log a message string with the ERROR level.

This method first checks if this logger is ERROR enabled by comparing the level of this logger with the ERROR level. If this logger is ERROR enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.
location location of source of logging request.

void fatal const CFStringRef msg  )  const
 

Log a message string with the ERROR level.

This method first checks if this logger is ERROR enabled by comparing the level of this logger with the ERROR level. If this logger is ERROR enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.

void fatal const CFStringRef msg,
const log4cxx::spi::LocationInfo location
const
 

Log a message string with the ERROR level.

This method first checks if this logger is ERROR enabled by comparing the level of this logger with the ERROR level. If this logger is ERROR enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.
location location of source of logging request.

void fatal const std::basic_string< UniChar > &  msg  )  const
 

Log a message string with the ERROR level.

This method first checks if this logger is ERROR enabled by comparing the level of this logger with the ERROR level. If this logger is ERROR enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.

void fatal const std::basic_string< UniChar > &  msg,
const log4cxx::spi::LocationInfo location
const
 

Log a message string with the ERROR level.

This method first checks if this logger is ERROR enabled by comparing the level of this logger with the ERROR level. If this logger is ERROR enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.
location location of source of logging request.

void fatal const std::wstring &  msg  )  const
 

Log a message string with the ERROR level.

This method first checks if this logger is ERROR enabled by comparing the level of this logger with the ERROR level. If this logger is ERROR enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.

void fatal const std::wstring &  msg,
const log4cxx::spi::LocationInfo location
const
 

Log a message string with the ERROR level.

This method first checks if this logger is ERROR enabled by comparing the level of this logger with the ERROR level. If this logger is ERROR enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.
location location of source of logging request.

void fatal const std::string &  msg  )  const
 

Log a message string with the ERROR level.

This method first checks if this logger is ERROR enabled by comparing the level of this logger with the ERROR level. If this logger is ERROR enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.

void fatal const std::string &  msg,
const log4cxx::spi::LocationInfo location
const
 

Log a message string with the FATAL level.

This method first checks if this logger is FATAL enabled by comparing the level of this logger with the FATAL level. If this logger is FATAL enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.
location location of source of logging request.

void forcedLog const LevelPtr level,
const CFStringRef message
const
 

This method creates a new logging event and logs the event without further checks.

Parameters:
level the level to log.
message message.

void forcedLog const LevelPtr level,
const CFStringRef message,
const log4cxx::spi::LocationInfo location
const
 

This method creates a new logging event and logs the event without further checks.

Parameters:
level the level to log.
message message.
location location of source of logging request.

void forcedLog const LevelPtr level,
const std::basic_string< UniChar > &  message
const
 

This method creates a new logging event and logs the event without further checks.

Parameters:
level the level to log.
message message.

void forcedLog const LevelPtr level,
const std::basic_string< UniChar > &  message,
const log4cxx::spi::LocationInfo location
const
 

This method creates a new logging event and logs the event without further checks.

Parameters:
level the level to log.
message message.
location location of source of logging request.

void forcedLog const LevelPtr level,
const std::wstring &  message
const
 

This method creates a new logging event and logs the event without further checks.

Parameters:
level the level to log.
message message.

void forcedLog const LevelPtr level,
const std::wstring &  message,
const log4cxx::spi::LocationInfo location
const
 

This method creates a new logging event and logs the event without further checks.

Parameters:
level the level to log.
message message.
location location of source of logging request.

void forcedLog const LevelPtr level,
const std::string &  message
const
 

This method creates a new logging event and logs the event without further checks.

Parameters:
level the level to log.
message message.

void forcedLog const LevelPtr level,
const std::string &  message,
const log4cxx::spi::LocationInfo location
const
 

This method creates a new logging event and logs the event without further checks.

Parameters:
level the level to log.
message message.
location location of source of logging request.

void forcedLogLS const LevelPtr level,
const LogString message,
const log4cxx::spi::LocationInfo location
const
 

This method creates a new logging event and logs the event without further checks.

Parameters:
level the level to log.
message the message string to log.
location location of the logging statement.

bool getAdditivity  )  const
 

Get the additivity flag for this Logger instance.

AppenderList getAllAppenders  )  const [virtual]
 

Get the appenders contained in this logger as an AppenderList.

If no appenders can be found, then an empty AppenderList is returned.

Returns:
AppenderList An collection of the appenders in this logger.

Implements AppenderAttachable.

AppenderPtr getAppender const LogString name  )  const [virtual]
 

Look for the appender named as name.

Return the appender with that name if in the list. Return NULL otherwise.

Implements AppenderAttachable.

virtual const LevelPtr& getEffectiveLevel  )  const [virtual]
 

Starting from this logger, search the logger hierarchy for a non-null level and return it.

The Logger class is designed so that this method executes as quickly as possible.

Exceptions:
RuntimeException if all levels are null in the hierarchy

Reimplemented in RootLogger.

LevelPtr getLevel  )  const
 

Returns the assigned Level, if any, for this Logger.

Returns:
Level - the assigned Level, can be null.

static LoggerPtr getLogger const CFStringRef name,
const log4cxx::spi::LoggerFactoryPtr factory
[static]
 

Like getLogger except that the type of logger instantiated depends on the type returned by the LoggerFactory::makeNewLoggerInstance method of the factory parameter.

This method is intended to be used by sub-classes.

Parameters:
name The name of the logger to retrieve.
factory A LoggerFactory implementation that will actually create a new Instance.

static LoggerPtr getLogger const std::basic_string< UniChar > &  name,
const log4cxx::spi::LoggerFactoryPtr factory
[static]
 

Like getLogger except that the type of logger instantiated depends on the type returned by the LoggerFactory::makeNewLoggerInstance method of the factory parameter.

This method is intended to be used by sub-classes.

Parameters:
name The name of the logger to retrieve.
factory A LoggerFactory implementation that will actually create a new Instance.

static LoggerPtr getLogger const std::wstring &  name,
const log4cxx::spi::LoggerFactoryPtr factory
[static]
 

Like getLogger except that the type of logger instantiated depends on the type returned by the LoggerFactory::makeNewLoggerInstance method of the factory parameter.

This method is intended to be used by sub-classes.

Parameters:
name The name of the logger to retrieve.
factory A LoggerFactory implementation that will actually create a new Instance.

static LoggerPtr getLogger const std::string &  name,
const log4cxx::spi::LoggerFactoryPtr factory
[static]
 

Like getLogger except that the type of logger instantiated depends on the type returned by the LoggerFactory::makeNewLoggerInstance method of the factory parameter.

This method is intended to be used by sub-classes.

Parameters:
name The name of the logger to retrieve.
factory A LoggerFactory implementation that will actually create a new Instance.

static LoggerPtr getLogger const CFStringRef name  )  [static]
 

Retrieve a logger by name.

Parameters:
name logger name.

static LoggerPtr getLogger const std::basic_string< UniChar > &  name  )  [static]
 

Retrieve a logger by name.

Parameters:
name logger name.

static LoggerPtr getLogger const wchar_t *const   name  )  [static]
 

Retrieve a logger by name.

Parameters:
name logger name.

static LoggerPtr getLogger const std::wstring &  name  )  [static]
 

Retrieve a logger by name.

Parameters:
name logger name.

static LoggerPtr getLogger const char *const   name  )  [static]
 

Retrieve a logger by name in current encoding.

Parameters:
name logger name.

static LoggerPtr getLogger const std::string &  name  )  [static]
 

Retrieve a logger by name in current encoding.

Parameters:
name logger name.

static LoggerPtr getLoggerLS const LogString name,
const log4cxx::spi::LoggerFactoryPtr factory
[static]
 

Like getLogger except that the type of logger instantiated depends on the type returned by the LoggerFactory::makeNewLoggerInstance method of the factory parameter.

This method is intended to be used by sub-classes.

Parameters:
name The name of the logger to retrieve.
factory A LoggerFactory implementation that will actually create a new Instance.

static LoggerPtr getLoggerLS const LogString name  )  [static]
 

Retrieve a logger by name in Unicode.

Parameters:
name logger name.

log4cxx::spi::LoggerRepositoryPtr getLoggerRepository  )  const
 

Return the the LoggerRepository where this Logger is attached.

const log4cxx::helpers::Mutex& getMutex  )  const [inline]
 

void getName CFStringRef name  )  const
 

Get logger name.

Parameters:
name buffer to which name is appended.

void getName std::basic_string< UniChar > &  name  )  const
 

Get logger name.

Parameters:
name buffer to which name is appended.

void getName std::wstring &  name  )  const
 

Get logger name.

Parameters:
name buffer to which name is appended.

void getName std::string &  name  )  const
 

Get logger name in current encoding.

Parameters:
name buffer to which name is appended.

const LogString getName  )  const [inline]
 

Get the logger name.

Returns:
logger name as LogString.

LoggerPtr getParent  )  const
 

Returns the parent of this logger.

Note that the parent of a given logger may change during the lifetime of the logger.

The root logger will return 0.

helpers::ResourceBundlePtr getResourceBundle  )  const
 

Return the inherited ResourceBundle for this logger.

This method walks the hierarchy to find the appropriate resource bundle. It will return the resource bundle attached to the closest ancestor of this logger, much like the way priorities are searched. In case there is no bundle in the hierarchy then NULL is returned.

LogString getResourceBundleString const LogString key  )  const [protected]
 

Returns the string resource coresponding to key in this logger's inherited resource bundle.

If the resource cannot be found, then an error message will be logged complaining about the missing resource.

See also:
getResourceBundle.

static LoggerPtr getRootLogger  )  [static]
 

Retrieve the root logger.

void info const CFStringRef msg  )  const
 

Log a message string with the INFO level.

This method first checks if this logger is INFO enabled by comparing the level of this logger with the INFO level. If this logger is INFO enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.

void info const CFStringRef msg,
const log4cxx::spi::LocationInfo location
const
 

Log a message string with the INFO level.

This method first checks if this logger is INFO enabled by comparing the level of this logger with the INFO level. If this logger is INFO enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.
location location of source of logging request.

void info const std::basic_string< UniChar > &  msg  )  const
 

Log a message string with the INFO level.

This method first checks if this logger is INFO enabled by comparing the level of this logger with the INFO level. If this logger is INFO enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.

void info const std::basic_string< UniChar > &  msg,
const log4cxx::spi::LocationInfo location
const
 

Log a message string with the INFO level.

This method first checks if this logger is INFO enabled by comparing the level of this logger with the INFO level. If this logger is INFO enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.
location location of source of logging request.

void info const std::wstring &  msg  )  const
 

Log a message string with the INFO level.

This method first checks if this logger is INFO enabled by comparing the level of this logger with the INFO level. If this logger is INFO enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.

void info const std::wstring &  msg,
const log4cxx::spi::LocationInfo location
const
 

Log a message string with the INFO level.

This method first checks if this logger is INFO enabled by comparing the level of this logger with the INFO level. If this logger is INFO enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.
location location of source of logging request.

void info const std::string &  msg  )  const
 

void info const std::string &  msg,
const log4cxx::spi::LocationInfo location
const
 

Log a message string with the INFO level.

This method first checks if this logger is INFO enabled by comparing the level of this logger with the INFO level. If this logger is INFO enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.
location location of source of logging request.

bool isAttached const AppenderPtr appender  )  const [virtual]
 

Is the appender passed as parameter attached to this logger?

Implements AppenderAttachable.

bool isDebugEnabled  )  const
 

Check whether this logger is enabled for the DEBUG Level.

This function is intended to lessen the computational cost of disabled log debug statements.

For some logger Logger object, when you write,

      logger->debug("debug message");
  

You incur the cost constructing the message, concatenation in this case, regardless of whether the message is logged or not.

If you are worried about speed, then you should write

    if(logger->isDebugEnabled()) {
      logger->debug("debug message");
    }
  

This way you will not incur the cost of parameter construction if debugging is disabled for logger. On the other hand, if the logger is debug enabled, you will incur the cost of evaluating whether the logger is debug enabled twice. Once in isDebugEnabled and once in the debug. This is an insignificant overhead since evaluating a logger takes about 1%% of the time it takes to actually log.

Returns:
bool - true if this logger is debug enabled, false otherwise.

bool isEnabledFor const LevelPtr level  )  const
 

Check whether this logger is enabled for a given Level passed as parameter.

See also isDebugEnabled.

Returns:
bool True if this logger is enabled for level.

bool isErrorEnabled  )  const
 

Check whether this logger is enabled for the error Level.

See also isDebugEnabled.

Returns:
bool - true if this logger is enabled for level error, false otherwise.

bool isFatalEnabled  )  const
 

Check whether this logger is enabled for the fatal Level.

See also isDebugEnabled.

Returns:
bool - true if this logger is enabled for level fatal, false otherwise.

bool isInfoEnabled  )  const
 

Check whether this logger is enabled for the info Level.

See also isDebugEnabled.

Returns:
bool - true if this logger is enabled for level info, false otherwise.

bool isTraceEnabled  )  const
 

Check whether this logger is enabled for the trace level.

See also isDebugEnabled.

Returns:
bool - true if this logger is enabled for level trace, false otherwise.

bool isWarnEnabled  )  const
 

Check whether this logger is enabled for the warn Level.

See also isDebugEnabled.

Returns:
bool - true if this logger is enabled for level warn, false otherwise.

void l7dlog const LevelPtr level,
const CFStringRef key,
const log4cxx::spi::LocationInfo locationInfo,
const CFStringRef val1,
const CFStringRef val2,
const CFStringRef val3
const
 

Log a localized and parameterized message.

First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params.

Parameters:
level The level of the logging request.
key The key to be searched in the ResourceBundle.
locationInfo The location info of the logging request.
val1 The value for the first placeholder within the pattern.
val2 The value for the second placeholder within the pattern.
val3 The value for the third placeholder within the pattern.
See also:
setResourceBundle

void l7dlog const LevelPtr level,
const CFStringRef key,
const log4cxx::spi::LocationInfo locationInfo,
const CFStringRef val1,
const CFStringRef val2
const
 

Log a localized and parameterized message.

First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params.

Parameters:
level The level of the logging request.
key The key to be searched in the ResourceBundle.
locationInfo The location info of the logging request.
val1 The value for the first placeholder within the pattern.
val2 The value for the second placeholder within the pattern.
See also:
setResourceBundle

void l7dlog const LevelPtr level,
const CFStringRef key,
const log4cxx::spi::LocationInfo locationInfo,
const CFStringRef val1
const
 

Log a localized and parameterized message.

First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params.

Parameters:
level The level of the logging request.
key The key to be searched in the ResourceBundle.
locationInfo The location info of the logging request.
val1 The value for the first placeholder within the pattern.
See also:
setResourceBundle

void l7dlog const LevelPtr level,
const CFStringRef key,
const log4cxx::spi::LocationInfo locationInfo
const
 

Log a localized and parameterized message.

First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params.

Parameters:
level The level of the logging request.
key The key to be searched in the ResourceBundle.
locationInfo The location info of the logging request.
See also:
setResourceBundle

void l7dlog const LevelPtr level,
const std::basic_string< UniChar > &  key,
const log4cxx::spi::LocationInfo locationInfo,
const std::basic_string< UniChar > &  val1,
const std::basic_string< UniChar > &  val2,
const std::basic_string< UniChar > &  val3
const
 

Log a localized and parameterized message.

First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params.

Parameters:
level The level of the logging request.
key The key to be searched in the ResourceBundle.
locationInfo The location info of the logging request.
val1 The value for the first placeholder within the pattern.
val2 The value for the second placeholder within the pattern.
val3 The value for the third placeholder within the pattern.
See also:
setResourceBundle

void l7dlog const LevelPtr level,
const std::basic_string< UniChar > &  key,
const log4cxx::spi::LocationInfo locationInfo,
const std::basic_string< UniChar > &  val1,
const std::basic_string< UniChar > &  val2
const
 

Log a localized and parameterized message.

First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params.

Parameters:
level The level of the logging request.
key The key to be searched in the ResourceBundle.
locationInfo The location info of the logging request.
val1 The value for the first placeholder within the pattern.
val2 The value for the second placeholder within the pattern.
See also:
setResourceBundle

void l7dlog const LevelPtr level,
const std::basic_string< UniChar > &  key,
const log4cxx::spi::LocationInfo locationInfo,
const std::basic_string< UniChar > &  val1
const
 

Log a localized and parameterized message.

First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params.

Parameters:
level The level of the logging request.
key The key to be searched in the ResourceBundle.
locationInfo The location info of the logging request.
val1 The value for the first placeholder within the pattern.
See also:
setResourceBundle

void l7dlog const LevelPtr level,
const std::basic_string< UniChar > &  key,
const log4cxx::spi::LocationInfo locationInfo
const
 

Log a localized and parameterized message.

First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params.

Parameters:
level The level of the logging request.
key The key to be searched in the ResourceBundle.
locationInfo The location info of the logging request.
See also:
setResourceBundle

void l7dlog const LevelPtr level,
const std::wstring &  key,
const log4cxx::spi::LocationInfo locationInfo,
const std::wstring &  val1,
const std::wstring &  val2,
const std::wstring &  val3
const
 

Log a localized and parameterized message.

First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params.

Parameters:
level The level of the logging request.
key The key to be searched in the ResourceBundle.
locationInfo The location info of the logging request.
val1 The value for the first placeholder within the pattern.
val2 The value for the second placeholder within the pattern.
val3 The value for the third placeholder within the pattern.
See also:
setResourceBundle

void l7dlog const LevelPtr level,
const std::wstring &  key,
const log4cxx::spi::LocationInfo locationInfo,
const std::wstring &  val1,
const std::wstring &  val2
const
 

Log a localized and parameterized message.

First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params.

Parameters:
level The level of the logging request.
key The key to be searched in the ResourceBundle.
locationInfo The location info of the logging request.
val1 The value for the first placeholder within the pattern.
val2 The value for the second placeholder within the pattern.
See also:
setResourceBundle

void l7dlog const LevelPtr level,
const std::wstring &  key,
const log4cxx::spi::LocationInfo locationInfo,
const std::wstring &  val1
const
 

Log a localized and parameterized message.

First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params.

Parameters:
level The level of the logging request.
key The key to be searched in the ResourceBundle.
locationInfo The location info of the logging request.
val1 The value for the first placeholder within the pattern.
See also:
setResourceBundle

void l7dlog const LevelPtr level,
const std::wstring &  key,
const log4cxx::spi::LocationInfo locationInfo
const
 

Log a localized and parameterized message.

First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params.

Parameters:
level The level of the logging request.
key The key to be searched in the ResourceBundle.
locationInfo The location info of the logging request.
See also:
setResourceBundle

void l7dlog const LevelPtr level,
const std::string &  key,
const log4cxx::spi::LocationInfo locationInfo,
const std::string &  val1,
const std::string &  val2,
const std::string &  val3
const
 

Log a localized and parameterized message.

First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params.

Parameters:
level The level of the logging request.
key The key to be searched in the ResourceBundle.
locationInfo The location info of the logging request.
val1 The value for the first placeholder within the pattern.
val2 The value for the second placeholder within the pattern.
val3 The value for the third placeholder within the pattern.
See also:
setResourceBundle

void l7dlog const LevelPtr level,
const std::string &  key,
const log4cxx::spi::LocationInfo locationInfo,
const std::string &  val1,
const std::string &  val2
const
 

Log a localized and parameterized message.

First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params.

Parameters:
level The level of the logging request.
key The key to be searched in the ResourceBundle.
locationInfo The location info of the logging request.
val1 The first value for the placeholders within the pattern.
val2 The second value for the placeholders within the pattern.
See also:
setResourceBundle

void l7dlog const LevelPtr level,
const std::string &  key,
const log4cxx::spi::LocationInfo locationInfo,
const std::string &  val1
const
 

Log a localized and parameterized message.

First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params.

Parameters:
level The level of the logging request.
key The key to be searched in the ResourceBundle.
locationInfo The location info of the logging request.
val1 The first value for the placeholders within the pattern.
See also:
setResourceBundle

void l7dlog const LevelPtr level,
const std::string &  key,
const log4cxx::spi::LocationInfo locationInfo
const
 

Log a localized and parameterized message.

First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params.

Parameters:
level The level of the logging request.
key The key to be searched in the ResourceBundle.
locationInfo The location info of the logging request.
See also:
setResourceBundle

void l7dlog const LevelPtr level,
const LogString key,
const log4cxx::spi::LocationInfo locationInfo,
const std::vector< LogString > &  values
const
 

Log a localized and parameterized message.

First, the user supplied key is searched in the resource bundle. Next, the resulting pattern is formatted using helpers::StringHelper::format method with the user supplied string array params.

Parameters:
level The level of the logging request.
key The key to be searched in the ResourceBundle.
locationInfo The location info of the logging request.
values The values for the placeholders {0}, {1} etc. within the pattern.
See also:
setResourceBundle

void log const LevelPtr level,
const CFStringRef message
const
 

This is the most generic printing method.

It is intended to be invoked by wrapper classes.

Parameters:
level The level of the logging request.
message The message of the logging request.

void log const LevelPtr level,
const CFStringRef message,
const log4cxx::spi::LocationInfo location
const
 

This is the most generic printing method.

It is intended to be invoked by wrapper classes.

Parameters:
level The level of the logging request.
message The message of the logging request.
location The source file of the logging request, may be null.

void log const LevelPtr level,
const std::basic_string< UniChar > &  message
const
 

This is the most generic printing method.

It is intended to be invoked by wrapper classes.

Parameters:
level The level of the logging request.
message The message of the logging request.

void log const LevelPtr level,
const std::basic_string< UniChar > &  message,
const log4cxx::spi::LocationInfo location
const
 

This is the most generic printing method.

It is intended to be invoked by wrapper classes.

Parameters:
level The level of the logging request.
message The message of the logging request.
location The source file of the logging request, may be null.

void log const LevelPtr level,
const std::wstring &  message
const
 

This is the most generic printing method.

It is intended to be invoked by wrapper classes.

Parameters:
level The level of the logging request.
message The message of the logging request.

void log const LevelPtr level,
const std::wstring &  message,
const log4cxx::spi::LocationInfo location
const
 

This is the most generic printing method.

It is intended to be invoked by wrapper classes.

Parameters:
level The level of the logging request.
message The message of the logging request.
location The source file of the logging request, may be null.

void log const LevelPtr level,
const std::string &  message
const
 

This is the most generic printing method.

It is intended to be invoked by wrapper classes.

Parameters:
level The level of the logging request.
message The message of the logging request.

void log const LevelPtr level,
const std::string &  message,
const log4cxx::spi::LocationInfo location
const
 

This is the most generic printing method.

It is intended to be invoked by wrapper classes.

Parameters:
level The level of the logging request.
message The message of the logging request.
location The source file of the logging request, may be null.

void logLS const LevelPtr level,
const LogString message,
const log4cxx::spi::LocationInfo location
const
 

This is the most generic printing method.

It is intended to be invoked by wrapper classes.

Parameters:
level The level of the logging request.
message The message of the logging request.
location The source file of the logging request, may be null.

void releaseRef  )  const [virtual]
 

Reimplemented from ObjectImpl.

void removeAllAppenders  )  [virtual]
 

Remove all previously added appenders from this logger instance.

This is useful when re-reading configuration information.

Implements AppenderAttachable.

void removeAppender const LogString name  )  [virtual]
 

Remove the appender with the name passed as parameter form the list of appenders.

Implements AppenderAttachable.

void removeAppender const AppenderPtr appender  )  [virtual]
 

Remove the appender passed as parameter form the list of appenders.

Implements AppenderAttachable.

void setAdditivity bool  additive  ) 
 

Set the additivity flag for this Logger instance.

void setHierarchy spi::LoggerRepository repository  )  [protected]
 

Only the Hierarchy class can set the hierarchy of a logger.

virtual void setLevel const LevelPtr level  )  [virtual]
 

Set the level of this Logger.

As in

    logger->setLevel(Level::getDebug()); 

Null values are admitted.

Reimplemented in RootLogger.

void setResourceBundle const helpers::ResourceBundlePtr &  bundle  )  [inline]
 

Set the resource bundle to be used with localized logging methods.

void trace const std::string &  msg  )  const
 

Log a message string with the TRACE level.

This method first checks if this logger is TRACE enabled by comparing the level of this logger with the TRACE level. If this logger is TRACE enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.

void trace const std::string &  msg,
const log4cxx::spi::LocationInfo location
const
 

Log a message string with the TRACE level.

This method first checks if this logger is TRACE enabled by comparing the level of this logger with the TRACE level. If this logger is TRACE enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.
location location of source of logging request.

void trace const CFStringRef msg  )  const
 

Log a message string with the TRACE level.

This method first checks if this logger is TRACE enabled by comparing the level of this logger with the TRACE level. If this logger is TRACE enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.

void trace const CFStringRef msg,
const log4cxx::spi::LocationInfo location
const
 

Log a message string with the TRACE level.

This method first checks if this logger is TRACE enabled by comparing the level of this logger with the TRACE level. If this logger is TRACE enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.
location location of source of logging request.

void trace const std::basic_string< UniChar > &  msg  )  const
 

Log a message string with the TRACE level.

This method first checks if this logger is TRACE enabled by comparing the level of this logger with the TRACE level. If this logger is TRACE enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.

void trace const std::basic_string< UniChar > &  msg,
const log4cxx::spi::LocationInfo location
const
 

Log a message string with the TRACE level.

This method first checks if this logger is TRACE enabled by comparing the level of this logger with the TRACE level. If this logger is TRACE enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.
location location of source of logging request.

void trace const std::wstring &  msg  )  const
 

Log a message string with the TRACE level.

This method first checks if this logger is TRACE enabled by comparing the level of this logger with the TRACE level. If this logger is TRACE enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.

void trace const std::wstring &  msg,
const log4cxx::spi::LocationInfo location
const
 

Log a message string with the TRACE level.

This method first checks if this logger is TRACE enabled by comparing the level of this logger with the TRACE level. If this logger is TRACE enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.
location location of source of logging request.

void warn const std::string &  msg  )  const
 

Log a message string with the WARN level.

This method first checks if this logger is WARN enabled by comparing the level of this logger with the WARN level. If this logger is WARN enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.

void warn const std::string &  msg,
const log4cxx::spi::LocationInfo location
const
 

Log a message string with the WARN level.

This method first checks if this logger is WARN enabled by comparing the level of this logger with the WARN level. If this logger is WARN enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.
location location of source of logging request.

void warn const CFStringRef msg  )  const
 

Log a message string with the WARN level.

This method first checks if this logger is WARN enabled by comparing the level of this logger with the WARN level. If this logger is WARN enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.

void warn const CFStringRef msg,
const log4cxx::spi::LocationInfo location
const
 

Log a message string with the WARN level.

This method first checks if this logger is WARN enabled by comparing the level of this logger with the WARN level. If this logger is WARN enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.
location location of source of logging request.

void warn const std::basic_string< UniChar > &  msg  )  const
 

Log a message string with the WARN level.

This method first checks if this logger is WARN enabled by comparing the level of this logger with the WARN level. If this logger is WARN enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.

void warn const std::basic_string< UniChar > &  msg,
const log4cxx::spi::LocationInfo location
const
 

Log a message string with the WARN level.

This method first checks if this logger is WARN enabled by comparing the level of this logger with the WARN level. If this logger is WARN enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.
location location of source of logging request.

void warn const std::wstring &  msg  )  const
 

Log a message string with the WARN level.

This method first checks if this logger is WARN enabled by comparing the level of this logger with the WARN level. If this logger is WARN enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.

void warn const std::wstring &  msg,
const log4cxx::spi::LocationInfo location
const
 

Log a message string with the WARN level.

This method first checks if this logger is WARN enabled by comparing the level of this logger with the WARN level. If this logger is WARN enabled, it proceeds to call all the registered appenders in this logger and also higher in the hierarchy depending on the value of the additivity flag.

Parameters:
msg the message string to log.
location location of source of logging request.


Friends And Related Function Documentation

friend class DefaultLoggerFactory [friend]
 

friend class Hierarchy [friend]
 

friend class log4cxx::helpers::synchronized [friend]
 


Member Data Documentation

helpers::AppenderAttachableImplPtr aai [protected]
 

bool additive [protected]
 

Additivity is set to true by default, that is children inherit the appenders of their ancestors by default.

If this variable is set to false then the appenders found in the ancestors of this logger are not used. However, the children of this logger will inherit its appenders, unless the children have their additivity flag set to false too. See the user manual for more details.

LevelPtr level [protected]
 

The assigned level of this logger.

The level variable need not be assigned a value in which case it is inherited form the hierarchy.

LogString name [protected]
 

The name of this logger.

LoggerPtr parent [protected]
 

The parent of this logger.

All loggers have at least one ancestor which is the root logger.

log4cxx::spi::LoggerRepository* repository [protected]
 

helpers::ResourceBundlePtr resourceBundle [protected]
 

The resourceBundle for localized messages.

See also:
setResourceBundle, getResourceBundle


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_logger-members.html100644 0 0 131254 10774263472 23131 0ustar 0 0 Apache log4cxx: Member List

Logger Member List

This is the complete list of members for Logger, including all inherited members.

aaiLogger [protected]
addAppender(const AppenderPtr &newAppender)Logger [virtual]
additiveLogger [protected]
addRef() const Logger [virtual]
callAppenders(const log4cxx::spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p) const Logger
cast(const Class &clazz) const =0Object [pure virtual]
closeNestedAppenders()Logger
debug(const std::string &msg, const log4cxx::spi::LocationInfo &location) const Logger
debug(const std::string &msg) const Logger
debug(const std::wstring &msg, const log4cxx::spi::LocationInfo &location) const Logger
debug(const std::wstring &msg) const Logger
debug(const std::basic_string< UniChar > &msg, const log4cxx::spi::LocationInfo &location) const Logger
debug(const std::basic_string< UniChar > &msg) const Logger
debug(const CFStringRef &msg, const log4cxx::spi::LocationInfo &location) const Logger
debug(const CFStringRef &msg) const Logger
DefaultLoggerFactory classLogger [friend]
error(const std::string &msg, const log4cxx::spi::LocationInfo &location) const Logger
error(const std::string &msg) const Logger
error(const std::wstring &msg) const Logger
error(const std::wstring &msg, const log4cxx::spi::LocationInfo &location) const Logger
error(const std::basic_string< UniChar > &msg, const log4cxx::spi::LocationInfo &location) const Logger
error(const std::basic_string< UniChar > &msg) const Logger
error(const CFStringRef &msg, const log4cxx::spi::LocationInfo &location) const Logger
error(const CFStringRef &msg) const Logger
fatal(const std::string &msg, const log4cxx::spi::LocationInfo &location) const Logger
fatal(const std::string &msg) const Logger
fatal(const std::wstring &msg, const log4cxx::spi::LocationInfo &location) const Logger
fatal(const std::wstring &msg) const Logger
fatal(const std::basic_string< UniChar > &msg, const log4cxx::spi::LocationInfo &location) const Logger
fatal(const std::basic_string< UniChar > &msg) const Logger
fatal(const CFStringRef &msg, const log4cxx::spi::LocationInfo &location) const Logger
fatal(const CFStringRef &msg) const Logger
forcedLog(const LevelPtr &level, const std::string &message, const log4cxx::spi::LocationInfo &location) const Logger
forcedLog(const LevelPtr &level, const std::string &message) const Logger
forcedLog(const LevelPtr &level, const std::wstring &message, const log4cxx::spi::LocationInfo &location) const Logger
forcedLog(const LevelPtr &level, const std::wstring &message) const Logger
forcedLog(const LevelPtr &level, const std::basic_string< UniChar > &message, const log4cxx::spi::LocationInfo &location) const Logger
forcedLog(const LevelPtr &level, const std::basic_string< UniChar > &message) const Logger
forcedLog(const LevelPtr &level, const CFStringRef &message, const log4cxx::spi::LocationInfo &location) const Logger
forcedLog(const LevelPtr &level, const CFStringRef &message) const Logger
forcedLogLS(const LevelPtr &level, const LogString &message, const log4cxx::spi::LocationInfo &location) const Logger
getAdditivity() const Logger
getAllAppenders() const Logger [virtual]
getAppender(const LogString &name) const Logger [virtual]
getClass() const Object [virtual]
getEffectiveLevel() const Logger [virtual]
getLevel() const Logger
getLogger(const std::string &name)Logger [static]
getLogger(const char *const name)Logger [static]
getLogger(const std::wstring &name)Logger [static]
getLogger(const wchar_t *const name)Logger [static]
getLogger(const std::basic_string< UniChar > &name)Logger [static]
getLogger(const CFStringRef &name)Logger [static]
getLogger(const std::string &name, const log4cxx::spi::LoggerFactoryPtr &factory)Logger [static]
getLogger(const std::wstring &name, const log4cxx::spi::LoggerFactoryPtr &factory)Logger [static]
getLogger(const std::basic_string< UniChar > &name, const log4cxx::spi::LoggerFactoryPtr &factory)Logger [static]
getLogger(const CFStringRef &name, const log4cxx::spi::LoggerFactoryPtr &factory)Logger [static]
getLoggerLS(const LogString &name)Logger [static]
getLoggerLS(const LogString &name, const log4cxx::spi::LoggerFactoryPtr &factory)Logger [static]
getLoggerRepository() const Logger
getMutex() const Logger [inline]
getName() const Logger [inline]
getName(std::string &name) const Logger
getName(std::wstring &name) const Logger
getName(std::basic_string< UniChar > &name) const Logger
getName(CFStringRef &name) const Logger
getParent() const Logger
getResourceBundle() const Logger
getResourceBundleString(const LogString &key) const Logger [protected]
getRootLogger()Logger [static]
getStaticClass()Object [static]
Hierarchy classLogger [friend]
info(const std::string &msg, const log4cxx::spi::LocationInfo &location) const Logger
info(const std::string &msg) const Logger
info(const std::wstring &msg, const log4cxx::spi::LocationInfo &location) const Logger
info(const std::wstring &msg) const Logger
info(const std::basic_string< UniChar > &msg, const log4cxx::spi::LocationInfo &location) const Logger
info(const std::basic_string< UniChar > &msg) const Logger
info(const CFStringRef &msg, const log4cxx::spi::LocationInfo &location) const Logger
info(const CFStringRef &msg) const Logger
instanceof(const Class &clazz) const =0Object [pure virtual]
isAttached(const AppenderPtr &appender) const Logger [virtual]
isDebugEnabled() const Logger
isEnabledFor(const LevelPtr &level) const Logger
isErrorEnabled() const Logger
isFatalEnabled() const Logger
isInfoEnabled() const Logger
isTraceEnabled() const Logger
isWarnEnabled() const Logger
l7dlog(const LevelPtr &level, const LogString &key, const log4cxx::spi::LocationInfo &locationInfo, const std::vector< LogString > &values) const Logger
l7dlog(const LevelPtr &level, const std::string &key, const log4cxx::spi::LocationInfo &locationInfo) const Logger
l7dlog(const LevelPtr &level, const std::string &key, const log4cxx::spi::LocationInfo &locationInfo, const std::string &val1) const Logger
l7dlog(const LevelPtr &level, const std::string &key, const log4cxx::spi::LocationInfo &locationInfo, const std::string &val1, const std::string &val2) const Logger
l7dlog(const LevelPtr &level, const std::string &key, const log4cxx::spi::LocationInfo &locationInfo, const std::string &val1, const std::string &val2, const std::string &val3) const Logger
l7dlog(const LevelPtr &level, const std::wstring &key, const log4cxx::spi::LocationInfo &locationInfo) const Logger
l7dlog(const LevelPtr &level, const std::wstring &key, const log4cxx::spi::LocationInfo &locationInfo, const std::wstring &val1) const Logger
l7dlog(const LevelPtr &level, const std::wstring &key, const log4cxx::spi::LocationInfo &locationInfo, const std::wstring &val1, const std::wstring &val2) const Logger
l7dlog(const LevelPtr &level, const std::wstring &key, const log4cxx::spi::LocationInfo &locationInfo, const std::wstring &val1, const std::wstring &val2, const std::wstring &val3) const Logger
l7dlog(const LevelPtr &level, const std::basic_string< UniChar > &key, const log4cxx::spi::LocationInfo &locationInfo) const Logger
l7dlog(const LevelPtr &level, const std::basic_string< UniChar > &key, const log4cxx::spi::LocationInfo &locationInfo, const std::basic_string< UniChar > &val1) const Logger
l7dlog(const LevelPtr &level, const std::basic_string< UniChar > &key, const log4cxx::spi::LocationInfo &locationInfo, const std::basic_string< UniChar > &val1, const std::basic_string< UniChar > &val2) const Logger
l7dlog(const LevelPtr &level, const std::basic_string< UniChar > &key, const log4cxx::spi::LocationInfo &locationInfo, const std::basic_string< UniChar > &val1, const std::basic_string< UniChar > &val2, const std::basic_string< UniChar > &val3) const Logger
l7dlog(const LevelPtr &level, const CFStringRef &key, const log4cxx::spi::LocationInfo &locationInfo) const Logger
l7dlog(const LevelPtr &level, const CFStringRef &key, const log4cxx::spi::LocationInfo &locationInfo, const CFStringRef &val1) const Logger
l7dlog(const LevelPtr &level, const CFStringRef &key, const log4cxx::spi::LocationInfo &locationInfo, const CFStringRef &val1, const CFStringRef &val2) const Logger
l7dlog(const LevelPtr &level, const CFStringRef &key, const log4cxx::spi::LocationInfo &locationInfo, const CFStringRef &val1, const CFStringRef &val2, const CFStringRef &val3) const Logger
levelLogger [protected]
log(const LevelPtr &level, const std::string &message, const log4cxx::spi::LocationInfo &location) const Logger
log(const LevelPtr &level, const std::string &message) const Logger
log(const LevelPtr &level, const std::wstring &message, const log4cxx::spi::LocationInfo &location) const Logger
log(const LevelPtr &level, const std::wstring &message) const Logger
log(const LevelPtr &level, const std::basic_string< UniChar > &message, const log4cxx::spi::LocationInfo &location) const Logger
log(const LevelPtr &level, const std::basic_string< UniChar > &message) const Logger
log(const LevelPtr &level, const CFStringRef &message, const log4cxx::spi::LocationInfo &location) const Logger
log(const LevelPtr &level, const CFStringRef &message) const Logger
log4cxx::helpers::synchronized classLogger [friend]
Logger(log4cxx::helpers::Pool &pool, const LogString &name)Logger [protected]
logLS(const LevelPtr &level, const LogString &message, const log4cxx::spi::LocationInfo &location) const Logger
nameLogger [protected]
ObjectImpl()ObjectImpl
parentLogger [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const Logger [virtual]
removeAllAppenders()Logger [virtual]
removeAppender(const AppenderPtr &appender)Logger [virtual]
removeAppender(const LogString &name)Logger [virtual]
repositoryLogger [protected]
resourceBundleLogger [protected]
setAdditivity(bool additive)Logger
setHierarchy(spi::LoggerRepository *repository)Logger [protected]
setLevel(const LevelPtr &level)Logger [virtual]
setResourceBundle(const helpers::ResourceBundlePtr &bundle)Logger [inline]
trace(const std::wstring &msg, const log4cxx::spi::LocationInfo &location) const Logger
trace(const std::wstring &msg) const Logger
trace(const std::basic_string< UniChar > &msg, const log4cxx::spi::LocationInfo &location) const Logger
trace(const std::basic_string< UniChar > &msg) const Logger
trace(const CFStringRef &msg, const log4cxx::spi::LocationInfo &location) const Logger
trace(const CFStringRef &msg) const Logger
trace(const std::string &msg, const log4cxx::spi::LocationInfo &location) const Logger
trace(const std::string &msg) const Logger
warn(const std::wstring &msg, const log4cxx::spi::LocationInfo &location) const Logger
warn(const std::wstring &msg) const Logger
warn(const std::basic_string< UniChar > &msg, const log4cxx::spi::LocationInfo &location) const Logger
warn(const std::basic_string< UniChar > &msg) const Logger
warn(const CFStringRef &msg, const log4cxx::spi::LocationInfo &location) const Logger
warn(const CFStringRef &msg) const Logger
warn(const std::string &msg, const log4cxx::spi::LocationInfo &location) const Logger
warn(const std::string &msg) const Logger
~AppenderAttachable()AppenderAttachable [inline, virtual]
~Logger()Logger
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_log_manager.html100644 0 0 133475 10774263472 22504 0ustar 0 0 Apache log4cxx: LogManager Class Reference

LogManager Class Reference

List of all members.

Detailed Description

Use the LogManager class to retreive Logger instances or to operate on the current LoggerRepository.

When the LogManager class is loaded into memory the default initialization procedure is inititated.


Static Public Member Functions

static void setRepositorySelector (spi::RepositorySelectorPtr selector, void *guard)
 Sets LoggerFactory but only if the correct guard is passed as parameter.
static spi::LoggerRepositoryPtrgetLoggerRepository ()
static LoggerPtr getRootLogger ()
 Retrieve the appropriate root logger.
static LoggerPtr getLogger (const std::string &name)
 Retrieve the appropriate Logger instance.
static LoggerPtr getLogger (const std::string &name, const spi::LoggerFactoryPtr &factory)
 Retrieve the appropriate Logger instance.
static LoggerPtr exists (const std::string &name)
 Determines if logger name exists in the hierarchy.
static LoggerPtr getLogger (const std::wstring &name)
 Retrieve the appropriate Logger instance.
static LoggerPtr getLogger (const std::wstring &name, const spi::LoggerFactoryPtr &factory)
 Retrieve the appropriate Logger instance.
static LoggerPtr exists (const std::wstring &name)
 Determines if logger name exists in the hierarchy.
static LoggerPtr getLogger (const std::basic_string< UniChar > &name)
 Retrieve the appropriate Logger instance.
static LoggerPtr getLogger (const std::basic_string< UniChar > &name, const spi::LoggerFactoryPtr &factory)
 Retrieve the appropriate Logger instance.
static LoggerPtr exists (const std::basic_string< UniChar > &name)
 Determines if logger name exists in the hierarchy.
static LoggerPtr getLogger (const CFStringRef &name)
 Retrieve the appropriate Logger instance.
static LoggerPtr getLogger (const CFStringRef &name, const spi::LoggerFactoryPtr &factory)
 Retrieve the appropriate Logger instance.
static LoggerPtr exists (const CFStringRef &name)
 Determines if logger name exists in the hierarchy.
static LoggerPtr getLoggerLS (const LogString &name)
 Retrieve the appropriate Logger instance.
static LoggerPtr getLoggerLS (const LogString &name, const spi::LoggerFactoryPtr &factory)
 Retrieve the appropriate Logger instance.
static LoggerPtr existsLS (const LogString &name)
 Determines if logger name exists in the hierarchy.
static LoggerList getCurrentLoggers ()
static void shutdown ()
 Safely close and remove all appenders in all loggers including the root logger.
static void resetConfiguration ()
 Reset all values contained in this current LoggerRepository to their default.


Member Function Documentation

static LoggerPtr exists const CFStringRef name  )  [static]
 

Determines if logger name exists in the hierarchy.

Parameters:
name logger name.
Returns:
true if logger exists.

static LoggerPtr exists const std::basic_string< UniChar > &  name  )  [static]
 

Determines if logger name exists in the hierarchy.

Parameters:
name logger name.
Returns:
true if logger exists.

static LoggerPtr exists const std::wstring &  name  )  [static]
 

Determines if logger name exists in the hierarchy.

Parameters:
name logger name.
Returns:
true if logger exists.

static LoggerPtr exists const std::string &  name  )  [static]
 

Determines if logger name exists in the hierarchy.

Parameters:
name logger name.
Returns:
true if logger exists.

static LoggerPtr existsLS const LogString name  )  [static]
 

Determines if logger name exists in the hierarchy.

Parameters:
name logger name.
Returns:
true if logger exists.

static LoggerList getCurrentLoggers  )  [static]
 

static LoggerPtr getLogger const CFStringRef name,
const spi::LoggerFactoryPtr factory
[static]
 

Retrieve the appropriate Logger instance.

Parameters:
name logger name.
factory logger factory.
Returns:
logger.

static LoggerPtr getLogger const CFStringRef name  )  [static]
 

Retrieve the appropriate Logger instance.

Parameters:
name logger name.
Returns:
logger.

static LoggerPtr getLogger const std::basic_string< UniChar > &  name,
const spi::LoggerFactoryPtr factory
[static]
 

Retrieve the appropriate Logger instance.

Parameters:
name logger name.
factory logger factory.
Returns:
logger.

static LoggerPtr getLogger const std::basic_string< UniChar > &  name  )  [static]
 

Retrieve the appropriate Logger instance.

Parameters:
name logger name.
Returns:
logger.

static LoggerPtr getLogger const std::wstring &  name,
const spi::LoggerFactoryPtr factory
[static]
 

Retrieve the appropriate Logger instance.

Parameters:
name logger name.
factory logger factory.
Returns:
logger.

static LoggerPtr getLogger const std::wstring &  name  )  [static]
 

Retrieve the appropriate Logger instance.

Parameters:
name logger name.
Returns:
logger.

static LoggerPtr getLogger const std::string &  name,
const spi::LoggerFactoryPtr factory
[static]
 

Retrieve the appropriate Logger instance.

Parameters:
name logger name in current encoding.
factory logger factory.
Returns:
logger.

static LoggerPtr getLogger const std::string &  name  )  [static]
 

Retrieve the appropriate Logger instance.

Parameters:
name logger name in current encoding.
Returns:
logger.

static LoggerPtr getLoggerLS const LogString name,
const spi::LoggerFactoryPtr factory
[static]
 

Retrieve the appropriate Logger instance.

Parameters:
name logger name.
factory logger factory.
Returns:
logger.

static LoggerPtr getLoggerLS const LogString name  )  [static]
 

Retrieve the appropriate Logger instance.

Parameters:
name logger name.
Returns:
logger.

static spi::LoggerRepositoryPtr& getLoggerRepository  )  [static]
 

static LoggerPtr getRootLogger  )  [static]
 

Retrieve the appropriate root logger.

static void resetConfiguration  )  [static]
 

Reset all values contained in this current LoggerRepository to their default.

static void setRepositorySelector spi::RepositorySelectorPtr  selector,
void *  guard
[static]
 

Sets LoggerFactory but only if the correct guard is passed as parameter.

Initally the guard is null. If the guard is null, then invoking this method sets the logger factory and the guard. Following invocations will throw a IllegalArgumentException, unless the previously set guard is passed as the second parameter.

This allows a high-level component to set the RepositorySelector used by the LogManager.

static void shutdown  )  [static]
 

Safely close and remove all appenders in all loggers including the root logger.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_log_manager-members.html100644 0 0 21145 10774263472 24102 0ustar 0 0 Apache log4cxx: Member List

LogManager Member List

This is the complete list of members for LogManager, including all inherited members.

exists(const std::string &name)LogManager [static]
exists(const std::wstring &name)LogManager [static]
exists(const std::basic_string< UniChar > &name)LogManager [static]
exists(const CFStringRef &name)LogManager [static]
existsLS(const LogString &name)LogManager [static]
getCurrentLoggers()LogManager [static]
getLogger(const std::string &name)LogManager [static]
getLogger(const std::string &name, const spi::LoggerFactoryPtr &factory)LogManager [static]
getLogger(const std::wstring &name)LogManager [static]
getLogger(const std::wstring &name, const spi::LoggerFactoryPtr &factory)LogManager [static]
getLogger(const std::basic_string< UniChar > &name)LogManager [static]
getLogger(const std::basic_string< UniChar > &name, const spi::LoggerFactoryPtr &factory)LogManager [static]
getLogger(const CFStringRef &name)LogManager [static]
getLogger(const CFStringRef &name, const spi::LoggerFactoryPtr &factory)LogManager [static]
getLoggerLS(const LogString &name)LogManager [static]
getLoggerLS(const LogString &name, const spi::LoggerFactoryPtr &factory)LogManager [static]
getLoggerRepository()LogManager [static]
getRootLogger()LogManager [static]
resetConfiguration()LogManager [static]
setRepositorySelector(spi::RepositorySelectorPtr selector, void *guard)LogManager [static]
shutdown()LogManager [static]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_m_d_c.html100644 0 0 144052 10774263472 21263 0ustar 0 0 Apache log4cxx: MDC Class Reference

MDC Class Reference

List of all members.

Detailed Description

The MDC class is similar to the NDC class except that it is based on a map instead of a stack.

It provides mapped diagnostic contexts. A Mapped Diagnostic Context, or MDC in short, is an instrument for distinguishing interleaved log output from different sources. Log output is typically interleaved when a server handles multiple clients near-simultaneously.

The MDC is managed on a per thread basis. A child thread automatically inherits a copy of the mapped diagnostic context of its parent.


Public Types

typedef std::map< LogString,
LogString
Map
 String to string stl map.

Public Member Functions

 MDC (const std::string &key, const std::string &value)
 Places a key/value pair in the MDC for the current thread which will be removed during the corresponding destructor.
 ~MDC ()
 MDC (const std::wstring &key, const std::wstring &value)
 Places a key/value pair in the MDC for the current thread which will be removed during the corresponding destructor.
 MDC (const std::basic_string< UniChar > &key, const std::basic_string< UniChar > &value)
 Places a key/value pair in the MDC for the current thread which will be removed during the corresponding destructor.
 MDC (const CFStringRef &key, const CFStringRef &value)
 Places a key/value pair in the MDC for the current thread which will be removed during the corresponding destructor.

Static Public Member Functions

static void put (const std::string &key, const std::string &value)
 Put a context value (the o parameter) as identified with the key parameter into the current thread's context map.
static void putLS (const LogString &key, const LogString &value)
 Put a context value (the o parameter) as identified with the key parameter into the current thread's context map.
static std::string get (const std::string &key)
 Get the context identified by the key parameter.
static bool get (const LogString &key, LogString &dest)
 Gets the context identified by the key parameter.
static std::string remove (const std::string &key)
 Remove the the context identified by the key parameter.
static void put (const std::wstring &key, const std::wstring &value)
 Put a context value (the o parameter) as identified with the key parameter into the current thread's context map.
static std::wstring get (const std::wstring &key)
 Get the context identified by the key parameter.
static std::wstring remove (const std::wstring &key)
 Remove the the context identified by the key parameter.
static void put (const std::basic_string< UniChar > &key, const std::basic_string< UniChar > &value)
 Put a context value (the o parameter) as identified with the key parameter into the current thread's context map.
static std::basic_string<
UniChar
get (const std::basic_string< UniChar > &key)
 Get the context identified by the key parameter.
static std::basic_string<
UniChar
remove (const std::basic_string< UniChar > &key)
 Remove the the context identified by the key parameter.
static void put (const CFStringRef &key, const CFStringRef &value)
 Put a context value (the o parameter) as identified with the key parameter into the current thread's context map.
static CFStringRef get (const CFStringRef &key)
 Get the context identified by the key parameter.
static CFStringRef remove (const CFStringRef &key)
 Remove the the context identified by the key parameter.
static bool remove (const LogString &key, LogString &prevValue)
 Remove the the context identified by the key parameter.
static void clear ()
 Clear all entries in the MDC.


Member Typedef Documentation

typedef std::map<LogString, LogString> Map
 

String to string stl map.


Constructor & Destructor Documentation

MDC const std::string &  key,
const std::string &  value
 

Places a key/value pair in the MDC for the current thread which will be removed during the corresponding destructor.

Both construction and destruction are expected to be on the same thread.

Parameters:
key key
value value.

~MDC  ) 
 

MDC const std::wstring &  key,
const std::wstring &  value
 

Places a key/value pair in the MDC for the current thread which will be removed during the corresponding destructor.

Both construction and destruction are expected to be on the same thread.

Parameters:
key key
value value.

MDC const std::basic_string< UniChar > &  key,
const std::basic_string< UniChar > &  value
 

Places a key/value pair in the MDC for the current thread which will be removed during the corresponding destructor.

Both construction and destruction are expected to be on the same thread.

Parameters:
key key
value value.

MDC const CFStringRef key,
const CFStringRef value
 

Places a key/value pair in the MDC for the current thread which will be removed during the corresponding destructor.

Both construction and destruction are expected to be on the same thread.

Parameters:
key key
value value.


Member Function Documentation

static void clear  )  [static]
 

Clear all entries in the MDC.

static CFStringRef get const CFStringRef key  )  [static]
 

Get the context identified by the key parameter.

This method has no side effects.

Parameters:
key key.
Returns:
value for key, empty if not set.

static std::basic_string<UniChar> get const std::basic_string< UniChar > &  key  )  [static]
 

Get the context identified by the key parameter.

This method has no side effects.

Parameters:
key key.
Returns:
value for key, empty if not set.

static std::wstring get const std::wstring &  key  )  [static]
 

Get the context identified by the key parameter.

This method has no side effects.

Parameters:
key key.
Returns:
value for key, empty if not set.

static bool get const LogString key,
LogString dest
[static]
 

Gets the context identified by the key parameter.

Parameters:
key context key.
dest destination to which value is appended.
Returns:
true if key has associated value.

static std::string get const std::string &  key  )  [static]
 

Get the context identified by the key parameter.

This method has no side effects.

Parameters:
key key.
Returns:
value for key, empty if not set.

static void put const CFStringRef key,
const CFStringRef value
[static]
 

Put a context value (the o parameter) as identified with the key parameter into the current thread's context map.

If the current thread does not have a context map it is created as a side effect.

Parameters:
key key
value value.

static void put const std::basic_string< UniChar > &  key,
const std::basic_string< UniChar > &  value
[static]
 

Put a context value (the o parameter) as identified with the key parameter into the current thread's context map.

If the current thread does not have a context map it is created as a side effect.

Parameters:
key key
value value.

static void put const std::wstring &  key,
const std::wstring &  value
[static]
 

Put a context value (the o parameter) as identified with the key parameter into the current thread's context map.

If the current thread does not have a context map it is created as a side effect.

Parameters:
key key
value value.

static void put const std::string &  key,
const std::string &  value
[static]
 

Put a context value (the o parameter) as identified with the key parameter into the current thread's context map.

If the current thread does not have a context map it is created as a side effect.

Parameters:
key key
value value.

static void putLS const LogString key,
const LogString value
[static]
 

Put a context value (the o parameter) as identified with the key parameter into the current thread's context map.

If the current thread does not have a context map it is created as a side effect.

static bool remove const LogString key,
LogString prevValue
[static]
 

Remove the the context identified by the key parameter.

Parameters:
key key.
prevValue buffer to which previous value is appended.
Returns:
true if key existed in MDC.

static CFStringRef remove const CFStringRef key  )  [static]
 

Remove the the context identified by the key parameter.

Parameters:
key key.
Returns:
value if key had been set, empty if not.

static std::basic_string<UniChar> remove const std::basic_string< UniChar > &  key  )  [static]
 

Remove the the context identified by the key parameter.

Parameters:
key key.
Returns:
value if key had been set, empty if not.

static std::wstring remove const std::wstring &  key  )  [static]
 

Remove the the context identified by the key parameter.

Parameters:
key key.
Returns:
value if key had been set, empty if not.

static std::string remove const std::string &  key  )  [static]
 

Remove the the context identified by the key parameter.

Parameters:
key key.
Returns:
value if key had been set, empty if not.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_m_d_c-members.html100644 0 0 20563 10774263472 22673 0ustar 0 0 Apache log4cxx: Member List

MDC Member List

This is the complete list of members for MDC, including all inherited members.

clear()MDC [static]
get(const std::string &key)MDC [static]
get(const LogString &key, LogString &dest)MDC [static]
get(const std::wstring &key)MDC [static]
get(const std::basic_string< UniChar > &key)MDC [static]
get(const CFStringRef &key)MDC [static]
Map typedefMDC
MDC(const std::string &key, const std::string &value)MDC
MDC(const std::wstring &key, const std::wstring &value)MDC
MDC(const std::basic_string< UniChar > &key, const std::basic_string< UniChar > &value)MDC
MDC(const CFStringRef &key, const CFStringRef &value)MDC
put(const std::string &key, const std::string &value)MDC [static]
put(const std::wstring &key, const std::wstring &value)MDC [static]
put(const std::basic_string< UniChar > &key, const std::basic_string< UniChar > &value)MDC [static]
put(const CFStringRef &key, const CFStringRef &value)MDC [static]
putLS(const LogString &key, const LogString &value)MDC [static]
remove(const std::string &key)MDC [static]
remove(const std::wstring &key)MDC [static]
remove(const std::basic_string< UniChar > &key)MDC [static]
remove(const CFStringRef &key)MDC [static]
remove(const LogString &key, LogString &prevValue)MDC [static]
~MDC()MDC
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_n_d_c.html100644 0 0 173030 10774263472 21262 0ustar 0 0 Apache log4cxx: NDC Class Reference

NDC Class Reference

List of all members.

Detailed Description

the ndc class implements nested diagnostic contexts as defined by neil harrison in the article "patterns for logging diagnostic messages" part of the book "pattern languages of program design 3" edited by martin et al.

a nested diagnostic context, or ndc in short, is an instrument to distinguish interleaved log output from different sources. log output is typically interleaved when a server handles multiple clients near-simultaneously.

interleaved log output can still be meaningful if each log entry from different contexts had a distinctive stamp. this is where ndcs come into play.

note that ndcs are managed on a per thread basis. ndc operations such as push, pop, clear and getDepth affect the ndc of the current thread only. ndcs of other threads remain unaffected.

for example, a servlet can build a per client request ndc consisting the clients host name and other information contained in the the request. cookies are another source of distinctive information. to build an ndc one uses the push operation. simply put,

  • contexts can be nested.

  • when entering a context, call ndc.push. as a side effect, if there is no nested diagnostic context for the current thread, this method will create it.

  • when leaving a context, call ndc.pop.

  • when exiting a thread make sure to call remove .

there is no penalty for forgetting to match each push operation with a corresponding pop, except the obvious mismatch between the real application context and the context set in the ndc.

if configured to do so, PatternLayout and TTCCLayout instances automatically retrieve the nested diagnostic context for the current thread without any user intervention. hence, even if a servlet is serving multiple clients simultaneously, the logs emanating from the same code (belonging to the same logger) can still be distinguished because each client request will have a different ndc tag.

heavy duty systems should call the remove method when leaving the run method of a thread. this ensures that the memory used by the thread can be freed by the java garbage collector. there is a mechanism to lazily remove references to dead threads. in practice, this means that you can be a little sloppy and sometimes forget to call remove before exiting a thread.


Public Types

typedef std::pair< LogString,
LogString
DiagnosticContext
 Pair of Message and FullMessage.
typedef std::stack< DiagnosticContextStack

Public Member Functions

 NDC (const std::string &message)
 Creates a nested diagnostic context.
 ~NDC ()
 Removes the topmost element from the NDC stack.
 NDC (const std::wstring &message)
 Creates a nested diagnostic context.
 NDC (const std::basic_string< UniChar > &message)
 Creates a nested diagnostic context.
 NDC (const CFStringRef &message)
 Creates a nested diagnostic context.

Static Public Member Functions

static void clear ()
 Clear any nested diagnostic information if any.
static StackcloneStack ()
 Clone the diagnostic context for the current thread.
static void inherit (Stack *stack)
 Inherit the diagnostic context of another thread.
static bool get (LogString &dest)
 Get the current value of the NDC of the currrent thread.
static int getDepth ()
 Get the current nesting depth of this diagnostic context.
static bool empty ()
 Tests if the NDC is empty.
static LogString pop ()
 Pop top value off stack.
static bool pop (std::string &buf)
 Pop top value off stack.
static LogString peek ()
 Looks at the last diagnostic context at the top of this NDC without removing it.
static bool peek (std::string &buf)
 Get top value without removing value.
static void push (const std::string &message)
 Push new diagnostic context information for the current thread.
static void pushLS (const LogString &message)
 Push new diagnostic context information for the current thread.
static void remove ()
 Remove the diagnostic context for this thread.
static void push (const std::wstring &message)
 Push new diagnostic context information for the current thread.
static bool peek (std::wstring &dst)
 Appends the current NDC content to the provided string.
static bool pop (std::wstring &dst)
 Appends the current NDC content to the provided string and removes the value from the NDC.
static void push (const std::basic_string< UniChar > &message)
 Push new diagnostic context information for the current thread.
static bool peek (std::basic_string< UniChar > &dst)
 Appends the current NDC content to the provided string.
static bool pop (std::basic_string< UniChar > &dst)
 Appends the current NDC content to the provided string and removes the value from the NDC.
static void push (const CFStringRef &message)
 Push new diagnostic context information for the current thread.
static bool peek (CFStringRef &dst)
 Gets the current NDC value.
static bool pop (CFStringRef &dst)
 Gets and removes the current NDC value.


Member Typedef Documentation

typedef std::pair<LogString, LogString> DiagnosticContext
 

Pair of Message and FullMessage.

typedef std::stack<DiagnosticContext> Stack
 


Constructor & Destructor Documentation

NDC const std::string &  message  ) 
 

Creates a nested diagnostic context.

Since java performs no automatic cleanup of objects when a scope is left, in log4j push() and pop() must be used to manage the NDC. For convenience, log4cxx provides an NDC constructor and destructor which simply call the push() and pop() methods, allowing for automatic cleanup when the current scope ends.

Parameters:
message The new diagnostic context information.
See also:
The push method.

~NDC  ) 
 

Removes the topmost element from the NDC stack.

See also:
The pop method.

NDC const std::wstring &  message  ) 
 

Creates a nested diagnostic context.

Since java performs no automatic cleanup of objects when a scope is left, in log4j push() and pop() must be used to manage the NDC. For convenience, log4cxx provides an NDC constructor and destructor which simply call the push() and pop() methods, allowing for automatic cleanup when the current scope ends.

Parameters:
message The new diagnostic context information.
See also:
The push method.

NDC const std::basic_string< UniChar > &  message  ) 
 

Creates a nested diagnostic context.

Since java performs no automatic cleanup of objects when a scope is left, in log4j push() and pop() must be used to manage the NDC. For convenience, log4cxx provides an NDC constructor and destructor which simply call the push() and pop() methods, allowing for automatic cleanup when the current scope ends.

Parameters:
message The new diagnostic context information.
See also:
The push method.

NDC const CFStringRef message  ) 
 

Creates a nested diagnostic context.

Since java performs no automatic cleanup of objects when a scope is left, in log4j push() and pop() must be used to manage the NDC. For convenience, log4cxx provides an NDC constructor and destructor which simply call the push() and pop() methods, allowing for automatic cleanup when the current scope ends.

Parameters:
message The new diagnostic context information.
See also:
The push method.


Member Function Documentation

static void clear  )  [static]
 

Clear any nested diagnostic information if any.

This method is useful in cases where the same thread can be potentially used over and over in different unrelated contexts.

static Stack* cloneStack  )  [static]
 

Clone the diagnostic context for the current thread.

Internally a diagnostic context is represented as a stack. A given thread can supply the stack (i.e. diagnostic context) to a child thread so that the child can inherit the parent thread's diagnostic context.

The child thread uses the inherit method to inherit the parent's diagnostic context.

If not passed to inherit, returned stack should be deleted by caller.

Returns:
Stack A clone of the current thread's diagnostic context, will not be null.

static bool empty  )  [static]
 

Tests if the NDC is empty.

static bool get LogString dest  )  [static]
 

Get the current value of the NDC of the currrent thread.

Parameters:
dest destination to which to append content of NDC.
Returns:
true if NDC is set.

static int getDepth  )  [static]
 

Get the current nesting depth of this diagnostic context.

static void inherit Stack stack  )  [static]
 

Inherit the diagnostic context of another thread.

The parent thread can obtain a reference to its diagnostic context using the cloneStack method. It should communicate this information to its child so that it may inherit the parent's diagnostic context.

The parent's diagnostic context is cloned before being inherited. In other words, once inherited, the two diagnostic contexts can be managed independently.

Parameters:
stack The diagnostic context of the parent thread, will be deleted during call. If NULL, NDC will not be modified.

static bool peek CFStringRef dst  )  [static]
 

Gets the current NDC value.

Parameters:
dst destination.
Returns:
true if NDC value set.

static bool peek std::basic_string< UniChar > &  dst  )  [static]
 

Appends the current NDC content to the provided string.

Parameters:
dst destination.
Returns:
true if NDC value set.

static bool peek std::wstring &  dst  )  [static]
 

Appends the current NDC content to the provided string.

Parameters:
dst destination.
Returns:
true if NDC value set.

static bool peek std::string &  buf  )  [static]
 

Get top value without removing value.

Parameters:
buf to which top value is appended.
Returns:
true if NDC contained at least one value.

static LogString peek  )  [static]
 

Looks at the last diagnostic context at the top of this NDC without removing it.

The returned value is the value that was pushed last. If no context is available, then the empty string "" is returned.

Returns:
String The innermost diagnostic context.

static bool pop CFStringRef dst  )  [static]
 

Gets and removes the current NDC value.

Parameters:
dst destination.
Returns:
true if NDC value set.

static bool pop std::basic_string< UniChar > &  dst  )  [static]
 

Appends the current NDC content to the provided string and removes the value from the NDC.

Parameters:
dst destination.
Returns:
true if NDC value set.

static bool pop std::wstring &  dst  )  [static]
 

Appends the current NDC content to the provided string and removes the value from the NDC.

Parameters:
dst destination.
Returns:
true if NDC value set.

static bool pop std::string &  buf  )  [static]
 

Pop top value off stack.

Parameters:
buf to which top value is appended.
Returns:
true if NDC contained at least one value.

static LogString pop  )  [static]
 

Pop top value off stack.

Returns:
top value.

static void push const CFStringRef message  )  [static]
 

Push new diagnostic context information for the current thread.

The contents of the message parameter is determined solely by the client.

Parameters:
message The new diagnostic context information.

static void push const std::basic_string< UniChar > &  message  )  [static]
 

Push new diagnostic context information for the current thread.

The contents of the message parameter is determined solely by the client.

Parameters:
message The new diagnostic context information.

static void push const std::wstring &  message  )  [static]
 

Push new diagnostic context information for the current thread.

The contents of the message parameter is determined solely by the client.

Parameters:
message The new diagnostic context information.

static void push const std::string &  message  )  [static]
 

Push new diagnostic context information for the current thread.

The contents of the message parameter is determined solely by the client.

Parameters:
message The new diagnostic context information.

static void pushLS const LogString message  )  [static]
 

Push new diagnostic context information for the current thread.

The contents of the message parameter is determined solely by the client.

Parameters:
message The new diagnostic context information.

static void remove  )  [static]
 

Remove the diagnostic context for this thread.

Each thread that created a diagnostic context by calling push should call this method before exiting. Otherwise, the memory used by the thread cannot be reclaimed by the VM.

As this is such an important problem in heavy duty systems and because it is difficult to always guarantee that the remove method is called before exiting a thread, this method has been augmented to lazily remove references to dead threads. In practice, this means that you can be a little sloppy and occasionally forget to call remove before exiting a thread. However, you must call remove sometime. If you never call it, then your application is sure to run out of memory.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_n_d_c-members.html100644 0 0 23033 10774263472 22667 0ustar 0 0 Apache log4cxx: Member List

NDC Member List

This is the complete list of members for NDC, including all inherited members.

clear()NDC [static]
cloneStack()NDC [static]
DiagnosticContext typedefNDC
empty()NDC [static]
get(LogString &dest)NDC [static]
getDepth()NDC [static]
inherit(Stack *stack)NDC [static]
NDC(const std::string &message)NDC
NDC(const std::wstring &message)NDC
NDC(const std::basic_string< UniChar > &message)NDC
NDC(const CFStringRef &message)NDC
peek()NDC [static]
peek(std::string &buf)NDC [static]
peek(std::wstring &dst)NDC [static]
peek(std::basic_string< UniChar > &dst)NDC [static]
peek(CFStringRef &dst)NDC [static]
pop()NDC [static]
pop(std::string &buf)NDC [static]
pop(std::wstring &dst)NDC [static]
pop(std::basic_string< UniChar > &dst)NDC [static]
pop(CFStringRef &dst)NDC [static]
push(const std::string &message)NDC [static]
push(const std::wstring &message)NDC [static]
push(const std::basic_string< UniChar > &message)NDC [static]
push(const CFStringRef &message)NDC [static]
pushLS(const LogString &message)NDC [static]
remove()NDC [static]
Stack typedefNDC
~NDC()NDC
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_pattern_layout.html100644 0 0 70764 10774263472 23264 0ustar 0 0 Apache log4cxx: PatternLayout Class Reference

PatternLayout Class Reference

Inherits Layout.

List of all members.


Detailed Description

A flexible layout configurable with pattern string.

The goal of this class is to format a LoggingEvent and return the results as a string. The results depend on the conversion pattern.

The conversion pattern is closely related to the conversion pattern of the printf function in C. A conversion pattern is composed of literal text and format control expressions called conversion specifiers.

You are free to insert any literal text within the conversion pattern.

Each conversion specifier starts with a percent sign (%) and is followed by optional format modifiers and a conversion character. The conversion character specifies the type of data, e.g. logger, level, date, thread name. The format modifiers control such things as field width, padding, left and right justification. The following is a simple example.

Let the conversion pattern be "\%-5p [\%t]: \%m\%n" and assume that the log4cxx environment was set to use a PatternLayout. Then the statements

        LoggerPtr root = Logger::getRoot();
        root->debug("Message 1");
        root->warn("Message 2");
        
would yield the output
        DEBUG [main]: Message 1
        WARN  [main]: Message 2
        

Note that there is no explicit separator between text and conversion specifiers. The pattern parser knows when it has reached the end of a conversion specifier when it reads a conversion character. In the example above the conversion specifier %-5p means the level of the logging event should be left justified to a width of five characters.

The recognized conversion characters are

Conversion Character Effect

c

Used to output the logger of the logging event. The logger conversion specifier can be optionally followed by precision specifier, that is a decimal constant in brackets.

If a precision specifier is given, then only the corresponding number of right most components of the logger name will be printed. By default the logger name is printed in full.

For example, for the logger name "a.b.c" the pattern %c{2} will output "b.c".

d Used to output the date of the logging event. The date conversion specifier may be followed by a set of braces containing a date and time pattern string compatible with java.text.SimpleDateFormat, ABSOLUTE, DATE or ISO8601. For example, d{HH:mm:ss,SSS}, d{dd MMM yyyy HH:mm:ss,SSS} or d{DATE}. If no date format specifier is given then ISO8601 format is assumed.

F

Used to output the file name where the logging request was issued.

l

Used to output location information of the caller which generated the logging event.

L

Used to output the line number from where the logging request was issued.

m Used to output the application supplied message associated with the logging event.

n

Outputs the platform dependent line separator character or characters.

This conversion character offers practically the same performance as using non-portable line separator strings such as "\n", or "\r\n". Thus, it is the preferred way of specifying a line separator.

p Used to output the level of the logging event.

r

Used to output the number of milliseconds elapsed since the start of the application until the creation of the logging event.

t

Used to output the name of the thread that generated the logging event.

x

Used to output the NDC (nested diagnostic context) associated with the thread that generated the logging event.

X

Used to output the MDC (mapped diagnostic context) associated with the thread that generated the logging event. The X conversion character must be followed by the key for the map placed between braces, as in %X{clientNumber} where clientNumber is the key. The value in the MDC corresponding to the key will be output.

See MDC class for more details.

%

The sequence %% outputs a single percent sign.

By default the relevant information is output as is. However, with the aid of format modifiers it is possible to change the minimum field width, the maximum field width and justification.

The optional format modifier is placed between the percent sign and the conversion character.

The first optional format modifier is the left justification flag which is just the minus (-) character. Then comes the optional minimum field width modifier. This is a decimal constant that represents the minimum number of characters to output. If the data item requires fewer characters, it is padded on either the left or the right until the minimum width is reached. The default is to pad on the left (right justify) but you can specify right padding with the left justification flag. The padding character is space. If the data item is larger than the minimum field width, the field is expanded to accommodate the data. The value is never truncated.

This behavior can be changed using the maximum field width modifier which is designated by a period followed by a decimal constant. If the data item is longer than the maximum field, then the extra characters are removed from the beginning of the data item and not from the end. For example, it the maximum field width is eight and the data item is ten characters long, then the first two characters of the data item are dropped. This behavior deviates from the printf function in C where truncation is done from the end.

Below are various format modifier examples for the logger conversion specifier.

Format modifier left justify minimum width maximum width comment

%20c false 20 none

Left pad with spaces if the logger name is less than 20 characters long.

%-20c true 20 none Right pad with spaces if the logger name is less than 20 characters long.

%.30c NA none 30

Truncate from the beginning if the logger name is longer than 30 characters.

%20.30c false 20 30

Left pad with spaces if the logger name is shorter than 20 characters. However, if logger name is longer than 30 characters, then truncate from the beginning.

%-20.30c true 20 30

Right pad with spaces if the logger name is shorter than 20 characters. However, if logger name is longer than 30 characters, then truncate from the beginning.

Below are some examples of conversion patterns.

%r [%t] %-5p %c %x - %m

This is essentially the TTCC layout.

%-6r [%15.15t] %-5p %30.30c %x - %m

Similar to the TTCC layout except that the relative time is right padded if less than 6 digits, thread name is right padded if less than 15 characters and truncated if longer and the logger name is left padded if shorter than 30 characters and truncated if longer.

The above text is largely inspired from Peter A. Darnell and Philip E. Margolis' highly recommended book "C -- a Software Engineering Approach", ISBN 0-387-97389-3.


Public Member Functions

 PatternLayout ()
 Does nothing.
 PatternLayout (const LogString &pattern)
 Constructs a PatternLayout using the supplied conversion pattern.
void setConversionPattern (const LogString &conversionPattern)
 Set the ConversionPattern option.
LogString getConversionPattern () const
 Returns the value of the ConversionPattern option.
virtual void activateOptions (log4cxx::helpers::Pool &p)
 Call createPatternParser.
virtual void setOption (const LogString &option, const LogString &value)
 Set option to value.
virtual bool ignoresThrowable () const
 The PatternLayout does not handle the throwable contained within LoggingEvents.
virtual void format (LogString &output, const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool) const
 Produces a formatted string as specified by the conversion pattern.

Protected Member Functions

virtual log4cxx::pattern::PatternMap getFormatSpecifiers ()


Constructor & Destructor Documentation

PatternLayout  ) 
 

Does nothing.

PatternLayout const LogString pattern  ) 
 

Constructs a PatternLayout using the supplied conversion pattern.


Member Function Documentation

virtual void activateOptions log4cxx::helpers::Pool p  )  [virtual]
 

Call createPatternParser.

Implements OptionHandler.

virtual void format LogString output,
const spi::LoggingEventPtr event,
log4cxx::helpers::Pool pool
const [virtual]
 

Produces a formatted string as specified by the conversion pattern.

Implements Layout.

LogString getConversionPattern  )  const [inline]
 

Returns the value of the ConversionPattern option.

virtual log4cxx::pattern::PatternMap getFormatSpecifiers  )  [protected, virtual]
 

virtual bool ignoresThrowable  )  const [inline, virtual]
 

The PatternLayout does not handle the throwable contained within LoggingEvents.

Thus, it returns true.

Implements Layout.

void setConversionPattern const LogString conversionPattern  ) 
 

Set the ConversionPattern option.

This is the string which controls formatting and consists of a mix of literal content and conversion specifiers.

virtual void setOption const LogString option,
const LogString value
[virtual]
 

Set option to value.

The handling of each option depends on the OptionHandler instance. Some options may become active immediately whereas other may be activated only when activateOptions is called.

Implements OptionHandler.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_pattern_layout-members.html100644 0 0 22726 10774263472 24707 0ustar 0 0 Apache log4cxx: Member List

PatternLayout Member List

This is the complete list of members for PatternLayout, including all inherited members.

activateOptions(log4cxx::helpers::Pool &p)PatternLayout [virtual]
addRef() const Layout [virtual]
appendFooter(LogString &output, log4cxx::helpers::Pool &p)Layout [virtual]
appendHeader(LogString &output, log4cxx::helpers::Pool &p)Layout [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
format(LogString &output, const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool) const PatternLayout [virtual]
getClass() const Object [virtual]
getContentType() const Layout [virtual]
getConversionPattern() const PatternLayout [inline]
getFormatSpecifiers()PatternLayout [protected, virtual]
getStaticClass()Object [static]
ignoresThrowable() const PatternLayout [inline, virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
PatternLayout()PatternLayout
PatternLayout(const LogString &pattern)PatternLayout
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const Layout [virtual]
setConversionPattern(const LogString &conversionPattern)PatternLayout
setOption(const LogString &option, const LogString &value)PatternLayout [virtual]
~Layout()Layout [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_property_configurator.html100644 0 0 144603 10774263472 24672 0ustar 0 0 Apache log4cxx: PropertyConfigurator Class Reference

PropertyConfigurator Class Reference

Inherits Configurator, and ObjectImpl.

List of all members.


Detailed Description

Allows the configuration of log4cxx from an external file.

See doConfigure(const File&, log4cxx::spi::LoggerRepositoryPtr&) for the expected format.

It is sometimes useful to see how log4cxx is reading configuration files. You can enable log4cxx internal logging by defining the log4j.debug variable.

At class initialization time class, the file log4j.properties will be searched in the current directory. If the file can be found, then it will be fed to the PropertyConfigurator#configure(const File& configFilename) method.

The PropertyConfigurator does not handle the advanced configuration features supported by the DOMConfigurator such as support for Filters, custom ErrorHandlers, nested appenders such as the AsyncAppender, etc.

All option values admit variable substitution. The syntax of variable substitution is similar to that of Unix shells. The string between an opening "${" and closing "}" is interpreted as a key. The value of the substituted variable can be defined as a system property or in the configuration file itself. The value of the key is first searched in the system properties, and if not found there, it is then searched in the configuration file being parsed. The corresponding value replaces the ${variableName} sequence. For example, if java.home system property is set to /home/xyz, then every occurrence of the sequence ${java.home} will be interpreted as /home/xyz.


Public Member Functions

 PropertyConfigurator ()
virtual ~PropertyConfigurator ()
void addRef () const
void releaseRef () const
void doConfigure (const File &configFileName, spi::LoggerRepositoryPtr &hierarchy)
 Read configuration from a file.
void doConfigure (helpers::Properties &properties, spi::LoggerRepositoryPtr &hierarchy)
 Read configuration options from properties.

Static Public Member Functions

static void configure (const File &configFilename)
 Read configuration options from file configFilename.
static void configureAndWatch (const File &configFilename)
 Like configureAndWatch(const File& configFilename, long delay) except that the default delay as defined by helpers::FileWatchdog::DEFAULT_DELAY is used.
static void configureAndWatch (const File &configFilename, long delay)
 Read the configuration file configFilename if it exists.
static void configure (helpers::Properties &properties)
 Read configuration options from properties.

Protected Member Functions

void configureLoggerFactory (helpers::Properties &props)
 Check the provided Properties object for a loggerFactory entry specified by LOGGER_FACTORY_KEY.
void configureRootLogger (helpers::Properties &props, spi::LoggerRepositoryPtr &hierarchy)
void parseCatsAndRenderers (helpers::Properties &props, spi::LoggerRepositoryPtr &hierarchy)
 Parse non-root elements, such non-root categories and renderers.
void parseAdditivityForLogger (helpers::Properties &props, LoggerPtr &cat, const LogString &loggerName)
 Parse the additivity option for a non-root logger.
void parseLogger (helpers::Properties &props, LoggerPtr &logger, const LogString &optionKey, const LogString &loggerName, const LogString &value)
 This method must work for the root logger as well.
AppenderPtr parseAppender (helpers::Properties &props, const LogString &appenderName)
void registryPut (const AppenderPtr &appender)
AppenderPtr registryGet (const LogString &name)

Protected Attributes

std::map< LogString, AppenderPtr > * registry
 Used internally to keep track of configured appenders.
helpers::ObjectPtrT< spi::LoggerFactoryloggerFactory
 Used to create new instances of logger.


Constructor & Destructor Documentation

PropertyConfigurator  ) 
 

virtual ~PropertyConfigurator  )  [virtual]
 


Member Function Documentation

void addRef  )  const [virtual]
 

Reimplemented from ObjectImpl.

static void configure helpers::Properties properties  )  [static]
 

Read configuration options from properties.

See doConfigure(const File&, log4cxx::spi::LoggerRepositoryPtr&) for the expected format.

static void configure const File configFilename  )  [static]
 

Read configuration options from file configFilename.

static void configureAndWatch const File configFilename,
long  delay
[static]
 

Read the configuration file configFilename if it exists.

Moreover, a thread will be created that will periodically check if configFilename has been created or modified. The period is determined by the delay argument. If a change or file creation is detected, then configFilename is read to configure log4j.

Parameters:
configFilename A file in key=value format.
delay The delay in milliseconds to wait between each check.

static void configureAndWatch const File configFilename  )  [static]
 

Like configureAndWatch(const File& configFilename, long delay) except that the default delay as defined by helpers::FileWatchdog::DEFAULT_DELAY is used.

Parameters:
configFilename A file in key=value format.

void configureLoggerFactory helpers::Properties props  )  [protected]
 

Check the provided Properties object for a loggerFactory entry specified by LOGGER_FACTORY_KEY.

If such an entry exists, an attempt is made to create an instance using the default constructor. This instance is used for subsequent Logger creations within this configurator.

See also:
parseCatsAndRenderers

void configureRootLogger helpers::Properties props,
spi::LoggerRepositoryPtr hierarchy
[protected]
 

void doConfigure helpers::Properties properties,
spi::LoggerRepositoryPtr hierarchy
 

Read configuration options from properties.

See doConfigure(const File&, log4cxx::spi::LoggerRepositoryPtr&) for the expected format.

void doConfigure const File configFileName,
spi::LoggerRepositoryPtr hierarchy
[virtual]
 

Read configuration from a file.

The existing configuration is not cleared nor reset. If you require a different behavior, then call resetConfiguration method before calling doConfigure.

The configuration file consists of statements in the format key=value. The syntax of different configuration elements are discussed below.

Repository-wide threshold

The repository-wide threshold filters logging requests by level regardless of logger. The syntax is:

log4j.threshold=[level]

The level value can consist of the string values OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL or a custom level value. A custom level value can be specified in the form level::classname. By default the repository-wide threshold is set to the lowest possible value, namely the level ALL.

Appender configuration

Appender configuration syntax is:

# For appender named appenderName, set its class.
# Note: The appender name can contain dots.
log4j.appender.appenderName=fully.qualified.name.of.appender.class

# Set appender specific options.
log4j.appender.appenderName.option1=value1
...
log4j.appender.appenderName.optionN=valueN

For each named appender you can configure its Layout. The syntax for configuring an appender's layout is:

log4j.appender.appenderName.layout=fully.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1=value1
....
log4j.appender.appenderName.layout.optionN=valueN

Configuring loggers

The syntax for configuring the root logger is:

log4j.rootLogger=[level], appenderName, appenderName, ...

This syntax means that an optional level can be supplied followed by appender names separated by commas.

The level value can consist of the string values OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL or a custom level value. A custom level value can be specified in the form level::classname.

If a level value is specified, then the root level is set to the corresponding level. If no level value is specified, then the root level remains untouched.

The root logger can be assigned multiple appenders.

Each appenderName (separated by commas) will be added to the root logger. The named appender is defined using the appender syntax defined above.

For non-root categories the syntax is almost the same:

log4j.logger.logger_name=[level|INHERITED|NULL], appenderName, appenderName,
...

The meaning of the optional level value is discussed above in relation to the root logger. In addition however, the value INHERITED can be specified meaning that the named logger should inherit its level from the logger hierarchy.

If no level value is supplied, then the level of the named logger remains untouched.

By default categories inherit their level from the hierarchy. However, if you set the level of a logger and later decide that that logger should inherit its level, then you should specify INHERITED as the value for the level value. NULL is a synonym for INHERITED.

Similar to the root logger syntax, each appenderName (separated by commas) will be attached to the named logger.

See the appender additivity rule in the user manual for the meaning of the additivity flag.

Logger Factories

The usage of custom logger factories is discouraged and no longer documented.

Example

An example configuration is given below. Other configuration file examples are given in the examples folder.

# Set options for appender named "A1".
# Appender "A1" will be a SyslogAppender
log4j.appender.A1=SyslogAppender

# The syslog daemon resides on www.abc.net
log4j.appender.A1.SyslogHost=www.abc.net

# A1's layout is a PatternLayout, using the conversion pattern
# r -5p c{2} M.L x - m
. Thus, the log output will # include # the relative time since the start of the application in # milliseconds, followed by the level of the log request, # followed by the two rightmost components of the logger name, # followed by the callers method name, followed by the line number, # the nested disgnostic context and finally the message itself. # Refer to the documentation of PatternLayout for further information # on the syntax of the ConversionPattern key. log4j.appender.A1.layout=PatternLayout log4j.appender.A1.layout.ConversionPattern=-4r -5p c{2} M.L x - m

# Set options for appender named "A2"
# A2 should be a RollingFileAppender, with maximum file size of 10 MB
# using at most one backup file. A2's layout is TTCC, using the
# ISO8061 date format with context printing enabled.
log4j.appender.A2=RollingFileAppender
log4j.appender.A2.MaxFileSize=10MB
log4j.appender.A2.MaxBackupIndex=1
log4j.appender.A2.layout=TTCCLayout
log4j.appender.A2.layout.ContextPrinting=enabled
log4j.appender.A2.layout.DateFormat=ISO8601

# Root logger set to DEBUG using the A2 appender defined above.
log4j.rootLogger=DEBUG, A2

# Logger definitions:
# The SECURITY logger inherits is level from root. However, it's output
# will go to A1 appender defined above. It's additivity is non-cumulative.
log4j.logger.SECURITY=INHERIT, A1
log4j.additivity.SECURITY=false

# Only warnings or above will be logged for the logger "SECURITY.access".
# Output will go to A1.
log4j.logger.SECURITY.access=WARN

# The logger "class.of.the.day" inherits its level from the
# logger hierarchy.  Output will go to the appender's of the root
# logger, A2 in this case.
log4j.logger.class.of.the.day=INHERIT

Refer to the setOption method in each Appender and Layout for class specific options.

Use the # or ! characters at the beginning of a line for comments.

Parameters:
configFileName The name of the configuration file where the configuration information is stored.
hierarchy The hierarchy to operation upon.

Implements Configurator.

void parseAdditivityForLogger helpers::Properties props,
LoggerPtr cat,
const LogString loggerName
[protected]
 

Parse the additivity option for a non-root logger.

AppenderPtr parseAppender helpers::Properties props,
const LogString appenderName
[protected]
 

void parseCatsAndRenderers helpers::Properties props,
spi::LoggerRepositoryPtr hierarchy
[protected]
 

Parse non-root elements, such non-root categories and renderers.

void parseLogger helpers::Properties props,
LoggerPtr logger,
const LogString optionKey,
const LogString loggerName,
const LogString value
[protected]
 

This method must work for the root logger as well.

AppenderPtr registryGet const LogString name  )  [protected]
 

void registryPut const AppenderPtr appender  )  [protected]
 

void releaseRef  )  const [virtual]
 

Reimplemented from ObjectImpl.


Member Data Documentation

helpers::ObjectPtrT<spi::LoggerFactory> loggerFactory [protected]
 

Used to create new instances of logger.

std::map<LogString, AppenderPtr>* registry [protected]
 

Used internally to keep track of configured appenders.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_property_configurator-members.html100644 0 0 27360 10774263472 26302 0ustar 0 0 Apache log4cxx: Member List

PropertyConfigurator Member List

This is the complete list of members for PropertyConfigurator, including all inherited members.

addRef() const PropertyConfigurator [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
Configurator()Configurator
configure(const File &configFilename)PropertyConfigurator [static]
configure(helpers::Properties &properties)PropertyConfigurator [static]
configureAndWatch(const File &configFilename)PropertyConfigurator [static]
configureAndWatch(const File &configFilename, long delay)PropertyConfigurator [static]
configureLoggerFactory(helpers::Properties &props)PropertyConfigurator [protected]
configureRootLogger(helpers::Properties &props, spi::LoggerRepositoryPtr &hierarchy)PropertyConfigurator [protected]
doConfigure(const File &configFileName, spi::LoggerRepositoryPtr &hierarchy)PropertyConfigurator [virtual]
doConfigure(helpers::Properties &properties, spi::LoggerRepositoryPtr &hierarchy)PropertyConfigurator
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
loggerFactoryPropertyConfigurator [protected]
ObjectImpl()ObjectImpl
parseAdditivityForLogger(helpers::Properties &props, LoggerPtr &cat, const LogString &loggerName)PropertyConfigurator [protected]
parseAppender(helpers::Properties &props, const LogString &appenderName)PropertyConfigurator [protected]
parseCatsAndRenderers(helpers::Properties &props, spi::LoggerRepositoryPtr &hierarchy)PropertyConfigurator [protected]
parseLogger(helpers::Properties &props, LoggerPtr &logger, const LogString &optionKey, const LogString &loggerName, const LogString &value)PropertyConfigurator [protected]
PropertyConfigurator()PropertyConfigurator
refObjectImpl [mutable, protected]
registerClass()Object [static]
registryPropertyConfigurator [protected]
registryGet(const LogString &name)PropertyConfigurator [protected]
registryPut(const AppenderPtr &appender)PropertyConfigurator [protected]
releaseRef() const PropertyConfigurator [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~PropertyConfigurator()PropertyConfigurator [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_rolling_file_appender.html100644 0 0 57760 10774263472 24536 0ustar 0 0 Apache log4cxx: RollingFileAppender Class Reference

RollingFileAppender Class Reference

Inherits RollingFileAppenderSkeleton.

List of all members.


Detailed Description

RollingFileAppender extends FileAppender to backup the log files when they reach a certain size.


Public Member Functions

 RollingFileAppender ()
 The default constructor simply calls its parents constructor.
 RollingFileAppender (const LayoutPtr &layout, const LogString &fileName, bool append)
 Instantiate a RollingFileAppender and open the file designated by filename.
 RollingFileAppender (const LayoutPtr &layout, const LogString &fileName)
 Instantiate a FileAppender and open the file designated by filename.
virtual ~RollingFileAppender ()
int getMaxBackupIndex () const
 Returns the value of the MaxBackupIndex option.
long getMaximumFileSize () const
 Get the maximum size that the output file is allowed to reach before being rolled over to backup files.
void setMaxBackupIndex (int maxBackupIndex)
 Set the maximum number of backup files to keep around.
void setMaxFileSize (const LogString &value)
 Set the maximum size that the output file is allowed to reach before being rolled over to backup files.
void setMaximumFileSize (int value)
virtual void setOption (const LogString &option, const LogString &value)
 Set option to value.
void activateOptions (log4cxx::helpers::Pool &pool)
 Prepares RollingFileAppender for use.


Constructor & Destructor Documentation

RollingFileAppender  ) 
 

The default constructor simply calls its parents constructor.

RollingFileAppender const LayoutPtr layout,
const LogString fileName,
bool  append
 

Instantiate a RollingFileAppender and open the file designated by filename.

The opened filename will become the ouput destination for this appender.

If the append parameter is true, the file will be appended to. Otherwise, the file desginated by filename will be truncated before being opened.

RollingFileAppender const LayoutPtr layout,
const LogString fileName
 

Instantiate a FileAppender and open the file designated by filename.

The opened filename will become the output destination for this appender.

The file will be appended to.

virtual ~RollingFileAppender  )  [virtual]
 


Member Function Documentation

void activateOptions log4cxx::helpers::Pool pool  )  [virtual]
 

Prepares RollingFileAppender for use.

Reimplemented from RollingFileAppenderSkeleton.

int getMaxBackupIndex  )  const
 

Returns the value of the MaxBackupIndex option.

long getMaximumFileSize  )  const
 

Get the maximum size that the output file is allowed to reach before being rolled over to backup files.

void setMaxBackupIndex int  maxBackupIndex  ) 
 

Set the maximum number of backup files to keep around.

The MaxBackupIndex option determines how many backup files are kept before the oldest is erased. This option takes a positive integer value. If set to zero, then there will be no backup files and the log file will be truncated when it reaches MaxFileSize.

void setMaxFileSize const LogString value  ) 
 

Set the maximum size that the output file is allowed to reach before being rolled over to backup files.

In configuration files, the MaxFileSize option takes an long integer in the range 0 - 2^63. You can specify the value with the suffixes "KB", "MB" or "GB" so that the integer is interpreted being expressed respectively in kilobytes, megabytes or gigabytes. For example, the value "10KB" will be interpreted as 10240.

void setMaximumFileSize int  value  ) 
 

virtual void setOption const LogString option,
const LogString value
[virtual]
 

Set option to value.

The handling of each option depends on the OptionHandler instance. Some options may become active immediately whereas other may be activated only when activateOptions is called.

Reimplemented from FileAppender.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_rolling_file_appender-members.html100644 0 0 72621 10774263472 26157 0ustar 0 0 Apache log4cxx: Member List

RollingFileAppender Member List

This is the complete list of members for RollingFileAppender, including all inherited members.

activateOptions(log4cxx::helpers::Pool &pool)RollingFileAppender [virtual]
addFilter(const spi::FilterPtr &newFilter)AppenderSkeleton [virtual]
addRef() const AppenderSkeleton [virtual]
append(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)WriterAppender [virtual]
AppenderSkeleton()AppenderSkeleton
AppenderSkeleton(const LayoutPtr &layout)AppenderSkeleton
bufferedIOFileAppender [protected]
bufferSizeFileAppender [protected]
cast(const Class &clazz) const =0Object [pure virtual]
checkEntryConditions() const WriterAppender [protected, virtual]
clearFilters()AppenderSkeleton [virtual]
close()RollingFileAppenderSkeleton [virtual]
closedAppenderSkeleton [protected]
closeWriter()WriterAppender [protected]
createWriter(log4cxx::helpers::OutputStreamPtr &os)RollingFileAppenderSkeleton [protected, virtual]
doAppend(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)AppenderSkeleton [virtual]
errorHandlerAppenderSkeleton [protected]
fileAppendFileAppender [protected]
FileAppender()FileAppender
FileAppender(const LayoutPtr &layout, const LogString &filename, bool append, bool bufferedIO, int bufferSize)FileAppender
FileAppender(const LayoutPtr &layout, const LogString &filename, bool append)FileAppender
FileAppender(const LayoutPtr &layout, const LogString &filename)FileAppender
fileNameFileAppender [protected]
finalize()AppenderSkeleton
getAppend() const FileAppender [inline]
getBufferedIO() const FileAppender [inline]
getBufferSize() const FileAppender [inline]
getClass() const Object [virtual]
getEncoding() const WriterAppender
getErrorHandler() const AppenderSkeleton [inline]
getFile() const FileAppender [inline]
getFileLength() const RollingFileAppenderSkeleton
getFilter() const AppenderSkeleton [inline, virtual]
getFirstFilter() const AppenderSkeleton [inline]
getImmediateFlush() const WriterAppender [inline]
getLayout() const AppenderSkeleton [inline, virtual]
getMaxBackupIndex() const RollingFileAppender
getMaximumFileSize() const RollingFileAppender
getName() const AppenderSkeleton [inline, virtual]
getRollingPolicy() const RollingFileAppenderSkeleton [protected]
getStaticClass()Object [static]
getThreshold()AppenderSkeleton [inline]
getTriggeringPolicy() const RollingFileAppenderSkeleton [protected]
headFilterAppenderSkeleton [protected]
incrementFileLength(size_t increment)RollingFileAppenderSkeleton
instanceof(const Class &clazz) const =0Object [pure virtual]
isAsSevereAsThreshold(const LevelPtr &level) const AppenderSkeleton
layoutAppenderSkeleton [protected]
mutexAppenderSkeleton [protected]
nameAppenderSkeleton [protected]
ObjectImpl()ObjectImpl
poolAppenderSkeleton [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const AppenderSkeleton [virtual]
requiresLayout() const WriterAppender [virtual]
RollingFileAppender()RollingFileAppender
RollingFileAppender(const LayoutPtr &layout, const LogString &fileName, bool append)RollingFileAppender
RollingFileAppender(const LayoutPtr &layout, const LogString &fileName)RollingFileAppender
RollingFileAppenderSkeleton()RollingFileAppenderSkeleton
rollover(log4cxx::helpers::Pool &p)RollingFileAppenderSkeleton
setAppend(bool fileAppend1)FileAppender
setBufferedIO(bool bufferedIO)FileAppender
setBufferSize(int bufferSize1)FileAppender [inline]
setEncoding(const LogString &value)WriterAppender
setErrorHandler(const spi::ErrorHandlerPtr &eh)AppenderSkeleton
setFile(const LogString &file)FileAppender [virtual]
setFile(const LogString &file, bool append, bool bufferedIO, size_t bufferSize, log4cxx::helpers::Pool &p)FileAppender [virtual]
setImmediateFlush(bool value)WriterAppender
setLayout(const LayoutPtr &layout1)AppenderSkeleton [inline, virtual]
setMaxBackupIndex(int maxBackupIndex)RollingFileAppender
setMaxFileSize(const LogString &value)RollingFileAppender
setMaximumFileSize(int value)RollingFileAppender
setName(const LogString &name1)AppenderSkeleton [inline, virtual]
setOption(const LogString &option, const LogString &value)RollingFileAppender [virtual]
setRollingPolicy(const RollingPolicyPtr &policy)RollingFileAppenderSkeleton [protected]
setThreshold(const LevelPtr &threshold)AppenderSkeleton
setTriggeringPolicy(const TriggeringPolicyPtr &policy)RollingFileAppenderSkeleton [protected]
setWriter(const log4cxx::helpers::WriterPtr &writer)WriterAppender
stripDuplicateBackslashes(const LogString &name)FileAppender [static]
subAppend(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)RollingFileAppenderSkeleton [protected, virtual]
tailFilterAppenderSkeleton [protected]
thresholdAppenderSkeleton [protected]
writeFooter(log4cxx::helpers::Pool &p)WriterAppender [protected, virtual]
writeHeader(log4cxx::helpers::Pool &p)WriterAppender [protected, virtual]
WriterAppender()WriterAppender
WriterAppender(const LayoutPtr &layout, log4cxx::helpers::WriterPtr &writer)WriterAppender [protected]
WriterAppender(const LayoutPtr &layout)WriterAppender [protected]
~Appender()Appender [inline, virtual]
~FileAppender()FileAppender
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
~RollingFileAppender()RollingFileAppender [virtual]
~WriterAppender()WriterAppender
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_simple_layout.html100644 0 0 32165 10774263472 23071 0ustar 0 0 Apache log4cxx: SimpleLayout Class Reference

SimpleLayout Class Reference

Inherits Layout.

List of all members.


Detailed Description

SimpleLayout consists of the level of the log statement, followed by " - " and then the log message itself.

For example,

                DEBUG - Hello world
        

PatternLayout offers a much more powerful alternative.


Public Member Functions

virtual void format (LogString &output, const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool) const
 Returns the log statement in a format consisting of the level, followed by " - " and then the message.
bool ignoresThrowable () const
 The SimpleLayout does not handle the throwable contained within LoggingEvents.
virtual void activateOptions (log4cxx::helpers::Pool &)
 Activate the options that were previously set with calls to option setters.
virtual void setOption (const LogString &, const LogString &)
 Set option to value.


Member Function Documentation

virtual void activateOptions log4cxx::helpers::Pool  )  [inline, virtual]
 

Activate the options that were previously set with calls to option setters.

This allows to defer activiation of the options until all options have been set. This is required for components which have related options that remain ambigous until all are set.

For example, the FileAppender has the File and Append options both of which are ambigous until the other is also set.

Implements OptionHandler.

virtual void format LogString output,
const spi::LoggingEventPtr event,
log4cxx::helpers::Pool pool
const [virtual]
 

Returns the log statement in a format consisting of the level, followed by " - " and then the message.

For example,

 INFO - "A message"
                

Returns:
A byte array in SimpleLayout format.

Implements Layout.

bool ignoresThrowable  )  const [inline, virtual]
 

The SimpleLayout does not handle the throwable contained within LoggingEvents.

Thus, it returns true.

Implements Layout.

virtual void setOption const LogString ,
const LogString
[inline, virtual]
 

Set option to value.

The handling of each option depends on the OptionHandler instance. Some options may become active immediately whereas other may be activated only when activateOptions is called.

Implements OptionHandler.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_simple_layout-members.html100644 0 0 20206 10774263472 24512 0ustar 0 0 Apache log4cxx: Member List

SimpleLayout Member List

This is the complete list of members for SimpleLayout, including all inherited members.

activateOptions(log4cxx::helpers::Pool &)SimpleLayout [inline, virtual]
addRef() const Layout [virtual]
appendFooter(LogString &output, log4cxx::helpers::Pool &p)Layout [virtual]
appendHeader(LogString &output, log4cxx::helpers::Pool &p)Layout [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
format(LogString &output, const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool) const SimpleLayout [virtual]
getClass() const Object [virtual]
getContentType() const Layout [virtual]
getStaticClass()Object [static]
ignoresThrowable() const SimpleLayout [inline, virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const Layout [virtual]
setOption(const LogString &, const LogString &)SimpleLayout [inline, virtual]
~Layout()Layout [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1logstream__base.html100644 0 0 125711 10774263472 23212 0ustar 0 0 Apache log4cxx: logstream_base Class Reference

logstream_base Class Reference

Inherited by logstream, ulogstream, and wlogstream.

List of all members.


Detailed Description

Base class for the basic_logstream template which attempts to emulate std::basic_ostream but attempts to short-circuit unnecessary operations.

The logstream has a logger and level that are used for logging requests. The level of the stream is compared against the current level of the logger to determine if the request should be processed.


Public Member Functions

 logstream_base (const log4cxx::LoggerPtr &logger, const log4cxx::LevelPtr &level)
 Create new instance.
virtual ~logstream_base ()
 Destructor.
void insert (std::ios_base &(*manip)(std::ios_base &))
 Insertion operator for std::fixed and similar manipulators.
int precision ()
 get precision.
int width ()
 get width.
int precision (int newval)
 set precision.
int width (int newval)
 set width.
int fill ()
 Get fill character.
int fill (int newval)
 Set fill character.
std::ios_base::fmtflags flags (std::ios_base::fmtflags newflags)
 Set flags.
std::ios_base::fmtflags setf (std::ios_base::fmtflags newflags, std::ios_base::fmtflags mask)
 Set flags.
std::ios_base::fmtflags setf (std::ios_base::fmtflags newflags)
 Set flags.
void end_message ()
 end of message action.
void setLevel (const LevelPtr &level)
 Set the level.
bool isEnabled () const
 Returns true if the current level is the same or high as the level of logger at time of construction or last setLevel.
bool isEnabledFor (const LevelPtr &level) const
 Returns if logger is currently enabled for the specified level.
void setLocation (const log4cxx::spi::LocationInfo &location)
 Sets the location for subsequent log requests.
bool set_stream_state (std::ios_base &os, int &fillchar)
 Sets the state of the embedded stream (if any) to the state of the formatting info.

Static Public Member Functions

static logstream_baseendmsg (logstream_base &)
 end of message manipulator, triggers logging.
static logstream_basenop (logstream_base &)
 no-operation manipulator, Used to avoid ambiguity with VC6.

Protected Member Functions

virtual void log (LoggerPtr &logger, const LevelPtr &level, const log4cxx::spi::LocationInfo &location)=0
 Dispatches the pending log request.
virtual void erase ()=0
 Erase any content in the message construction buffer.
virtual void get_stream_state (std::ios_base &base, std::ios_base &mask, int &fill, bool &fillSet) const =0
 Copy state of embedded stream (if any) to value and mask instances of std::ios_base and return fill character value.
virtual void refresh_stream_state ()=0

Classes

class  logstream_ios_base
 Minimal extension of std::ios_base to allow creation of embedded IO states.


Constructor & Destructor Documentation

logstream_base const log4cxx::LoggerPtr logger,
const log4cxx::LevelPtr level
 

Create new instance.

Parameters:
logger logger logger used in log requests.
level indicates level that will be used in log requests. Can be modified later by inserting a level or calling setLevel.

virtual ~logstream_base  )  [virtual]
 

Destructor.


Member Function Documentation

void end_message  ) 
 

end of message action.

static logstream_base& endmsg logstream_base  )  [static]
 

end of message manipulator, triggers logging.

virtual void erase  )  [protected, pure virtual]
 

Erase any content in the message construction buffer.

Implemented in logstream, wlogstream, and ulogstream.

int fill int  newval  ) 
 

Set fill character.

int fill  ) 
 

Get fill character.

std::ios_base::fmtflags flags std::ios_base::fmtflags  newflags  ) 
 

Set flags.

see std::ios_base.

virtual void get_stream_state std::ios_base &  base,
std::ios_base &  mask,
int &  fill,
bool &  fillSet
const [protected, pure virtual]
 

Copy state of embedded stream (if any) to value and mask instances of std::ios_base and return fill character value.

Implemented in logstream, wlogstream, and ulogstream.

void insert std::ios_base &(*)(std::ios_base &)  manip  ) 
 

Insertion operator for std::fixed and similar manipulators.

bool isEnabled  )  const [inline]
 

Returns true if the current level is the same or high as the level of logger at time of construction or last setLevel.

bool isEnabledFor const LevelPtr level  )  const
 

Returns if logger is currently enabled for the specified level.

virtual void log LoggerPtr logger,
const LevelPtr level,
const log4cxx::spi::LocationInfo location
[protected, pure virtual]
 

Dispatches the pending log request.

Implemented in logstream, wlogstream, and ulogstream.

static logstream_base& nop logstream_base  )  [static]
 

no-operation manipulator, Used to avoid ambiguity with VC6.

int precision int  newval  ) 
 

set precision.

This should be used in preference to inserting an std::setprecision(n) since the other requires construction of an STL stream which may be expensive.

int precision  ) 
 

get precision.

virtual void refresh_stream_state  )  [protected, pure virtual]
 

Implemented in logstream, wlogstream, and ulogstream.

bool set_stream_state std::ios_base &  os,
int &  fillchar
 

Sets the state of the embedded stream (if any) to the state of the formatting info.

Parameters:
os stream to receive formatting info.
fillchar receives fill charater.
Returns:
true if fill character was specified.

std::ios_base::fmtflags setf std::ios_base::fmtflags  newflags  ) 
 

Set flags.

see std::ios_base.

std::ios_base::fmtflags setf std::ios_base::fmtflags  newflags,
std::ios_base::fmtflags  mask
 

Set flags.

see std::ios_base.

void setLevel const LevelPtr level  ) 
 

Set the level.

Parameters:
level level

void setLocation const log4cxx::spi::LocationInfo location  ) 
 

Sets the location for subsequent log requests.

int width int  newval  ) 
 

set width.

This should be used in preference to inserting an std::setw(n) since the other requires construction of an STL stream which may be expensive.

int width  ) 
 

get width.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1logstream__base-members.html100644 0 0 22275 10774263472 24623 0ustar 0 0 Apache log4cxx: Member List

logstream_base Member List

This is the complete list of members for logstream_base, including all inherited members.

end_message()logstream_base
endmsg(logstream_base &)logstream_base [static]
erase()=0logstream_base [protected, pure virtual]
fill()logstream_base
fill(int newval)logstream_base
flags(std::ios_base::fmtflags newflags)logstream_base
get_stream_state(std::ios_base &base, std::ios_base &mask, int &fill, bool &fillSet) const =0logstream_base [protected, pure virtual]
insert(std::ios_base &(*manip)(std::ios_base &))logstream_base
isEnabled() const logstream_base [inline]
isEnabledFor(const LevelPtr &level) const logstream_base
log(LoggerPtr &logger, const LevelPtr &level, const log4cxx::spi::LocationInfo &location)=0logstream_base [protected, pure virtual]
logstream_base(const log4cxx::LoggerPtr &logger, const log4cxx::LevelPtr &level)logstream_base
nop(logstream_base &)logstream_base [static]
precision()logstream_base
precision(int newval)logstream_base
refresh_stream_state()=0logstream_base [protected, pure virtual]
set_stream_state(std::ios_base &os, int &fillchar)logstream_base
setf(std::ios_base::fmtflags newflags, std::ios_base::fmtflags mask)logstream_base
setf(std::ios_base::fmtflags newflags)logstream_base
setLevel(const LevelPtr &level)logstream_base
setLocation(const log4cxx::spi::LocationInfo &location)logstream_base
width()logstream_base
width(int newval)logstream_base
~logstream_base()logstream_base [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1logstream.html100644 0 0 74104 10774263472 22040 0ustar 0 0 Apache log4cxx: logstream Class Reference

logstream Class Reference

Inherits logstream_base.

List of all members.


Detailed Description

An STL-like stream API for log4cxx using char as the character type.

. Instances of log4cxx::logstream are not designedfor use by multiple threads and in general should be short-lived function scoped objects. Using log4cxx::basic_logstream as a class member or static instance should be avoided in the same manner as you would avoid placing a std::ostringstream in those locations. Insertion operations are generally short-circuited if the level for the stream is not the same of higher that the level of the associated logger.


Public Member Functions

 logstream (const log4cxx::LoggerPtr &logger, const log4cxx::LevelPtr &level)
 Constructor.
 logstream (const Ch *loggerName, const log4cxx::LevelPtr &level)
 Constructor.
 logstream (const std::basic_string< Ch > &loggerName, const log4cxx::LevelPtr &level)
 Constructor.
 ~logstream ()
logstreamoperator<< (std::ios_base &(*manip)(std::ios_base &))
 Insertion operator for std::fixed and similar manipulators.
logstreamoperator<< (logstream_manipulator manip)
 Insertion operator for logstream_base::endmsg.
logstreamoperator<< (const log4cxx::LevelPtr &level)
 Insertion operator for level.
logstreamoperator<< (const log4cxx::spi::LocationInfo &location)
 Insertion operator for location.
logstreamoperator>> (const log4cxx::spi::LocationInfo &location)
 Alias for insertion operator for location.
 operator std::basic_ostream ()
 Cast operator to provide access to embedded std::basic_ostream.
template<class V>
log4cxx::logstreamoperator<< (const V &val)
 Template to allow any class with an std::basic_ostream inserter to be applied to this class.

Protected Member Functions

virtual void log (LoggerPtr &logger, const LevelPtr &level, const log4cxx::spi::LocationInfo &location)
 Dispatches the pending log request.
virtual void erase ()
 Erase any content in the message construction buffer.
virtual void get_stream_state (std::ios_base &base, std::ios_base &mask, int &fill, bool &fillSet) const
 Copy state of embedded stream (if any) to value and mask instances of std::ios_base and return fill character value.
virtual void refresh_stream_state ()


Constructor & Destructor Documentation

logstream const log4cxx::LoggerPtr logger,
const log4cxx::LevelPtr level
 

Constructor.

logstream const Ch *  loggerName,
const log4cxx::LevelPtr level
 

Constructor.

logstream const std::basic_string< Ch > &  loggerName,
const log4cxx::LevelPtr level
 

Constructor.

~logstream  ) 
 


Member Function Documentation

virtual void erase  )  [protected, virtual]
 

Erase any content in the message construction buffer.

Implements logstream_base.

virtual void get_stream_state std::ios_base &  base,
std::ios_base &  mask,
int &  fill,
bool &  fillSet
const [protected, virtual]
 

Copy state of embedded stream (if any) to value and mask instances of std::ios_base and return fill character value.

Implements logstream_base.

virtual void log LoggerPtr logger,
const LevelPtr level,
const log4cxx::spi::LocationInfo location
[protected, virtual]
 

Dispatches the pending log request.

Implements logstream_base.

operator std::basic_ostream  ) 
 

Cast operator to provide access to embedded std::basic_ostream.

log4cxx::logstream& operator<< const V &  val  )  [inline]
 

Template to allow any class with an std::basic_ostream inserter to be applied to this class.

logstream& operator<< const log4cxx::spi::LocationInfo location  ) 
 

Insertion operator for location.

logstream& operator<< const log4cxx::LevelPtr level  ) 
 

Insertion operator for level.

logstream& operator<< logstream_manipulator  manip  ) 
 

Insertion operator for logstream_base::endmsg.

logstream& operator<< std::ios_base &(*)(std::ios_base &)  manip  ) 
 

Insertion operator for std::fixed and similar manipulators.

logstream& operator>> const log4cxx::spi::LocationInfo location  ) 
 

Alias for insertion operator for location.

Kludge to avoid inappropriate compiler ambiguity.

virtual void refresh_stream_state  )  [protected, virtual]
 

Implements logstream_base.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1logstream-members.html100644 0 0 27704 10774263472 23474 0ustar 0 0 Apache log4cxx: Member List

logstream Member List

This is the complete list of members for logstream, including all inherited members.

end_message()logstream_base
endmsg(logstream_base &)logstream_base [static]
erase()logstream [protected, virtual]
fill()logstream_base
fill(int newval)logstream_base
flags(std::ios_base::fmtflags newflags)logstream_base
get_stream_state(std::ios_base &base, std::ios_base &mask, int &fill, bool &fillSet) const logstream [protected, virtual]
insert(std::ios_base &(*manip)(std::ios_base &))logstream_base
isEnabled() const logstream_base [inline]
isEnabledFor(const LevelPtr &level) const logstream_base
log(LoggerPtr &logger, const LevelPtr &level, const log4cxx::spi::LocationInfo &location)logstream [protected, virtual]
logstream(const log4cxx::LoggerPtr &logger, const log4cxx::LevelPtr &level)logstream
logstream(const Ch *loggerName, const log4cxx::LevelPtr &level)logstream
logstream(const std::basic_string< Ch > &loggerName, const log4cxx::LevelPtr &level)logstream
logstream_base(const log4cxx::LoggerPtr &logger, const log4cxx::LevelPtr &level)logstream_base
nop(logstream_base &)logstream_base [static]
operator std::basic_ostream()logstream
operator<<(std::ios_base &(*manip)(std::ios_base &))logstream
operator<<(logstream_manipulator manip)logstream
operator<<(const log4cxx::LevelPtr &level)logstream
operator<<(const log4cxx::spi::LocationInfo &location)logstream
operator<<(const V &val)logstream [inline]
operator>>(const log4cxx::spi::LocationInfo &location)logstream
precision()logstream_base
precision(int newval)logstream_base
refresh_stream_state()logstream [protected, virtual]
set_stream_state(std::ios_base &os, int &fillchar)logstream_base
setf(std::ios_base::fmtflags newflags, std::ios_base::fmtflags mask)logstream_base
setf(std::ios_base::fmtflags newflags)logstream_base
setLevel(const LevelPtr &level)logstream_base
setLocation(const log4cxx::spi::LocationInfo &location)logstream_base
width()logstream_base
width(int newval)logstream_base
~logstream()logstream
~logstream_base()logstream_base [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1wlogstream.html100644 0 0 74223 10774263472 22231 0ustar 0 0 Apache log4cxx: wlogstream Class Reference

wlogstream Class Reference

Inherits logstream_base.

List of all members.


Detailed Description

An STL-like stream API for log4cxx using wchar_t as the character type.

. Instances of log4cxx::logstream are not designedfor use by multiple threads and in general should be short-lived function scoped objects. Using log4cxx::basic_logstream as a class member or static instance should be avoided in the same manner as you would avoid placing a std::ostringstream in those locations. Insertion operations are generally short-circuited if the level for the stream is not the same of higher that the level of the associated logger.


Public Member Functions

 wlogstream (const log4cxx::LoggerPtr &logger, const log4cxx::LevelPtr &level)
 Constructor.
 wlogstream (const Ch *loggerName, const log4cxx::LevelPtr &level)
 Constructor.
 wlogstream (const std::basic_string< Ch > &loggerName, const log4cxx::LevelPtr &level)
 Constructor.
 ~wlogstream ()
wlogstreamoperator<< (std::ios_base &(*manip)(std::ios_base &))
 Insertion operator for std::fixed and similar manipulators.
wlogstreamoperator<< (logstream_manipulator manip)
 Insertion operator for logstream_base::endmsg.
wlogstreamoperator<< (const log4cxx::LevelPtr &level)
 Insertion operator for level.
wlogstreamoperator<< (const log4cxx::spi::LocationInfo &location)
 Insertion operator for location.
wlogstreamoperator>> (const log4cxx::spi::LocationInfo &location)
 Alias for insertion operator for location.
 operator std::basic_ostream ()
 Cast operator to provide access to embedded std::basic_ostream.
template<class V>
log4cxx::wlogstreamoperator<< (const V &val)
 Template to allow any class with an std::basic_ostream inserter to be applied to this class.

Protected Member Functions

virtual void log (LoggerPtr &logger, const LevelPtr &level, const log4cxx::spi::LocationInfo &location)
 Dispatches the pending log request.
virtual void erase ()
 Erase any content in the message construction buffer.
virtual void get_stream_state (std::ios_base &base, std::ios_base &mask, int &fill, bool &fillSet) const
 Copy state of embedded stream (if any) to value and mask instances of std::ios_base and return fill character value.
virtual void refresh_stream_state ()


Constructor & Destructor Documentation

wlogstream const log4cxx::LoggerPtr logger,
const log4cxx::LevelPtr level
 

Constructor.

wlogstream const Ch *  loggerName,
const log4cxx::LevelPtr level
 

Constructor.

wlogstream const std::basic_string< Ch > &  loggerName,
const log4cxx::LevelPtr level
 

Constructor.

~wlogstream  ) 
 


Member Function Documentation

virtual void erase  )  [protected, virtual]
 

Erase any content in the message construction buffer.

Implements logstream_base.

virtual void get_stream_state std::ios_base &  base,
std::ios_base &  mask,
int &  fill,
bool &  fillSet
const [protected, virtual]
 

Copy state of embedded stream (if any) to value and mask instances of std::ios_base and return fill character value.

Implements logstream_base.

virtual void log LoggerPtr logger,
const LevelPtr level,
const log4cxx::spi::LocationInfo location
[protected, virtual]
 

Dispatches the pending log request.

Implements logstream_base.

operator std::basic_ostream  ) 
 

Cast operator to provide access to embedded std::basic_ostream.

log4cxx::wlogstream& operator<< const V &  val  )  [inline]
 

Template to allow any class with an std::basic_ostream inserter to be applied to this class.

wlogstream& operator<< const log4cxx::spi::LocationInfo location  ) 
 

Insertion operator for location.

wlogstream& operator<< const log4cxx::LevelPtr level  ) 
 

Insertion operator for level.

wlogstream& operator<< logstream_manipulator  manip  ) 
 

Insertion operator for logstream_base::endmsg.

wlogstream& operator<< std::ios_base &(*)(std::ios_base &)  manip  ) 
 

Insertion operator for std::fixed and similar manipulators.

wlogstream& operator>> const log4cxx::spi::LocationInfo location  ) 
 

Alias for insertion operator for location.

Kludge to avoid inappropriate compiler ambiguity.

virtual void refresh_stream_state  )  [protected, virtual]
 

Implements logstream_base.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1wlogstream-members.html100644 0 0 27770 10774263472 23666 0ustar 0 0 Apache log4cxx: Member List

wlogstream Member List

This is the complete list of members for wlogstream, including all inherited members.

end_message()logstream_base
endmsg(logstream_base &)logstream_base [static]
erase()wlogstream [protected, virtual]
fill()logstream_base
fill(int newval)logstream_base
flags(std::ios_base::fmtflags newflags)logstream_base
get_stream_state(std::ios_base &base, std::ios_base &mask, int &fill, bool &fillSet) const wlogstream [protected, virtual]
insert(std::ios_base &(*manip)(std::ios_base &))logstream_base
isEnabled() const logstream_base [inline]
isEnabledFor(const LevelPtr &level) const logstream_base
log(LoggerPtr &logger, const LevelPtr &level, const log4cxx::spi::LocationInfo &location)wlogstream [protected, virtual]
logstream_base(const log4cxx::LoggerPtr &logger, const log4cxx::LevelPtr &level)logstream_base
nop(logstream_base &)logstream_base [static]
operator std::basic_ostream()wlogstream
operator<<(std::ios_base &(*manip)(std::ios_base &))wlogstream
operator<<(logstream_manipulator manip)wlogstream
operator<<(const log4cxx::LevelPtr &level)wlogstream
operator<<(const log4cxx::spi::LocationInfo &location)wlogstream
operator<<(const V &val)wlogstream [inline]
operator>>(const log4cxx::spi::LocationInfo &location)wlogstream
precision()logstream_base
precision(int newval)logstream_base
refresh_stream_state()wlogstream [protected, virtual]
set_stream_state(std::ios_base &os, int &fillchar)logstream_base
setf(std::ios_base::fmtflags newflags, std::ios_base::fmtflags mask)logstream_base
setf(std::ios_base::fmtflags newflags)logstream_base
setLevel(const LevelPtr &level)logstream_base
setLocation(const log4cxx::spi::LocationInfo &location)logstream_base
width()logstream_base
width(int newval)logstream_base
wlogstream(const log4cxx::LoggerPtr &logger, const log4cxx::LevelPtr &level)wlogstream
wlogstream(const Ch *loggerName, const log4cxx::LevelPtr &level)wlogstream
wlogstream(const std::basic_string< Ch > &loggerName, const log4cxx::LevelPtr &level)wlogstream
~logstream_base()logstream_base [virtual]
~wlogstream()wlogstream
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1ulogstream.html100644 0 0 77731 10774263472 22236 0ustar 0 0 Apache log4cxx: ulogstream Class Reference

ulogstream Class Reference

Inherits logstream_base.

List of all members.


Detailed Description

An STL-like stream API for log4cxx using UniChar as the character type.

. Instances of log4cxx::logstream are not designedfor use by multiple threads and in general should be short-lived function scoped objects. Using log4cxx::basic_logstream as a class member or static instance should be avoided in the same manner as you would avoid placing a std::ostringstream in those locations. Insertion operations are generally short-circuited if the level for the stream is not the same of higher that the level of the associated logger.


Public Member Functions

 ulogstream (const log4cxx::LoggerPtr &logger, const log4cxx::LevelPtr &level)
 Constructor.
 ulogstream (const Ch *loggerName, const log4cxx::LevelPtr &level)
 Constructor.
 ulogstream (const std::basic_string< Ch > &loggerName, const log4cxx::LevelPtr &level)
 Constructor.
 ulogstream (const CFStringRef &loggerName, const log4cxx::LevelPtr &level)
 ~ulogstream ()
ulogstreamoperator<< (std::ios_base &(*manip)(std::ios_base &))
 Insertion operator for std::fixed and similar manipulators.
ulogstreamoperator<< (logstream_manipulator manip)
 Insertion operator for logstream_base::endmsg.
ulogstreamoperator<< (const log4cxx::LevelPtr &level)
 Insertion operator for level.
ulogstreamoperator<< (const log4cxx::spi::LocationInfo &location)
 Insertion operator for location.
ulogstreamoperator>> (const log4cxx::spi::LocationInfo &location)
 Alias for insertion operator for location.
 operator std::basic_ostream ()
 Cast operator to provide access to embedded std::basic_ostream.
template<class V>
ulogstreamoperator<< (const V &val)
 Template to allow any class with an std::basic_ostream inserter to be applied to this class.

Protected Member Functions

virtual void log (LoggerPtr &logger, const LevelPtr &level, const log4cxx::spi::LocationInfo &location)
 Dispatches the pending log request.
virtual void erase ()
 Erase any content in the message construction buffer.
virtual void get_stream_state (std::ios_base &base, std::ios_base &mask, int &fill, bool &fillSet) const
 Copy state of embedded stream (if any) to value and mask instances of std::ios_base and return fill character value.
virtual void refresh_stream_state ()


Constructor & Destructor Documentation

ulogstream const log4cxx::LoggerPtr logger,
const log4cxx::LevelPtr level
 

Constructor.

ulogstream const Ch *  loggerName,
const log4cxx::LevelPtr level
 

Constructor.

ulogstream const std::basic_string< Ch > &  loggerName,
const log4cxx::LevelPtr level
 

Constructor.

ulogstream const CFStringRef loggerName,
const log4cxx::LevelPtr level
 

~ulogstream  ) 
 


Member Function Documentation

virtual void erase  )  [protected, virtual]
 

Erase any content in the message construction buffer.

Implements logstream_base.

virtual void get_stream_state std::ios_base &  base,
std::ios_base &  mask,
int &  fill,
bool &  fillSet
const [protected, virtual]
 

Copy state of embedded stream (if any) to value and mask instances of std::ios_base and return fill character value.

Implements logstream_base.

virtual void log LoggerPtr logger,
const LevelPtr level,
const log4cxx::spi::LocationInfo location
[protected, virtual]
 

Dispatches the pending log request.

Implements logstream_base.

operator std::basic_ostream  ) 
 

Cast operator to provide access to embedded std::basic_ostream.

ulogstream& operator<< const V &  val  )  [inline]
 

Template to allow any class with an std::basic_ostream inserter to be applied to this class.

ulogstream& operator<< const log4cxx::spi::LocationInfo location  ) 
 

Insertion operator for location.

ulogstream& operator<< const log4cxx::LevelPtr level  ) 
 

Insertion operator for level.

ulogstream& operator<< logstream_manipulator  manip  ) 
 

Insertion operator for logstream_base::endmsg.

ulogstream& operator<< std::ios_base &(*)(std::ios_base &)  manip  ) 
 

Insertion operator for std::fixed and similar manipulators.

ulogstream& operator>> const log4cxx::spi::LocationInfo location  ) 
 

Alias for insertion operator for location.

Kludge to avoid inappropriate compiler ambiguity.

virtual void refresh_stream_state  )  [protected, virtual]
 

Implements logstream_base.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1ulogstream-members.html100644 0 0 30435 10774263472 23654 0ustar 0 0 Apache log4cxx: Member List

ulogstream Member List

This is the complete list of members for ulogstream, including all inherited members.

end_message()logstream_base
endmsg(logstream_base &)logstream_base [static]
erase()ulogstream [protected, virtual]
fill()logstream_base
fill(int newval)logstream_base
flags(std::ios_base::fmtflags newflags)logstream_base
get_stream_state(std::ios_base &base, std::ios_base &mask, int &fill, bool &fillSet) const ulogstream [protected, virtual]
insert(std::ios_base &(*manip)(std::ios_base &))logstream_base
isEnabled() const logstream_base [inline]
isEnabledFor(const LevelPtr &level) const logstream_base
log(LoggerPtr &logger, const LevelPtr &level, const log4cxx::spi::LocationInfo &location)ulogstream [protected, virtual]
logstream_base(const log4cxx::LoggerPtr &logger, const log4cxx::LevelPtr &level)logstream_base
nop(logstream_base &)logstream_base [static]
operator std::basic_ostream()ulogstream
operator<<(std::ios_base &(*manip)(std::ios_base &))ulogstream
operator<<(logstream_manipulator manip)ulogstream
operator<<(const log4cxx::LevelPtr &level)ulogstream
operator<<(const log4cxx::spi::LocationInfo &location)ulogstream
operator<<(const V &val)ulogstream [inline]
operator>>(const log4cxx::spi::LocationInfo &location)ulogstream
precision()logstream_base
precision(int newval)logstream_base
refresh_stream_state()ulogstream [protected, virtual]
set_stream_state(std::ios_base &os, int &fillchar)logstream_base
setf(std::ios_base::fmtflags newflags, std::ios_base::fmtflags mask)logstream_base
setf(std::ios_base::fmtflags newflags)logstream_base
setLevel(const LevelPtr &level)logstream_base
setLocation(const log4cxx::spi::LocationInfo &location)logstream_base
ulogstream(const log4cxx::LoggerPtr &logger, const log4cxx::LevelPtr &level)ulogstream
ulogstream(const Ch *loggerName, const log4cxx::LevelPtr &level)ulogstream
ulogstream(const std::basic_string< Ch > &loggerName, const log4cxx::LevelPtr &level)ulogstream
ulogstream(const CFStringRef &loggerName, const log4cxx::LevelPtr &level)ulogstream
width()logstream_base
width(int newval)logstream_base
~logstream_base()logstream_base [virtual]
~ulogstream()ulogstream
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_t_t_c_c_layout.html100644 0 0 64206 10774263472 23173 0ustar 0 0 Apache log4cxx: TTCCLayout Class Reference

TTCCLayout Class Reference

Inherits DateLayout.

List of all members.


Detailed Description

TTCC layout format consists of time, thread, logger name and nested diagnostic context information, hence the name.

Each of the four fields can be individually enabled or disabled. The time format depends on the DateFormat used.

Here is an example TTCCLayout output with the RelativeTimeDateFormat.

    176 [main] INFO  examples.Sort - Populating an array of 2 elements in reverse order.
    225 [main] INFO  examples.SortAlgo - Entered the sort method.
    262 [main] DEBUG examples.SortAlgo.OUTER i=1 - Outer loop.
    276 [main] DEBUG examples.SortAlgo.SWAP i=1 j=0 - Swapping intArray[0] = 1 and intArray[1] = 0
    290 [main] DEBUG examples.SortAlgo.OUTER i=0 - Outer loop.
    304 [main] INFO  examples.SortAlgo.DUMP - Dump of interger array:
    317 [main] INFO  examples.SortAlgo.DUMP - Element [0] = 0
    331 [main] INFO  examples.SortAlgo.DUMP - Element [1] = 1
    343 [main] INFO  examples.Sort - The next log statement should be an error message.
    346 [main] ERROR examples.SortAlgo.DUMP - Tried to dump an uninitialized array.
    467 [main] INFO  examples.Sort - Exiting main method.
    

The first field is the number of milliseconds elapsed since the start of the program. The second field is the thread outputting the log statement. The third field is the level, the fourth field is the logger to which the statement belongs.

The fifth field (just before the '-') is the nested diagnostic context. Note the nested diagnostic context may be empty as in the first two statements. The text after the '-' is the message of the statement.

WARNING Do not use the same TTCCLayout instance from within different appenders. The TTCCLayout is not thread safe when used in his way. However, it is perfectly safe to use a TTCCLayout instance from just one appender.

PatternLayout offers a much more flexible alternative.


Public Member Functions

 TTCCLayout ()
 Instantiate a TTCCLayout object with RelativeTimeDateFormat as the date formatter in the local time zone.
 TTCCLayout (const LogString &dateFormatType)
 Instantiate a TTCCLayout object using the local time zone.
void setThreadPrinting (bool threadPrinting1)
 The ThreadPrinting option specifies whether the name of the current thread is part of log output or not.
bool getThreadPrinting () const
 Returns value of the ThreadPrinting option.
void setCategoryPrefixing (bool categoryPrefixing1)
 The CategoryPrefixing option specifies whether Logger name is part of log output or not.
bool getCategoryPrefixing () const
 Returns value of the CategoryPrefixing option.
void setContextPrinting (bool contextPrinting1)
 The ContextPrinting option specifies log output will include the nested context information belonging to the current thread.
bool getContextPrinting () const
 Returns value of the ContextPrinting option.
void setFilePrinting (bool filePrinting1)
 The FilePrinting option specifies log output will include the file and the line where the log statement was written.
bool getFilePrinting () const
 Returns value of the ContextPrinting option.
virtual void format (LogString &output, const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool) const
 In addition to the level of the statement and message, this function writes to the ouput stream time, thread, logger and NDC information.
virtual bool ignoresThrowable () const
 The TTCCLayout does not handle the throwable contained within LoggingEvents.


Constructor & Destructor Documentation

TTCCLayout  ) 
 

Instantiate a TTCCLayout object with RelativeTimeDateFormat as the date formatter in the local time zone.

TTCCLayout const LogString dateFormatType  ) 
 

Instantiate a TTCCLayout object using the local time zone.

The DateFormat used will depend on the dateFormatType.

This constructor just calls the DateLayout::setDateFormat method.


Member Function Documentation

virtual void format LogString output,
const spi::LoggingEventPtr event,
log4cxx::helpers::Pool pool
const [virtual]
 

In addition to the level of the statement and message, this function writes to the ouput stream time, thread, logger and NDC information.

Time, thread, logger and diagnostic context are printed depending on options.

Parameters:
output destination to receive formatted output.
event event to format.
pool pool used to allocate memory needed during formatting.

Implements Layout.

bool getCategoryPrefixing  )  const [inline]
 

Returns value of the CategoryPrefixing option.

bool getContextPrinting  )  const [inline]
 

Returns value of the ContextPrinting option.

bool getFilePrinting  )  const [inline]
 

Returns value of the ContextPrinting option.

bool getThreadPrinting  )  const [inline]
 

Returns value of the ThreadPrinting option.

virtual bool ignoresThrowable  )  const [inline, virtual]
 

The TTCCLayout does not handle the throwable contained within LoggingEvents.

Thus, it returns true.

Implements Layout.

void setCategoryPrefixing bool  categoryPrefixing1  )  [inline]
 

The CategoryPrefixing option specifies whether Logger name is part of log output or not.

This is true by default.

void setContextPrinting bool  contextPrinting1  )  [inline]
 

The ContextPrinting option specifies log output will include the nested context information belonging to the current thread.

This is true by default.

void setFilePrinting bool  filePrinting1  )  [inline]
 

The FilePrinting option specifies log output will include the file and the line where the log statement was written.

void setThreadPrinting bool  threadPrinting1  )  [inline]
 

The ThreadPrinting option specifies whether the name of the current thread is part of log output or not.

This is true by default.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_t_t_c_c_layout-members.html100644 0 0 32154 10774263472 24620 0ustar 0 0 Apache log4cxx: Member List

TTCCLayout Member List

This is the complete list of members for TTCCLayout, including all inherited members.

activateOptions(log4cxx::helpers::Pool &p)DateLayout [virtual]
addRef() const Layout [virtual]
appendFooter(LogString &output, log4cxx::helpers::Pool &p)Layout [virtual]
appendHeader(LogString &output, log4cxx::helpers::Pool &p)Layout [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
dateFormatDateLayout [protected]
DateLayout(const LogString &dateLayoutOption)DateLayout
format(LogString &output, const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool) const TTCCLayout [virtual]
formatDate(LogString &s, const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p) const DateLayout
getCategoryPrefixing() const TTCCLayout [inline]
getClass() const Object [virtual]
getContentType() const Layout [virtual]
getContextPrinting() const TTCCLayout [inline]
getDateFormat() const DateLayout [inline]
getFilePrinting() const TTCCLayout [inline]
getStaticClass()Object [static]
getThreadPrinting() const TTCCLayout [inline]
getTimeZone() const DateLayout [inline]
ignoresThrowable() const TTCCLayout [inline, virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const Layout [virtual]
setCategoryPrefixing(bool categoryPrefixing1)TTCCLayout [inline]
setContextPrinting(bool contextPrinting1)TTCCLayout [inline]
setDateFormat(const LogString &dateFormat1)DateLayout [inline]
setFilePrinting(bool filePrinting1)TTCCLayout [inline]
setOption(const LogString &option, const LogString &value)DateLayout [virtual]
setThreadPrinting(bool threadPrinting1)TTCCLayout [inline]
setTimeZone(const LogString &timeZone)DateLayout [inline]
TTCCLayout()TTCCLayout
TTCCLayout(const LogString &dateFormatType)TTCCLayout
~DateLayout()DateLayout [virtual]
~Layout()Layout [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_writer_appender.html100644 0 0 116634 10774263472 23421 0ustar 0 0 Apache log4cxx: WriterAppender Class Reference

WriterAppender Class Reference

Inherits AppenderSkeleton.

Inherited by ConsoleAppender, and FileAppender.

List of all members.


Detailed Description

WriterAppender appends log events to a standard output stream.


Public Member Functions

 WriterAppender ()
 This default constructor does nothing.
 ~WriterAppender ()
virtual void activateOptions (log4cxx::helpers::Pool &pool)
 Derived appenders should override this method if option structure requires it.
void setImmediateFlush (bool value)
 If the ImmediateFlush option is set to true, the appender will flush at the end of each write.
bool getImmediateFlush () const
 Returns value of the ImmediateFlush option.
virtual void append (const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)
 This method is called by the AppenderSkeleton::doAppend method.
virtual void close ()
 Close this appender instance.
LogString getEncoding () const
void setEncoding (const LogString &value)
void setOption (const LogString &option, const LogString &value)
 Set option to value.
void setWriter (const log4cxx::helpers::WriterPtr &writer)
virtual bool requiresLayout () const
 Configurators call this method to determine if the appender requires a layout.

Protected Member Functions

 WriterAppender (const LayoutPtr &layout, log4cxx::helpers::WriterPtr &writer)
 WriterAppender (const LayoutPtr &layout)
virtual bool checkEntryConditions () const
 This method determines if there is a sense in attempting to append.
void closeWriter ()
 Close the underlying log4cxx::helpers::Writer.
virtual log4cxx::helpers::WriterPtr createWriter (log4cxx::helpers::OutputStreamPtr &os)
 Returns an OutputStreamWriter when passed an OutputStream.
virtual void subAppend (const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)
 Actual writing occurs here.
virtual void writeFooter (log4cxx::helpers::Pool &p)
 Write a footer as produced by the embedded layout's Layout::appendFooter method.
virtual void writeHeader (log4cxx::helpers::Pool &p)
 Write a header as produced by the embedded layout's Layout::appendHeader method.


Constructor & Destructor Documentation

WriterAppender  ) 
 

This default constructor does nothing.

WriterAppender const LayoutPtr layout,
log4cxx::helpers::WriterPtr &  writer
[protected]
 

WriterAppender const LayoutPtr layout  )  [protected]
 

~WriterAppender  ) 
 


Member Function Documentation

virtual void activateOptions log4cxx::helpers::Pool pool  )  [virtual]
 

Derived appenders should override this method if option structure requires it.

Reimplemented from AppenderSkeleton.

Reimplemented in ConsoleAppender, DailyRollingFileAppender, FileAppender, RollingFileAppenderSkeleton, and RollingFileAppender.

virtual void append const spi::LoggingEventPtr event,
log4cxx::helpers::Pool p
[virtual]
 

This method is called by the AppenderSkeleton::doAppend method.

If the output stream exists and is writable then write a log statement to the output stream. Otherwise, write a single warning message to stderr.

The format of the output will depend on this appender's layout.

Implements AppenderSkeleton.

virtual bool checkEntryConditions  )  const [protected, virtual]
 

This method determines if there is a sense in attempting to append.

It checks whether there is a set output target and also if there is a set layout. If these checks fail, then the boolean value false is returned.

virtual void close  )  [virtual]
 

Close this appender instance.

The underlying stream or writer is also closed.

Closed appenders cannot be reused.

Implements Appender.

Reimplemented in RollingFileAppenderSkeleton.

void closeWriter  )  [protected]
 

Close the underlying log4cxx::helpers::Writer.

virtual log4cxx::helpers::WriterPtr createWriter log4cxx::helpers::OutputStreamPtr &  os  )  [protected, virtual]
 

Returns an OutputStreamWriter when passed an OutputStream.

The encoding used will depend on the value of the encoding property. If the encoding value is specified incorrectly the writer will be opened using the default system encoding (an error message will be printed to the loglog.

Reimplemented in RollingFileAppenderSkeleton.

LogString getEncoding  )  const
 

bool getImmediateFlush  )  const [inline]
 

Returns value of the ImmediateFlush option.

virtual bool requiresLayout  )  const [virtual]
 

Configurators call this method to determine if the appender requires a layout.

If this method returns true, meaning that layout is required, then the configurator will configure an layout using the configuration information at its disposal. If this method returns false, meaning that a layout is not required, then layout configuration will be skipped even if there is available layout configuration information at the disposal of the configurator..

In the rather exceptional case, where the appender implementation admits a layout but can also work without it, then the appender should return true.

Implements Appender.

void setEncoding const LogString value  ) 
 

void setImmediateFlush bool  value  ) 
 

If the ImmediateFlush option is set to true, the appender will flush at the end of each write.

This is the default behavior. If the option is set to false, then the underlying stream can defer writing to physical medium to a later time.

Avoiding the flush operation at the end of each append results in a performance gain of 10 to 20 percent. However, there is safety tradeoff involved in skipping flushing. Indeed, when flushing is skipped, then it is likely that the last few log events will not be recorded on disk when the application exits. This is a high price to pay even for a 20% performance gain.

void setOption const LogString option,
const LogString value
[virtual]
 

Set option to value.

The handling of each option depends on the OptionHandler instance. Some options may become active immediately whereas other may be activated only when activateOptions is called.

Reimplemented from AppenderSkeleton.

Reimplemented in ConsoleAppender, DailyRollingFileAppender, FileAppender, and RollingFileAppender.

void setWriter const log4cxx::helpers::WriterPtr &  writer  ) 
 

Sets the Writer where the log output will go. The specified Writer must be opened by the user and be writable.

The java.io.Writer will be closed when the appender instance is closed.

WARNING: Logging to an unopened Writer will fail.

Parameters:
writer An already opened Writer.

virtual void subAppend const spi::LoggingEventPtr event,
log4cxx::helpers::Pool p
[protected, virtual]
 

Actual writing occurs here.

Reimplemented in RollingFileAppenderSkeleton.

virtual void writeFooter log4cxx::helpers::Pool p  )  [protected, virtual]
 

Write a footer as produced by the embedded layout's Layout::appendFooter method.

virtual void writeHeader log4cxx::helpers::Pool p  )  [protected, virtual]
 

Write a header as produced by the embedded layout's Layout::appendHeader method.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1_writer_appender-members.html100644 0 0 45560 10774263472 25030 0ustar 0 0 Apache log4cxx: Member List

WriterAppender Member List

This is the complete list of members for WriterAppender, including all inherited members.

activateOptions(log4cxx::helpers::Pool &pool)WriterAppender [virtual]
addFilter(const spi::FilterPtr &newFilter)AppenderSkeleton [virtual]
addRef() const AppenderSkeleton [virtual]
append(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)WriterAppender [virtual]
AppenderSkeleton()AppenderSkeleton
AppenderSkeleton(const LayoutPtr &layout)AppenderSkeleton
cast(const Class &clazz) const =0Object [pure virtual]
checkEntryConditions() const WriterAppender [protected, virtual]
clearFilters()AppenderSkeleton [virtual]
close()WriterAppender [virtual]
closedAppenderSkeleton [protected]
closeWriter()WriterAppender [protected]
createWriter(log4cxx::helpers::OutputStreamPtr &os)WriterAppender [protected, virtual]
doAppend(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)AppenderSkeleton [virtual]
errorHandlerAppenderSkeleton [protected]
finalize()AppenderSkeleton
getClass() const Object [virtual]
getEncoding() const WriterAppender
getErrorHandler() const AppenderSkeleton [inline]
getFilter() const AppenderSkeleton [inline, virtual]
getFirstFilter() const AppenderSkeleton [inline]
getImmediateFlush() const WriterAppender [inline]
getLayout() const AppenderSkeleton [inline, virtual]
getName() const AppenderSkeleton [inline, virtual]
getStaticClass()Object [static]
getThreshold()AppenderSkeleton [inline]
headFilterAppenderSkeleton [protected]
instanceof(const Class &clazz) const =0Object [pure virtual]
isAsSevereAsThreshold(const LevelPtr &level) const AppenderSkeleton
layoutAppenderSkeleton [protected]
mutexAppenderSkeleton [protected]
nameAppenderSkeleton [protected]
ObjectImpl()ObjectImpl
poolAppenderSkeleton [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const AppenderSkeleton [virtual]
requiresLayout() const WriterAppender [virtual]
setEncoding(const LogString &value)WriterAppender
setErrorHandler(const spi::ErrorHandlerPtr &eh)AppenderSkeleton
setImmediateFlush(bool value)WriterAppender
setLayout(const LayoutPtr &layout1)AppenderSkeleton [inline, virtual]
setName(const LogString &name1)AppenderSkeleton [inline, virtual]
setOption(const LogString &option, const LogString &value)WriterAppender [virtual]
setThreshold(const LevelPtr &threshold)AppenderSkeleton
setWriter(const log4cxx::helpers::WriterPtr &writer)WriterAppender
subAppend(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)WriterAppender [protected, virtual]
tailFilterAppenderSkeleton [protected]
thresholdAppenderSkeleton [protected]
writeFooter(log4cxx::helpers::Pool &p)WriterAppender [protected, virtual]
writeHeader(log4cxx::helpers::Pool &p)WriterAppender [protected, virtual]
WriterAppender()WriterAppender
WriterAppender(const LayoutPtr &layout, log4cxx::helpers::WriterPtr &writer)WriterAppender [protected]
WriterAppender(const LayoutPtr &layout)WriterAppender [protected]
~Appender()Appender [inline, virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
~WriterAppender()WriterAppender
apache-log4cxx-0.10.0/site/apidocs/namespacelog4cxx_1_1config.html100644 0 0 6254 10774263472 22120 0ustar 0 0 Apache log4cxx: log4cxx::config Namespace Reference

log4cxx::config Namespace Reference


Classes

class  PropertySetter
 General purpose Object property setter. More...
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1config_1_1_property_setter.html100644 0 0 45143 10774263472 25303 0ustar 0 0 Apache log4cxx: PropertySetter Class Reference

PropertySetter Class Reference

List of all members.

Detailed Description

General purpose Object property setter.

Clients repeatedly invokes setProperty(name,value) in order to invoke setters on the Object specified in the constructor.

Usage:

                PropertySetter ps(anObject);
                ps.set("name", "Joe");
                ps.set("age", "32");
                ps.set("isMale", "true");
                
will cause the invocations anObject->setOption("name", "Joe"), anObject->setOption("age", "32") and anObject->setOption("isMale", "true") if the spi::OptionHandler interface is supported by anObject.


Public Member Functions

 PropertySetter (const helpers::ObjectPtr &obj)
 Create a new PropertySetter for the specified Object.
void setProperties (helpers::Properties &properties, const LogString &prefix, log4cxx::helpers::Pool &p)
 Set the properites for the object that match the prefix passed as parameter.
void setProperty (const LogString &option, const LogString &value, log4cxx::helpers::Pool &p)
 Set a property on this PropertySetter's Object.
void activate (log4cxx::helpers::Pool &p)

Static Public Member Functions

static void setProperties (const helpers::ObjectPtr &obj, helpers::Properties &properties, const LogString &prefix, log4cxx::helpers::Pool &p)
 Set the properties of an object passed as a parameter in one go.

Protected Attributes

helpers::ObjectPtr obj


Constructor & Destructor Documentation

PropertySetter const helpers::ObjectPtr obj  ) 
 

Create a new PropertySetter for the specified Object.

This is done in prepartion for invoking setProperty one or more times.

Parameters:
obj the object for which to set properties


Member Function Documentation

void activate log4cxx::helpers::Pool p  ) 
 

void setProperties helpers::Properties properties,
const LogString prefix,
log4cxx::helpers::Pool p
 

Set the properites for the object that match the prefix passed as parameter.

static void setProperties const helpers::ObjectPtr obj,
helpers::Properties properties,
const LogString prefix,
log4cxx::helpers::Pool p
[static]
 

Set the properties of an object passed as a parameter in one go.

The properties are parsed relative to a prefix.

Parameters:
obj The object to configure.
properties A java.util.Properties containing keys and values.
prefix Only keys having the specified prefix will be set.
p pool to use for any allocations required during call.

void setProperty const LogString option,
const LogString value,
log4cxx::helpers::Pool p
 

Set a property on this PropertySetter's Object.

If the underlying Object supports the spi::OptionHandler interface, the setOption method is called.

Parameters:
option name of the property
value String value of the property
p pool to use for any allocations required during call.


Member Data Documentation

helpers::ObjectPtr obj [protected]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1config_1_1_property_setter-members.html100644 0 0 11320 10774263472 26721 0ustar 0 0 Apache log4cxx: Member List

PropertySetter Member List

This is the complete list of members for PropertySetter, including all inherited members.

activate(log4cxx::helpers::Pool &p)PropertySetter
objPropertySetter [protected]
PropertySetter(const helpers::ObjectPtr &obj)PropertySetter
setProperties(const helpers::ObjectPtr &obj, helpers::Properties &properties, const LogString &prefix, log4cxx::helpers::Pool &p)PropertySetter [static]
setProperties(helpers::Properties &properties, const LogString &prefix, log4cxx::helpers::Pool &p)PropertySetter
setProperty(const LogString &option, const LogString &value, log4cxx::helpers::Pool &p)PropertySetter
apache-log4cxx-0.10.0/site/apidocs/namespacelog4cxx_1_1db.html100644 0 0 10673 10774263472 21260 0ustar 0 0 Apache log4cxx: log4cxx::db Namespace Reference

log4cxx::db Namespace Reference


Classes

class  SQLException
class  ODBCAppender

Functions

 LOG4CXX_PTR_DEF (ODBCAppender)


Function Documentation

log4cxx::db::LOG4CXX_PTR_DEF ODBCAppender   ) 
 

apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1db_1_1_s_q_l_exception.html100644 0 0 20262 10774263472 24317 0ustar 0 0 Apache log4cxx: SQLException Class Reference

SQLException Class Reference

Inherits Exception.

List of all members.

Public Member Functions

 SQLException (short fHandleType, void *hInput, const char *prolog, log4cxx::helpers::Pool &p)
 SQLException (const char *msg)
 SQLException (const SQLException &src)


Constructor & Destructor Documentation

SQLException short  fHandleType,
void *  hInput,
const char *  prolog,
log4cxx::helpers::Pool p
 

SQLException const char *  msg  ) 
 

SQLException const SQLException src  ) 
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1db_1_1_s_q_l_exception-members.html100644 0 0 11631 10774263472 25747 0ustar 0 0 Apache log4cxx: Member List

SQLException Member List

This is the complete list of members for SQLException, including all inherited members.

Exception(const char *msg)Exception
Exception(const LogString &msg)Exception
Exception(const Exception &src)Exception
operator=(const Exception &src)Exception
SQLException(short fHandleType, void *hInput, const char *prolog, log4cxx::helpers::Pool &p)SQLException
SQLException(const char *msg)SQLException
SQLException(const SQLException &src)SQLException
what() const Exception
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1db_1_1_o_d_b_c_appender.html100644 0 0 157632 10774263472 24422 0ustar 0 0 Apache log4cxx: ODBCAppender Class Reference

ODBCAppender Class Reference

Inherits AppenderSkeleton.

List of all members.


Detailed Description

WARNING: This version of ODBCAppender is very likely to be completely replaced in the future. Moreoever, it does not log exceptions.

The ODBCAppender provides for sending log events to a database.

Each append call adds to an ArrayList buffer. When the buffer is filled each log event is placed in a sql statement (configurable) and executed.

BufferSize, db URL, User, & Password are configurable options in the standard log4j ways.

The setSql(String sql) sets the SQL statement to be used for logging -- this statement is sent to a PatternLayout (either created automaticly by the appender or added by the user). Therefore by default all the conversion patterns in PatternLayout can be used inside of the statement. (see the test cases for examples)

Overriding the getLogStatement method allows more explicit control of the statement used for logging.

For use as a base class:

  • Override getConnection() to pass any connection you want. Typically this is used to enable application wide connection pooling.

  • Override closeConnection -- if you override getConnection make sure to implement closeConnection to handle the connection you generated. Typically this would return the connection to the pool it came from.

  • Override getLogStatement to produce specialized or dynamic statements. The default uses the sql option value.


Public Member Functions

 ODBCAppender ()
virtual ~ODBCAppender ()
virtual void setOption (const LogString &option, const LogString &value)
 Set options.
virtual void activateOptions (log4cxx::helpers::Pool &p)
 Activate the specified options.
void append (const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &)
 Adds the event to the buffer.
virtual void close ()
 Closes the appender, flushing the buffer first then closing the default connection if it is open.
virtual void flushBuffer (log4cxx::helpers::Pool &p)
 loops through the buffer of LoggingEvents, gets a sql string from getLogStatement() and sends it to execute().
virtual bool requiresLayout () const
 ODBCAppender requires a layout.
void setSql (const LogString &s)
 Set pre-formated statement eg: insert into LogTable (msg) values ("%m").
const LogStringgetSql () const
 Returns pre-formated statement eg: insert into LogTable (msg) values ("%m").
void setUser (const LogString &user)
void setURL (const LogString &url)
void setPassword (const LogString &password)
void setBufferSize (size_t newBufferSize)
const LogStringgetUser () const
const LogStringgetURL () const
const LogStringgetPassword () const
size_t getBufferSize () const

Protected Types

typedef void * SQLHDBC
typedef void * SQLHENV
typedef void * SQLHANDLE
typedef short SQLSMALLINT

Protected Member Functions

LogString getLogStatement (const spi::LoggingEventPtr &event, helpers::Pool &p) const
 By default getLogStatement sends the event to the required Layout object.
virtual void execute (const LogString &sql, log4cxx::helpers::Pool &p)
 Override this to provide an alertnate method of getting connections (such as caching).
virtual void closeConnection (SQLHDBC con)
 Override this to return the connection to a pool, or to clean up the resource.
virtual SQLHDBC getConnection (log4cxx::helpers::Pool &p)
 Override this to link with your connection pooling system.

Protected Attributes

LogString databaseURL
 URL of the DB for default connection handling.
LogString databaseUser
 User to connect as for default connection handling.
LogString databasePassword
 User to use for default connection handling.
SQLHDBC connection
 Connection used by default.
SQLHENV env
LogString sqlStatement
 Stores the string given to the pattern layout for conversion into a SQL statement, eg: insert into LogTable (Thread, File, Message) values ("%t", "%F", "%m").
size_t bufferSize
 size of LoggingEvent buffer before writing to the database.
std::list< spi::LoggingEventPtrbuffer
 ArrayList holding the buffer of Logging Events.


Member Typedef Documentation

typedef void* SQLHANDLE [protected]
 

typedef void* SQLHDBC [protected]
 

typedef void* SQLHENV [protected]
 

typedef short SQLSMALLINT [protected]
 


Constructor & Destructor Documentation

ODBCAppender  ) 
 

virtual ~ODBCAppender  )  [virtual]
 


Member Function Documentation

virtual void activateOptions log4cxx::helpers::Pool p  )  [virtual]
 

Activate the specified options.

Reimplemented from AppenderSkeleton.

void append const spi::LoggingEventPtr event,
log4cxx::helpers::Pool
[virtual]
 

Adds the event to the buffer.

When full the buffer is flushed.

Implements AppenderSkeleton.

virtual void close  )  [virtual]
 

Closes the appender, flushing the buffer first then closing the default connection if it is open.

Implements Appender.

virtual void closeConnection SQLHDBC  con  )  [protected, virtual]
 

Override this to return the connection to a pool, or to clean up the resource.

The default behavior holds a single connection open until the appender is closed (typically when garbage collected).

virtual void execute const LogString sql,
log4cxx::helpers::Pool p
[protected, virtual]
 

Override this to provide an alertnate method of getting connections (such as caching).

One method to fix this is to open connections at the start of flushBuffer() and close them at the end. I use a connection pool outside of ODBCAppender which is accessed in an override of this method.

virtual void flushBuffer log4cxx::helpers::Pool p  )  [virtual]
 

loops through the buffer of LoggingEvents, gets a sql string from getLogStatement() and sends it to execute().

Errors are sent to the errorHandler.

If a statement fails the LoggingEvent stays in the buffer!

size_t getBufferSize  )  const [inline]
 

virtual SQLHDBC getConnection log4cxx::helpers::Pool p  )  [protected, virtual]
 

Override this to link with your connection pooling system.

By default this creates a single connection which is held open until the object is garbage collected.

LogString getLogStatement const spi::LoggingEventPtr event,
helpers::Pool p
const [protected]
 

By default getLogStatement sends the event to the required Layout object.

The layout will format the given pattern into a workable SQL string.

Overriding this provides direct access to the LoggingEvent when constructing the logging statement.

const LogString& getPassword  )  const [inline]
 

const LogString& getSql  )  const [inline]
 

Returns pre-formated statement eg: insert into LogTable (msg) values ("%m").

const LogString& getURL  )  const [inline]
 

const LogString& getUser  )  const [inline]
 

virtual bool requiresLayout  )  const [inline, virtual]
 

ODBCAppender requires a layout.

Implements Appender.

void setBufferSize size_t  newBufferSize  )  [inline]
 

virtual void setOption const LogString option,
const LogString value
[virtual]
 

Set options.

Reimplemented from AppenderSkeleton.

void setPassword const LogString password  )  [inline]
 

void setSql const LogString s  ) 
 

Set pre-formated statement eg: insert into LogTable (msg) values ("%m").

void setURL const LogString url  )  [inline]
 

void setUser const LogString user  )  [inline]
 


Member Data Documentation

std::list<spi::LoggingEventPtr> buffer [protected]
 

ArrayList holding the buffer of Logging Events.

size_t bufferSize [protected]
 

size of LoggingEvent buffer before writing to the database.

Default is 1.

SQLHDBC connection [protected]
 

Connection used by default.

The connection is opened the first time it is needed and then held open until the appender is closed (usually at garbage collection). This behavior is best modified by creating a sub-class and overriding the getConnection and closeConnection methods.

LogString databasePassword [protected]
 

User to use for default connection handling.

LogString databaseURL [protected]
 

URL of the DB for default connection handling.

LogString databaseUser [protected]
 

User to connect as for default connection handling.

SQLHENV env [protected]
 

LogString sqlStatement [protected]
 

Stores the string given to the pattern layout for conversion into a SQL statement, eg: insert into LogTable (Thread, File, Message) values ("%t", "%F", "%m").

Be careful of quotes in your messages!

Also see PatternLayout.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1db_1_1_o_d_b_c_appender-members.html100644 0 0 55606 10774263472 26030 0ustar 0 0 Apache log4cxx: Member List

ODBCAppender Member List

This is the complete list of members for ODBCAppender, including all inherited members.

activateOptions(log4cxx::helpers::Pool &p)ODBCAppender [virtual]
addFilter(const spi::FilterPtr &newFilter)AppenderSkeleton [virtual]
addRef() const AppenderSkeleton [virtual]
append(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &)ODBCAppender [virtual]
AppenderSkeleton()AppenderSkeleton
AppenderSkeleton(const LayoutPtr &layout)AppenderSkeleton
bufferODBCAppender [protected]
bufferSizeODBCAppender [protected]
cast(const Class &clazz) const =0Object [pure virtual]
clearFilters()AppenderSkeleton [virtual]
close()ODBCAppender [virtual]
closeConnection(SQLHDBC con)ODBCAppender [protected, virtual]
closedAppenderSkeleton [protected]
connectionODBCAppender [protected]
databasePasswordODBCAppender [protected]
databaseURLODBCAppender [protected]
databaseUserODBCAppender [protected]
doAppend(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)AppenderSkeleton [virtual]
envODBCAppender [protected]
errorHandlerAppenderSkeleton [protected]
execute(const LogString &sql, log4cxx::helpers::Pool &p)ODBCAppender [protected, virtual]
finalize()AppenderSkeleton
flushBuffer(log4cxx::helpers::Pool &p)ODBCAppender [virtual]
getBufferSize() const ODBCAppender [inline]
getClass() const Object [virtual]
getConnection(log4cxx::helpers::Pool &p)ODBCAppender [protected, virtual]
getErrorHandler() const AppenderSkeleton [inline]
getFilter() const AppenderSkeleton [inline, virtual]
getFirstFilter() const AppenderSkeleton [inline]
getLayout() const AppenderSkeleton [inline, virtual]
getLogStatement(const spi::LoggingEventPtr &event, helpers::Pool &p) const ODBCAppender [protected]
getName() const AppenderSkeleton [inline, virtual]
getPassword() const ODBCAppender [inline]
getSql() const ODBCAppender [inline]
getStaticClass()Object [static]
getThreshold()AppenderSkeleton [inline]
getURL() const ODBCAppender [inline]
getUser() const ODBCAppender [inline]
headFilterAppenderSkeleton [protected]
instanceof(const Class &clazz) const =0Object [pure virtual]
isAsSevereAsThreshold(const LevelPtr &level) const AppenderSkeleton
layoutAppenderSkeleton [protected]
mutexAppenderSkeleton [protected]
nameAppenderSkeleton [protected]
ObjectImpl()ObjectImpl
ODBCAppender()ODBCAppender
poolAppenderSkeleton [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const AppenderSkeleton [virtual]
requiresLayout() const ODBCAppender [inline, virtual]
setBufferSize(size_t newBufferSize)ODBCAppender [inline]
setErrorHandler(const spi::ErrorHandlerPtr &eh)AppenderSkeleton
setLayout(const LayoutPtr &layout1)AppenderSkeleton [inline, virtual]
setName(const LogString &name1)AppenderSkeleton [inline, virtual]
setOption(const LogString &option, const LogString &value)ODBCAppender [virtual]
setPassword(const LogString &password)ODBCAppender [inline]
setSql(const LogString &s)ODBCAppender
setThreshold(const LevelPtr &threshold)AppenderSkeleton
setURL(const LogString &url)ODBCAppender [inline]
setUser(const LogString &user)ODBCAppender [inline]
SQLHANDLE typedefODBCAppender [protected]
SQLHDBC typedefODBCAppender [protected]
SQLHENV typedefODBCAppender [protected]
SQLSMALLINT typedefODBCAppender [protected]
sqlStatementODBCAppender [protected]
tailFilterAppenderSkeleton [protected]
thresholdAppenderSkeleton [protected]
~Appender()Appender [inline, virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~ODBCAppender()ODBCAppender [virtual]
~OptionHandler()OptionHandler [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/namespacelog4cxx_1_1filter.html100644 0 0 27102 10774263472 22153 0ustar 0 0 Apache log4cxx: log4cxx::filter Namespace Reference

log4cxx::filter Namespace Reference


Classes

class  AndFilter
 A filter that 'and's the results of any number of contained filters together. More...
class  DenyAllFilter
 This filter drops all logging events. More...
class  ExpressionFilter
 A filter supporting complex expressions - supports both infix and postfix expressions (infix expressions must first be converted to postfix prior to processing). More...
class  LevelMatchFilter
 This is a very simple filter based on level matching. More...
class  LevelRangeFilter
 This is a very simple filter based on level matching, which can be used to reject messages with priorities outside a certain range. More...
class  LocationInfoFilter
 Location information is usually specified at the appender level - all events associated with an appender either create and parse stack traces or they do not. More...
class  MapFilter
class  PropertyFilter
 NOTE: This filter modifies logging events by adding properties to the event. More...
class  StringMatchFilter
 This is a very simple filter based on string matching. More...

Functions

 LOG4CXX_PTR_DEF (DenyAllFilter)
 LOG4CXX_PTR_DEF (LevelMatchFilter)
 LOG4CXX_PTR_DEF (LevelRangeFilter)
 LOG4CXX_PTR_DEF (StringMatchFilter)


Function Documentation

log4cxx::filter::LOG4CXX_PTR_DEF StringMatchFilter   ) 
 

log4cxx::filter::LOG4CXX_PTR_DEF LevelRangeFilter   ) 
 

log4cxx::filter::LOG4CXX_PTR_DEF LevelMatchFilter   ) 
 

log4cxx::filter::LOG4CXX_PTR_DEF DenyAllFilter   ) 
 

apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1filter_1_1_and_filter.html100644 0 0 26251 10774263472 24157 0ustar 0 0 Apache log4cxx: AndFilter Class Reference

AndFilter Class Reference

Inherits Filter.

List of all members.


Detailed Description

A filter that 'and's the results of any number of contained filters together.

For the filter to process events, all contained filters must return Filter::ACCEPT.

If the contained filters do not return Filter::ACCEPT, Filter::NEUTRAL is returned.

If acceptOnMatch is set to true, Filter::ACCEPT is returned. If acceptOnMatch is set to false, Filter::DENY is returned.

Here is an example config that will accept only events that contain BOTH a DEBUG level AND 'test' in the message:

<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> <filter class="org.apache.log4j.filter.AndFilter"> <filter class="org.apache.log4j.filter.LevelMatchFilter"> <param name="levelToMatch" value="DEBUG" /> <param name="acceptOnMatch" value="true" /> </filter> <filter class="org.apache.log4j.filter.StringMatchFilter"> <param name="stringToMatch" value="test" /> <param name="acceptOnMatch" value="true" /> </filter> <param name="acceptOnMatch" value="false"/> </filter> <filter class="org.apache.log4j.filter.DenyAllFilter"/> <layout class="org.apache.log4j.SimpleLayout"/> </appender>

To accept all events EXCEPT those events that contain a DEBUG level and 'test' in the message: change the AndFilter's acceptOnMatch param to false and remove the DenyAllFilter

NOTE: If you are defining a filter that is only relying on logging event content (no external or filter-managed state), you could opt instead to use an ExpressionFilter with one of the following expressions:

LEVEL == DEBUG && MSG ~= 'test' or ! ( LEVEL == DEBUG && MSG ~= 'test' )


Public Member Functions

 AndFilter ()
void addFilter (const log4cxx::spi::FilterPtr &filter)
void setAcceptOnMatch (bool acceptOnMatch)
FilterDecision decide (const spi::LoggingEventPtr &event) const


Constructor & Destructor Documentation

AndFilter  ) 
 


Member Function Documentation

void addFilter const log4cxx::spi::FilterPtr filter  ) 
 

FilterDecision decide const spi::LoggingEventPtr event  )  const [virtual]
 

If the decision is DENY, then the event will be dropped. If the decision is NEUTRAL, then the next filter, if any, will be invoked. If the decision is ACCEPT then the event will be logged without consulting with other filters in the chain.

Parameters:
event The LoggingEvent to decide upon.
Returns:
The decision of the filter.

Implements Filter.

void setAcceptOnMatch bool  acceptOnMatch  ) 
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1filter_1_1_and_filter-members.html100644 0 0 22442 10774263472 25605 0ustar 0 0 Apache log4cxx: Member List

AndFilter Member List

This is the complete list of members for AndFilter, including all inherited members.

ACCEPT enum valueFilter
activateOptions(log4cxx::helpers::Pool &p)Filter [virtual]
addFilter(const log4cxx::spi::FilterPtr &filter)AndFilter
addRef() const Filter [virtual]
AndFilter()AndFilter
cast(const Class &clazz) const =0Object [pure virtual]
decide(const spi::LoggingEventPtr &event) const AndFilter [virtual]
DENY enum valueFilter
Filter()Filter
FilterDecision enum nameFilter
getClass() const Object [virtual]
getNext() const Filter
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
NEUTRAL enum valueFilter
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const Filter [virtual]
setAcceptOnMatch(bool acceptOnMatch)AndFilter
setNext(const log4cxx::spi::FilterPtr &newNext)Filter
setOption(const LogString &option, const LogString &value)Filter [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1filter_1_1_deny_all_filter.html100644 0 0 21513 10774263472 25200 0ustar 0 0 Apache log4cxx: DenyAllFilter Class Reference

DenyAllFilter Class Reference

Inherits Filter.

List of all members.


Detailed Description

This filter drops all logging events.

You can add this filter to the end of a filter chain to switch from the default "accept all unless instructed otherwise" filtering behaviour to a "deny all unless instructed otherwise" behaviour.


Public Types

typedef spi::Filter BASE_CLASS

Public Member Functions

 DenyAllFilter ()
FilterDecision decide (const spi::LoggingEventPtr &) const
 Always returns the integer constant DENY regardless of the LoggingEvent parameter.


Member Typedef Documentation

typedef spi::Filter BASE_CLASS
 


Constructor & Destructor Documentation

DenyAllFilter  )  [inline]
 


Member Function Documentation

FilterDecision decide const spi::LoggingEventPtr  )  const [inline, virtual]
 

Always returns the integer constant DENY regardless of the LoggingEvent parameter.

Parameters:
event The LoggingEvent to filter.
Returns:
Always returns DENY.

Implements Filter.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1filter_1_1_deny_all_filter-members.html100644 0 0 22107 10774263472 26630 0ustar 0 0 Apache log4cxx: Member List

DenyAllFilter Member List

This is the complete list of members for DenyAllFilter, including all inherited members.

ACCEPT enum valueFilter
activateOptions(log4cxx::helpers::Pool &p)Filter [virtual]
addRef() const Filter [virtual]
BASE_CLASS typedefDenyAllFilter
cast(const Class &clazz) const =0Object [pure virtual]
decide(const spi::LoggingEventPtr &) const DenyAllFilter [inline, virtual]
DENY enum valueFilter
DenyAllFilter()DenyAllFilter [inline]
Filter()Filter
FilterDecision enum nameFilter
getClass() const Object [virtual]
getNext() const Filter
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
NEUTRAL enum valueFilter
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const Filter [virtual]
setNext(const log4cxx::spi::FilterPtr &newNext)Filter
setOption(const LogString &option, const LogString &value)Filter [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1filter_1_1_expression_filter.html100644 0 0 44246 10774263472 25620 0ustar 0 0 Apache log4cxx: ExpressionFilter Class Reference

ExpressionFilter Class Reference

Inherits Filter.

List of all members.


Detailed Description

A filter supporting complex expressions - supports both infix and postfix expressions (infix expressions must first be converted to postfix prior to processing).

See org.apache.log4j.chainsaw.LoggingEventFieldResolver.java for the correct names for logging event fields used when building expressions.

See org.apache.log4j.chainsaw.rule package for a list of available rules which can be applied using the expression syntax.

See org.apache.log4j.chainsaw.RuleFactory for the symbols used to activate the corresponding rules.

NOTE: Grouping using parentheses is supported - all tokens must be separated by spaces, and operands which contain spaces are not yet supported.

Example:

In order to build a filter that displays all messages with infomsg-45 or infomsg-44 in the message, as well as all messages with a level of WARN or higher, build an expression using the LikeRule (supports ORO-based regular expressions) and the InequalityRule. ( MSG LIKE infomsg-4[4,5] ) && ( LEVEL >= WARN )

Three options are required: Expression - the expression to match ConvertInFixToPostFix - convert from infix to posfix (default true) AcceptOnMatch - true or false (default true)

Meaning of AcceptToMatch: If there is a match between the value of the Expression option and the log4cxx::spi::LoggingEvent and AcceptOnMatch is true, the decide method returns log4cxx::spi::Filter#ACCEPT.

If there is a match between the value of the Expression option and the log4cxx::spi::LoggingEvent and AcceptOnMatch is false, log4cxx::spi::Filter#DENY is returned.

If there is no match, log4cxx::spi::Filter#NEUTRAL is returned.


Public Member Functions

 ExpressionFilter ()
void activateOptions (log4cxx::helpers::Pool &p)
 Usually filters options become active when set.
void setExpression (const LogString &expression)
LogString getExpression () const
void setConvertInFixToPostFix (bool convertInFixToPostFix)
bool getConvertInFixToPostFix () const
void setAcceptOnMatch (bool acceptOnMatch)
bool getAcceptOnMatch () const
FilterDecision decide (const spi::LoggingEventPtr &event) const
 Returns log4cxx::spi::Filter#NEUTRAL is there is no string match.


Constructor & Destructor Documentation

ExpressionFilter  ) 
 


Member Function Documentation

void activateOptions log4cxx::helpers::Pool p  )  [virtual]
 

Usually filters options become active when set.

We provide a

default do-nothing implementation for convenience.

Reimplemented from Filter.

FilterDecision decide const spi::LoggingEventPtr event  )  const [virtual]
 

Returns log4cxx::spi::Filter#NEUTRAL is there is no string match.

Implements Filter.

bool getAcceptOnMatch  )  const
 

bool getConvertInFixToPostFix  )  const
 

LogString getExpression  )  const
 

void setAcceptOnMatch bool  acceptOnMatch  ) 
 

void setConvertInFixToPostFix bool  convertInFixToPostFix  ) 
 

void setExpression const LogString expression  ) 
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1filter_1_1_expression_filter-members.html100644 0 0 25056 10774263472 27246 0ustar 0 0 Apache log4cxx: Member List

ExpressionFilter Member List

This is the complete list of members for ExpressionFilter, including all inherited members.

ACCEPT enum valueFilter
activateOptions(log4cxx::helpers::Pool &p)ExpressionFilter [virtual]
addRef() const Filter [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
decide(const spi::LoggingEventPtr &event) const ExpressionFilter [virtual]
DENY enum valueFilter
ExpressionFilter()ExpressionFilter
Filter()Filter
FilterDecision enum nameFilter
getAcceptOnMatch() const ExpressionFilter
getClass() const Object [virtual]
getConvertInFixToPostFix() const ExpressionFilter
getExpression() const ExpressionFilter
getNext() const Filter
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
NEUTRAL enum valueFilter
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const Filter [virtual]
setAcceptOnMatch(bool acceptOnMatch)ExpressionFilter
setConvertInFixToPostFix(bool convertInFixToPostFix)ExpressionFilter
setExpression(const LogString &expression)ExpressionFilter
setNext(const log4cxx::spi::FilterPtr &newNext)Filter
setOption(const LogString &option, const LogString &value)Filter [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1filter_1_1_level_match_filter.html100644 0 0 40721 10774263472 25676 0ustar 0 0 Apache log4cxx: LevelMatchFilter Class Reference

LevelMatchFilter Class Reference

Inherits Filter.

List of all members.


Detailed Description

This is a very simple filter based on level matching.

The filter admits two options LevelToMatch and AcceptOnMatch. If there is an exact match between the value of the LevelToMatch option and the level of the LoggingEvent, then the decide method returns ACCEPT in case the AcceptOnMatch option value is set to true, if it is false then DENY is returned. If there is no match, NEUTRAL is returned.


Public Types

typedef spi::Filter BASE_CLASS

Public Member Functions

 LevelMatchFilter ()
virtual void setOption (const LogString &option, const LogString &value)
 Set options.
void setLevelToMatch (const LogString &levelToMatch)
LogString getLevelToMatch () const
void setAcceptOnMatch (bool acceptOnMatch1)
bool getAcceptOnMatch () const
FilterDecision decide (const spi::LoggingEventPtr &event) const
 Return the decision of this filter.


Member Typedef Documentation

typedef spi::Filter BASE_CLASS
 


Constructor & Destructor Documentation

LevelMatchFilter  ) 
 


Member Function Documentation

FilterDecision decide const spi::LoggingEventPtr event  )  const [virtual]
 

Return the decision of this filter.

Returns NEUTRAL if the LevelToMatch option is not set or if there is not match. Otherwise, if there is a match, then the returned decision is ACCEPT if the AcceptOnMatch property is set to true. The returned decision is DENY if the AcceptOnMatch property is set to false.

Implements Filter.

bool getAcceptOnMatch  )  const [inline]
 

LogString getLevelToMatch  )  const
 

void setAcceptOnMatch bool  acceptOnMatch1  )  [inline]
 

void setLevelToMatch const LogString levelToMatch  ) 
 

virtual void setOption const LogString option,
const LogString value
[virtual]
 

Set options.

Reimplemented from Filter.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1filter_1_1_level_match_filter-members.html100644 0 0 24461 10774263472 27331 0ustar 0 0 Apache log4cxx: Member List

LevelMatchFilter Member List

This is the complete list of members for LevelMatchFilter, including all inherited members.

ACCEPT enum valueFilter
activateOptions(log4cxx::helpers::Pool &p)Filter [virtual]
addRef() const Filter [virtual]
BASE_CLASS typedefLevelMatchFilter
cast(const Class &clazz) const =0Object [pure virtual]
decide(const spi::LoggingEventPtr &event) const LevelMatchFilter [virtual]
DENY enum valueFilter
Filter()Filter
FilterDecision enum nameFilter
getAcceptOnMatch() const LevelMatchFilter [inline]
getClass() const Object [virtual]
getLevelToMatch() const LevelMatchFilter
getNext() const Filter
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
LevelMatchFilter()LevelMatchFilter
NEUTRAL enum valueFilter
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const Filter [virtual]
setAcceptOnMatch(bool acceptOnMatch1)LevelMatchFilter [inline]
setLevelToMatch(const LogString &levelToMatch)LevelMatchFilter
setNext(const log4cxx::spi::FilterPtr &newNext)Filter
setOption(const LogString &option, const LogString &value)LevelMatchFilter [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1filter_1_1_level_range_filter.html100644 0 0 51644 10774263472 25704 0ustar 0 0 Apache log4cxx: LevelRangeFilter Class Reference

LevelRangeFilter Class Reference

Inherits Filter.

List of all members.


Detailed Description

This is a very simple filter based on level matching, which can be used to reject messages with priorities outside a certain range.

The filter admits three options LevelMin, LevelMax and AcceptOnMatch.

If the level of the LoggingEvent is not between Min and Max (inclusive), then DENY is returned.

If the Logging event level is within the specified range, then if AcceptOnMatch is true, ACCEPT is returned, and if AcceptOnMatch is false, NEUTRAL is returned.

If LevelMinw is not defined, then there is no minimum acceptable level (ie a level is never rejected for being too "low"/unimportant). If LevelMax is not defined, then there is no maximum acceptable level (ie a level is never rejected for beeing too "high"/important).

Refer to the setThreshold method available to all appenders extending AppenderSkeleton for a more convenient way to filter out events by level.


Public Types

typedef spi::Filter BASE_CLASS

Public Member Functions

 LevelRangeFilter ()
virtual void setOption (const LogString &option, const LogString &value)
 Set options.
void setLevelMin (const LevelPtr &levelMin1)
 Set the LevelMin option.
const LevelPtrgetLevelMin () const
 Get the value of the LevelMin option.
void setLevelMax (const LevelPtr &levelMax1)
 Set the LevelMax option.
const LevelPtrgetLevelMax () const
 Get the value of the LevelMax option.
void setAcceptOnMatch (bool acceptOnMatch1)
 Set the AcceptOnMatch option.
bool getAcceptOnMatch () const
 Get the value of the AcceptOnMatch option.
FilterDecision decide (const spi::LoggingEventPtr &event) const
 Return the decision of this filter.


Member Typedef Documentation

typedef spi::Filter BASE_CLASS
 


Constructor & Destructor Documentation

LevelRangeFilter  ) 
 


Member Function Documentation

FilterDecision decide const spi::LoggingEventPtr event  )  const [virtual]
 

Return the decision of this filter.

Returns NEUTRAL if the LevelToMatch option is not set or if there is not match. Otherwise, if there is a match, then the returned decision is ACCEPT if the AcceptOnMatch property is set to true. The returned decision is DENY if the AcceptOnMatch property is set to false.

Implements Filter.

bool getAcceptOnMatch  )  const [inline]
 

Get the value of the AcceptOnMatch option.

const LevelPtr& getLevelMax  )  const [inline]
 

Get the value of the LevelMax option.

const LevelPtr& getLevelMin  )  const [inline]
 

Get the value of the LevelMin option.

void setAcceptOnMatch bool  acceptOnMatch1  )  [inline]
 

Set the AcceptOnMatch option.

void setLevelMax const LevelPtr levelMax1  )  [inline]
 

Set the LevelMax option.

void setLevelMin const LevelPtr levelMin1  )  [inline]
 

Set the LevelMin option.

virtual void setOption const LogString option,
const LogString value
[virtual]
 

Set options.

Reimplemented from Filter.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1filter_1_1_level_range_filter-members.html100644 0 0 25673 10774263472 27337 0ustar 0 0 Apache log4cxx: Member List

LevelRangeFilter Member List

This is the complete list of members for LevelRangeFilter, including all inherited members.

ACCEPT enum valueFilter
activateOptions(log4cxx::helpers::Pool &p)Filter [virtual]
addRef() const Filter [virtual]
BASE_CLASS typedefLevelRangeFilter
cast(const Class &clazz) const =0Object [pure virtual]
decide(const spi::LoggingEventPtr &event) const LevelRangeFilter [virtual]
DENY enum valueFilter
Filter()Filter
FilterDecision enum nameFilter
getAcceptOnMatch() const LevelRangeFilter [inline]
getClass() const Object [virtual]
getLevelMax() const LevelRangeFilter [inline]
getLevelMin() const LevelRangeFilter [inline]
getNext() const Filter
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
LevelRangeFilter()LevelRangeFilter
NEUTRAL enum valueFilter
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const Filter [virtual]
setAcceptOnMatch(bool acceptOnMatch1)LevelRangeFilter [inline]
setLevelMax(const LevelPtr &levelMax1)LevelRangeFilter [inline]
setLevelMin(const LevelPtr &levelMin1)LevelRangeFilter [inline]
setNext(const log4cxx::spi::FilterPtr &newNext)Filter
setOption(const LogString &option, const LogString &value)LevelRangeFilter [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1filter_1_1_location_info_filter.html100644 0 0 34352 10774263472 26241 0ustar 0 0 Apache log4cxx: LocationInfoFilter Class Reference

LocationInfoFilter Class Reference

Inherits Filter.

List of all members.


Detailed Description

Location information is usually specified at the appender level - all events associated with an appender either create and parse stack traces or they do not.

This is an expensive operation and in some cases not needed for all events associated with an appender.

This filter creates event-level location information only if the provided expression evaluates to true.

For information on expression syntax, see org.apache.log4j.rule.ExpressionRule


Public Member Functions

 LocationInfoFilter ()
void activateOptions (log4cxx::helpers::Pool &)
 Usually filters options become active when set.
void setExpression (const LogString &expression)
LogString getExpression () const
void setConvertInFixToPostFix (bool convertInFixToPostFix)
bool getConvertInFixToPostFix () const
FilterDecision decide (const spi::LoggingEventPtr &event) const
 If this event does not already contain location information, evaluate the event against the expression.


Constructor & Destructor Documentation

LocationInfoFilter  ) 
 


Member Function Documentation

void activateOptions log4cxx::helpers::Pool  )  [virtual]
 

Usually filters options become active when set.

We provide a

default do-nothing implementation for convenience.

Reimplemented from Filter.

FilterDecision decide const spi::LoggingEventPtr event  )  const [virtual]
 

If this event does not already contain location information, evaluate the event against the expression.

If the expression evaluates to true, generate a LocationInfo instance by creating an exception and set this LocationInfo on the event.

Returns log4cxx::spi::Filter#NEUTRAL

Implements Filter.

bool getConvertInFixToPostFix  )  const
 

LogString getExpression  )  const
 

void setConvertInFixToPostFix bool  convertInFixToPostFix  ) 
 

void setExpression const LogString expression  ) 
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1filter_1_1_location_info_filter-members.html100644 0 0 24065 10774263472 27671 0ustar 0 0 Apache log4cxx: Member List

LocationInfoFilter Member List

This is the complete list of members for LocationInfoFilter, including all inherited members.

ACCEPT enum valueFilter
activateOptions(log4cxx::helpers::Pool &)LocationInfoFilter [virtual]
addRef() const Filter [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
decide(const spi::LoggingEventPtr &event) const LocationInfoFilter [virtual]
DENY enum valueFilter
Filter()Filter
FilterDecision enum nameFilter
getClass() const Object [virtual]
getConvertInFixToPostFix() const LocationInfoFilter
getExpression() const LocationInfoFilter
getNext() const Filter
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
LocationInfoFilter()LocationInfoFilter
NEUTRAL enum valueFilter
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const Filter [virtual]
setConvertInFixToPostFix(bool convertInFixToPostFix)LocationInfoFilter
setExpression(const LogString &expression)LocationInfoFilter
setNext(const log4cxx::spi::FilterPtr &newNext)Filter
setOption(const LogString &option, const LogString &value)Filter [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1filter_1_1_map_filter.html100644 0 0 15476 10774263472 24201 0ustar 0 0 Apache log4cxx: MapFilter Class Reference

MapFilter Class Reference

Inherits Filter.

List of all members.

Public Member Functions

 MapFilter ()
FilterDecision decide (const spi::LoggingEventPtr &event) const


Constructor & Destructor Documentation

MapFilter  ) 
 


Member Function Documentation

FilterDecision decide const spi::LoggingEventPtr event  )  const [virtual]
 

If the decision is DENY, then the event will be dropped. If the decision is NEUTRAL, then the next filter, if any, will be invoked. If the decision is ACCEPT then the event will be logged without consulting with other filters in the chain.

Parameters:
event The LoggingEvent to decide upon.
Returns:
The decision of the filter.

Implements Filter.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1filter_1_1_map_filter-members.html100644 0 0 21370 10774263472 25617 0ustar 0 0 Apache log4cxx: Member List

MapFilter Member List

This is the complete list of members for MapFilter, including all inherited members.

ACCEPT enum valueFilter
activateOptions(log4cxx::helpers::Pool &p)Filter [virtual]
addRef() const Filter [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
decide(const spi::LoggingEventPtr &event) const MapFilter [virtual]
DENY enum valueFilter
Filter()Filter
FilterDecision enum nameFilter
getClass() const Object [virtual]
getNext() const Filter
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
MapFilter()MapFilter
NEUTRAL enum valueFilter
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const Filter [virtual]
setNext(const log4cxx::spi::FilterPtr &newNext)Filter
setOption(const LogString &option, const LogString &value)Filter [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1filter_1_1_property_filter.html100644 0 0 23731 10774263472 25301 0ustar 0 0 Apache log4cxx: PropertyFilter Class Reference

PropertyFilter Class Reference

Inherits Filter.

List of all members.


Detailed Description

NOTE: This filter modifies logging events by adding properties to the event.

The 'properties' param is converted to event properties, which are set on every event processed by the filter.

Individual properties are only set if they do not already exist on the logging event (will not override existing properties).

This class relies on the convention that property name/value pairs are equals-symbol delimited, and each name/value pair is comma-delimited

Example properties param: somename=somevalue,anothername=anothervalue,thirdname=third value


Public Member Functions

 PropertyFilter ()
 ~PropertyFilter ()
void setProperties (const LogString &props)
FilterDecision decide (const spi::LoggingEventPtr &event) const


Constructor & Destructor Documentation

PropertyFilter  ) 
 

~PropertyFilter  ) 
 


Member Function Documentation

FilterDecision decide const spi::LoggingEventPtr event  )  const [virtual]
 

If the decision is DENY, then the event will be dropped. If the decision is NEUTRAL, then the next filter, if any, will be invoked. If the decision is ACCEPT then the event will be logged without consulting with other filters in the chain.

Parameters:
event The LoggingEvent to decide upon.
Returns:
The decision of the filter.

Implements Filter.

void setProperties const LogString props  ) 
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1filter_1_1_property_filter-members.html100644 0 0 22524 10774263472 26730 0ustar 0 0 Apache log4cxx: Member List

PropertyFilter Member List

This is the complete list of members for PropertyFilter, including all inherited members.

ACCEPT enum valueFilter
activateOptions(log4cxx::helpers::Pool &p)Filter [virtual]
addRef() const Filter [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
decide(const spi::LoggingEventPtr &event) const PropertyFilter [virtual]
DENY enum valueFilter
Filter()Filter
FilterDecision enum nameFilter
getClass() const Object [virtual]
getNext() const Filter
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
NEUTRAL enum valueFilter
ObjectImpl()ObjectImpl
PropertyFilter()PropertyFilter
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const Filter [virtual]
setNext(const log4cxx::spi::FilterPtr &newNext)Filter
setOption(const LogString &option, const LogString &value)Filter [virtual]
setProperties(const LogString &props)PropertyFilter
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
~PropertyFilter()PropertyFilter
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1filter_1_1_string_match_filter.html100644 0 0 41050 10774263472 26071 0ustar 0 0 Apache log4cxx: StringMatchFilter Class Reference

StringMatchFilter Class Reference

Inherits Filter.

List of all members.


Detailed Description

This is a very simple filter based on string matching.

The filter admits two options StringToMatch and AcceptOnMatch. If there is a match between the value of the StringToMatch option and the message of the LoggingEvent, then the decide method returns ACCEPT if the AcceptOnMatch option value is true, if it is false then DENY is returned. If there is no match, NEUTRAL is returned.

See configuration files test6.xml, test7.xml, test8.xml, test9.xml, and test10.xml for examples of seeting up a StringMatchFilter.


Public Types

typedef spi::Filter BASE_CLASS

Public Member Functions

 StringMatchFilter ()
virtual void setOption (const LogString &option, const LogString &value)
 Set options.
void setStringToMatch (const LogString &stringToMatch1)
const LogStringgetStringToMatch () const
void setAcceptOnMatch (bool acceptOnMatch1)
bool getAcceptOnMatch () const
FilterDecision decide (const spi::LoggingEventPtr &event) const
 Returns NEUTRAL is there is no string match.


Member Typedef Documentation

typedef spi::Filter BASE_CLASS
 


Constructor & Destructor Documentation

StringMatchFilter  ) 
 


Member Function Documentation

FilterDecision decide const spi::LoggingEventPtr event  )  const [virtual]
 

Returns NEUTRAL is there is no string match.

Implements Filter.

bool getAcceptOnMatch  )  const [inline]
 

const LogString& getStringToMatch  )  const [inline]
 

void setAcceptOnMatch bool  acceptOnMatch1  )  [inline]
 

virtual void setOption const LogString option,
const LogString value
[virtual]
 

Set options.

Reimplemented from Filter.

void setStringToMatch const LogString stringToMatch1  )  [inline]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1filter_1_1_string_match_filter-members.html100644 0 0 24575 10774263472 27536 0ustar 0 0 Apache log4cxx: Member List

StringMatchFilter Member List

This is the complete list of members for StringMatchFilter, including all inherited members.

ACCEPT enum valueFilter
activateOptions(log4cxx::helpers::Pool &p)Filter [virtual]
addRef() const Filter [virtual]
BASE_CLASS typedefStringMatchFilter
cast(const Class &clazz) const =0Object [pure virtual]
decide(const spi::LoggingEventPtr &event) const StringMatchFilter [virtual]
DENY enum valueFilter
Filter()Filter
FilterDecision enum nameFilter
getAcceptOnMatch() const StringMatchFilter [inline]
getClass() const Object [virtual]
getNext() const Filter
getStaticClass()Object [static]
getStringToMatch() const StringMatchFilter [inline]
instanceof(const Class &clazz) const =0Object [pure virtual]
NEUTRAL enum valueFilter
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const Filter [virtual]
setAcceptOnMatch(bool acceptOnMatch1)StringMatchFilter [inline]
setNext(const log4cxx::spi::FilterPtr &newNext)Filter
setOption(const LogString &option, const LogString &value)StringMatchFilter [virtual]
setStringToMatch(const LogString &stringToMatch1)StringMatchFilter [inline]
StringMatchFilter()StringMatchFilter
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/namespacelog4cxx_1_1helpers.html100644 0 0 305765 10774263472 22366 0ustar 0 0 Apache log4cxx: log4cxx::helpers Namespace Reference

log4cxx::helpers Namespace Reference


Classes

class  AbsoluteTimeDateFormat
 Formats a date in the format HH:mm:ss,SSS for example, "15:49:37,459". More...
class  AppenderAttachableImpl
class  APRInitializer
class  BufferedOutputStream
 Abstract class for writing to character streams. More...
class  BufferedWriter
 Writes text to a character-output stream buffering requests to increase efficiency. More...
class  ByteArrayInputStream
 InputStream implemented on top of a byte array. More...
class  ByteArrayOutputStream
 OutputStream implemented on top of std::vector. More...
class  ByteBuffer
 A byte buffer. More...
class  CharsetDecoder
 An abstract engine to transform a sequences of bytes in a specific charset into a LogString. More...
class  CharsetEncoder
 An engine to transform LogStrings into bytes for the specific character set. More...
class  Class
class  ClassRegistration
class  Condition
 This class provides a means for one thread to suspend exception until notified by another thread to resume. More...
class  CyclicBuffer
 CyclicBuffer is used by other appenders to hold instances of LoggingEvent for immediate or deferred display. More...
class  DatagramPacket
 This class represents a datagram packet. More...
class  DatagramSocket
 This class represents a socket for sending and receiving datagram packets. More...
class  Date
 Simple transcoder for converting between external char and wchar_t strings and internal strings. More...
class  DateFormat
 DateFormat is an abstract class for date/time formatting patterned after java.text.DateFormat. More...
class  DateLayout
 This abstract layout takes care of all the date related options and formatting work. More...
class  DateTimeDateFormat
 Formats a date in the format dd MMM yyyy HH:mm:ss,SSS for example, "06 Nov 1994 15:49:37,459". More...
class  Exception
 The class Exception and its subclasses indicate conditions that a reasonable application might want to catch. More...
class  RuntimeException
 RuntimeException is the parent class of those exceptions that can be thrown during the normal operation of the process. More...
class  NullPointerException
 Thrown when an application attempts to use null in a case where an object is required. More...
class  IllegalArgumentException
 Thrown to indicate that a method has been passed an illegal or inappropriate argument. More...
class  IOException
 Signals that an I/O exception of some sort has occurred. More...
class  MissingResourceException
class  PoolException
class  MutexException
class  InterruptedException
class  ThreadException
class  TranscoderException
class  IllegalMonitorStateException
class  InstantiationException
 Thrown when an application tries to create an instance of a class using the newInstance method in class Class, but the specified class object cannot be instantiated because it is an interface or is an abstract class. More...
class  ClassNotFoundException
 Thrown when an application tries to load in a class through its string name but no definition for the class with the specified name could be found. More...
class  NoSuchElementException
class  IllegalStateException
class  SocketException
 Thrown to indicate that there is an error in the underlying protocol, such as a TCP error. More...
class  ConnectException
 Signals that an error occurred while attempting to connect a socket to a remote address and port. More...
class  ClosedChannelException
class  BindException
 Signals that an error occurred while attempting to bind a socket to a local address and port. More...
class  InterruptedIOException
 Signals that an I/O operation has been interrupted. More...
class  SocketTimeoutException
 Signals that an I/O operation has been interrupted. More...
class  FileInputStream
 InputStream implemented on top of APR file IO. More...
class  FileOutputStream
 OutputStream implemented on top of APR file IO. More...
class  FileWatchdog
 Check every now and then that a certain file has not changed. More...
class  UnknownHostException
class  InetAddress
class  InputStream
 Abstract class for reading from character streams. More...
class  InputStreamReader
 Class for reading from character streams. More...
class  Integer
class  ISO8601DateFormat
 Formats a date in the format yyyy-MM-dd HH:mm:ss,SSS for example "1999-11-27 15:49:37,459". More...
class  Loader
class  Locale
class  LogLog
 This class used to output log statements from within the log4cxx package. More...
class  CharMessageBuffer
 This class is used by the LOG4CXX_INFO and similar macros to support insertion operators in the message parameter. More...
class  UniCharMessageBuffer
 This class is designed to support insertion operations in the message argument to the LOG4CXX_INFO and similar macros and is not designed for general purpose use. More...
class  WideMessageBuffer
 This class is designed to support insertion operations in the message argument to the LOG4CXX_INFO and similar macros and is not designed for general purpose use. More...
class  MessageBuffer
 This class is used by the LOG4CXX_INFO and similar macros to support insertion operators in the message parameter. More...
class  Mutex
class  Object
 base class for java-like objects. More...
class  ObjectImpl
 Implementation class for Object. More...
class  ObjectOutputStream
 Emulates java serialization. More...
class  ObjectPtrBase
class  ObjectPtrT
 smart pointer to a Object descendant More...
class  OnlyOnceErrorHandler
 The OnlyOnceErrorHandler implements log4cxx's default error handling policy which consists of emitting a message for the first error in an appender and ignoring all following errors. More...
class  OptionConverter
 A convenience class to convert property values to specific types. More...
class  OutputStream
 Abstract class for writing to character streams. More...
class  OutputStreamWriter
 Abstract class for writing to character streams. More...
class  Pool
class  Properties
class  PropertyResourceBundle
 PropertyResourceBundle is a concrete subclass of ResourceBundle that manages resources for a locale using a set of static strings from a property file. More...
class  Reader
 Abstract class for reading from character streams. More...
class  RelativeTimeDateFormat
 Formats a date by printing the number of seconds elapsed since the start of the application. More...
class  ResourceBundle
 Resource bundles contain locale-specific objects. More...
class  ServerSocket
class  SimpleDateFormat
 Concrete class for formatting and parsing dates in a locale-sensitive manner. More...
class  Socket
class  SocketOutputStream
class  StrftimeDateFormat
 Concrete class for formatting and parsing dates in a locale-sensitive manner. More...
class  StrictMath
 The class StrictMath contains methods for performing basic numeric operations. More...
class  StringHelper
 String manipulation routines. More...
class  StringTokenizer
class  synchronized
 utility class for objects multi-thread synchronization. More...
class  SyslogWriter
 SyslogWriter is a wrapper around the DatagramSocket class it writes text to the specified host on the port 514 (UNIX syslog). More...
class  System
 The System class contains several useful class fields and methods. More...
class  SystemErrWriter
 Abstract class for writing to character streams. More...
class  SystemOutWriter
 Abstract class for writing to character streams. More...
class  Thread
 This class implements an approximation of java.util.Thread. More...
class  ThreadLocal
 This class provides thread-local variables. More...
class  ThreadSpecificData
 This class contains all the thread-specific data in use by log4cxx. More...
class  TimeZone
class  Transcoder
 Simple transcoder for converting between external char and wchar_t strings and internal strings. More...
class  Transform
 Utility class for transforming strings. More...
class  Writer
 Abstract class for writing to character streams. More...
class  DOMException
class  XMLDOMNode
 The XMLDOMNode interface is the primary datatype for the entire Document Object Model. More...
class  XMLDOMElement
 The XMLDOMElement interface represents an element in an XML document. More...
class  XMLDOMDocument
 The XMLDOMDocument interface represents an entire XML document. More...
class  XMLDOMNodeList
 The XMLDOMNodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. More...

Namespaces

namespace  SimpleDateFormatImpl

Typedefs

typedef ObjectPtrT< ObjectObjectPtr
typedef ObjectPtrT< ObjectObjectPtr
typedef std::ios_base &(* ios_base_manip )(std::ios_base &)
typedef ObjectPtrT< ObjectObjectPtr
typedef void *(* Runnable )(apr_thread_t *thread, void *data)
typedef helpers::ObjectPtrT<
XMLDOMNode
XMLDOMNodePtr
typedef helpers::ObjectPtrT<
XMLDOMDocument
XMLDOMDocumentPtr
typedef helpers::ObjectPtrT<
XMLDOMNodeList
XMLDOMNodeListPtr
typedef ObjectPtrT< ObjectOutputStreamObjectOutputStreamPtr

Functions

 LOG4CXX_PTR_DEF (AppenderAttachableImpl)
 LOG4CXX_PTR_DEF (BufferedOutputStream)
 LOG4CXX_PTR_DEF (ByteArrayInputStream)
 LOG4CXX_PTR_DEF (ByteArrayOutputStream)
 LOG4CXX_PTR_DEF (CharsetDecoder)
 LOG4CXX_PTR_DEF (CharsetEncoder)
 LOG4CXX_PTR_DEF (DatagramPacket)
 LOG4CXX_PTR_DEF (DatagramSocket)
 LOG4CXX_PTR_DEF (Date)
 LOG4CXX_PTR_DEF (DateFormat)
 LOG4CXX_PTR_DEF (FileInputStream)
 LOG4CXX_PTR_DEF (FileOutputStream)
 LOG4CXX_PTR_DEF (InetAddress)
 LOG4CXX_LIST_DEF (InetAddressList, InetAddressPtr)
 LOG4CXX_PTR_DEF (InputStream)
 LOG4CXX_PTR_DEF (InputStreamReader)
 LOG4CXX_PTR_DEF (Integer)
template<class V>
std::basic_ostream< char > & operator<< (CharMessageBuffer &os, const V &val)
template<class V>
UniCharMessageBuffer::uostreamoperator<< (UniCharMessageBuffer &os, const V &val)
template<class V>
std::basic_ostream< wchar_t > & operator<< (WideMessageBuffer &os, const V &val)
template<class V>
std::ostream & operator<< (MessageBuffer &os, const V &val)
 LOG4CXX_PTR_DEF (Object)
 LOG4CXX_PTR_DEF (ObjectOutputStream)
 LOG4CXX_PTR_DEF (OutputStream)
 LOG4CXX_PTR_DEF (OutputStreamWriter)
 LOG4CXX_PTR_DEF (PropertyResourceBundle)
 LOG4CXX_PTR_DEF (Reader)
 LOG4CXX_PTR_DEF (ResourceBundle)
 LOG4CXX_PTR_DEF (Socket)
 LOG4CXX_PTR_DEF (SocketOutputStream)
 LOG4CXX_PTR_DEF (TimeZone)
 LOG4CXX_PTR_DEF (Writer)
 LOG4CXX_PTR_DEF (XMLDOMNode)
 LOG4CXX_PTR_DEF (XMLDOMElement)
 LOG4CXX_PTR_DEF (XMLDOMDocument)
 LOG4CXX_PTR_DEF (XMLDOMNodeList)


Typedef Documentation

typedef std::ios_base&(* ios_base_manip)(std::ios_base &)
 

typedef ObjectPtrT<ObjectOutputStream> ObjectOutputStreamPtr
 

typedef ObjectPtrT<Object> ObjectPtr
 

typedef ObjectPtrT<Object> ObjectPtr
 

typedef ObjectPtrT<Object> ObjectPtr
 

typedef void*( * Runnable)(apr_thread_t *thread, void *data)
 

typedef helpers::ObjectPtrT<XMLDOMDocument> XMLDOMDocumentPtr
 

typedef helpers::ObjectPtrT<XMLDOMNodeList> XMLDOMNodeListPtr
 

typedef helpers::ObjectPtrT<XMLDOMNode> XMLDOMNodePtr
 


Function Documentation

log4cxx::helpers::LOG4CXX_LIST_DEF InetAddressList  ,
InetAddressPtr 
 

log4cxx::helpers::LOG4CXX_PTR_DEF XMLDOMNodeList   ) 
 

log4cxx::helpers::LOG4CXX_PTR_DEF XMLDOMDocument   ) 
 

log4cxx::helpers::LOG4CXX_PTR_DEF XMLDOMElement   ) 
 

log4cxx::helpers::LOG4CXX_PTR_DEF XMLDOMNode   ) 
 

log4cxx::helpers::LOG4CXX_PTR_DEF Writer   ) 
 

log4cxx::helpers::LOG4CXX_PTR_DEF TimeZone   ) 
 

log4cxx::helpers::LOG4CXX_PTR_DEF SocketOutputStream   ) 
 

log4cxx::helpers::LOG4CXX_PTR_DEF Socket   ) 
 

log4cxx::helpers::LOG4CXX_PTR_DEF ResourceBundle   ) 
 

log4cxx::helpers::LOG4CXX_PTR_DEF Reader   ) 
 

log4cxx::helpers::LOG4CXX_PTR_DEF PropertyResourceBundle   ) 
 

log4cxx::helpers::LOG4CXX_PTR_DEF OutputStreamWriter   ) 
 

log4cxx::helpers::LOG4CXX_PTR_DEF OutputStream   ) 
 

log4cxx::helpers::LOG4CXX_PTR_DEF ObjectOutputStream   ) 
 

log4cxx::helpers::LOG4CXX_PTR_DEF Object   ) 
 

log4cxx::helpers::LOG4CXX_PTR_DEF Integer   ) 
 

log4cxx::helpers::LOG4CXX_PTR_DEF InputStreamReader   ) 
 

log4cxx::helpers::LOG4CXX_PTR_DEF InputStream   ) 
 

log4cxx::helpers::LOG4CXX_PTR_DEF InetAddress   ) 
 

log4cxx::helpers::LOG4CXX_PTR_DEF FileOutputStream   ) 
 

log4cxx::helpers::LOG4CXX_PTR_DEF FileInputStream   ) 
 

log4cxx::helpers::LOG4CXX_PTR_DEF DateFormat   ) 
 

log4cxx::helpers::LOG4CXX_PTR_DEF Date   ) 
 

log4cxx::helpers::LOG4CXX_PTR_DEF DatagramSocket   ) 
 

log4cxx::helpers::LOG4CXX_PTR_DEF DatagramPacket   ) 
 

log4cxx::helpers::LOG4CXX_PTR_DEF CharsetEncoder   ) 
 

log4cxx::helpers::LOG4CXX_PTR_DEF CharsetDecoder   ) 
 

log4cxx::helpers::LOG4CXX_PTR_DEF ByteArrayOutputStream   ) 
 

log4cxx::helpers::LOG4CXX_PTR_DEF ByteArrayInputStream   ) 
 

log4cxx::helpers::LOG4CXX_PTR_DEF BufferedOutputStream   ) 
 

log4cxx::helpers::LOG4CXX_PTR_DEF AppenderAttachableImpl   ) 
 

std::ostream& log4cxx::helpers::operator<< MessageBuffer &  os,
const V &  val
 

std::basic_ostream<wchar_t>& log4cxx::helpers::operator<< WideMessageBuffer &  os,
const V &  val
 

UniCharMessageBuffer::uostream& log4cxx::helpers::operator<< UniCharMessageBuffer &  os,
const V &  val
 

std::basic_ostream<char>& log4cxx::helpers::operator<< CharMessageBuffer &  os,
const V &  val
 

apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_absolute_time_date_format.html100644 0 0 11631 10774263472 27422 0ustar 0 0 Apache log4cxx: AbsoluteTimeDateFormat Class Reference

AbsoluteTimeDateFormat Class Reference

Inherits SimpleDateFormat.

List of all members.


Detailed Description

Formats a date in the format HH:mm:ss,SSS for example, "15:49:37,459".


Public Member Functions

 AbsoluteTimeDateFormat ()


Constructor & Destructor Documentation

AbsoluteTimeDateFormat  )  [inline]
 


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 146 10774264511 10263 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_absolute_time_date_format-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_absolute_time_date_format-members.htm100644 0 0 20721 10774263472 30676 0ustar 0 0 Apache log4cxx: Member List

AbsoluteTimeDateFormat Member List

This is the complete list of members for AbsoluteTimeDateFormat, including all inherited members.

AbsoluteTimeDateFormat()AbsoluteTimeDateFormat [inline]
addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
DateFormat()DateFormat [protected]
format(LogString &s, log4cxx_time_t tm, log4cxx::helpers::Pool &p) const SimpleDateFormat [virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
numberFormat(LogString &s, int n, log4cxx::helpers::Pool &p) const DateFormat [virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
setTimeZone(const TimeZonePtr &zone)SimpleDateFormat [virtual]
SimpleDateFormat(const LogString &pattern)SimpleDateFormat
SimpleDateFormat(const LogString &pattern, const std::locale *locale)SimpleDateFormat
~DateFormat()DateFormat [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~SimpleDateFormat()SimpleDateFormat
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_appender_attachable_impl.html100644 0 0 61351 10774263472 27214 0ustar 0 0 Apache log4cxx: AppenderAttachableImpl Class Reference

AppenderAttachableImpl Class Reference

Inherits AppenderAttachable, and ObjectImpl.

List of all members.

Public Member Functions

 AppenderAttachableImpl (Pool &pool)
 Create new instance.
void addRef () const
void releaseRef () const
virtual void addAppender (const AppenderPtr &newAppender)
 Add an appender.
int appendLoopOnAppenders (const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)
 Call the doAppend method on all attached appenders.
virtual AppenderList getAllAppenders () const
 Get all previously added appenders as an Enumeration.
virtual AppenderPtr getAppender (const LogString &name) const
 Get an appender by name.
virtual bool isAttached (const AppenderPtr &appender) const
 Returns true if the specified appender is in the list of attached appenders, false otherwise.
virtual void removeAllAppenders ()
 Remove all previously added appenders.
virtual void removeAppender (const AppenderPtr &appender)
 Remove the appender passed as parameter from the list of appenders.
virtual void removeAppender (const LogString &name)
 Remove the appender with the name passed as parameter from the list of appenders.
const log4cxx::helpers::MutexgetMutex () const

Protected Attributes

AppenderList appenderList
 Array of appenders.


Constructor & Destructor Documentation

AppenderAttachableImpl Pool pool  ) 
 

Create new instance.

Parameters:
pool pool, must be longer-lived than instance.


Member Function Documentation

virtual void addAppender const AppenderPtr newAppender  )  [virtual]
 

Add an appender.

Implements AppenderAttachable.

void addRef  )  const [virtual]
 

Reimplemented from ObjectImpl.

int appendLoopOnAppenders const spi::LoggingEventPtr event,
log4cxx::helpers::Pool p
 

Call the doAppend method on all attached appenders.

virtual AppenderList getAllAppenders  )  const [virtual]
 

Get all previously added appenders as an Enumeration.

Implements AppenderAttachable.

virtual AppenderPtr getAppender const LogString name  )  const [virtual]
 

Get an appender by name.

Implements AppenderAttachable.

const log4cxx::helpers::Mutex& getMutex  )  const [inline]
 

virtual bool isAttached const AppenderPtr appender  )  const [virtual]
 

Returns true if the specified appender is in the list of attached appenders, false otherwise.

Implements AppenderAttachable.

void releaseRef  )  const [virtual]
 

Reimplemented from ObjectImpl.

virtual void removeAllAppenders  )  [virtual]
 

Remove all previously added appenders.

Implements AppenderAttachable.

virtual void removeAppender const LogString name  )  [virtual]
 

Remove the appender with the name passed as parameter from the list of appenders.

Implements AppenderAttachable.

virtual void removeAppender const AppenderPtr appender  )  [virtual]
 

Remove the appender passed as parameter from the list of appenders.

Implements AppenderAttachable.


Member Data Documentation

AppenderList appenderList [protected]
 

Array of appenders.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/namespacelog4cxx_1_1net.html100644 0 0 32431 10774263472 21455 0ustar 0 0 Apache log4cxx: log4cxx::net Namespace Reference

log4cxx::net Namespace Reference


Classes

class  SMTPAppender
 Send an e-mail when a specific logging event occurs, typically on errors or fatal errors. More...
class  SocketAppender
 Sends LoggingEvent objects to a remote a log server, usually Apache Chainsaw. More...
class  SocketAppenderSkeleton
 Abstract base class for SocketAppender and XMLSocketAppender. More...
class  SocketHubAppender
 Sends LoggingEvent objects to a set of remote log servers, usually a SocketNode. More...
class  SyslogAppender
 Use SyslogAppender to send log messages to a remote syslog daemon. More...
class  TelnetAppender
class  XMLSocketAppender
 Sends LoggingEvent objects in XML format to a remote a log server, usually a XMLSocketNode. More...

Functions

 LOG4CXX_PTR_DEF (SMTPAppender)
 LOG4CXX_PTR_DEF (SocketAppender)
 LOG4CXX_PTR_DEF (SocketHubAppender)
 LOG4CXX_PTR_DEF (SyslogAppender)
 LOG4CXX_PTR_DEF (TelnetAppender)
 LOG4CXX_PTR_DEF (XMLSocketAppender)


Function Documentation

log4cxx::net::LOG4CXX_PTR_DEF XMLSocketAppender   ) 
 

log4cxx::net::LOG4CXX_PTR_DEF TelnetAppender   ) 
 

log4cxx::net::LOG4CXX_PTR_DEF SyslogAppender   ) 
 

log4cxx::net::LOG4CXX_PTR_DEF SocketHubAppender   ) 
 

log4cxx::net::LOG4CXX_PTR_DEF SocketAppender   ) 
 

log4cxx::net::LOG4CXX_PTR_DEF SMTPAppender   ) 
 

././@LongLink100644 0 0 145 10774264511 10262 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_appender_attachable_impl-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_appender_attachable_impl-members.html100644 0 0 23266 10774263472 30647 0ustar 0 0 Apache log4cxx: Member List

AppenderAttachableImpl Member List

This is the complete list of members for AppenderAttachableImpl, including all inherited members.

addAppender(const AppenderPtr &newAppender)AppenderAttachableImpl [virtual]
addRef() const AppenderAttachableImpl [virtual]
AppenderAttachableImpl(Pool &pool)AppenderAttachableImpl
appenderListAppenderAttachableImpl [protected]
appendLoopOnAppenders(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)AppenderAttachableImpl
cast(const Class &clazz) const =0Object [pure virtual]
getAllAppenders() const AppenderAttachableImpl [virtual]
getAppender(const LogString &name) const AppenderAttachableImpl [virtual]
getClass() const Object [virtual]
getMutex() const AppenderAttachableImpl [inline]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
isAttached(const AppenderPtr &appender) const AppenderAttachableImpl [virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const AppenderAttachableImpl [virtual]
removeAllAppenders()AppenderAttachableImpl [virtual]
removeAppender(const AppenderPtr &appender)AppenderAttachableImpl [virtual]
removeAppender(const LogString &name)AppenderAttachableImpl [virtual]
~AppenderAttachable()AppenderAttachable [inline, virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_a_p_r_initializer.html100644 0 0 21725 10774263472 25711 0ustar 0 0 Apache log4cxx: APRInitializer Class Reference

APRInitializer Class Reference

List of all members.

Public Member Functions

 ~APRInitializer ()

Static Public Member Functions

static log4cxx_time_t initialize ()
static apr_pool_t * getRootPool ()
static apr_threadkey_t * getTlsKey ()

Static Public Attributes

static bool isDestructed

Constructor & Destructor Documentation

~APRInitializer  ) 
 


Member Function Documentation

static apr_pool_t* getRootPool  )  [static]
 

static apr_threadkey_t* getTlsKey  )  [static]
 

static log4cxx_time_t initialize  )  [static]
 


Member Data Documentation

bool isDestructed [static]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_a_p_r_initializer-members.html100644 0 0 10246 10774263472 27335 0ustar 0 0 Apache log4cxx: Member List

APRInitializer Member List

This is the complete list of members for APRInitializer, including all inherited members.

getRootPool()APRInitializer [static]
getTlsKey()APRInitializer [static]
initialize()APRInitializer [static]
isDestructedAPRInitializer [static]
~APRInitializer()APRInitializer
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_buffered_output_stream.html100644 0 0 26327 10774263472 27006 0ustar 0 0 Apache log4cxx: BufferedOutputStream Class Reference

BufferedOutputStream Class Reference

Inherits OutputStream.

List of all members.


Detailed Description

Abstract class for writing to character streams.


Public Member Functions

void close (Pool &p)
void flush (Pool &p)
void write (ByteBuffer &buf, Pool &p)

Protected Member Functions

 BufferedOutputStream (OutputStreamPtr &out, size_t size=4096)
 ~BufferedOutputStream ()


Constructor & Destructor Documentation

BufferedOutputStream OutputStreamPtr &  out,
size_t  size = 4096
[protected]
 

~BufferedOutputStream  )  [protected]
 


Member Function Documentation

void close Pool p  )  [virtual]
 

Implements OutputStream.

void flush Pool p  )  [virtual]
 

Implements OutputStream.

void write ByteBuffer buf,
Pool p
[virtual]
 

Implements OutputStream.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_buffered_output_stream-members.html100644 0 0 17565 10774263472 30442 0ustar 0 0 Apache log4cxx: Member List

BufferedOutputStream Member List

This is the complete list of members for BufferedOutputStream, including all inherited members.

addRef() const ObjectImpl [virtual]
BufferedOutputStream(OutputStreamPtr &out, size_t size=4096)BufferedOutputStream [protected]
cast(const Class &clazz) const =0Object [pure virtual]
close(Pool &p)BufferedOutputStream [virtual]
flush(Pool &p)BufferedOutputStream [virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
OutputStream()OutputStream [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
write(ByteBuffer &buf, Pool &p)BufferedOutputStream [virtual]
~BufferedOutputStream()BufferedOutputStream [protected]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OutputStream()OutputStream [protected, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_buffered_writer.html100644 0 0 30330 10774263472 25374 0ustar 0 0 Apache log4cxx: BufferedWriter Class Reference

BufferedWriter Class Reference

Inherits Writer.

List of all members.


Detailed Description

Writes text to a character-output stream buffering requests to increase efficiency.


Public Member Functions

 BufferedWriter (WriterPtr &out)
 BufferedWriter (WriterPtr &out, size_t sz)
virtual ~BufferedWriter ()
virtual void close (Pool &p)
virtual void flush (Pool &p)
virtual void write (const LogString &str, Pool &p)


Constructor & Destructor Documentation

BufferedWriter WriterPtr &  out  ) 
 

BufferedWriter WriterPtr &  out,
size_t  sz
 

virtual ~BufferedWriter  )  [virtual]
 


Member Function Documentation

virtual void close Pool p  )  [virtual]
 

Implements Writer.

virtual void flush Pool p  )  [virtual]
 

Implements Writer.

virtual void write const LogString str,
Pool p
[virtual]
 

Implements Writer.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_buffered_writer-members.html100644 0 0 17667 10774263472 27046 0ustar 0 0 Apache log4cxx: Member List

BufferedWriter Member List

This is the complete list of members for BufferedWriter, including all inherited members.

addRef() const ObjectImpl [virtual]
BufferedWriter(WriterPtr &out)BufferedWriter
BufferedWriter(WriterPtr &out, size_t sz)BufferedWriter
cast(const Class &clazz) const =0Object [pure virtual]
close(Pool &p)BufferedWriter [virtual]
flush(Pool &p)BufferedWriter [virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
write(const LogString &str, Pool &p)BufferedWriter [virtual]
Writer()Writer [protected]
~BufferedWriter()BufferedWriter [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~Writer()Writer [protected, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_byte_array_input_stream.html100644 0 0 24714 10774263472 27162 0ustar 0 0 Apache log4cxx: ByteArrayInputStream Class Reference

ByteArrayInputStream Class Reference

Inherits InputStream.

List of all members.


Detailed Description

InputStream implemented on top of a byte array.


Public Member Functions

 ByteArrayInputStream (const ByteList &bytes)
 Creates a ByteArrayInputStream.
virtual ~ByteArrayInputStream ()
virtual void close ()
 Closes this file input stream and releases any system resources associated with the stream.
virtual int read (ByteBuffer &buf)
 Reads a sequence of bytes into the given buffer.


Constructor & Destructor Documentation

ByteArrayInputStream const ByteList &  bytes  ) 
 

Creates a ByteArrayInputStream.

Parameters:
bytes array of bytes to copy into stream.

virtual ~ByteArrayInputStream  )  [virtual]
 


Member Function Documentation

virtual void close  )  [virtual]
 

Closes this file input stream and releases any system resources associated with the stream.

Implements InputStream.

virtual int read ByteBuffer buf  )  [virtual]
 

Reads a sequence of bytes into the given buffer.

Parameters:
buf The buffer into which bytes are to be transferred.
Returns:
the total number of bytes read into the buffer, or -1 if there is no more data because the end of the stream has been reached.

Implements InputStream.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_byte_array_input_stream-members.html100644 0 0 16772 10774263472 30617 0ustar 0 0 Apache log4cxx: Member List

ByteArrayInputStream Member List

This is the complete list of members for ByteArrayInputStream, including all inherited members.

addRef() const ObjectImpl [virtual]
ByteArrayInputStream(const ByteList &bytes)ByteArrayInputStream
cast(const Class &clazz) const =0Object [pure virtual]
close()ByteArrayInputStream [virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
InputStream()InputStream [protected]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
read(ByteBuffer &buf)ByteArrayInputStream [virtual]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
~ByteArrayInputStream()ByteArrayInputStream [virtual]
~InputStream()InputStream [protected, virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_byte_array_output_stream.html100644 0 0 27711 10774263472 27363 0ustar 0 0 Apache log4cxx: ByteArrayOutputStream Class Reference

ByteArrayOutputStream Class Reference

Inherits OutputStream.

List of all members.


Detailed Description

OutputStream implemented on top of std::vector.


Public Member Functions

 ByteArrayOutputStream ()
virtual ~ByteArrayOutputStream ()
virtual void close (Pool &p)
virtual void flush (Pool &p)
virtual void write (ByteBuffer &buf, Pool &p)
ByteList toByteArray () const


Constructor & Destructor Documentation

ByteArrayOutputStream  ) 
 

virtual ~ByteArrayOutputStream  )  [virtual]
 


Member Function Documentation

virtual void close Pool p  )  [virtual]
 

Implements OutputStream.

virtual void flush Pool p  )  [virtual]
 

Implements OutputStream.

ByteList toByteArray  )  const
 

virtual void write ByteBuffer buf,
Pool p
[virtual]
 

Implements OutputStream.


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 145 10774264511 10262 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_byte_array_output_stream-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_byte_array_output_stream-members.html100644 0 0 20166 10774263472 31010 0ustar 0 0 Apache log4cxx: Member List

ByteArrayOutputStream Member List

This is the complete list of members for ByteArrayOutputStream, including all inherited members.

addRef() const ObjectImpl [virtual]
ByteArrayOutputStream()ByteArrayOutputStream
cast(const Class &clazz) const =0Object [pure virtual]
close(Pool &p)ByteArrayOutputStream [virtual]
flush(Pool &p)ByteArrayOutputStream [virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
OutputStream()OutputStream [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
toByteArray() const ByteArrayOutputStream
write(ByteBuffer &buf, Pool &p)ByteArrayOutputStream [virtual]
~ByteArrayOutputStream()ByteArrayOutputStream [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OutputStream()OutputStream [protected, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_byte_buffer.html100644 0 0 45566 10774263472 24533 0ustar 0 0 Apache log4cxx: ByteBuffer Class Reference

ByteBuffer Class Reference

List of all members.

Detailed Description

A byte buffer.


Public Member Functions

 ByteBuffer (char *data, size_t capacity)
 ~ByteBuffer ()
void clear ()
void flip ()
char * data ()
const char * data () const
char * current ()
const char * current () const
size_t limit () const
void limit (size_t newLimit)
size_t position () const
size_t remaining () const
void position (size_t newPosition)
bool put (char byte)


Constructor & Destructor Documentation

ByteBuffer char *  data,
size_t  capacity
 

~ByteBuffer  ) 
 


Member Function Documentation

void clear  ) 
 

const char* current  )  const [inline]
 

char* current  )  [inline]
 

const char* data  )  const [inline]
 

char* data  )  [inline]
 

void flip  ) 
 

void limit size_t  newLimit  ) 
 

size_t limit  )  const [inline]
 

void position size_t  newPosition  ) 
 

size_t position  )  const [inline]
 

bool put char  byte  ) 
 

size_t remaining  )  const [inline]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_byte_buffer-members.html100644 0 0 14605 10774263472 26151 0ustar 0 0 Apache log4cxx: Member List

ByteBuffer Member List

This is the complete list of members for ByteBuffer, including all inherited members.

ByteBuffer(char *data, size_t capacity)ByteBuffer
clear()ByteBuffer
current()ByteBuffer [inline]
current() const ByteBuffer [inline]
data()ByteBuffer [inline]
data() const ByteBuffer [inline]
flip()ByteBuffer
limit() const ByteBuffer [inline]
limit(size_t newLimit)ByteBuffer
position() const ByteBuffer [inline]
position(size_t newPosition)ByteBuffer
put(char byte)ByteBuffer
remaining() const ByteBuffer [inline]
~ByteBuffer()ByteBuffer
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_charset_decoder.html100644 0 0 41207 10774263472 25341 0ustar 0 0 Apache log4cxx: CharsetDecoder Class Reference

CharsetDecoder Class Reference

Inherits ObjectImpl.

List of all members.


Detailed Description

An abstract engine to transform a sequences of bytes in a specific charset into a LogString.


Public Member Functions

virtual ~CharsetDecoder ()
 Destructor.
virtual log4cxx_status_t decode (ByteBuffer &in, LogString &out)=0
 Decodes as many bytes as possible from the given input buffer, writing the results to the given output string.

Static Public Member Functions

static CharsetDecoderPtr getDefaultDecoder ()
 Get decoder for default charset.
static CharsetDecoderPtr getDecoder (const LogString &charset)
 Get decoder for specified character set.
static CharsetDecoderPtr getUTF8Decoder ()
 Get decoder for UTF-8.
static CharsetDecoderPtr getISOLatinDecoder ()
 Get decoder for ISO-8859-1.
static bool isError (log4cxx_status_t stat)
 Determins if status value indicates an invalid byte sequence.

Protected Member Functions

 CharsetDecoder ()
 Protected constructor.


Constructor & Destructor Documentation

CharsetDecoder  )  [protected]
 

Protected constructor.

virtual ~CharsetDecoder  )  [virtual]
 

Destructor.


Member Function Documentation

virtual log4cxx_status_t decode ByteBuffer in,
LogString out
[pure virtual]
 

Decodes as many bytes as possible from the given input buffer, writing the results to the given output string.

Parameters:
in input buffer.
out output string.
Returns:
APR_SUCCESS if not encoding errors were found.

static CharsetDecoderPtr getDecoder const LogString charset  )  [static]
 

Get decoder for specified character set.

Parameters:
charset the following values should be recognized: "US-ASCII", "ISO-8859-1", "UTF-8", "UTF-16BE", "UTF-16LE".
Returns:
decoder
Exceptions:
IllegalArgumentException if charset is not recognized.

static CharsetDecoderPtr getDefaultDecoder  )  [static]
 

Get decoder for default charset.

static CharsetDecoderPtr getISOLatinDecoder  )  [static]
 

Get decoder for ISO-8859-1.

static CharsetDecoderPtr getUTF8Decoder  )  [static]
 

Get decoder for UTF-8.

static bool isError log4cxx_status_t  stat  )  [inline, static]
 

Determins if status value indicates an invalid byte sequence.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_charset_decoder-members.html100644 0 0 20043 10774263472 26764 0ustar 0 0 Apache log4cxx: Member List

CharsetDecoder Member List

This is the complete list of members for CharsetDecoder, including all inherited members.

addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
CharsetDecoder()CharsetDecoder [protected]
decode(ByteBuffer &in, LogString &out)=0CharsetDecoder [pure virtual]
getClass() const Object [virtual]
getDecoder(const LogString &charset)CharsetDecoder [static]
getDefaultDecoder()CharsetDecoder [static]
getISOLatinDecoder()CharsetDecoder [static]
getStaticClass()Object [static]
getUTF8Decoder()CharsetDecoder [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
isError(log4cxx_status_t stat)CharsetDecoder [inline, static]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
~CharsetDecoder()CharsetDecoder [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_charset_encoder.html100644 0 0 52203 10774263472 25351 0ustar 0 0 Apache log4cxx: CharsetEncoder Class Reference

CharsetEncoder Class Reference

Inherits ObjectImpl.

List of all members.


Detailed Description

An engine to transform LogStrings into bytes for the specific character set.


Public Member Functions

virtual ~CharsetEncoder ()
 Destructor.
virtual log4cxx_status_t encode (const LogString &in, LogString::const_iterator &iter, ByteBuffer &out)=0
 Encodes as many characters from the input string as possible to the output buffer.
virtual void reset ()
 Resets any internal state.
virtual void flush (ByteBuffer &out)
 Flushes the encoder.

Static Public Member Functions

static CharsetEncoderPtr getDefaultEncoder ()
 Get encoder for default charset.
static CharsetEncoderPtr getEncoder (const LogString &charset)
 Get encoder for specified character set.
static CharsetEncoderPtr getUTF8Encoder ()
 Get encoder for UTF-8.
static void encode (CharsetEncoderPtr &enc, const LogString &src, LogString::const_iterator &iter, ByteBuffer &dst)
 Encodes a string replacing unmappable characters with escape sequences.
static bool isError (log4cxx_status_t stat)
 Determines if the return value from encode indicates an unconvertable character.

Protected Member Functions

 CharsetEncoder ()
 Protected constructor.


Constructor & Destructor Documentation

CharsetEncoder  )  [protected]
 

Protected constructor.

virtual ~CharsetEncoder  )  [virtual]
 

Destructor.


Member Function Documentation

virtual log4cxx_status_t encode const LogString in,
LogString::const_iterator &  iter,
ByteBuffer out
[pure virtual]
 

Encodes as many characters from the input string as possible to the output buffer.

Parameters:
in input string
iter position in string to start.
out output buffer.
Returns:
APR_SUCCESS unless a character can not be represented in the encoding.

static void encode CharsetEncoderPtr &  enc,
const LogString src,
LogString::const_iterator &  iter,
ByteBuffer dst
[static]
 

Encodes a string replacing unmappable characters with escape sequences.

virtual void flush ByteBuffer out  )  [virtual]
 

Flushes the encoder.

static CharsetEncoderPtr getDefaultEncoder  )  [static]
 

Get encoder for default charset.

static CharsetEncoderPtr getEncoder const LogString charset  )  [static]
 

Get encoder for specified character set.

Parameters:
charset the following values should be recognized: "US-ASCII", "ISO-8859-1", "UTF-8", "UTF-16BE", "UTF-16LE".
Returns:
encoder.
Exceptions:
IllegalArgumentException if encoding is not recognized.

static CharsetEncoderPtr getUTF8Encoder  )  [static]
 

Get encoder for UTF-8.

static bool isError log4cxx_status_t  stat  )  [inline, static]
 

Determines if the return value from encode indicates an unconvertable character.

virtual void reset  )  [virtual]
 

Resets any internal state.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_charset_encoder-members.html100644 0 0 21363 10774263472 27004 0ustar 0 0 Apache log4cxx: Member List

CharsetEncoder Member List

This is the complete list of members for CharsetEncoder, including all inherited members.

addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
CharsetEncoder()CharsetEncoder [protected]
encode(CharsetEncoderPtr &enc, const LogString &src, LogString::const_iterator &iter, ByteBuffer &dst)CharsetEncoder [static]
encode(const LogString &in, LogString::const_iterator &iter, ByteBuffer &out)=0CharsetEncoder [pure virtual]
flush(ByteBuffer &out)CharsetEncoder [virtual]
getClass() const Object [virtual]
getDefaultEncoder()CharsetEncoder [static]
getEncoder(const LogString &charset)CharsetEncoder [static]
getStaticClass()Object [static]
getUTF8Encoder()CharsetEncoder [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
isError(log4cxx_status_t stat)CharsetEncoder [inline, static]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
reset()CharsetEncoder [virtual]
~CharsetEncoder()CharsetEncoder [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_class.html100644 0 0 31230 10774263472 23323 0ustar 0 0 Apache log4cxx: Class Class Reference

Class Class Reference

Inherited by Object::ClazzObject, and Level::LevelClass.

List of all members.

Public Member Functions

virtual ~Class ()
virtual ObjectPtr newInstance () const
LogString toString () const
virtual LogString getName () const =0

Static Public Member Functions

static const ClassforName (const LogString &className)
static bool registerClass (const Class &newClass)

Protected Member Functions

 Class ()


Constructor & Destructor Documentation

virtual ~Class  )  [virtual]
 

Class  )  [protected]
 


Member Function Documentation

static const Class& forName const LogString className  )  [static]
 

virtual LogString getName  )  const [pure virtual]
 

Implemented in Object::ClazzObject, and Level::LevelClass.

virtual ObjectPtr newInstance  )  const [virtual]
 

static bool registerClass const Class newClass  )  [static]
 

LogString toString  )  const
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_class-members.html100644 0 0 11050 10774263472 24751 0ustar 0 0 Apache log4cxx: Member List

Class Member List

This is the complete list of members for Class, including all inherited members.

Class()Class [protected]
forName(const LogString &className)Class [static]
getName() const =0Class [pure virtual]
newInstance() const Class [virtual]
registerClass(const Class &newClass)Class [static]
toString() const Class
~Class()Class [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_class_registration.html100644 0 0 14125 10774263472 26121 0ustar 0 0 Apache log4cxx: ClassRegistration Class Reference

ClassRegistration Class Reference

List of all members.

Public Types

typedef const Class &(* ClassAccessor )()

Public Member Functions

 ClassRegistration (ClassAccessor classAccessor)

Member Typedef Documentation

typedef const Class&(* ClassAccessor)()
 


Constructor & Destructor Documentation

ClassRegistration ClassAccessor  classAccessor  ) 
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_class_registration-members.html100644 0 0 6547 10774263472 27542 0ustar 0 0 Apache log4cxx: Member List

ClassRegistration Member List

This is the complete list of members for ClassRegistration, including all inherited members.

ClassAccessor typedefClassRegistration
ClassRegistration(ClassAccessor classAccessor)ClassRegistration
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_condition.html100644 0 0 23721 10774263472 24212 0ustar 0 0 Apache log4cxx: Condition Class Reference

Condition Class Reference

List of all members.

Detailed Description

This class provides a means for one thread to suspend exception until notified by another thread to resume.

This class should have similar semantics to java.util.concurrent.locks.Condition.


Public Member Functions

 Condition (log4cxx::helpers::Pool &p)
 Create new instance.
 ~Condition ()
 Destructor.
log4cxx_status_t signalAll ()
 Signal all waiting threads.
void await (Mutex &lock)
 Await signaling of condition.


Constructor & Destructor Documentation

Condition log4cxx::helpers::Pool p  ) 
 

Create new instance.

Parameters:
p pool on which condition will be created. Needs to be longer-lived than created instance.

~Condition  ) 
 

Destructor.


Member Function Documentation

void await Mutex lock  ) 
 

Await signaling of condition.

Parameters:
lock lock associated with condition, calling thread must own lock. Lock will be released while waiting and reacquired before returning from wait.
Exceptions:
InterruptedException if thread is interrupted.

log4cxx_status_t signalAll  ) 
 

Signal all waiting threads.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_condition-members.html100644 0 0 7376 10774263472 25632 0ustar 0 0 Apache log4cxx: Member List

Condition Member List

This is the complete list of members for Condition, including all inherited members.

await(Mutex &lock)Condition
Condition(log4cxx::helpers::Pool &p)Condition
signalAll()Condition
~Condition()Condition
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_cyclic_buffer.html100644 0 0 37615 10774263472 25032 0ustar 0 0 Apache log4cxx: CyclicBuffer Class Reference

CyclicBuffer Class Reference

List of all members.

Detailed Description

CyclicBuffer is used by other appenders to hold instances of LoggingEvent for immediate or deferred display.

This buffer gives read access to any element in the buffer not just the first or last element.


Public Member Functions

 CyclicBuffer (int maxSize)
 Instantiate a new CyclicBuffer of at most maxSize events.
 ~CyclicBuffer ()
void add (const spi::LoggingEventPtr &event)
 Add an event as the last event in the buffer.
spi::LoggingEventPtr get (int i)
 Get the ith oldest event currently in the buffer.
int getMaxSize () const
spi::LoggingEventPtr get ()
 Get the oldest (first) element in the buffer.
int length () const
 Get the number of elements in the buffer.
void resize (int newSize)
 Resize the cyclic buffer to newSize.


Constructor & Destructor Documentation

CyclicBuffer int  maxSize  ) 
 

Instantiate a new CyclicBuffer of at most maxSize events.

The maxSize argument must a positive integer.

Parameters:
maxSize The maximum number of elements in the buffer.
Exceptions:
IllegalArgumentException if maxSize is negative.

~CyclicBuffer  ) 
 


Member Function Documentation

void add const spi::LoggingEventPtr event  ) 
 

Add an event as the last event in the buffer.

spi::LoggingEventPtr get  ) 
 

Get the oldest (first) element in the buffer.

The oldest element is removed from the buffer.

spi::LoggingEventPtr get int  i  ) 
 

Get the ith oldest event currently in the buffer.

If i is outside the range 0 to the number of elements currently in the buffer, then null is returned.

int getMaxSize  )  const [inline]
 

int length  )  const [inline]
 

Get the number of elements in the buffer.

This number is guaranteed to be in the range 0 to maxSize (inclusive).

void resize int  newSize  ) 
 

Resize the cyclic buffer to newSize.

Exceptions:
IllegalArgumentException if newSize is negative.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_cyclic_buffer-members.html100644 0 0 11561 10774263472 26452 0ustar 0 0 Apache log4cxx: Member List

CyclicBuffer Member List

This is the complete list of members for CyclicBuffer, including all inherited members.

add(const spi::LoggingEventPtr &event)CyclicBuffer
CyclicBuffer(int maxSize)CyclicBuffer
get(int i)CyclicBuffer
get()CyclicBuffer
getMaxSize() const CyclicBuffer [inline]
length() const CyclicBuffer [inline]
resize(int newSize)CyclicBuffer
~CyclicBuffer()CyclicBuffer
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_datagram_packet.html100644 0 0 106327 10774263472 25357 0ustar 0 0 Apache log4cxx: DatagramPacket Class Reference

DatagramPacket Class Reference

Inherits ObjectImpl.

List of all members.


Detailed Description

This class represents a datagram packet.

Datagram packets are used to implement a connectionless packet delivery service. Each message is routed from one machine to another based solely on information contained within that packet. Multiple packets sent from one machine to another might be routed differently, and might arrive in any order.


Public Member Functions

 DatagramPacket (void *buf, int length)
 Constructs a DatagramPacket for receiving packets of length length.
 DatagramPacket (void *buf, int length, InetAddressPtr address, int port)
 Constructs a datagram packet for sending packets of length length to the specified port number on the specified host.
 DatagramPacket (void *buf, int offset, int length)
 Constructs a DatagramPacket for receiving packets of length length, specifying an offset into the buffer.
 DatagramPacket (void *buf, int offset, int length, InetAddressPtr address, int port)
 Constructs a datagram packet for sending packets of length length with offset offset to the specified port number on the specified host.
 ~DatagramPacket ()
InetAddressPtr getAddress () const
 Returns the IP address of the machine to which this datagram is being sent or from which the datagram was received.
void * getData () const
 Returns the data received or the data to be sent.
int getLength () const
 Returns the length of the data to be sent or the length of the data received.
int getOffset () const
 Returns the offset of the data to be sent or the offset of the data received.
int getPort () const
 Returns the port number on the remote host to which this datagram is being sent or from which the datagram was received.
void setAddress (InetAddressPtr address1)
void setData (void *buf1)
 Set the data buffer for this packet.
void setData (void *buf1, int offset1, int length1)
 Set the data buffer for this packet.
void setLength (int length1)
 Set the length for this packet.
void setPort (int port1)

Protected Attributes

void * buf
 the data for this packet.
int offset
 The offset of the data for this packet.
int length
 The length of the data for this packet.
InetAddressPtr address
 The IP address for this packet.
int port
 The UDP port number of the remote host.


Constructor & Destructor Documentation

DatagramPacket void *  buf,
int  length
 

Constructs a DatagramPacket for receiving packets of length length.

DatagramPacket void *  buf,
int  length,
InetAddressPtr  address,
int  port
 

Constructs a datagram packet for sending packets of length length to the specified port number on the specified host.

DatagramPacket void *  buf,
int  offset,
int  length
 

Constructs a DatagramPacket for receiving packets of length length, specifying an offset into the buffer.

DatagramPacket void *  buf,
int  offset,
int  length,
InetAddressPtr  address,
int  port
 

Constructs a datagram packet for sending packets of length length with offset offset to the specified port number on the specified host.

~DatagramPacket  ) 
 


Member Function Documentation

InetAddressPtr getAddress  )  const [inline]
 

Returns the IP address of the machine to which this datagram is being sent or from which the datagram was received.

void* getData  )  const [inline]
 

Returns the data received or the data to be sent.

int getLength  )  const [inline]
 

Returns the length of the data to be sent or the length of the data received.

int getOffset  )  const [inline]
 

Returns the offset of the data to be sent or the offset of the data received.

int getPort  )  const [inline]
 

Returns the port number on the remote host to which this datagram is being sent or from which the datagram was received.

void setAddress InetAddressPtr  address1  )  [inline]
 

void setData void *  buf1,
int  offset1,
int  length1
[inline]
 

Set the data buffer for this packet.

void setData void *  buf1  )  [inline]
 

Set the data buffer for this packet.

void setLength int  length1  )  [inline]
 

Set the length for this packet.

void setPort int  port1  )  [inline]
 


Member Data Documentation

InetAddressPtr address [protected]
 

The IP address for this packet.

void* buf [protected]
 

the data for this packet.

int length [protected]
 

The length of the data for this packet.

int offset [protected]
 

The offset of the data for this packet.

int port [protected]
 

The UDP port number of the remote host.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_datagram_packet-members.html100644 0 0 26641 10774263472 26767 0ustar 0 0 Apache log4cxx: Member List

DatagramPacket Member List

This is the complete list of members for DatagramPacket, including all inherited members.

addRef() const ObjectImpl [virtual]
addressDatagramPacket [protected]
bufDatagramPacket [protected]
cast(const Class &clazz) const =0Object [pure virtual]
DatagramPacket(void *buf, int length)DatagramPacket
DatagramPacket(void *buf, int length, InetAddressPtr address, int port)DatagramPacket
DatagramPacket(void *buf, int offset, int length)DatagramPacket
DatagramPacket(void *buf, int offset, int length, InetAddressPtr address, int port)DatagramPacket
getAddress() const DatagramPacket [inline]
getClass() const Object [virtual]
getData() const DatagramPacket [inline]
getLength() const DatagramPacket [inline]
getOffset() const DatagramPacket [inline]
getPort() const DatagramPacket [inline]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
lengthDatagramPacket [protected]
ObjectImpl()ObjectImpl
offsetDatagramPacket [protected]
portDatagramPacket [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
setAddress(InetAddressPtr address1)DatagramPacket [inline]
setData(void *buf1)DatagramPacket [inline]
setData(void *buf1, int offset1, int length1)DatagramPacket [inline]
setLength(int length1)DatagramPacket [inline]
setPort(int port1)DatagramPacket [inline]
~DatagramPacket()DatagramPacket
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_datagram_socket.html100644 0 0 66453 10774263472 25365 0ustar 0 0 Apache log4cxx: DatagramSocket Class Reference

DatagramSocket Class Reference

Inherits ObjectImpl.

List of all members.


Detailed Description

This class represents a socket for sending and receiving datagram packets.


Public Member Functions

 DatagramSocket ()
 Constructs a datagram socket and binds it to any available port on the local host machine.
 DatagramSocket (int port)
 Constructs a datagram socket and binds it to the specified port on the local host machine.
 DatagramSocket (int port, InetAddressPtr laddr)
 Creates a datagram socket, bound to the specified local address.
 ~DatagramSocket ()
 ensure the socket is closed.
void bind (int lport, InetAddressPtr laddress)
 Binds a datagram socket to a local port and address.
void create ()
 Creates a datagram socket.
void close ()
 Closes this datagram socket.
void connect (InetAddressPtr address, int port)
 Connects the socket to a remote address for this socket.
InetAddressPtr getInetAddress () const
 Returns the address to which this socket is connected.
InetAddressPtr getLocalAddress () const
 Gets the local address to which the socket is bound.
int getLocalPort () const
 Returns the port number on the local host to which this socket is bound.
int getPort () const
 Returns the port for this socket.
bool isBound () const
 Returns the binding state of the socket.
bool isClosed () const
 Returns wether the socket is closed or not.
bool isConnected () const
 Returns the connection state of the socket.
void receive (DatagramPacketPtr &p)
 Receives a datagram packet from this socket.
void send (DatagramPacketPtr &p)
 Sends a datagram packet from this socket.


Constructor & Destructor Documentation

DatagramSocket  ) 
 

Constructs a datagram socket and binds it to any available port on the local host machine.

DatagramSocket int  port  ) 
 

Constructs a datagram socket and binds it to the specified port on the local host machine.

DatagramSocket int  port,
InetAddressPtr  laddr
 

Creates a datagram socket, bound to the specified local address.

~DatagramSocket  ) 
 

ensure the socket is closed.


Member Function Documentation

void bind int  lport,
InetAddressPtr  laddress
 

Binds a datagram socket to a local port and address.

void close  ) 
 

Closes this datagram socket.

void connect InetAddressPtr  address,
int  port
 

Connects the socket to a remote address for this socket.

void create  ) 
 

Creates a datagram socket.

InetAddressPtr getInetAddress  )  const [inline]
 

Returns the address to which this socket is connected.

InetAddressPtr getLocalAddress  )  const [inline]
 

Gets the local address to which the socket is bound.

int getLocalPort  )  const [inline]
 

Returns the port number on the local host to which this socket is bound.

int getPort  )  const [inline]
 

Returns the port for this socket.

bool isBound  )  const [inline]
 

Returns the binding state of the socket.

bool isClosed  )  const [inline]
 

Returns wether the socket is closed or not.

bool isConnected  )  const [inline]
 

Returns the connection state of the socket.

void receive DatagramPacketPtr &  p  ) 
 

Receives a datagram packet from this socket.

void send DatagramPacketPtr &  p  ) 
 

Sends a datagram packet from this socket.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_datagram_socket-members.html100644 0 0 24606 10774263472 27007 0ustar 0 0 Apache log4cxx: Member List

DatagramSocket Member List

This is the complete list of members for DatagramSocket, including all inherited members.

addRef() const ObjectImpl [virtual]
bind(int lport, InetAddressPtr laddress)DatagramSocket
cast(const Class &clazz) const =0Object [pure virtual]
close()DatagramSocket
connect(InetAddressPtr address, int port)DatagramSocket
create()DatagramSocket
DatagramSocket()DatagramSocket
DatagramSocket(int port)DatagramSocket
DatagramSocket(int port, InetAddressPtr laddr)DatagramSocket
getClass() const Object [virtual]
getInetAddress() const DatagramSocket [inline]
getLocalAddress() const DatagramSocket [inline]
getLocalPort() const DatagramSocket [inline]
getPort() const DatagramSocket [inline]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
isBound() const DatagramSocket [inline]
isClosed() const DatagramSocket [inline]
isConnected() const DatagramSocket [inline]
ObjectImpl()ObjectImpl
receive(DatagramPacketPtr &p)DatagramSocket
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
send(DatagramPacketPtr &p)DatagramSocket
~DatagramSocket()DatagramSocket
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_date.html100644 0 0 27074 10774263472 23146 0ustar 0 0 Apache log4cxx: Date Class Reference

Date Class Reference

Inherits ObjectImpl.

List of all members.


Detailed Description

Simple transcoder for converting between external char and wchar_t strings and internal strings.


Public Member Functions

 Date ()
 Date (log4cxx_time_t time)
virtual ~Date ()
log4cxx_time_t getTime () const
log4cxx_time_t getNextSecond () const
 Get start of next second.

Static Public Member Functions

static log4cxx_time_t getMicrosecondsPerDay ()
static log4cxx_time_t getMicrosecondsPerSecond ()


Constructor & Destructor Documentation

Date  ) 
 

Date log4cxx_time_t  time  ) 
 

virtual ~Date  )  [virtual]
 


Member Function Documentation

static log4cxx_time_t getMicrosecondsPerDay  )  [static]
 

static log4cxx_time_t getMicrosecondsPerSecond  )  [static]
 

log4cxx_time_t getNextSecond  )  const
 

Get start of next second.

log4cxx_time_t getTime  )  const [inline]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_date-members.html100644 0 0 16560 10774263472 24574 0ustar 0 0 Apache log4cxx: Member List

Date Member List

This is the complete list of members for Date, including all inherited members.

addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
Date()Date
Date(log4cxx_time_t time)Date
getClass() const Object [virtual]
getMicrosecondsPerDay()Date [static]
getMicrosecondsPerSecond()Date [static]
getNextSecond() const Date
getStaticClass()Object [static]
getTime() const Date [inline]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
~Date()Date [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_date_format.html100644 0 0 35577 10774263472 24525 0ustar 0 0 Apache log4cxx: DateFormat Class Reference

DateFormat Class Reference

Inherits ObjectImpl.

Inherited by RelativeTimeDateFormat, SimpleDateFormat, StrftimeDateFormat, and CachedDateFormat.

List of all members.


Detailed Description

DateFormat is an abstract class for date/time formatting patterned after java.text.DateFormat.


Public Member Functions

virtual ~DateFormat ()
 Destructor.
virtual void format (LogString &s, log4cxx_time_t tm, log4cxx::helpers::Pool &p) const =0
 Formats an log4cxx_time_t into a date/time string.
virtual void setTimeZone (const TimeZonePtr &zone)
 Sets the time zone.
virtual void numberFormat (LogString &s, int n, log4cxx::helpers::Pool &p) const
 Format an integer consistent with the format method.

Protected Member Functions

 DateFormat ()
 Constructor.


Constructor & Destructor Documentation

virtual ~DateFormat  )  [virtual]
 

Destructor.

DateFormat  )  [protected]
 

Constructor.


Member Function Documentation

virtual void format LogString s,
log4cxx_time_t  tm,
log4cxx::helpers::Pool p
const [pure virtual]
 

Formats an log4cxx_time_t into a date/time string.

Parameters:
s string to which the date/time string is appended.
tm date to be formatted.
p memory pool used during formatting.

Implemented in CachedDateFormat, RelativeTimeDateFormat, SimpleDateFormat, and StrftimeDateFormat.

virtual void numberFormat LogString s,
int  n,
log4cxx::helpers::Pool p
const [virtual]
 

Format an integer consistent with the format method.

Parameters:
s string to which the numeric string is appended.
n integer value.
p memory pool used during formatting.
Remarks:
This method is used by CachedDateFormat to format the milliseconds.

Reimplemented in CachedDateFormat.

virtual void setTimeZone const TimeZonePtr &  zone  )  [virtual]
 

Sets the time zone.

Parameters:
zone the given new time zone.

Reimplemented in SimpleDateFormat, and StrftimeDateFormat.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_date_format-members.html100644 0 0 16266 10774263472 26147 0ustar 0 0 Apache log4cxx: Member List

DateFormat Member List

This is the complete list of members for DateFormat, including all inherited members.

addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
DateFormat()DateFormat [protected]
format(LogString &s, log4cxx_time_t tm, log4cxx::helpers::Pool &p) const =0DateFormat [pure virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
numberFormat(LogString &s, int n, log4cxx::helpers::Pool &p) const DateFormat [virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
setTimeZone(const TimeZonePtr &zone)DateFormat [virtual]
~DateFormat()DateFormat [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_date_layout.html100644 0 0 52752 10774263472 24544 0ustar 0 0 Apache log4cxx: DateLayout Class Reference

DateLayout Class Reference

Inherits Layout.

Inherited by TTCCLayout.

List of all members.


Detailed Description

This abstract layout takes care of all the date related options and formatting work.


Public Member Functions

 DateLayout (const LogString &dateLayoutOption)
virtual ~DateLayout ()
virtual void activateOptions (log4cxx::helpers::Pool &p)
 Activate the options that were previously set with calls to option setters.
virtual void setOption (const LogString &option, const LogString &value)
 Set option to value.
void setDateFormat (const LogString &dateFormat1)
 The value of the DateFormat option should be either an argument to the constructor of helpers::DateFormat or one of the strings "NULL", "RELATIVE", "ABSOLUTE", "DATE" or "ISO8601.
const LogStringgetDateFormat () const
 Returns value of the DateFormat option.
void setTimeZone (const LogString &timeZone)
 The TimeZoneID option is a time zone ID string in the format expected by the locale C++ standard class.
const LogStringgetTimeZone () const
 Returns value of the TimeZone option.
void formatDate (LogString &s, const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p) const

Protected Attributes

DateFormatPtr dateFormat


Constructor & Destructor Documentation

DateLayout const LogString dateLayoutOption  ) 
 

virtual ~DateLayout  )  [virtual]
 


Member Function Documentation

virtual void activateOptions log4cxx::helpers::Pool p  )  [virtual]
 

Activate the options that were previously set with calls to option setters.

This allows to defer activiation of the options until all options have been set. This is required for components which have related options that remain ambigous until all are set.

For example, the FileAppender has the File and Append options both of which are ambigous until the other is also set.

Implements OptionHandler.

void formatDate LogString s,
const spi::LoggingEventPtr event,
log4cxx::helpers::Pool p
const
 

const LogString& getDateFormat  )  const [inline]
 

Returns value of the DateFormat option.

const LogString& getTimeZone  )  const [inline]
 

Returns value of the TimeZone option.

void setDateFormat const LogString dateFormat1  )  [inline]
 

The value of the DateFormat option should be either an argument to the constructor of helpers::DateFormat or one of the strings "NULL", "RELATIVE", "ABSOLUTE", "DATE" or "ISO8601.

virtual void setOption const LogString option,
const LogString value
[virtual]
 

Set option to value.

The handling of each option depends on the OptionHandler instance. Some options may become active immediately whereas other may be activated only when activateOptions is called.

Implements OptionHandler.

void setTimeZone const LogString timeZone  )  [inline]
 

The TimeZoneID option is a time zone ID string in the format expected by the locale C++ standard class.


Member Data Documentation

DateFormatPtr dateFormat [protected]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_date_layout-members.html100644 0 0 24661 10774263472 26172 0ustar 0 0 Apache log4cxx: Member List

DateLayout Member List

This is the complete list of members for DateLayout, including all inherited members.

activateOptions(log4cxx::helpers::Pool &p)DateLayout [virtual]
addRef() const Layout [virtual]
appendFooter(LogString &output, log4cxx::helpers::Pool &p)Layout [virtual]
appendHeader(LogString &output, log4cxx::helpers::Pool &p)Layout [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
dateFormatDateLayout [protected]
DateLayout(const LogString &dateLayoutOption)DateLayout
format(LogString &output, const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool) const =0Layout [pure virtual]
formatDate(LogString &s, const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p) const DateLayout
getClass() const Object [virtual]
getContentType() const Layout [virtual]
getDateFormat() const DateLayout [inline]
getStaticClass()Object [static]
getTimeZone() const DateLayout [inline]
ignoresThrowable() const =0Layout [pure virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const Layout [virtual]
setDateFormat(const LogString &dateFormat1)DateLayout [inline]
setOption(const LogString &option, const LogString &value)DateLayout [virtual]
setTimeZone(const LogString &timeZone)DateLayout [inline]
~DateLayout()DateLayout [virtual]
~Layout()Layout [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_date_time_date_format.html100644 0 0 14262 10774263472 26524 0ustar 0 0 Apache log4cxx: DateTimeDateFormat Class Reference

DateTimeDateFormat Class Reference

Inherits SimpleDateFormat.

List of all members.


Detailed Description

Formats a date in the format dd MMM yyyy HH:mm:ss,SSS for example, "06 Nov 1994 15:49:37,459".


Public Member Functions

 DateTimeDateFormat ()
 DateTimeDateFormat (const std::locale *locale)


Constructor & Destructor Documentation

DateTimeDateFormat  )  [inline]
 

DateTimeDateFormat const std::locale *  locale  )  [inline]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_date_time_date_format-members.html100644 0 0 21402 10774263472 30146 0ustar 0 0 Apache log4cxx: Member List

DateTimeDateFormat Member List

This is the complete list of members for DateTimeDateFormat, including all inherited members.

addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
DateFormat()DateFormat [protected]
DateTimeDateFormat()DateTimeDateFormat [inline]
DateTimeDateFormat(const std::locale *locale)DateTimeDateFormat [inline]
format(LogString &s, log4cxx_time_t tm, log4cxx::helpers::Pool &p) const SimpleDateFormat [virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
numberFormat(LogString &s, int n, log4cxx::helpers::Pool &p) const DateFormat [virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
setTimeZone(const TimeZonePtr &zone)SimpleDateFormat [virtual]
SimpleDateFormat(const LogString &pattern)SimpleDateFormat
SimpleDateFormat(const LogString &pattern, const std::locale *locale)SimpleDateFormat
~DateFormat()DateFormat [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~SimpleDateFormat()SimpleDateFormat
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_exception.html100644 0 0 27005 10774263472 24221 0ustar 0 0 Apache log4cxx: Exception Class Reference

Exception Class Reference

Inherited by SQLException, ClassNotFoundException, IllegalMonitorStateException, IllegalStateException, InstantiationException, InterruptedException, IOException, MissingResourceException, MutexException, NoSuchElementException, PoolException, RuntimeException, ThreadException, TranscoderException, and UnknownHostException.

List of all members.


Detailed Description

The class Exception and its subclasses indicate conditions that a reasonable application might want to catch.


Public Member Functions

 Exception (const char *msg)
 Exception (const LogString &msg)
 Exception (const Exception &src)
Exceptionoperator= (const Exception &src)
const char * what () const throw ()


Constructor & Destructor Documentation

Exception const char *  msg  ) 
 

Exception const LogString msg  ) 
 

Exception const Exception src  ) 
 


Member Function Documentation

Exception& operator= const Exception src  ) 
 

const char* what  )  const throw ()
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_exception-members.html100644 0 0 10042 10774263472 25642 0ustar 0 0 Apache log4cxx: Member List

Exception Member List

This is the complete list of members for Exception, including all inherited members.

Exception(const char *msg)Exception
Exception(const LogString &msg)Exception
Exception(const Exception &src)Exception
operator=(const Exception &src)Exception
what() const Exception
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_runtime_exception.html100644 0 0 23364 10774263472 25770 0ustar 0 0 Apache log4cxx: RuntimeException Class Reference

RuntimeException Class Reference

Inherits Exception.

Inherited by DOMException, IllegalArgumentException, and NullPointerException.

List of all members.


Detailed Description

RuntimeException is the parent class of those exceptions that can be thrown during the normal operation of the process.


Public Member Functions

 RuntimeException (log4cxx_status_t stat)
 RuntimeException (const LogString &msg)
 RuntimeException (const RuntimeException &msg)
RuntimeExceptionoperator= (const RuntimeException &src)


Constructor & Destructor Documentation

RuntimeException log4cxx_status_t  stat  ) 
 

RuntimeException const LogString msg  ) 
 

RuntimeException const RuntimeException msg  ) 
 


Member Function Documentation

RuntimeException& operator= const RuntimeException src  ) 
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_runtime_exception-members.html100644 0 0 12401 10774263472 27406 0ustar 0 0 Apache log4cxx: Member List

RuntimeException Member List

This is the complete list of members for RuntimeException, including all inherited members.

Exception(const char *msg)Exception
Exception(const LogString &msg)Exception
Exception(const Exception &src)Exception
operator=(const RuntimeException &src)RuntimeException
log4cxx::helpers::Exception::operator=(const Exception &src)Exception
RuntimeException(log4cxx_status_t stat)RuntimeException
RuntimeException(const LogString &msg)RuntimeException
RuntimeException(const RuntimeException &msg)RuntimeException
what() const Exception
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_null_pointer_exception.html100644 0 0 20351 10774263472 27010 0ustar 0 0 Apache log4cxx: NullPointerException Class Reference

NullPointerException Class Reference

Inherits RuntimeException.

List of all members.


Detailed Description

Thrown when an application attempts to use null in a case where an object is required.


Public Member Functions

 NullPointerException (const LogString &msg)
 NullPointerException (const NullPointerException &msg)
NullPointerExceptionoperator= (const NullPointerException &src)


Constructor & Destructor Documentation

NullPointerException const LogString msg  ) 
 

NullPointerException const NullPointerException msg  ) 
 


Member Function Documentation

NullPointerException& operator= const NullPointerException src  ) 
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_null_pointer_exception-members.html100644 0 0 14361 10774263472 30444 0ustar 0 0 Apache log4cxx: Member List

NullPointerException Member List

This is the complete list of members for NullPointerException, including all inherited members.

Exception(const char *msg)Exception
Exception(const LogString &msg)Exception
Exception(const Exception &src)Exception
NullPointerException(const LogString &msg)NullPointerException
NullPointerException(const NullPointerException &msg)NullPointerException
operator=(const NullPointerException &src)NullPointerException
log4cxx::helpers::RuntimeException::operator=(const RuntimeException &src)RuntimeException
log4cxx::helpers::Exception::operator=(const Exception &src)Exception
RuntimeException(log4cxx_status_t stat)RuntimeException
RuntimeException(const LogString &msg)RuntimeException
RuntimeException(const RuntimeException &msg)RuntimeException
what() const Exception
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_illegal_argument_exception.html100644 0 0 20513 10774263472 27611 0ustar 0 0 Apache log4cxx: IllegalArgumentException Class Reference

IllegalArgumentException Class Reference

Inherits RuntimeException.

List of all members.


Detailed Description

Thrown to indicate that a method has been passed an illegal or inappropriate argument.


Public Member Functions

 IllegalArgumentException (const LogString &msg)
 IllegalArgumentException (const IllegalArgumentException &)
IllegalArgumentExceptionoperator= (const IllegalArgumentException &)


Constructor & Destructor Documentation

IllegalArgumentException const LogString msg  ) 
 

IllegalArgumentException const IllegalArgumentException  ) 
 


Member Function Documentation

IllegalArgumentException& operator= const IllegalArgumentException  ) 
 


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 147 10774264511 10264 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_illegal_argument_exception-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_illegal_argument_exception-members.ht100644 0 0 14453 10774263472 30716 0ustar 0 0 Apache log4cxx: Member List

IllegalArgumentException Member List

This is the complete list of members for IllegalArgumentException, including all inherited members.

Exception(const char *msg)Exception
Exception(const LogString &msg)Exception
Exception(const Exception &src)Exception
IllegalArgumentException(const LogString &msg)IllegalArgumentException
IllegalArgumentException(const IllegalArgumentException &)IllegalArgumentException
operator=(const IllegalArgumentException &)IllegalArgumentException
log4cxx::helpers::RuntimeException::operator=(const RuntimeException &src)RuntimeException
log4cxx::helpers::Exception::operator=(const Exception &src)Exception
RuntimeException(log4cxx_status_t stat)RuntimeException
RuntimeException(const LogString &msg)RuntimeException
RuntimeException(const RuntimeException &msg)RuntimeException
what() const Exception
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_i_o_exception.html100644 0 0 25005 10774263472 25045 0ustar 0 0 Apache log4cxx: IOException Class Reference

IOException Class Reference

Inherits Exception.

Inherited by InterruptedIOException, and SocketException.

List of all members.


Detailed Description

Signals that an I/O exception of some sort has occurred.

This class is the general class of exceptions produced by failed or interrupted I/O operations.


Public Member Functions

 IOException ()
 IOException (log4cxx_status_t stat)
 IOException (const LogString &msg)
 IOException (const IOException &src)
IOExceptionoperator= (const IOException &)


Constructor & Destructor Documentation

IOException  ) 
 

IOException log4cxx_status_t  stat  ) 
 

IOException const LogString msg  ) 
 

IOException const IOException src  ) 
 


Member Function Documentation

IOException& operator= const IOException  ) 
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_i_o_exception-members.html100644 0 0 12643 10774263472 26501 0ustar 0 0 Apache log4cxx: Member List

IOException Member List

This is the complete list of members for IOException, including all inherited members.

Exception(const char *msg)Exception
Exception(const LogString &msg)Exception
Exception(const Exception &src)Exception
IOException()IOException
IOException(log4cxx_status_t stat)IOException
IOException(const LogString &msg)IOException
IOException(const IOException &src)IOException
operator=(const IOException &)IOException
log4cxx::helpers::Exception::operator=(const Exception &src)Exception
what() const Exception
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_missing_resource_exception.html100644 0 0 20263 10774263472 27660 0ustar 0 0 Apache log4cxx: MissingResourceException Class Reference

MissingResourceException Class Reference

Inherits Exception.

List of all members.

Public Member Functions

 MissingResourceException (const LogString &key)
 MissingResourceException (const MissingResourceException &src)
MissingResourceExceptionoperator= (const MissingResourceException &)


Constructor & Destructor Documentation

MissingResourceException const LogString key  ) 
 

MissingResourceException const MissingResourceException src  ) 
 


Member Function Documentation

MissingResourceException& operator= const MissingResourceException  ) 
 


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 147 10774264511 10264 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_missing_resource_exception-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_missing_resource_exception-members.ht100644 0 0 12136 10774263472 30757 0ustar 0 0 Apache log4cxx: Member List

MissingResourceException Member List

This is the complete list of members for MissingResourceException, including all inherited members.

Exception(const char *msg)Exception
Exception(const LogString &msg)Exception
Exception(const Exception &src)Exception
MissingResourceException(const LogString &key)MissingResourceException
MissingResourceException(const MissingResourceException &src)MissingResourceException
operator=(const MissingResourceException &)MissingResourceException
log4cxx::helpers::Exception::operator=(const Exception &src)Exception
what() const Exception
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_pool_exception.html100644 0 0 17206 10774263472 25254 0ustar 0 0 Apache log4cxx: PoolException Class Reference

PoolException Class Reference

Inherits Exception.

List of all members.

Public Member Functions

 PoolException (log4cxx_status_t stat)
 PoolException (const PoolException &src)
PoolExceptionoperator= (const PoolException &)


Constructor & Destructor Documentation

PoolException log4cxx_status_t  stat  ) 
 

PoolException const PoolException src  ) 
 


Member Function Documentation

PoolException& operator= const PoolException  ) 
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_pool_exception-members.html100644 0 0 11644 10774263472 26704 0ustar 0 0 Apache log4cxx: Member List

PoolException Member List

This is the complete list of members for PoolException, including all inherited members.

Exception(const char *msg)Exception
Exception(const LogString &msg)Exception
Exception(const Exception &src)Exception
operator=(const PoolException &)PoolException
log4cxx::helpers::Exception::operator=(const Exception &src)Exception
PoolException(log4cxx_status_t stat)PoolException
PoolException(const PoolException &src)PoolException
what() const Exception
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_mutex_exception.html100644 0 0 17250 10774263472 25444 0ustar 0 0 Apache log4cxx: MutexException Class Reference

MutexException Class Reference

Inherits Exception.

List of all members.

Public Member Functions

 MutexException (log4cxx_status_t stat)
 MutexException (const MutexException &src)
MutexExceptionoperator= (const MutexException &)


Constructor & Destructor Documentation

MutexException log4cxx_status_t  stat  ) 
 

MutexException const MutexException src  ) 
 


Member Function Documentation

MutexException& operator= const MutexException  ) 
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_mutex_exception-members.html100644 0 0 11664 10774263472 27077 0ustar 0 0 Apache log4cxx: Member List

MutexException Member List

This is the complete list of members for MutexException, including all inherited members.

Exception(const char *msg)Exception
Exception(const LogString &msg)Exception
Exception(const Exception &src)Exception
MutexException(log4cxx_status_t stat)MutexException
MutexException(const MutexException &src)MutexException
operator=(const MutexException &)MutexException
log4cxx::helpers::Exception::operator=(const Exception &src)Exception
what() const Exception
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_interrupted_exception.html100644 0 0 22021 10774263472 26637 0ustar 0 0 Apache log4cxx: InterruptedException Class Reference

InterruptedException Class Reference

Inherits Exception.

List of all members.

Public Member Functions

 InterruptedException ()
 InterruptedException (log4cxx_status_t stat)
 InterruptedException (const InterruptedException &src)
InterruptedExceptionoperator= (const InterruptedException &)


Constructor & Destructor Documentation

InterruptedException  ) 
 

InterruptedException log4cxx_status_t  stat  ) 
 

InterruptedException const InterruptedException src  ) 
 


Member Function Documentation

InterruptedException& operator= const InterruptedException  ) 
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_interrupted_exception-members.html100644 0 0 12466 10774263472 30303 0ustar 0 0 Apache log4cxx: Member List

InterruptedException Member List

This is the complete list of members for InterruptedException, including all inherited members.

Exception(const char *msg)Exception
Exception(const LogString &msg)Exception
Exception(const Exception &src)Exception
InterruptedException()InterruptedException
InterruptedException(log4cxx_status_t stat)InterruptedException
InterruptedException(const InterruptedException &src)InterruptedException
operator=(const InterruptedException &)InterruptedException
log4cxx::helpers::Exception::operator=(const Exception &src)Exception
what() const Exception
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_thread_exception.html100644 0 0 22164 10774263472 25551 0ustar 0 0 Apache log4cxx: ThreadException Class Reference

ThreadException Class Reference

Inherits Exception.

List of all members.

Public Member Functions

 ThreadException (log4cxx_status_t stat)
 ThreadException (const LogString &msg)
 ThreadException (const ThreadException &src)
ThreadExceptionoperator= (const ThreadException &)


Constructor & Destructor Documentation

ThreadException log4cxx_status_t  stat  ) 
 

ThreadException const LogString msg  ) 
 

ThreadException const ThreadException src  ) 
 


Member Function Documentation

ThreadException& operator= const ThreadException  ) 
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_thread_exception-members.html100644 0 0 12352 10774263472 27177 0ustar 0 0 Apache log4cxx: Member List

ThreadException Member List

This is the complete list of members for ThreadException, including all inherited members.

Exception(const char *msg)Exception
Exception(const LogString &msg)Exception
Exception(const Exception &src)Exception
operator=(const ThreadException &)ThreadException
log4cxx::helpers::Exception::operator=(const Exception &src)Exception
ThreadException(log4cxx_status_t stat)ThreadException
ThreadException(const LogString &msg)ThreadException
ThreadException(const ThreadException &src)ThreadException
what() const Exception
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_transcoder_exception.html100644 0 0 17522 10774263472 26450 0ustar 0 0 Apache log4cxx: TranscoderException Class Reference

TranscoderException Class Reference

Inherits Exception.

List of all members.

Public Member Functions

 TranscoderException (log4cxx_status_t stat)
 TranscoderException (const TranscoderException &src)
TranscoderExceptionoperator= (const TranscoderException &)


Constructor & Destructor Documentation

TranscoderException log4cxx_status_t  stat  ) 
 

TranscoderException const TranscoderException src  ) 
 


Member Function Documentation

TranscoderException& operator= const TranscoderException  ) 
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_transcoder_exception-members.html100644 0 0 12004 10774263472 30066 0ustar 0 0 Apache log4cxx: Member List

TranscoderException Member List

This is the complete list of members for TranscoderException, including all inherited members.

Exception(const char *msg)Exception
Exception(const LogString &msg)Exception
Exception(const Exception &src)Exception
operator=(const TranscoderException &)TranscoderException
log4cxx::helpers::Exception::operator=(const Exception &src)Exception
TranscoderException(log4cxx_status_t stat)TranscoderException
TranscoderException(const TranscoderException &src)TranscoderException
what() const Exception
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_illegal_monitor_state_exception.html100644 0 0 20533 10774263472 30660 0ustar 0 0 Apache log4cxx: IllegalMonitorStateException Class Reference

IllegalMonitorStateException Class Reference

Inherits Exception.

List of all members.

Public Member Functions

 IllegalMonitorStateException (const LogString &msg)
 IllegalMonitorStateException (const IllegalMonitorStateException &msg)
IllegalMonitorStateExceptionoperator= (const IllegalMonitorStateException &msg)


Constructor & Destructor Documentation

IllegalMonitorStateException const LogString msg  ) 
 

IllegalMonitorStateException const IllegalMonitorStateException msg  ) 
 


Member Function Documentation

IllegalMonitorStateException& operator= const IllegalMonitorStateException msg  ) 
 


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 154 10774264511 10262 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_illegal_monitor_state_exception-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_illegal_monitor_state_exception-membe100644 0 0 12250 10774263472 30775 0ustar 0 0 Apache log4cxx: Member List

IllegalMonitorStateException Member List

This is the complete list of members for IllegalMonitorStateException, including all inherited members.

Exception(const char *msg)Exception
Exception(const LogString &msg)Exception
Exception(const Exception &src)Exception
IllegalMonitorStateException(const LogString &msg)IllegalMonitorStateException
IllegalMonitorStateException(const IllegalMonitorStateException &msg)IllegalMonitorStateException
operator=(const IllegalMonitorStateException &msg)IllegalMonitorStateException
log4cxx::helpers::Exception::operator=(const Exception &src)Exception
what() const Exception
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_instantiation_exception.html100644 0 0 20714 10774263472 27165 0ustar 0 0 Apache log4cxx: InstantiationException Class Reference

InstantiationException Class Reference

Inherits Exception.

List of all members.


Detailed Description

Thrown when an application tries to create an instance of a class using the newInstance method in class Class, but the specified class object cannot be instantiated because it is an interface or is an abstract class.


Public Member Functions

 InstantiationException (const LogString &msg)
 InstantiationException (const InstantiationException &msg)
InstantiationExceptionoperator= (const InstantiationException &msg)


Constructor & Destructor Documentation

InstantiationException const LogString msg  ) 
 

InstantiationException const InstantiationException msg  ) 
 


Member Function Documentation

InstantiationException& operator= const InstantiationException msg  ) 
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_instantiation_exception-members.html100644 0 0 12072 10774263472 30613 0ustar 0 0 Apache log4cxx: Member List

InstantiationException Member List

This is the complete list of members for InstantiationException, including all inherited members.

Exception(const char *msg)Exception
Exception(const LogString &msg)Exception
Exception(const Exception &src)Exception
InstantiationException(const LogString &msg)InstantiationException
InstantiationException(const InstantiationException &msg)InstantiationException
operator=(const InstantiationException &msg)InstantiationException
log4cxx::helpers::Exception::operator=(const Exception &src)Exception
what() const Exception
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_class_not_found_exception.html100644 0 0 20563 10774263472 27463 0ustar 0 0 Apache log4cxx: ClassNotFoundException Class Reference

ClassNotFoundException Class Reference

Inherits Exception.

List of all members.


Detailed Description

Thrown when an application tries to load in a class through its string name but no definition for the class with the specified name could be found.


Public Member Functions

 ClassNotFoundException (const LogString &className)
 ClassNotFoundException (const ClassNotFoundException &msg)
ClassNotFoundExceptionoperator= (const ClassNotFoundException &msg)


Constructor & Destructor Documentation

ClassNotFoundException const LogString className  ) 
 

ClassNotFoundException const ClassNotFoundException msg  ) 
 


Member Function Documentation

ClassNotFoundException& operator= const ClassNotFoundException msg  ) 
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_bind_exception.html100644 0 0 17602 10774263472 25217 0ustar 0 0 Apache log4cxx: BindException Class Reference

BindException Class Reference

Inherits SocketException.

List of all members.


Detailed Description

Signals that an error occurred while attempting to bind a socket to a local address and port.

Typically, the port is in use, or the requested local address could not be assigned.


Public Member Functions

 BindException (log4cxx_status_t status)
 BindException (const BindException &)
BindExceptionoperator= (const BindException &)


Constructor & Destructor Documentation

BindException log4cxx_status_t  status  ) 
 

BindException const BindException  ) 
 


Member Function Documentation

BindException& operator= const BindException  ) 
 


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 146 10774264511 10263 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_class_not_found_exception-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_class_not_found_exception-members.htm100644 0 0 12116 10774263472 30732 0ustar 0 0 Apache log4cxx: Member List

ClassNotFoundException Member List

This is the complete list of members for ClassNotFoundException, including all inherited members.

ClassNotFoundException(const LogString &className)ClassNotFoundException
ClassNotFoundException(const ClassNotFoundException &msg)ClassNotFoundException
Exception(const char *msg)Exception
Exception(const LogString &msg)Exception
Exception(const Exception &src)Exception
operator=(const ClassNotFoundException &msg)ClassNotFoundException
log4cxx::helpers::Exception::operator=(const Exception &src)Exception
what() const Exception
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_no_such_element_exception.html100644 0 0 17476 10774263472 27463 0ustar 0 0 Apache log4cxx: NoSuchElementException Class Reference

NoSuchElementException Class Reference

Inherits Exception.

List of all members.

Public Member Functions

 NoSuchElementException ()
 NoSuchElementException (const NoSuchElementException &)
NoSuchElementExceptionoperator= (const NoSuchElementException &)


Constructor & Destructor Documentation

NoSuchElementException  ) 
 

NoSuchElementException const NoSuchElementException  ) 
 


Member Function Documentation

NoSuchElementException& operator= const NoSuchElementException  ) 
 


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 146 10774264511 10263 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_no_such_element_exception-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_no_such_element_exception-members.htm100644 0 0 12052 10774263472 30720 0ustar 0 0 Apache log4cxx: Member List

NoSuchElementException Member List

This is the complete list of members for NoSuchElementException, including all inherited members.

Exception(const char *msg)Exception
Exception(const LogString &msg)Exception
Exception(const Exception &src)Exception
NoSuchElementException()NoSuchElementException
NoSuchElementException(const NoSuchElementException &)NoSuchElementException
operator=(const NoSuchElementException &)NoSuchElementException
log4cxx::helpers::Exception::operator=(const Exception &src)Exception
what() const Exception
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_illegal_state_exception.html100644 0 0 17417 10774263472 27120 0ustar 0 0 Apache log4cxx: IllegalStateException Class Reference

IllegalStateException Class Reference

Inherits Exception.

List of all members.

Public Member Functions

 IllegalStateException ()
 IllegalStateException (const IllegalStateException &)
IllegalStateExceptionoperator= (const IllegalStateException &)


Constructor & Destructor Documentation

IllegalStateException  ) 
 

IllegalStateException const IllegalStateException  ) 
 


Member Function Documentation

IllegalStateException& operator= const IllegalStateException  ) 
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_illegal_state_exception-members.html100644 0 0 12023 10774263472 30534 0ustar 0 0 Apache log4cxx: Member List

IllegalStateException Member List

This is the complete list of members for IllegalStateException, including all inherited members.

Exception(const char *msg)Exception
Exception(const LogString &msg)Exception
Exception(const Exception &src)Exception
IllegalStateException()IllegalStateException
IllegalStateException(const IllegalStateException &)IllegalStateException
operator=(const IllegalStateException &)IllegalStateException
log4cxx::helpers::Exception::operator=(const Exception &src)Exception
what() const Exception
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_socket_exception.html100644 0 0 23076 10774263472 25575 0ustar 0 0 Apache log4cxx: SocketException Class Reference

SocketException Class Reference

Inherits IOException.

Inherited by BindException, ClosedChannelException, and ConnectException.

List of all members.


Detailed Description

Thrown to indicate that there is an error in the underlying protocol, such as a TCP error.


Public Member Functions

 SocketException (const LogString &msg)
 SocketException (log4cxx_status_t status)
 SocketException (const SocketException &)
SocketExceptionoperator= (const SocketException &)


Constructor & Destructor Documentation

SocketException const LogString msg  ) 
 

SocketException log4cxx_status_t  status  ) 
 

SocketException const SocketException  ) 
 


Member Function Documentation

SocketException& operator= const SocketException  ) 
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_socket_exception-members.html100644 0 0 15144 10774263472 27222 0ustar 0 0 Apache log4cxx: Member List

SocketException Member List

This is the complete list of members for SocketException, including all inherited members.

Exception(const char *msg)Exception
Exception(const LogString &msg)Exception
Exception(const Exception &src)Exception
IOException()IOException
IOException(log4cxx_status_t stat)IOException
IOException(const LogString &msg)IOException
IOException(const IOException &src)IOException
operator=(const SocketException &)SocketException
log4cxx::helpers::IOException::operator=(const IOException &)IOException
log4cxx::helpers::Exception::operator=(const Exception &src)Exception
SocketException(const LogString &msg)SocketException
SocketException(log4cxx_status_t status)SocketException
SocketException(const SocketException &)SocketException
what() const Exception
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_connect_exception.html100644 0 0 20025 10774263472 25725 0ustar 0 0 Apache log4cxx: ConnectException Class Reference

ConnectException Class Reference

Inherits SocketException.

List of all members.


Detailed Description

Signals that an error occurred while attempting to connect a socket to a remote address and port.

Typically, the connection was refused remotely (e.g., no process is listening on the remote address/port).


Public Member Functions

 ConnectException (log4cxx_status_t status)
 ConnectException (const ConnectException &src)
ConnectExceptionoperator= (const ConnectException &)


Constructor & Destructor Documentation

ConnectException log4cxx_status_t  status  ) 
 

ConnectException const ConnectException src  ) 
 


Member Function Documentation

ConnectException& operator= const ConnectException  ) 
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_connect_exception-members.html100644 0 0 17013 10774263472 27360 0ustar 0 0 Apache log4cxx: Member List

ConnectException Member List

This is the complete list of members for ConnectException, including all inherited members.

ConnectException(log4cxx_status_t status)ConnectException
ConnectException(const ConnectException &src)ConnectException
Exception(const char *msg)Exception
Exception(const LogString &msg)Exception
Exception(const Exception &src)Exception
IOException()IOException
IOException(log4cxx_status_t stat)IOException
IOException(const LogString &msg)IOException
IOException(const IOException &src)IOException
operator=(const ConnectException &)ConnectException
log4cxx::helpers::SocketException::operator=(const SocketException &)SocketException
log4cxx::helpers::IOException::operator=(const IOException &)IOException
log4cxx::helpers::Exception::operator=(const Exception &src)Exception
SocketException(const LogString &msg)SocketException
SocketException(log4cxx_status_t status)SocketException
SocketException(const SocketException &)SocketException
what() const Exception
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_closed_channel_exception.html100644 0 0 17527 10774263472 27252 0ustar 0 0 Apache log4cxx: ClosedChannelException Class Reference

ClosedChannelException Class Reference

Inherits SocketException.

List of all members.

Public Member Functions

 ClosedChannelException ()
 ClosedChannelException (const ClosedChannelException &src)
ClosedChannelExceptionoperator= (const ClosedChannelException &)


Constructor & Destructor Documentation

ClosedChannelException  ) 
 

ClosedChannelException const ClosedChannelException src  ) 
 


Member Function Documentation

ClosedChannelException& operator= const ClosedChannelException  ) 
 


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 145 10774264511 10262 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_closed_channel_exception-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_closed_channel_exception-members.html100644 0 0 17133 10774263472 30673 0ustar 0 0 Apache log4cxx: Member List

ClosedChannelException Member List

This is the complete list of members for ClosedChannelException, including all inherited members.

ClosedChannelException()ClosedChannelException
ClosedChannelException(const ClosedChannelException &src)ClosedChannelException
Exception(const char *msg)Exception
Exception(const LogString &msg)Exception
Exception(const Exception &src)Exception
IOException()IOException
IOException(log4cxx_status_t stat)IOException
IOException(const LogString &msg)IOException
IOException(const IOException &src)IOException
operator=(const ClosedChannelException &)ClosedChannelException
log4cxx::helpers::SocketException::operator=(const SocketException &)SocketException
log4cxx::helpers::IOException::operator=(const IOException &)IOException
log4cxx::helpers::Exception::operator=(const Exception &src)Exception
SocketException(const LogString &msg)SocketException
SocketException(log4cxx_status_t status)SocketException
SocketException(const SocketException &)SocketException
what() const Exception
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_bind_exception-members.html100644 0 0 16730 10774263472 26650 0ustar 0 0 Apache log4cxx: Member List

BindException Member List

This is the complete list of members for BindException, including all inherited members.

BindException(log4cxx_status_t status)BindException
BindException(const BindException &)BindException
Exception(const char *msg)Exception
Exception(const LogString &msg)Exception
Exception(const Exception &src)Exception
IOException()IOException
IOException(log4cxx_status_t stat)IOException
IOException(const LogString &msg)IOException
IOException(const IOException &src)IOException
operator=(const BindException &)BindException
log4cxx::helpers::SocketException::operator=(const SocketException &)SocketException
log4cxx::helpers::IOException::operator=(const IOException &)IOException
log4cxx::helpers::Exception::operator=(const Exception &src)Exception
SocketException(const LogString &msg)SocketException
SocketException(log4cxx_status_t status)SocketException
SocketException(const SocketException &)SocketException
what() const Exception
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_interrupted_i_o_exception.html100644 0 0 21303 10774263472 27467 0ustar 0 0 Apache log4cxx: InterruptedIOException Class Reference

InterruptedIOException Class Reference

Inherits IOException.

Inherited by SocketTimeoutException.

List of all members.


Detailed Description

Signals that an I/O operation has been interrupted.

An InterruptedIOException is thrown to indicate that an input or output transfer has been terminated because the thread performing it was interrupted. The field bytesTransferred indicates how many bytes were successfully transferred before the interruption occurred.


Public Member Functions

 InterruptedIOException (const LogString &msg)
 InterruptedIOException (const InterruptedIOException &)
InterruptedIOExceptionoperator= (const InterruptedIOException &)


Constructor & Destructor Documentation

InterruptedIOException const LogString msg  ) 
 

InterruptedIOException const InterruptedIOException  ) 
 


Member Function Documentation

InterruptedIOException& operator= const InterruptedIOException  ) 
 


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 146 10774264511 10263 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_interrupted_i_o_exception-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_interrupted_i_o_exception-members.htm100644 0 0 14675 10774263472 30761 0ustar 0 0 Apache log4cxx: Member List

InterruptedIOException Member List

This is the complete list of members for InterruptedIOException, including all inherited members.

Exception(const char *msg)Exception
Exception(const LogString &msg)Exception
Exception(const Exception &src)Exception
InterruptedIOException(const LogString &msg)InterruptedIOException
InterruptedIOException(const InterruptedIOException &)InterruptedIOException
IOException()IOException
IOException(log4cxx_status_t stat)IOException
IOException(const LogString &msg)IOException
IOException(const IOException &src)IOException
operator=(const InterruptedIOException &)InterruptedIOException
log4cxx::helpers::IOException::operator=(const IOException &)IOException
log4cxx::helpers::Exception::operator=(const Exception &src)Exception
what() const Exception
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_socket_timeout_exception.html100644 0 0 20461 10774263472 27336 0ustar 0 0 Apache log4cxx: SocketTimeoutException Class Reference

SocketTimeoutException Class Reference

Inherits InterruptedIOException.

List of all members.


Detailed Description

Signals that an I/O operation has been interrupted.

An InterruptedIOException is thrown to indicate that an input or output transfer has been terminated because the thread performing it was interrupted. The field bytesTransferred indicates how many bytes were successfully transferred before the interruption occurred.


Public Member Functions

 SocketTimeoutException ()
 SocketTimeoutException (const SocketTimeoutException &)
SocketTimeoutExceptionoperator= (const SocketTimeoutException &)


Constructor & Destructor Documentation

SocketTimeoutException  ) 
 

SocketTimeoutException const SocketTimeoutException  ) 
 


Member Function Documentation

SocketTimeoutException& operator= const SocketTimeoutException  ) 
 


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 145 10774264511 10262 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_socket_timeout_exception-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_socket_timeout_exception-members.html100644 0 0 16641 10774263472 30773 0ustar 0 0 Apache log4cxx: Member List

SocketTimeoutException Member List

This is the complete list of members for SocketTimeoutException, including all inherited members.

Exception(const char *msg)Exception
Exception(const LogString &msg)Exception
Exception(const Exception &src)Exception
InterruptedIOException(const LogString &msg)InterruptedIOException
InterruptedIOException(const InterruptedIOException &)InterruptedIOException
IOException()IOException
IOException(log4cxx_status_t stat)IOException
IOException(const LogString &msg)IOException
IOException(const IOException &src)IOException
operator=(const SocketTimeoutException &)SocketTimeoutException
log4cxx::helpers::InterruptedIOException::operator=(const InterruptedIOException &)InterruptedIOException
log4cxx::helpers::IOException::operator=(const IOException &)IOException
log4cxx::helpers::Exception::operator=(const Exception &src)Exception
SocketTimeoutException()SocketTimeoutException
SocketTimeoutException(const SocketTimeoutException &)SocketTimeoutException
what() const Exception
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_file_input_stream.html100644 0 0 34207 10774263472 25736 0ustar 0 0 Apache log4cxx: FileInputStream Class Reference

FileInputStream Class Reference

Inherits InputStream.

List of all members.


Detailed Description

InputStream implemented on top of APR file IO.


Public Member Functions

 FileInputStream (const LogString &filename)
 Creates a FileInputStream by opening a connection to an actual file, the file named by the path name name in the file system.
 FileInputStream (const logchar *filename)
 FileInputStream (const File &aFile)
 Creates a FileInputStream by opening a connection to an actual file, the file named by the File object file in the file system.
virtual ~FileInputStream ()
virtual void close ()
 Closes this file input stream and releases any system resources associated with the stream.
virtual int read (ByteBuffer &buf)
 Reads a sequence of bytes into the given buffer.


Constructor & Destructor Documentation

FileInputStream const LogString filename  ) 
 

Creates a FileInputStream by opening a connection to an actual file, the file named by the path name name in the file system.

Parameters:
filename The system-dependent file name.

FileInputStream const logchar *  filename  ) 
 

FileInputStream const File aFile  ) 
 

Creates a FileInputStream by opening a connection to an actual file, the file named by the File object file in the file system.

Parameters:
aFile The file to be opened for reading.

virtual ~FileInputStream  )  [virtual]
 


Member Function Documentation

virtual void close  )  [virtual]
 

Closes this file input stream and releases any system resources associated with the stream.

Implements InputStream.

virtual int read ByteBuffer buf  )  [virtual]
 

Reads a sequence of bytes into the given buffer.

Parameters:
buf The buffer into which bytes are to be transferred.
Returns:
the total number of bytes read into the buffer, or -1 if there is no more data because the end of the stream has been reached.

Implements InputStream.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_file_input_stream-members.html100644 0 0 17754 10774263472 27376 0ustar 0 0 Apache log4cxx: Member List

FileInputStream Member List

This is the complete list of members for FileInputStream, including all inherited members.

addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
close()FileInputStream [virtual]
FileInputStream(const LogString &filename)FileInputStream
FileInputStream(const logchar *filename)FileInputStream
FileInputStream(const File &aFile)FileInputStream
getClass() const Object [virtual]
getStaticClass()Object [static]
InputStream()InputStream [protected]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
read(ByteBuffer &buf)FileInputStream [virtual]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
~FileInputStream()FileInputStream [virtual]
~InputStream()InputStream [protected, virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_file_output_stream.html100644 0 0 31576 10774263472 26145 0ustar 0 0 Apache log4cxx: FileOutputStream Class Reference

FileOutputStream Class Reference

Inherits OutputStream.

List of all members.


Detailed Description

OutputStream implemented on top of APR file IO.


Public Member Functions

 FileOutputStream (const LogString &filename, bool append=false)
 FileOutputStream (const logchar *filename, bool append=false)
virtual ~FileOutputStream ()
virtual void close (Pool &p)
virtual void flush (Pool &p)
virtual void write (ByteBuffer &buf, Pool &p)


Constructor & Destructor Documentation

FileOutputStream const LogString filename,
bool  append = false
 

FileOutputStream const logchar *  filename,
bool  append = false
 

virtual ~FileOutputStream  )  [virtual]
 


Member Function Documentation

virtual void close Pool p  )  [virtual]
 

Implements OutputStream.

virtual void flush Pool p  )  [virtual]
 

Implements OutputStream.

virtual void write ByteBuffer buf,
Pool p
[virtual]
 

Implements OutputStream.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_file_output_stream-members.html100644 0 0 20116 10774263472 27561 0ustar 0 0 Apache log4cxx: Member List

FileOutputStream Member List

This is the complete list of members for FileOutputStream, including all inherited members.

addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
close(Pool &p)FileOutputStream [virtual]
FileOutputStream(const LogString &filename, bool append=false)FileOutputStream
FileOutputStream(const logchar *filename, bool append=false)FileOutputStream
flush(Pool &p)FileOutputStream [virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
OutputStream()OutputStream [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
write(ByteBuffer &buf, Pool &p)FileOutputStream [virtual]
~FileOutputStream()FileOutputStream [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OutputStream()OutputStream [protected, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_file_watchdog.html100644 0 0 43126 10774263472 25024 0ustar 0 0 Apache log4cxx: FileWatchdog Class Reference

FileWatchdog Class Reference

List of all members.

Detailed Description

Check every now and then that a certain file has not changed.

If it has, then call the doOnChange method.


Public Member Functions

virtual ~FileWatchdog ()
void setDelay (long delay1)
 Set the delay to observe between each check of the file changes.
void start ()

Static Public Attributes

static long DEFAULT_DELAY
 The default delay between every file modification check, set to 60 seconds.

Protected Member Functions

 FileWatchdog (const File &filename)
virtual void doOnChange ()=0
void checkAndConfigure ()

Protected Attributes

File file
 The name of the file to observe for changes.
long delay
 The delay to observe between every check.
log4cxx_time_t lastModif
bool warnedAlready
volatile unsigned int interrupted


Constructor & Destructor Documentation

virtual ~FileWatchdog  )  [virtual]
 

FileWatchdog const File filename  )  [protected]
 


Member Function Documentation

void checkAndConfigure  )  [protected]
 

virtual void doOnChange  )  [protected, pure virtual]
 

void setDelay long  delay1  )  [inline]
 

Set the delay to observe between each check of the file changes.

void start  ) 
 


Member Data Documentation

long DEFAULT_DELAY [static]
 

The default delay between every file modification check, set to 60 seconds.

long delay [protected]
 

The delay to observe between every check.

By default set DEFAULT_DELAY.

File file [protected]
 

The name of the file to observe for changes.

volatile unsigned int interrupted [protected]
 

log4cxx_time_t lastModif [protected]
 

bool warnedAlready [protected]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_file_watchdog-members.html100644 0 0 14101 10774263472 26443 0ustar 0 0 Apache log4cxx: Member List

FileWatchdog Member List

This is the complete list of members for FileWatchdog, including all inherited members.

checkAndConfigure()FileWatchdog [protected]
DEFAULT_DELAYFileWatchdog [static]
delayFileWatchdog [protected]
doOnChange()=0FileWatchdog [protected, pure virtual]
fileFileWatchdog [protected]
FileWatchdog(const File &filename)FileWatchdog [protected]
interruptedFileWatchdog [protected]
lastModifFileWatchdog [protected]
setDelay(long delay1)FileWatchdog [inline]
start()FileWatchdog
warnedAlreadyFileWatchdog [protected]
~FileWatchdog()FileWatchdog [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_unknown_host_exception.html100644 0 0 20102 10774263472 27024 0ustar 0 0 Apache log4cxx: UnknownHostException Class Reference

UnknownHostException Class Reference

Inherits Exception.

List of all members.

Public Member Functions

 UnknownHostException (const LogString &msg)
 UnknownHostException (const UnknownHostException &src)
UnknownHostExceptionoperator= (const UnknownHostException &src)


Constructor & Destructor Documentation

UnknownHostException const LogString msg  ) 
 

UnknownHostException const UnknownHostException src  ) 
 


Member Function Documentation

UnknownHostException& operator= const UnknownHostException src  ) 
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_unknown_host_exception-members.html100644 0 0 12041 10774263472 30457 0ustar 0 0 Apache log4cxx: Member List

UnknownHostException Member List

This is the complete list of members for UnknownHostException, including all inherited members.

Exception(const char *msg)Exception
Exception(const LogString &msg)Exception
Exception(const Exception &src)Exception
operator=(const UnknownHostException &src)UnknownHostException
log4cxx::helpers::Exception::operator=(const Exception &src)Exception
UnknownHostException(const LogString &msg)UnknownHostException
UnknownHostException(const UnknownHostException &src)UnknownHostException
what() const Exception
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_inet_address.html100644 0 0 37613 10774263472 24675 0ustar 0 0 Apache log4cxx: InetAddress Class Reference

InetAddress Class Reference

Inherits ObjectImpl.

List of all members.

Public Member Functions

 InetAddress (const LogString &hostName, const LogString &hostAddr)
LogString getHostAddress () const
 Returns the IP address string "%d.%d.%d.%d".
LogString getHostName () const
 Gets the host name for this IP address.
LogString toString () const
 Converts this IP address to a String.

Static Public Member Functions

static InetAddressList getAllByName (const LogString &host)
 Determines all the IP addresses of a host, given the host's name.
static InetAddressPtr getByName (const LogString &host)
 Determines the IP address of a host, given the host's name.
static InetAddressPtr getLocalHost ()
 Returns the local host.
static InetAddressPtr anyAddress ()
 Returns an InetAddress which can be used as any address, for example when listening on a port from any remote addresss.


Constructor & Destructor Documentation

InetAddress const LogString hostName,
const LogString hostAddr
 


Member Function Documentation

static InetAddressPtr anyAddress  )  [static]
 

Returns an InetAddress which can be used as any address, for example when listening on a port from any remote addresss.

static InetAddressList getAllByName const LogString host  )  [static]
 

Determines all the IP addresses of a host, given the host's name.

static InetAddressPtr getByName const LogString host  )  [static]
 

Determines the IP address of a host, given the host's name.

LogString getHostAddress  )  const
 

Returns the IP address string "%d.%d.%d.%d".

LogString getHostName  )  const
 

Gets the host name for this IP address.

static InetAddressPtr getLocalHost  )  [static]
 

Returns the local host.

LogString toString  )  const
 

Converts this IP address to a String.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_inet_address-members.html100644 0 0 17604 10774263472 26323 0ustar 0 0 Apache log4cxx: Member List

InetAddress Member List

This is the complete list of members for InetAddress, including all inherited members.

addRef() const ObjectImpl [virtual]
anyAddress()InetAddress [static]
cast(const Class &clazz) const =0Object [pure virtual]
getAllByName(const LogString &host)InetAddress [static]
getByName(const LogString &host)InetAddress [static]
getClass() const Object [virtual]
getHostAddress() const InetAddress
getHostName() const InetAddress
getLocalHost()InetAddress [static]
getStaticClass()Object [static]
InetAddress(const LogString &hostName, const LogString &hostAddr)InetAddress
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
toString() const InetAddress
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_input_stream.html100644 0 0 24075 10774263472 24741 0ustar 0 0 Apache log4cxx: InputStream Class Reference

InputStream Class Reference

Inherits ObjectImpl.

Inherited by ByteArrayInputStream, and FileInputStream.

List of all members.


Detailed Description

Abstract class for reading from character streams.


Public Member Functions

virtual int read (ByteBuffer &dst)=0
 Reads a sequence of bytes into the given buffer.
virtual void close ()=0
 Closes this input stream and releases any system resources associated with the stream.

Protected Member Functions

 InputStream ()
virtual ~InputStream ()


Constructor & Destructor Documentation

InputStream  )  [protected]
 

virtual ~InputStream  )  [protected, virtual]
 


Member Function Documentation

virtual void close  )  [pure virtual]
 

Closes this input stream and releases any system resources associated with the stream.

Implemented in ByteArrayInputStream, and FileInputStream.

virtual int read ByteBuffer dst  )  [pure virtual]
 

Reads a sequence of bytes into the given buffer.

Parameters:
dst The buffer into which bytes are to be transferred.
Returns:
the total number of bytes read into the buffer, or -1 if there is no more data because the end of the stream has been reached.

Implemented in ByteArrayInputStream, and FileInputStream.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_input_stream-members.html100644 0 0 15460 10774263472 26367 0ustar 0 0 Apache log4cxx: Member List

InputStream Member List

This is the complete list of members for InputStream, including all inherited members.

addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
close()=0InputStream [pure virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
InputStream()InputStream [protected]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
read(ByteBuffer &dst)=0InputStream [pure virtual]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
~InputStream()InputStream [protected, virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_input_stream_reader.html100644 0 0 34530 10774263472 26260 0ustar 0 0 Apache log4cxx: InputStreamReader Class Reference

InputStreamReader Class Reference

Inherits Reader.

List of all members.


Detailed Description

Class for reading from character streams.

Decorates a byte based InputStream and provides appropriate conversion to characters.


Public Member Functions

 InputStreamReader (const InputStreamPtr &in)
 Creates an InputStreamReader that uses the default charset.
 InputStreamReader (const InputStreamPtr &in, const CharsetDecoderPtr &enc)
 Creates an InputStreamReader that uses the given charset decoder.
 ~InputStreamReader ()
virtual void close (Pool &p)
 Closes the stream.
virtual LogString read (Pool &p)
LogString getEncoding () const


Constructor & Destructor Documentation

InputStreamReader const InputStreamPtr &  in  ) 
 

Creates an InputStreamReader that uses the default charset.

Parameters:
in The input stream to decorate.

InputStreamReader const InputStreamPtr &  in,
const CharsetDecoderPtr &  enc
 

Creates an InputStreamReader that uses the given charset decoder.

Parameters:
in The input stream to decorate.
enc The charset decoder to use for the conversion.

~InputStreamReader  ) 
 


Member Function Documentation

virtual void close Pool p  )  [virtual]
 

Closes the stream.

Parameters:
p The memory pool associated with the reader.

Implements Reader.

LogString getEncoding  )  const
 

Returns:
The name of the character encoding being used by this stream.

virtual LogString read Pool p  )  [virtual]
 

Returns:
The complete stream contents as a LogString.
Parameters:
p The memory pool associated with the reader.

Implements Reader.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_input_stream_reader-members.html100644 0 0 17760 10774263472 27716 0ustar 0 0 Apache log4cxx: Member List

InputStreamReader Member List

This is the complete list of members for InputStreamReader, including all inherited members.

addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
close(Pool &p)InputStreamReader [virtual]
getClass() const Object [virtual]
getEncoding() const InputStreamReader
getStaticClass()Object [static]
InputStreamReader(const InputStreamPtr &in)InputStreamReader
InputStreamReader(const InputStreamPtr &in, const CharsetDecoderPtr &enc)InputStreamReader
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
read(Pool &p)InputStreamReader [virtual]
Reader()Reader [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
~InputStreamReader()InputStreamReader
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~Reader()Reader [protected, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_integer.html100644 0 0 17604 10774263472 23664 0ustar 0 0 Apache log4cxx: Integer Class Reference

Integer Class Reference

Inherits ObjectImpl.

List of all members.

Public Member Functions

 Integer ()
 Integer (int i)
virtual ~Integer ()
int intValue () const


Constructor & Destructor Documentation

Integer  ) 
 

Integer int  i  ) 
 

virtual ~Integer  )  [virtual]
 


Member Function Documentation

int intValue  )  const [inline]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_integer-members.html100644 0 0 15230 10774263472 25305 0ustar 0 0 Apache log4cxx: Member List

Integer Member List

This is the complete list of members for Integer, including all inherited members.

addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
Integer()Integer
Integer(int i)Integer
intValue() const Integer [inline]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
~Integer()Integer [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_i_s_o8601_date_format.html100644 0 0 12034 10774263472 26173 0ustar 0 0 Apache log4cxx: ISO8601DateFormat Class Reference

ISO8601DateFormat Class Reference

Inherits SimpleDateFormat.

List of all members.


Detailed Description

Formats a date in the format yyyy-MM-dd HH:mm:ss,SSS for example "1999-11-27 15:49:37,459".

Refer to the summary of the International Standard Date and Time Notation for more information on this format.


Public Member Functions

 ISO8601DateFormat ()


Constructor & Destructor Documentation

ISO8601DateFormat  )  [inline]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_i_s_o8601_date_format-members.html100644 0 0 20661 10774263472 27630 0ustar 0 0 Apache log4cxx: Member List

ISO8601DateFormat Member List

This is the complete list of members for ISO8601DateFormat, including all inherited members.

addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
DateFormat()DateFormat [protected]
format(LogString &s, log4cxx_time_t tm, log4cxx::helpers::Pool &p) const SimpleDateFormat [virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
ISO8601DateFormat()ISO8601DateFormat [inline]
numberFormat(LogString &s, int n, log4cxx::helpers::Pool &p) const DateFormat [virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
setTimeZone(const TimeZonePtr &zone)SimpleDateFormat [virtual]
SimpleDateFormat(const LogString &pattern)SimpleDateFormat
SimpleDateFormat(const LogString &pattern, const std::locale *locale)SimpleDateFormat
~DateFormat()DateFormat [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~SimpleDateFormat()SimpleDateFormat
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_loader.html100644 0 0 14265 10774263472 23475 0ustar 0 0 Apache log4cxx: Loader Class Reference

Loader Class Reference

List of all members.

Static Public Member Functions

static const ClassloadClass (const LogString &clazz)
static InputStreamPtr getResourceAsStream (const LogString &name)

Member Function Documentation

static InputStreamPtr getResourceAsStream const LogString name  )  [static]
 

static const Class& loadClass const LogString clazz  )  [static]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_loader-members.html100644 0 0 6473 10774263472 25107 0ustar 0 0 Apache log4cxx: Member List

Loader Member List

This is the complete list of members for Loader, including all inherited members.

getResourceAsStream(const LogString &name)Loader [static]
loadClass(const LogString &clazz)Loader [static]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_locale.html100644 0 0 46525 10774263472 23472 0ustar 0 0 Apache log4cxx: Locale Class Reference

Locale Class Reference

List of all members.

Public Member Functions

 Locale (const LogString &language)
 Locale (const LogString &language, const LogString &country)
 Locale (const LogString &language, const LogString &country, const LogString &variant)
const LogStringgetLanguage () const
const LogStringgetCountry () const
const LogStringgetVariant () const

Protected Member Functions

 Locale (const Locale &)
Localeoperator= (const Locale &)

Protected Attributes

const LogString language
const LogString country
const LogString variant

Constructor & Destructor Documentation

Locale const LogString language  ) 
 

Locale const LogString language,
const LogString country
 

Locale const LogString language,
const LogString country,
const LogString variant
 

Locale const Locale  )  [protected]
 


Member Function Documentation

const LogString& getCountry  )  const
 

const LogString& getLanguage  )  const
 

const LogString& getVariant  )  const
 

Locale& operator= const Locale  )  [protected]
 


Member Data Documentation

const LogString country [protected]
 

const LogString language [protected]
 

const LogString variant [protected]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_locale-members.html100644 0 0 13151 10774263472 25107 0ustar 0 0 Apache log4cxx: Member List

Locale Member List

This is the complete list of members for Locale, including all inherited members.

countryLocale [protected]
getCountry() const Locale
getLanguage() const Locale
getVariant() const Locale
languageLocale [protected]
Locale(const LogString &language)Locale
Locale(const LogString &language, const LogString &country)Locale
Locale(const LogString &language, const LogString &country, const LogString &variant)Locale
Locale(const Locale &)Locale [protected]
operator=(const Locale &)Locale [protected]
variantLocale [protected]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_log_log.html100644 0 0 43163 10774263472 23650 0ustar 0 0 Apache log4cxx: LogLog Class Reference

LogLog Class Reference

List of all members.

Detailed Description

This class used to output log statements from within the log4cxx package.

Log4cxx components cannot make log4cxx logging calls. However, it is sometimes useful for the user to learn about what log4cxx is doing. You can enable log4cxx internal logging by calling the setInternalDebugging method.

All log4cxx internal debug calls go to standard output where as internal error messages are sent to standard error output. All internal messages are prepended with the string "log4cxx: ".


Static Public Member Functions

static void setInternalDebugging (bool enabled)
 Allows to enable/disable log4cxx internal logging.
static void debug (const LogString &msg)
 This method is used to output log4cxx internal debug statements.
static void debug (const LogString &msg, const std::exception &e)
static void error (const LogString &msg)
 This method is used to output log4cxx internal error statements.
static void error (const LogString &msg, const std::exception &e)
static void setQuietMode (bool quietMode)
 In quiet mode LogLog generates strictly no output, not even for errors.
static void warn (const LogString &msg)
 This method is used to output log4cxx internal warning statements.
static void warn (const LogString &msg, const std::exception &e)


Member Function Documentation

static void debug const LogString msg,
const std::exception &  e
[static]
 

static void debug const LogString msg  )  [static]
 

This method is used to output log4cxx internal debug statements.

Output goes to the standard output.

static void error const LogString msg,
const std::exception &  e
[static]
 

static void error const LogString msg  )  [static]
 

This method is used to output log4cxx internal error statements.

There is no way to disable error statements. Output goes to stderr.

static void setInternalDebugging bool  enabled  )  [static]
 

Allows to enable/disable log4cxx internal logging.

static void setQuietMode bool  quietMode  )  [static]
 

In quiet mode LogLog generates strictly no output, not even for errors.

Parameters:
quietMode true for no output.

static void warn const LogString msg,
const std::exception &  e
[static]
 

static void warn const LogString msg  )  [static]
 

This method is used to output log4cxx internal warning statements.

There is no way to disable warning statements. Output goes to stderr.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_log_log-members.html100644 0 0 12012 10774263472 25265 0ustar 0 0 Apache log4cxx: Member List

LogLog Member List

This is the complete list of members for LogLog, including all inherited members.

debug(const LogString &msg)LogLog [static]
debug(const LogString &msg, const std::exception &e)LogLog [static]
error(const LogString &msg)LogLog [static]
error(const LogString &msg, const std::exception &e)LogLog [static]
setInternalDebugging(bool enabled)LogLog [static]
setQuietMode(bool quietMode)LogLog [static]
warn(const LogString &msg)LogLog [static]
warn(const LogString &msg, const std::exception &e)LogLog [static]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_char_message_buffer.html100644 0 0 114610 10774263472 26214 0ustar 0 0 Apache log4cxx: CharMessageBuffer Class Reference

CharMessageBuffer Class Reference

List of all members.

Detailed Description

This class is used by the LOG4CXX_INFO and similar macros to support insertion operators in the message parameter.

The class is not intended for use outside of that context.


Public Member Functions

 CharMessageBuffer ()
 Creates a new instance.
 ~CharMessageBuffer ()
 Destructor.
CharMessageBufferoperator<< (const std::basic_string< char > &msg)
 Appends string to buffer.
CharMessageBufferoperator<< (const char *msg)
 Appends string to buffer.
CharMessageBufferoperator<< (char *msg)
 Appends string to buffer.
CharMessageBufferoperator<< (const char msg)
 Appends character to buffer.
std::ostream & operator<< (ios_base_manip manip)
 Insertion operator for STL manipulators such as std::fixed.
std::ostream & operator<< (bool val)
 Insertion operator for built-in type.
std::ostream & operator<< (short val)
 Insertion operator for built-in type.
std::ostream & operator<< (int val)
 Insertion operator for built-in type.
std::ostream & operator<< (unsigned int val)
 Insertion operator for built-in type.
std::ostream & operator<< (long val)
 Insertion operator for built-in type.
std::ostream & operator<< (unsigned long val)
 Insertion operator for built-in type.
std::ostream & operator<< (float val)
 Insertion operator for built-in type.
std::ostream & operator<< (double val)
 Insertion operator for built-in type.
std::ostream & operator<< (long double val)
 Insertion operator for built-in type.
std::ostream & operator<< (void *val)
 Insertion operator for built-in type.
 operator std::basic_ostream ()
 Cast to ostream.
const std::basic_string< char > & str (std::basic_ostream< char > &os)
 Get content of buffer.
const std::basic_string< char > & str (CharMessageBuffer &buf)
 Get content of buffer.
bool hasStream () const
 Returns true if buffer has an encapsulated STL stream.


Constructor & Destructor Documentation

CharMessageBuffer  ) 
 

Creates a new instance.

~CharMessageBuffer  ) 
 

Destructor.


Member Function Documentation

bool hasStream  )  const
 

Returns true if buffer has an encapsulated STL stream.

Returns:
true if STL stream was created.

operator std::basic_ostream  ) 
 

Cast to ostream.

std::ostream& operator<< void *  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

std::ostream& operator<< long double  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

std::ostream& operator<< double  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

std::ostream& operator<< float  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

std::ostream& operator<< unsigned long  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

std::ostream& operator<< long  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

std::ostream& operator<< unsigned int  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

std::ostream& operator<< int  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

std::ostream& operator<< short  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

std::ostream& operator<< bool  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

std::ostream& operator<< ios_base_manip  manip  ) 
 

Insertion operator for STL manipulators such as std::fixed.

Parameters:
manip manipulator.
Returns:
encapsulated STL stream.

CharMessageBuffer& operator<< const char  msg  ) 
 

Appends character to buffer.

Parameters:
msg character to append.
Returns:
this buffer.

CharMessageBuffer& operator<< char *  msg  ) 
 

Appends string to buffer.

Parameters:
msg string to append.
Returns:
this buffer.

CharMessageBuffer& operator<< const char *  msg  ) 
 

Appends string to buffer.

Parameters:
msg string to append.
Returns:
this buffer.

CharMessageBuffer& operator<< const std::basic_string< char > &  msg  ) 
 

Appends string to buffer.

Parameters:
msg string append.
Returns:
this buffer.

const std::basic_string<char>& str CharMessageBuffer buf  ) 
 

Get content of buffer.

Parameters:
buf used only to signal that the embedded stream was not used.

const std::basic_string<char>& str std::basic_ostream< char > &  os  ) 
 

Get content of buffer.

Parameters:
os used only to signal that the embedded stream was used.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_char_message_buffer-members.html100644 0 0 21414 10774263472 27623 0ustar 0 0 Apache log4cxx: Member List

CharMessageBuffer Member List

This is the complete list of members for CharMessageBuffer, including all inherited members.

CharMessageBuffer()CharMessageBuffer
hasStream() const CharMessageBuffer
operator std::basic_ostream()CharMessageBuffer
operator<<(const std::basic_string< char > &msg)CharMessageBuffer
operator<<(const char *msg)CharMessageBuffer
operator<<(char *msg)CharMessageBuffer
operator<<(const char msg)CharMessageBuffer
operator<<(ios_base_manip manip)CharMessageBuffer
operator<<(bool val)CharMessageBuffer
operator<<(short val)CharMessageBuffer
operator<<(int val)CharMessageBuffer
operator<<(unsigned int val)CharMessageBuffer
operator<<(long val)CharMessageBuffer
operator<<(unsigned long val)CharMessageBuffer
operator<<(float val)CharMessageBuffer
operator<<(double val)CharMessageBuffer
operator<<(long double val)CharMessageBuffer
operator<<(void *val)CharMessageBuffer
str(std::basic_ostream< char > &os)CharMessageBuffer
str(CharMessageBuffer &buf)CharMessageBuffer
~CharMessageBuffer()CharMessageBuffer
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_uni_char_message_buffer.html100644 0 0 133375 10774263472 27100 0ustar 0 0 Apache log4cxx: UniCharMessageBuffer Class Reference

UniCharMessageBuffer Class Reference

List of all members.

Detailed Description

This class is designed to support insertion operations in the message argument to the LOG4CXX_INFO and similar macros and is not designed for general purpose use.


Public Types

typedef std::basic_ostream<
UniChar
uostream

Public Member Functions

 UniCharMessageBuffer ()
 Creates a new instance.
 ~UniCharMessageBuffer ()
 Destructor.
UniCharMessageBufferoperator<< (const std::basic_string< UniChar > &msg)
 Appends string to buffer.
UniCharMessageBufferoperator<< (const UniChar *msg)
 Appends string to buffer.
UniCharMessageBufferoperator<< (UniChar *msg)
 Appends string to buffer.
UniCharMessageBufferoperator<< (const UniChar msg)
 Appends character to buffer.
UniCharMessageBufferoperator<< (const CFStringRef &msg)
 Appends a string into the buffer and fixes the buffer to use char characters.
uostreamoperator<< (ios_base_manip manip)
 Insertion operator for STL manipulators such as std::fixed.
uostreamoperator<< (bool val)
 Insertion operator for built-in type.
uostreamoperator<< (short val)
 Insertion operator for built-in type.
uostreamoperator<< (int val)
 Insertion operator for built-in type.
uostreamoperator<< (unsigned int val)
 Insertion operator for built-in type.
uostreamoperator<< (long val)
 Insertion operator for built-in type.
uostreamoperator<< (unsigned long val)
 Insertion operator for built-in type.
uostreamoperator<< (float val)
 Insertion operator for built-in type.
uostreamoperator<< (double val)
 Insertion operator for built-in type.
uostreamoperator<< (long double val)
 Insertion operator for built-in type.
uostreamoperator<< (void *val)
 Insertion operator for built-in type.
 operator uostream & ()
 Cast to ostream.
const std::basic_string< UniChar > & str (uostream &os)
 Get content of buffer.
const std::basic_string< UniChar > & str (UniCharMessageBuffer &buf)
 Get content of buffer.
bool hasStream () const
 Returns true if buffer has an encapsulated STL stream.


Member Typedef Documentation

typedef std::basic_ostream<UniChar> uostream
 


Constructor & Destructor Documentation

UniCharMessageBuffer  ) 
 

Creates a new instance.

~UniCharMessageBuffer  ) 
 

Destructor.


Member Function Documentation

bool hasStream  )  const
 

Returns true if buffer has an encapsulated STL stream.

Returns:
true if STL stream was created.

operator uostream &  ) 
 

Cast to ostream.

uostream& operator<< void *  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

uostream& operator<< long double  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

uostream& operator<< double  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

uostream& operator<< float  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

uostream& operator<< unsigned long  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

uostream& operator<< long  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

uostream& operator<< unsigned int  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

uostream& operator<< int  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

uostream& operator<< short  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

uostream& operator<< bool  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

uostream& operator<< ios_base_manip  manip  ) 
 

Insertion operator for STL manipulators such as std::fixed.

Parameters:
manip manipulator.
Returns:
encapsulated STL stream.

UniCharMessageBuffer& operator<< const CFStringRef msg  ) 
 

Appends a string into the buffer and fixes the buffer to use char characters.

Parameters:
msg message to append.
Returns:
encapsulated CharMessageBuffer.

UniCharMessageBuffer& operator<< const UniChar  msg  ) 
 

Appends character to buffer.

Parameters:
msg character to append.
Returns:
this buffer.

UniCharMessageBuffer& operator<< UniChar msg  ) 
 

Appends string to buffer.

Parameters:
msg string to append.
Returns:
this buffer.

UniCharMessageBuffer& operator<< const UniChar msg  ) 
 

Appends string to buffer.

Parameters:
msg string to append.
Returns:
this buffer.

UniCharMessageBuffer& operator<< const std::basic_string< UniChar > &  msg  ) 
 

Appends string to buffer.

Parameters:
msg string append.
Returns:
this buffer.

const std::basic_string<UniChar>& str UniCharMessageBuffer buf  ) 
 

Get content of buffer.

Parameters:
buf used only to signal that the embedded stream was not used.

const std::basic_string<UniChar>& str uostream os  ) 
 

Get content of buffer.

Parameters:
os used only to signal that the embedded stream was used.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_uni_char_message_buffer-members.html100644 0 0 23122 10774263472 30474 0ustar 0 0 Apache log4cxx: Member List

UniCharMessageBuffer Member List

This is the complete list of members for UniCharMessageBuffer, including all inherited members.

hasStream() const UniCharMessageBuffer
operator uostream &()UniCharMessageBuffer
operator<<(const std::basic_string< UniChar > &msg)UniCharMessageBuffer
operator<<(const UniChar *msg)UniCharMessageBuffer
operator<<(UniChar *msg)UniCharMessageBuffer
operator<<(const UniChar msg)UniCharMessageBuffer
operator<<(const CFStringRef &msg)UniCharMessageBuffer
operator<<(ios_base_manip manip)UniCharMessageBuffer
operator<<(bool val)UniCharMessageBuffer
operator<<(short val)UniCharMessageBuffer
operator<<(int val)UniCharMessageBuffer
operator<<(unsigned int val)UniCharMessageBuffer
operator<<(long val)UniCharMessageBuffer
operator<<(unsigned long val)UniCharMessageBuffer
operator<<(float val)UniCharMessageBuffer
operator<<(double val)UniCharMessageBuffer
operator<<(long double val)UniCharMessageBuffer
operator<<(void *val)UniCharMessageBuffer
str(uostream &os)UniCharMessageBuffer
str(UniCharMessageBuffer &buf)UniCharMessageBuffer
UniCharMessageBuffer()UniCharMessageBuffer
uostream typedefUniCharMessageBuffer
~UniCharMessageBuffer()UniCharMessageBuffer
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_wide_message_buffer.html100644 0 0 115625 10774263472 26236 0ustar 0 0 Apache log4cxx: WideMessageBuffer Class Reference

WideMessageBuffer Class Reference

List of all members.

Detailed Description

This class is designed to support insertion operations in the message argument to the LOG4CXX_INFO and similar macros and is not designed for general purpose use.


Public Member Functions

 WideMessageBuffer ()
 Creates a new instance.
 ~WideMessageBuffer ()
 Destructor.
WideMessageBufferoperator<< (const std::basic_string< wchar_t > &msg)
 Appends string to buffer.
WideMessageBufferoperator<< (const wchar_t *msg)
 Appends string to buffer.
WideMessageBufferoperator<< (wchar_t *msg)
 Appends string to buffer.
WideMessageBufferoperator<< (const wchar_t msg)
 Appends character to buffer.
std::basic_ostream< wchar_t > & operator<< (ios_base_manip manip)
 Insertion operator for STL manipulators such as std::fixed.
std::basic_ostream< wchar_t > & operator<< (bool val)
 Insertion operator for built-in type.
std::basic_ostream< wchar_t > & operator<< (short val)
 Insertion operator for built-in type.
std::basic_ostream< wchar_t > & operator<< (int val)
 Insertion operator for built-in type.
std::basic_ostream< wchar_t > & operator<< (unsigned int val)
 Insertion operator for built-in type.
std::basic_ostream< wchar_t > & operator<< (long val)
 Insertion operator for built-in type.
std::basic_ostream< wchar_t > & operator<< (unsigned long val)
 Insertion operator for built-in type.
std::basic_ostream< wchar_t > & operator<< (float val)
 Insertion operator for built-in type.
std::basic_ostream< wchar_t > & operator<< (double val)
 Insertion operator for built-in type.
std::basic_ostream< wchar_t > & operator<< (long double val)
 Insertion operator for built-in type.
std::basic_ostream< wchar_t > & operator<< (void *val)
 Insertion operator for built-in type.
 operator std::basic_ostream ()
 Cast to ostream.
const std::basic_string< wchar_t > & str (std::basic_ostream< wchar_t > &os)
 Get content of buffer.
const std::basic_string< wchar_t > & str (WideMessageBuffer &buf)
 Get content of buffer.
bool hasStream () const
 Returns true if buffer has an encapsulated STL stream.


Constructor & Destructor Documentation

WideMessageBuffer  ) 
 

Creates a new instance.

~WideMessageBuffer  ) 
 

Destructor.


Member Function Documentation

bool hasStream  )  const
 

Returns true if buffer has an encapsulated STL stream.

Returns:
true if STL stream was created.

operator std::basic_ostream  ) 
 

Cast to ostream.

std::basic_ostream<wchar_t>& operator<< void *  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

std::basic_ostream<wchar_t>& operator<< long double  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

std::basic_ostream<wchar_t>& operator<< double  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

std::basic_ostream<wchar_t>& operator<< float  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

std::basic_ostream<wchar_t>& operator<< unsigned long  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

std::basic_ostream<wchar_t>& operator<< long  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

std::basic_ostream<wchar_t>& operator<< unsigned int  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

std::basic_ostream<wchar_t>& operator<< int  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

std::basic_ostream<wchar_t>& operator<< short  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

std::basic_ostream<wchar_t>& operator<< bool  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

std::basic_ostream<wchar_t>& operator<< ios_base_manip  manip  ) 
 

Insertion operator for STL manipulators such as std::fixed.

Parameters:
manip manipulator.
Returns:
encapsulated STL stream.

WideMessageBuffer& operator<< const wchar_t  msg  ) 
 

Appends character to buffer.

Parameters:
msg character to append.
Returns:
this buffer.

WideMessageBuffer& operator<< wchar_t *  msg  ) 
 

Appends string to buffer.

Parameters:
msg string to append.
Returns:
this buffer.

WideMessageBuffer& operator<< const wchar_t *  msg  ) 
 

Appends string to buffer.

Parameters:
msg string to append.
Returns:
this buffer.

WideMessageBuffer& operator<< const std::basic_string< wchar_t > &  msg  ) 
 

Appends string to buffer.

Parameters:
msg string append.
Returns:
this buffer.

const std::basic_string<wchar_t>& str WideMessageBuffer buf  ) 
 

Get content of buffer.

Parameters:
buf used only to signal that the embedded stream was not used.

const std::basic_string<wchar_t>& str std::basic_ostream< wchar_t > &  os  ) 
 

Get content of buffer.

Parameters:
os used only to signal that the embedded stream was used.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_wide_message_buffer-members.html100644 0 0 21433 10774263472 27637 0ustar 0 0 Apache log4cxx: Member List

WideMessageBuffer Member List

This is the complete list of members for WideMessageBuffer, including all inherited members.

hasStream() const WideMessageBuffer
operator std::basic_ostream()WideMessageBuffer
operator<<(const std::basic_string< wchar_t > &msg)WideMessageBuffer
operator<<(const wchar_t *msg)WideMessageBuffer
operator<<(wchar_t *msg)WideMessageBuffer
operator<<(const wchar_t msg)WideMessageBuffer
operator<<(ios_base_manip manip)WideMessageBuffer
operator<<(bool val)WideMessageBuffer
operator<<(short val)WideMessageBuffer
operator<<(int val)WideMessageBuffer
operator<<(unsigned int val)WideMessageBuffer
operator<<(long val)WideMessageBuffer
operator<<(unsigned long val)WideMessageBuffer
operator<<(float val)WideMessageBuffer
operator<<(double val)WideMessageBuffer
operator<<(long double val)WideMessageBuffer
operator<<(void *val)WideMessageBuffer
str(std::basic_ostream< wchar_t > &os)WideMessageBuffer
str(WideMessageBuffer &buf)WideMessageBuffer
WideMessageBuffer()WideMessageBuffer
~WideMessageBuffer()WideMessageBuffer
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_message_buffer.html100644 0 0 202677 10774263472 25232 0ustar 0 0 Apache log4cxx: MessageBuffer Class Reference

MessageBuffer Class Reference

List of all members.

Detailed Description

This class is used by the LOG4CXX_INFO and similar macros to support insertion operators in the message parameter.

The class is not intended for use outside of that context.


Public Member Functions

 MessageBuffer ()
 Creates a new instance.
 ~MessageBuffer ()
 Destructor.
 operator std::ostream & ()
 Cast to ostream.
CharMessageBufferoperator<< (const std::string &msg)
 Appends a string into the buffer and fixes the buffer to use char characters.
CharMessageBufferoperator<< (const char *msg)
 Appends a string into the buffer and fixes the buffer to use char characters.
CharMessageBufferoperator<< (char *msg)
 Appends a string into the buffer and fixes the buffer to use char characters.
CharMessageBufferoperator<< (const char msg)
 Appends a string into the buffer and fixes the buffer to use char characters.
const std::string & str (CharMessageBuffer &buf)
 Get content of buffer.
const std::string & str (std::ostream &os)
 Get content of buffer.
WideMessageBufferoperator<< (const std::wstring &msg)
 Appends a string into the buffer and fixes the buffer to use char characters.
WideMessageBufferoperator<< (const wchar_t *msg)
 Appends a string into the buffer and fixes the buffer to use char characters.
WideMessageBufferoperator<< (wchar_t *msg)
 Appends a string into the buffer and fixes the buffer to use char characters.
WideMessageBufferoperator<< (const wchar_t msg)
 Appends a string into the buffer and fixes the buffer to use char characters.
UniCharMessageBufferoperator<< (const std::basic_string< UniChar > &msg)
 Appends a string into the buffer and fixes the buffer to use char characters.
UniCharMessageBufferoperator<< (const UniChar *msg)
 Appends a string into the buffer and fixes the buffer to use char characters.
UniCharMessageBufferoperator<< (UniChar *msg)
 Appends a string into the buffer and fixes the buffer to use char characters.
UniCharMessageBufferoperator<< (const UniChar msg)
 Appends a string into the buffer and fixes the buffer to use char characters.
UniCharMessageBufferoperator<< (const CFStringRef &msg)
 Appends a string into the buffer and fixes the buffer to use char characters.
std::ostream & operator<< (ios_base_manip manip)
 Insertion operator for STL manipulators such as std::fixed.
std::ostream & operator<< (bool val)
 Insertion operator for built-in type.
std::ostream & operator<< (short val)
 Insertion operator for built-in type.
std::ostream & operator<< (int val)
 Insertion operator for built-in type.
std::ostream & operator<< (unsigned int val)
 Insertion operator for built-in type.
std::ostream & operator<< (long val)
 Insertion operator for built-in type.
std::ostream & operator<< (unsigned long val)
 Insertion operator for built-in type.
std::ostream & operator<< (float val)
 Insertion operator for built-in type.
std::ostream & operator<< (double val)
 Insertion operator for built-in type.
std::ostream & operator<< (long double val)
 Insertion operator for built-in type.
std::ostream & operator<< (void *val)
 Insertion operator for built-in type.
const std::wstring & str (WideMessageBuffer &buf)
 Get content of buffer.
const std::wstring & str (std::basic_ostream< wchar_t > &os)
 Get content of buffer.
const std::basic_string< UniChar > & str (UniCharMessageBuffer &buf)
 Get content of buffer.
const std::basic_string< UniChar > & str (UniCharMessageBuffer::uostream &os)
 Get content of buffer.
bool hasStream () const
 Returns true if buffer has an encapsulated STL stream.


Constructor & Destructor Documentation

MessageBuffer  ) 
 

Creates a new instance.

~MessageBuffer  ) 
 

Destructor.


Member Function Documentation

bool hasStream  )  const
 

Returns true if buffer has an encapsulated STL stream.

Returns:
true if STL stream was created.

operator std::ostream &  ) 
 

Cast to ostream.

std::ostream& operator<< void *  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

std::ostream& operator<< long double  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

std::ostream& operator<< double  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

std::ostream& operator<< float  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

std::ostream& operator<< unsigned long  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

std::ostream& operator<< long  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

std::ostream& operator<< unsigned int  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

std::ostream& operator<< int  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

std::ostream& operator<< short  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

std::ostream& operator<< bool  val  ) 
 

Insertion operator for built-in type.

Parameters:
val build in type.
Returns:
encapsulated STL stream.

std::ostream& operator<< ios_base_manip  manip  ) 
 

Insertion operator for STL manipulators such as std::fixed.

Parameters:
manip manipulator.
Returns:
encapsulated STL stream.

UniCharMessageBuffer& operator<< const CFStringRef msg  ) 
 

Appends a string into the buffer and fixes the buffer to use char characters.

Parameters:
msg message to append.
Returns:
encapsulated CharMessageBuffer.

UniCharMessageBuffer& operator<< const UniChar  msg  ) 
 

Appends a string into the buffer and fixes the buffer to use char characters.

Parameters:
msg message to append.
Returns:
encapsulated CharMessageBuffer.

UniCharMessageBuffer& operator<< UniChar msg  ) 
 

Appends a string into the buffer and fixes the buffer to use char characters.

Parameters:
msg message to append.
Returns:
encapsulated CharMessageBuffer.

UniCharMessageBuffer& operator<< const UniChar msg  ) 
 

Appends a string into the buffer and fixes the buffer to use char characters.

Parameters:
msg message to append.
Returns:
encapsulated CharMessageBuffer.

UniCharMessageBuffer& operator<< const std::basic_string< UniChar > &  msg  ) 
 

Appends a string into the buffer and fixes the buffer to use char characters.

Parameters:
msg message to append.
Returns:
encapsulated CharMessageBuffer.

WideMessageBuffer& operator<< const wchar_t  msg  ) 
 

Appends a string into the buffer and fixes the buffer to use char characters.

Parameters:
msg message to append.
Returns:
encapsulated CharMessageBuffer.

WideMessageBuffer& operator<< wchar_t *  msg  ) 
 

Appends a string into the buffer and fixes the buffer to use char characters.

Parameters:
msg message to append.
Returns:
encapsulated CharMessageBuffer.

WideMessageBuffer& operator<< const wchar_t *  msg  ) 
 

Appends a string into the buffer and fixes the buffer to use char characters.

Parameters:
msg message to append.
Returns:
encapsulated CharMessageBuffer.

WideMessageBuffer& operator<< const std::wstring &  msg  ) 
 

Appends a string into the buffer and fixes the buffer to use char characters.

Parameters:
msg message to append.
Returns:
encapsulated CharMessageBuffer.

CharMessageBuffer& operator<< const char  msg  ) 
 

Appends a string into the buffer and fixes the buffer to use char characters.

Parameters:
msg message to append.
Returns:
encapsulated CharMessageBuffer.

CharMessageBuffer& operator<< char *  msg  ) 
 

Appends a string into the buffer and fixes the buffer to use char characters.

Parameters:
msg message to append.
Returns:
encapsulated CharMessageBuffer.

CharMessageBuffer& operator<< const char *  msg  ) 
 

Appends a string into the buffer and fixes the buffer to use char characters.

Parameters:
msg message to append.
Returns:
encapsulated CharMessageBuffer.

CharMessageBuffer& operator<< const std::string &  msg  ) 
 

Appends a string into the buffer and fixes the buffer to use char characters.

Parameters:
msg message to append.
Returns:
encapsulated CharMessageBuffer.

const std::basic_string<UniChar>& str UniCharMessageBuffer::uostream os  ) 
 

Get content of buffer.

Parameters:
os used only to signal the character type and that the embedded stream was used.

const std::basic_string<UniChar>& str UniCharMessageBuffer buf  ) 
 

Get content of buffer.

Parameters:
buf used only to signal the character type and that the embedded stream was not used.

const std::wstring& str std::basic_ostream< wchar_t > &  os  ) 
 

Get content of buffer.

Parameters:
os used only to signal the character type and that the embedded stream was used.

const std::wstring& str WideMessageBuffer buf  ) 
 

Get content of buffer.

Parameters:
buf used only to signal the character type and that the embedded stream was not used.

const std::string& str std::ostream &  os  ) 
 

Get content of buffer.

Parameters:
os used only to signal the character type and that the embedded stream was used.

const std::string& str CharMessageBuffer buf  ) 
 

Get content of buffer.

Parameters:
buf used only to signal the character type and that the embedded stream was not used.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_message_buffer-members.html100644 0 0 30066 10774263472 26631 0ustar 0 0 Apache log4cxx: Member List

MessageBuffer Member List

This is the complete list of members for MessageBuffer, including all inherited members.

hasStream() const MessageBuffer
MessageBuffer()MessageBuffer
operator std::ostream &()MessageBuffer
operator<<(const std::string &msg)MessageBuffer
operator<<(const char *msg)MessageBuffer
operator<<(char *msg)MessageBuffer
operator<<(const char msg)MessageBuffer
operator<<(const std::wstring &msg)MessageBuffer
operator<<(const wchar_t *msg)MessageBuffer
operator<<(wchar_t *msg)MessageBuffer
operator<<(const wchar_t msg)MessageBuffer
operator<<(const std::basic_string< UniChar > &msg)MessageBuffer
operator<<(const UniChar *msg)MessageBuffer
operator<<(UniChar *msg)MessageBuffer
operator<<(const UniChar msg)MessageBuffer
operator<<(const CFStringRef &msg)MessageBuffer
operator<<(ios_base_manip manip)MessageBuffer
operator<<(bool val)MessageBuffer
operator<<(short val)MessageBuffer
operator<<(int val)MessageBuffer
operator<<(unsigned int val)MessageBuffer
operator<<(long val)MessageBuffer
operator<<(unsigned long val)MessageBuffer
operator<<(float val)MessageBuffer
operator<<(double val)MessageBuffer
operator<<(long double val)MessageBuffer
operator<<(void *val)MessageBuffer
str(CharMessageBuffer &buf)MessageBuffer
str(std::ostream &os)MessageBuffer
str(WideMessageBuffer &buf)MessageBuffer
str(std::basic_ostream< wchar_t > &os)MessageBuffer
str(UniCharMessageBuffer &buf)MessageBuffer
str(UniCharMessageBuffer::uostream &os)MessageBuffer
~MessageBuffer()MessageBuffer
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_mutex.html100644 0 0 17723 10774263472 23373 0ustar 0 0 Apache log4cxx: Mutex Class Reference

Mutex Class Reference

List of all members.

Public Member Functions

 Mutex (log4cxx::helpers::Pool &p)
 Mutex (apr_pool_t *p)
 ~Mutex ()
apr_thread_mutex_t * getAPRMutex () const

Constructor & Destructor Documentation

Mutex log4cxx::helpers::Pool p  ) 
 

Mutex apr_pool_t *  p  ) 
 

~Mutex  ) 
 


Member Function Documentation

apr_thread_mutex_t* getAPRMutex  )  const
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_mutex-members.html100644 0 0 7301 10774263472 24772 0ustar 0 0 Apache log4cxx: Member List

Mutex Member List

This is the complete list of members for Mutex, including all inherited members.

getAPRMutex() const Mutex
Mutex(log4cxx::helpers::Pool &p)Mutex
Mutex(apr_pool_t *p)Mutex
~Mutex()Mutex
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_object.html100644 0 0 45133 10774263472 23473 0ustar 0 0 Apache log4cxx: Object Class Reference

Object Class Reference

Inherited by ObjectImpl [virtual], XMLDOMNode [virtual], XMLDOMNodeList [virtual], AppenderAttachable [virtual], Configurator [virtual], HierarchyEventListener [virtual], LoggerFactory [virtual], LoggerRepository [virtual], OptionHandler [virtual], RepositorySelector [virtual], and TriggeringEventEvaluator [virtual].

List of all members.


Detailed Description

base class for java-like objects.


Public Member Functions

virtual const helpers::ClassgetClass () const
virtual ~Object ()
virtual void addRef () const =0
virtual void releaseRef () const =0
virtual bool instanceof (const Class &clazz) const =0
virtual const void * cast (const Class &clazz) const =0

Static Public Member Functions

static const helpers::ClassgetStaticClass ()
static const log4cxx::helpers::ClassRegistrationregisterClass ()

Classes

class  ClazzObject


Constructor & Destructor Documentation

virtual ~Object  )  [inline, virtual]
 


Member Function Documentation

virtual void addRef  )  const [pure virtual]
 

Implemented in AppenderSkeleton, AsyncAppender, AppenderAttachableImpl, ObjectImpl, OnlyOnceErrorHandler, Hierarchy, Layout, Logger, PropertyConfigurator, RollingPolicyBase, TimeBasedRollingPolicy, TriggeringPolicy, DefaultRepositorySelector, Filter, FallbackErrorHandler, and DOMConfigurator.

virtual const void* cast const Class clazz  )  const [pure virtual]
 

virtual const helpers::Class& getClass  )  const [virtual]
 

static const helpers::Class& getStaticClass  )  [static]
 

virtual bool instanceof const Class clazz  )  const [pure virtual]
 

static const log4cxx::helpers::ClassRegistration& registerClass  )  [static]
 

virtual void releaseRef  )  const [pure virtual]
 

Implemented in AppenderSkeleton, AsyncAppender, AppenderAttachableImpl, ObjectImpl, OnlyOnceErrorHandler, Hierarchy, Layout, Logger, PropertyConfigurator, RollingPolicyBase, TimeBasedRollingPolicy, TriggeringPolicy, DefaultRepositorySelector, Filter, FallbackErrorHandler, and DOMConfigurator.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_object-members.html100644 0 0 11575 10774263472 25126 0ustar 0 0 Apache log4cxx: Member List

Object Member List

This is the complete list of members for Object, including all inherited members.

addRef() const =0Object [pure virtual]
cast(const Class &clazz) const =0Object [pure virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
registerClass()Object [static]
releaseRef() const =0Object [pure virtual]
~Object()Object [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_object_1_1_clazz_object.html100644 0 0 16532 10774263472 26665 0ustar 0 0 Apache log4cxx: Object::ClazzObject Class Reference

Object::ClazzObject Class Reference

Inherits Class.

List of all members.

Public Member Functions

 ClazzObject ()
virtual ~ClazzObject ()
virtual log4cxx::LogString getName () const


Constructor & Destructor Documentation

ClazzObject  )  [inline]
 

virtual ~ClazzObject  )  [inline, virtual]
 


Member Function Documentation

virtual log4cxx::LogString getName  )  const [inline, virtual]
 

Implements Class.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_object_1_1_clazz_object-members.html100644 0 0 12367 10774263472 30317 0ustar 0 0 Apache log4cxx: Member List

Object::ClazzObject Member List

This is the complete list of members for Object::ClazzObject, including all inherited members.

Class()Class [protected]
ClazzObject()Object::ClazzObject [inline]
forName(const LogString &className)Class [static]
getName() const Object::ClazzObject [inline, virtual]
newInstance() const Class [virtual]
registerClass(const Class &newClass)Class [static]
toString() const Class
~Class()Class [virtual]
~ClazzObject()Object::ClazzObject [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_object_impl.html100644 0 0 40650 10774263472 24513 0ustar 0 0 Apache log4cxx: ObjectImpl Class Reference

ObjectImpl Class Reference

Inherits Object.

Inherited by AppenderSkeleton [virtual], DefaultLoggerFactory [virtual], AppenderAttachableImpl [virtual], CharsetDecoder, CharsetEncoder, DatagramPacket, DatagramSocket, Date, DateFormat, InetAddress, InputStream, Integer, ObjectOutputStream, OnlyOnceErrorHandler [virtual], OutputStream, Reader, ResourceBundle, Socket, TimeZone, Writer, Hierarchy [virtual], Layout [virtual], Level, Logger [virtual], FormattingInfo [virtual], NameAbbreviator, PatternConverter [virtual], PropertyConfigurator [virtual], Action [virtual], RollingPolicyBase [virtual], RolloverDescription, TriggeringPolicy [virtual], DefaultRepositorySelector [virtual], Filter [virtual], LoggingEvent [virtual], FallbackErrorHandler [virtual], and DOMConfigurator [virtual].

List of all members.


Detailed Description

Implementation class for Object.


Public Member Functions

 ObjectImpl ()
virtual ~ObjectImpl ()
void addRef () const
void releaseRef () const

Protected Attributes

unsigned int volatile ref


Constructor & Destructor Documentation

ObjectImpl  ) 
 

virtual ~ObjectImpl  )  [virtual]
 


Member Function Documentation

void addRef  )  const [virtual]
 

Implements Object.

Reimplemented in AppenderSkeleton, AsyncAppender, AppenderAttachableImpl, OnlyOnceErrorHandler, Hierarchy, Layout, Logger, PropertyConfigurator, RollingPolicyBase, TimeBasedRollingPolicy, TriggeringPolicy, DefaultRepositorySelector, Filter, FallbackErrorHandler, and DOMConfigurator.

void releaseRef  )  const [virtual]
 

Implements Object.

Reimplemented in AppenderSkeleton, AsyncAppender, AppenderAttachableImpl, OnlyOnceErrorHandler, Hierarchy, Layout, Logger, PropertyConfigurator, RollingPolicyBase, TimeBasedRollingPolicy, TriggeringPolicy, DefaultRepositorySelector, Filter, FallbackErrorHandler, and DOMConfigurator.


Member Data Documentation

unsigned int volatile ref [mutable, protected]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_object_impl-members.html100644 0 0 13267 10774263472 26147 0ustar 0 0 Apache log4cxx: Member List

ObjectImpl Member List

This is the complete list of members for ObjectImpl, including all inherited members.

addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_object_output_stream.html100644 0 0 102072 10774263472 26502 0ustar 0 0 Apache log4cxx: ObjectOutputStream Class Reference

ObjectOutputStream Class Reference

Inherits ObjectImpl.

List of all members.


Detailed Description

Emulates java serialization.


Public Types

enum  { STREAM_MAGIC = 0xACED }
enum  { STREAM_VERSION = 5 }
enum  {
  TC_NULL = 0x70, TC_REFERENCE = 0x71, TC_CLASSDESC = 0x72, TC_OBJECT = 0x73,
  TC_STRING = 0x74, TC_ARRAY = 0x75, TC_CLASS = 0x76, TC_BLOCKDATA = 0x77,
  TC_ENDBLOCKDATA = 0x78
}
enum  { SC_WRITE_METHOD = 0x01, SC_SERIALIZABLE = 0x02 }

Public Member Functions

 ObjectOutputStream (OutputStreamPtr os, Pool &p)
virtual ~ObjectOutputStream ()
void close (Pool &p)
void flush (Pool &p)
void writeObject (const LogString &, Pool &p)
void writeUTFString (const std::string &, Pool &p)
void writeObject (const MDC::Map &mdc, Pool &p)
void writeInt (int val, Pool &p)
void writeLong (log4cxx_time_t val, Pool &p)
void writeProlog (const char *className, int classDescIncrement, char *bytes, size_t len, Pool &p)
void writeNull (Pool &p)
void writeByte (char val, Pool &p)
void writeBytes (const char *bytes, size_t len, Pool &p)


Member Enumeration Documentation

anonymous enum
 

Enumerator:
STREAM_MAGIC 

anonymous enum
 

Enumerator:
STREAM_VERSION 

anonymous enum
 

Enumerator:
TC_NULL 
TC_REFERENCE 
TC_CLASSDESC 
TC_OBJECT 
TC_STRING 
TC_ARRAY 
TC_CLASS 
TC_BLOCKDATA 
TC_ENDBLOCKDATA 

anonymous enum
 

Enumerator:
SC_WRITE_METHOD 
SC_SERIALIZABLE 


Constructor & Destructor Documentation

ObjectOutputStream OutputStreamPtr  os,
Pool p
 

virtual ~ObjectOutputStream  )  [virtual]
 


Member Function Documentation

void close Pool p  ) 
 

void flush Pool p  ) 
 

void writeByte char  val,
Pool p
 

void writeBytes const char *  bytes,
size_t  len,
Pool p
 

void writeInt int  val,
Pool p
 

void writeLong log4cxx_time_t  val,
Pool p
 

void writeNull Pool p  ) 
 

void writeObject const MDC::Map mdc,
Pool p
 

void writeObject const LogString ,
Pool p
 

void writeProlog const char *  className,
int  classDescIncrement,
char *  bytes,
size_t  len,
Pool p
 

void writeUTFString const std::string &  ,
Pool p
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_object_output_stream-members.html100644 0 0 33216 10774263472 30115 0ustar 0 0 Apache log4cxx: Member List

ObjectOutputStream Member List

This is the complete list of members for ObjectOutputStream, including all inherited members.

addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
close(Pool &p)ObjectOutputStream
flush(Pool &p)ObjectOutputStream
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
ObjectOutputStream(OutputStreamPtr os, Pool &p)ObjectOutputStream
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
SC_SERIALIZABLE enum valueObjectOutputStream
SC_WRITE_METHOD enum valueObjectOutputStream
STREAM_MAGIC enum valueObjectOutputStream
STREAM_VERSION enum valueObjectOutputStream
TC_ARRAY enum valueObjectOutputStream
TC_BLOCKDATA enum valueObjectOutputStream
TC_CLASS enum valueObjectOutputStream
TC_CLASSDESC enum valueObjectOutputStream
TC_ENDBLOCKDATA enum valueObjectOutputStream
TC_NULL enum valueObjectOutputStream
TC_OBJECT enum valueObjectOutputStream
TC_REFERENCE enum valueObjectOutputStream
TC_STRING enum valueObjectOutputStream
writeByte(char val, Pool &p)ObjectOutputStream
writeBytes(const char *bytes, size_t len, Pool &p)ObjectOutputStream
writeInt(int val, Pool &p)ObjectOutputStream
writeLong(log4cxx_time_t val, Pool &p)ObjectOutputStream
writeNull(Pool &p)ObjectOutputStream
writeObject(const LogString &, Pool &p)ObjectOutputStream
writeObject(const MDC::Map &mdc, Pool &p)ObjectOutputStream
writeProlog(const char *className, int classDescIncrement, char *bytes, size_t len, Pool &p)ObjectOutputStream
writeUTFString(const std::string &, Pool &p)ObjectOutputStream
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~ObjectOutputStream()ObjectOutputStream [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_object_ptr_base.html100644 0 0 23652 10774263472 25354 0ustar 0 0 Apache log4cxx: ObjectPtrBase Class Reference

ObjectPtrBase Class Reference

Inherited by ObjectPtrT, and ObjectPtrT< spi::LoggerFactory >.

List of all members.

Public Member Functions

 ObjectPtrBase ()
virtual ~ObjectPtrBase ()
virtual void * cast (const Class &cls) const =0

Static Public Member Functions

static void checkNull (const int &null)
static void * exchange (void **destination, void *newValue)


Constructor & Destructor Documentation

ObjectPtrBase  ) 
 

virtual ~ObjectPtrBase  )  [virtual]
 


Member Function Documentation

virtual void* cast const Class cls  )  const [pure virtual]
 

static void checkNull const int &  null  )  [static]
 

static void* exchange void **  destination,
void *  newValue
[static]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_object_ptr_base-members.html100644 0 0 10333 10774263472 26774 0ustar 0 0 Apache log4cxx: Member List

ObjectPtrBase Member List

This is the complete list of members for ObjectPtrBase, including all inherited members.

cast(const Class &cls) const =0ObjectPtrBase [pure virtual]
checkNull(const int &null)ObjectPtrBase [static]
exchange(void **destination, void *newValue)ObjectPtrBase [static]
ObjectPtrBase()ObjectPtrBase
~ObjectPtrBase()ObjectPtrBase [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_object_ptr_t.html100644 0 0 75214 10774263472 24706 0ustar 0 0 Apache log4cxx: ObjectPtrT Class Template Reference

ObjectPtrT Class Template Reference

Inherits ObjectPtrBase.

List of all members.


Detailed Description

template<typename T>
class log4cxx::helpers::ObjectPtrT< T >

smart pointer to a Object descendant


Public Member Functions

 ObjectPtrT (const int &null)
 ObjectPtrT ()
 ObjectPtrT (T *p1)
 ObjectPtrT (const ObjectPtrT &p1)
 ObjectPtrT (const ObjectPtrBase &p1)
 ObjectPtrT (ObjectPtrBase &p1)
 ~ObjectPtrT ()
ObjectPtrToperator= (const ObjectPtrT &p1)
ObjectPtrToperator= (const int &null)
ObjectPtrToperator= (T *p1)
ObjectPtrToperator= (ObjectPtrBase &p1)
ObjectPtrToperator= (const ObjectPtrBase &p1)
bool operator== (const ObjectPtrT &p1) const
bool operator!= (const ObjectPtrT &p1) const
bool operator< (const ObjectPtrT &p1) const
bool operator== (const T *p1) const
bool operator!= (const T *p1) const
bool operator< (const T *p1) const
T * operator-> () const
T & operator * () const
 operator T * () const


Constructor & Destructor Documentation

ObjectPtrT const int &  null  )  [inline]
 

ObjectPtrT  )  [inline]
 

ObjectPtrT T *  p1  )  [inline]
 

ObjectPtrT const ObjectPtrT< T > &  p1  )  [inline]
 

ObjectPtrT const ObjectPtrBase p1  )  [inline]
 

ObjectPtrT ObjectPtrBase p1  )  [inline]
 

~ObjectPtrT  )  [inline]
 


Member Function Documentation

T& operator *  )  const [inline]
 

operator T *  )  const [inline]
 

bool operator!= const T *  p1  )  const [inline]
 

bool operator!= const ObjectPtrT< T > &  p1  )  const [inline]
 

T* operator->  )  const [inline]
 

bool operator< const T *  p1  )  const [inline]
 

bool operator< const ObjectPtrT< T > &  p1  )  const [inline]
 

ObjectPtrT& operator= const ObjectPtrBase p1  )  [inline]
 

ObjectPtrT& operator= ObjectPtrBase p1  )  [inline]
 

ObjectPtrT& operator= T *  p1  )  [inline]
 

ObjectPtrT& operator= const int &  null  )  [inline]
 

ObjectPtrT& operator= const ObjectPtrT< T > &  p1  )  [inline]
 

bool operator== const T *  p1  )  const [inline]
 

bool operator== const ObjectPtrT< T > &  p1  )  const [inline]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_object_ptr_t-members.html100644 0 0 23642 10774263472 26334 0ustar 0 0 Apache log4cxx: Member List

ObjectPtrT Member List

This is the complete list of members for ObjectPtrT, including all inherited members.

checkNull(const int &null)ObjectPtrBase [static]
log4cxx::helpers::ObjectPtrBase::exchange(void **destination, void *newValue)ObjectPtrBase [static]
ObjectPtrBase()ObjectPtrBase
ObjectPtrT(const int &null)ObjectPtrT [inline]
ObjectPtrT()ObjectPtrT [inline]
ObjectPtrT(T *p1)ObjectPtrT [inline]
ObjectPtrT(const ObjectPtrT &p1)ObjectPtrT [inline]
ObjectPtrT(const ObjectPtrBase &p1)ObjectPtrT [inline]
ObjectPtrT(ObjectPtrBase &p1)ObjectPtrT [inline]
operator *() const ObjectPtrT [inline]
operator T *() const ObjectPtrT [inline]
operator!=(const ObjectPtrT &p1) const ObjectPtrT [inline]
operator!=(const T *p1) const ObjectPtrT [inline]
operator->() const ObjectPtrT [inline]
operator<(const ObjectPtrT &p1) const ObjectPtrT [inline]
operator<(const T *p1) const ObjectPtrT [inline]
operator=(const ObjectPtrT &p1)ObjectPtrT [inline]
operator=(const int &null)ObjectPtrT [inline]
operator=(T *p1)ObjectPtrT [inline]
operator=(ObjectPtrBase &p1)ObjectPtrT [inline]
operator=(const ObjectPtrBase &p1)ObjectPtrT [inline]
operator==(const ObjectPtrT &p1) const ObjectPtrT [inline]
operator==(const T *p1) const ObjectPtrT [inline]
~ObjectPtrBase()ObjectPtrBase [virtual]
~ObjectPtrT()ObjectPtrT [inline]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_only_once_error_handler.html100644 0 0 57660 10774263472 27130 0ustar 0 0 Apache log4cxx: OnlyOnceErrorHandler Class Reference

OnlyOnceErrorHandler Class Reference

Inherits ErrorHandler, and ObjectImpl.

List of all members.


Detailed Description

The OnlyOnceErrorHandler implements log4cxx's default error handling policy which consists of emitting a message for the first error in an appender and ignoring all following errors.

The error message is printed on System.err.

This policy aims at protecting an otherwise working application from being flooded with error messages when logging fails


Public Member Functions

 OnlyOnceErrorHandler ()
void addRef () const
void releaseRef () const
void setLogger (const LoggerPtr &logger)
 Does not do anything.
void activateOptions (log4cxx::helpers::Pool &p)
 No options to activate.
void setOption (const LogString &option, const LogString &value)
 Set option to value.
void error (const LogString &message, const std::exception &e, int errorCode) const
 Prints the message and the stack trace of the exception on System.err.
void error (const LogString &message, const std::exception &e, int errorCode, const spi::LoggingEventPtr &event) const
 Prints the message and the stack trace of the exception on System.err.
void error (const LogString &message) const
 Print a the error message passed as parameter on System.err.
void setAppender (const AppenderPtr &appender)
 Does not do anything.
void setBackupAppender (const AppenderPtr &appender)
 Does not do anything.


Constructor & Destructor Documentation

OnlyOnceErrorHandler  ) 
 


Member Function Documentation

void activateOptions log4cxx::helpers::Pool p  )  [virtual]
 

No options to activate.

Implements OptionHandler.

void addRef  )  const [virtual]
 

Reimplemented from ObjectImpl.

void error const LogString message  )  const [virtual]
 

Print a the error message passed as parameter on System.err.

Implements ErrorHandler.

void error const LogString message,
const std::exception &  e,
int  errorCode,
const spi::LoggingEventPtr event
const [virtual]
 

Prints the message and the stack trace of the exception on System.err.

Implements ErrorHandler.

void error const LogString message,
const std::exception &  e,
int  errorCode
const [virtual]
 

Prints the message and the stack trace of the exception on System.err.

Implements ErrorHandler.

void releaseRef  )  const [virtual]
 

Reimplemented from ObjectImpl.

void setAppender const AppenderPtr appender  )  [virtual]
 

Does not do anything.

Implements ErrorHandler.

void setBackupAppender const AppenderPtr appender  )  [virtual]
 

Does not do anything.

Implements ErrorHandler.

void setLogger const LoggerPtr logger  )  [virtual]
 

Does not do anything.

Implements ErrorHandler.

void setOption const LogString option,
const LogString value
[virtual]
 

Set option to value.

The handling of each option depends on the OptionHandler instance. Some options may become active immediately whereas other may be activated only when activateOptions is called.

Implements OptionHandler.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_only_once_error_handler-members.html100644 0 0 22642 10774263472 30550 0ustar 0 0 Apache log4cxx: Member List

OnlyOnceErrorHandler Member List

This is the complete list of members for OnlyOnceErrorHandler, including all inherited members.

activateOptions(log4cxx::helpers::Pool &p)OnlyOnceErrorHandler [virtual]
addRef() const OnlyOnceErrorHandler [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
error(const LogString &message, const std::exception &e, int errorCode) const OnlyOnceErrorHandler [virtual]
error(const LogString &message, const std::exception &e, int errorCode, const spi::LoggingEventPtr &event) const OnlyOnceErrorHandler [virtual]
error(const LogString &message) const OnlyOnceErrorHandler [virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
OnlyOnceErrorHandler()OnlyOnceErrorHandler
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const OnlyOnceErrorHandler [virtual]
setAppender(const AppenderPtr &appender)OnlyOnceErrorHandler [virtual]
setBackupAppender(const AppenderPtr &appender)OnlyOnceErrorHandler [virtual]
setLogger(const LoggerPtr &logger)OnlyOnceErrorHandler [virtual]
setOption(const LogString &option, const LogString &value)OnlyOnceErrorHandler [virtual]
~ErrorHandler()ErrorHandler [inline, virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_option_converter.html100644 0 0 76425 10774263472 25634 0ustar 0 0 Apache log4cxx: OptionConverter Class Reference

OptionConverter Class Reference

List of all members.

Detailed Description

A convenience class to convert property values to specific types.


Static Public Member Functions

static LogString convertSpecialChars (const LogString &s)
static bool toBoolean (const LogString &value, bool dEfault)
 If value is "true", then true is returned.
static int toInt (const LogString &value, int dEfault)
static long toFileSize (const LogString &value, long dEfault)
static LevelPtr toLevel (const LogString &value, const LevelPtr &defaultValue)
static LogString findAndSubst (const LogString &key, Properties &props)
 Find the value corresponding to key in props.
static LogString substVars (const LogString &val, Properties &props)
 Perform variable substitution in string val from the values of keys found in the system propeties.
static LogString getSystemProperty (const LogString &key, const LogString &def)
 Gets the specified system property.
static ObjectPtr instantiateByClassName (const LogString &className, const Class &superClass, const ObjectPtr &defaultValue)
 Instantiate an object given a class name.
static ObjectPtr instantiateByKey (Properties &props, const LogString &key, const Class &superClass, const ObjectPtr &defaultValue)
static void selectAndConfigure (const File &configFileName, const LogString &clazz, spi::LoggerRepositoryPtr &hierarchy)
 Configure log4cxx given a configFileName.


Member Function Documentation

static LogString convertSpecialChars const LogString s  )  [static]
 

static LogString findAndSubst const LogString key,
Properties props
[static]
 

Find the value corresponding to key in props.

Then perform variable substitution on the found value.

static LogString getSystemProperty const LogString key,
const LogString def
[static]
 

Gets the specified system property.

Parameters:
key The key to search for.
def The default value to return.
Returns:
the string value of the system property, or the default value if there is no property with that key.

static ObjectPtr instantiateByClassName const LogString className,
const Class superClass,
const ObjectPtr defaultValue
[static]
 

Instantiate an object given a class name.

Check that the className is a subclass of superClass. If that test fails or the object could not be instantiated, then defaultValue is returned.

Parameters:
className The fully qualified class name of the object to instantiate.
superClass The class to which the new object should belong.
defaultValue The object to return in case of non-fulfillment

static ObjectPtr instantiateByKey Properties props,
const LogString key,
const Class superClass,
const ObjectPtr defaultValue
[static]
 

static void selectAndConfigure const File configFileName,
const LogString clazz,
spi::LoggerRepositoryPtr hierarchy
[static]
 

Configure log4cxx given a configFileName.

The configFileName must point to a file which will be interpreted by a new instance of a log4cxx configurator.

All configurations steps are taken on the hierarchy passed as a parameter.

Parameters:
configFileName The location of the configuration file.
clazz The classname, of the log4cxx configurator which will parse the file configFileName. This must be a subclass of Configurator, or null. If this value is null then a default configurator of PropertyConfigurator is used, unless the filename pointed to by configFileName ends in '.xml', in which case DOMConfigurator is used.
hierarchy The Hierarchy to act on.

static LogString substVars const LogString val,
Properties props
[static]
 

Perform variable substitution in string val from the values of keys found in the system propeties.

The variable substitution delimeters are ${ and }.

For example, if the System properties contains "key=value", then the call

String s = OptionConverter.substituteVars("Value of key is ${key}.");

will set the variable s to "Value of key is value.".

If no value could be found for the specified key, then the props parameter is searched, if the value could not be found there, then substitution defaults to the empty string.

For example, if system propeties contains no value for the key "inexistentKey", then the call

String s = OptionConverter.subsVars("Value of inexistentKey is [${inexistentKey}]");
will set s to "Value of inexistentKey is []"

An IllegalArgumentException is thrown if val contains a start delimeter "${" which is not balanced by a stop delimeter "}".

Parameters:
val The string on which variable substitution is performed.
props The properties from which variable substitution is performed.
Exceptions:
IllegalArgumentException if val is malformed.

static bool toBoolean const LogString value,
bool  dEfault
[static]
 

If value is "true", then true is returned.

If value is "false", then true is returned. Otherwise, default is returned.

Case of value is unimportant.

static long toFileSize const LogString value,
long  dEfault
[static]
 

static int toInt const LogString value,
int  dEfault
[static]
 

static LevelPtr toLevel const LogString value,
const LevelPtr defaultValue
[static]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_option_converter-members.html100644 0 0 15030 10774263472 27245 0ustar 0 0 Apache log4cxx: Member List

OptionConverter Member List

This is the complete list of members for OptionConverter, including all inherited members.

convertSpecialChars(const LogString &s)OptionConverter [static]
findAndSubst(const LogString &key, Properties &props)OptionConverter [static]
getSystemProperty(const LogString &key, const LogString &def)OptionConverter [static]
instantiateByClassName(const LogString &className, const Class &superClass, const ObjectPtr &defaultValue)OptionConverter [static]
instantiateByKey(Properties &props, const LogString &key, const Class &superClass, const ObjectPtr &defaultValue)OptionConverter [static]
selectAndConfigure(const File &configFileName, const LogString &clazz, spi::LoggerRepositoryPtr &hierarchy)OptionConverter [static]
substVars(const LogString &val, Properties &props)OptionConverter [static]
toBoolean(const LogString &value, bool dEfault)OptionConverter [static]
toFileSize(const LogString &value, long dEfault)OptionConverter [static]
toInt(const LogString &value, int dEfault)OptionConverter [static]
toLevel(const LogString &value, const LevelPtr &defaultValue)OptionConverter [static]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_output_stream.html100644 0 0 30512 10774263472 25133 0ustar 0 0 Apache log4cxx: OutputStream Class Reference

OutputStream Class Reference

Inherits ObjectImpl.

Inherited by BufferedOutputStream, ByteArrayOutputStream, FileOutputStream, and SocketOutputStream.

List of all members.


Detailed Description

Abstract class for writing to character streams.


Public Member Functions

virtual void close (Pool &p)=0
virtual void flush (Pool &p)=0
virtual void write (ByteBuffer &buf, Pool &p)=0

Protected Member Functions

 OutputStream ()
virtual ~OutputStream ()


Constructor & Destructor Documentation

OutputStream  )  [protected]
 

virtual ~OutputStream  )  [protected, virtual]
 


Member Function Documentation

virtual void close Pool p  )  [pure virtual]
 

Implemented in BufferedOutputStream, ByteArrayOutputStream, FileOutputStream, and SocketOutputStream.

virtual void flush Pool p  )  [pure virtual]
 

Implemented in BufferedOutputStream, ByteArrayOutputStream, FileOutputStream, and SocketOutputStream.

virtual void write ByteBuffer buf,
Pool p
[pure virtual]
 

Implemented in BufferedOutputStream, ByteArrayOutputStream, FileOutputStream, and SocketOutputStream.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_output_stream-members.html100644 0 0 16176 10774263472 26575 0ustar 0 0 Apache log4cxx: Member List

OutputStream Member List

This is the complete list of members for OutputStream, including all inherited members.

addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
close(Pool &p)=0OutputStream [pure virtual]
flush(Pool &p)=0OutputStream [pure virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
OutputStream()OutputStream [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
write(ByteBuffer &buf, Pool &p)=0OutputStream [pure virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OutputStream()OutputStream [protected, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_output_stream_writer.html100644 0 0 33150 10774263472 26530 0ustar 0 0 Apache log4cxx: OutputStreamWriter Class Reference

OutputStreamWriter Class Reference

Inherits Writer.

List of all members.


Detailed Description

Abstract class for writing to character streams.


Public Member Functions

 OutputStreamWriter (OutputStreamPtr &out)
 OutputStreamWriter (OutputStreamPtr &out, CharsetEncoderPtr &enc)
 ~OutputStreamWriter ()
virtual void close (Pool &p)
virtual void flush (Pool &p)
virtual void write (const LogString &str, Pool &p)
LogString getEncoding () const


Constructor & Destructor Documentation

OutputStreamWriter OutputStreamPtr &  out  ) 
 

OutputStreamWriter OutputStreamPtr &  out,
CharsetEncoderPtr &  enc
 

~OutputStreamWriter  ) 
 


Member Function Documentation

virtual void close Pool p  )  [virtual]
 

Implements Writer.

virtual void flush Pool p  )  [virtual]
 

Implements Writer.

LogString getEncoding  )  const
 

virtual void write const LogString str,
Pool p
[virtual]
 

Implements Writer.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_output_stream_writer-members.html100644 0 0 20506 10774263472 30161 0ustar 0 0 Apache log4cxx: Member List

OutputStreamWriter Member List

This is the complete list of members for OutputStreamWriter, including all inherited members.

addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
close(Pool &p)OutputStreamWriter [virtual]
flush(Pool &p)OutputStreamWriter [virtual]
getClass() const Object [virtual]
getEncoding() const OutputStreamWriter
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
OutputStreamWriter(OutputStreamPtr &out)OutputStreamWriter
OutputStreamWriter(OutputStreamPtr &out, CharsetEncoderPtr &enc)OutputStreamWriter
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
write(const LogString &str, Pool &p)OutputStreamWriter [virtual]
Writer()Writer [protected]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OutputStreamWriter()OutputStreamWriter
~Writer()Writer [protected, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_pool.html100644 0 0 44026 10774263472 23176 0ustar 0 0 Apache log4cxx: Pool Class Reference

Pool Class Reference

List of all members.

Public Member Functions

 Pool ()
 Pool (apr_pool_t *pool, bool release)
 ~Pool ()
apr_pool_t * getAPRPool ()
apr_pool_t * create ()
void * palloc (size_t length)
char * pstralloc (size_t length)
char * itoa (int n)
char * pstrndup (const char *s, size_t len)
char * pstrdup (const char *s)
char * pstrdup (const std::string &)

Protected Attributes

apr_pool_t * pool
const bool release

Constructor & Destructor Documentation

Pool  ) 
 

Pool apr_pool_t *  pool,
bool  release
 

~Pool  ) 
 


Member Function Documentation

apr_pool_t* create  ) 
 

apr_pool_t* getAPRPool  ) 
 

char* itoa int  n  ) 
 

void* palloc size_t  length  ) 
 

char* pstralloc size_t  length  ) 
 

char* pstrdup const std::string &   ) 
 

char* pstrdup const char *  s  ) 
 

char* pstrndup const char *  s,
size_t  len
 


Member Data Documentation

apr_pool_t* pool [protected]
 

const bool release [protected]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_pool-members.html100644 0 0 13433 10774263472 24624 0ustar 0 0 Apache log4cxx: Member List

Pool Member List

This is the complete list of members for Pool, including all inherited members.

create()Pool
getAPRPool()Pool
itoa(int n)Pool
palloc(size_t length)Pool
poolPool [protected]
Pool()Pool
Pool(apr_pool_t *pool, bool release)Pool
pstralloc(size_t length)Pool
pstrdup(const char *s)Pool
pstrdup(const std::string &)Pool
pstrndup(const char *s, size_t len)Pool
releasePool [protected]
~Pool()Pool
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_properties.html100644 0 0 54636 10774263472 24431 0ustar 0 0 Apache log4cxx: Properties Class Reference

Properties Class Reference

List of all members.

Public Member Functions

 Properties ()
 Create new instance.
 ~Properties ()
 Destructor.
void load (InputStreamPtr inStream)
 Reads a property list (key and element pairs) from the input stream.
LogString setProperty (const LogString &key, const LogString &value)
 Calls Properties::put.
LogString put (const LogString &key, const LogString &value)
 Puts a property value into the collection.
LogString getProperty (const LogString &key) const
 Calls Properties::get.
LogString get (const LogString &key) const
 Gets a property value.
std::vector< LogStringpropertyNames () const
 Returns an enumeration of all the keys in this property list, including distinct keys in the default property list if a key of the same name has not already been found from the main properties list.

Constructor & Destructor Documentation

Properties  ) 
 

Create new instance.

~Properties  ) 
 

Destructor.


Member Function Documentation

LogString get const LogString key  )  const
 

Gets a property value.

Parameters:
key the property key.
Returns:
the value in this property list with the specified key value or empty string.

LogString getProperty const LogString key  )  const
 

Calls Properties::get.

Parameters:
key the property key.
Returns:
the value in this property list with the specified key value or empty string.

void load InputStreamPtr  inStream  ) 
 

Reads a property list (key and element pairs) from the input stream.

The stream is assumed to be using the ISO 8859-1 character encoding.

Every property occupies one line of the input stream. Each line is terminated by a line terminator (\n or \r or \r\n). Lines from the input stream are processed until end of file is reached on the input stream.

A line that contains only whitespace or whose first non-whitespace character is an ASCII # or ! is ignored (thus, # or ! indicate comment lines).

Every line other than a blank line or a comment line describes one property to be added to the table (except that if a line ends with \, then the following line, if it exists, is treated as a continuation line, as described below). The key consists of all the characters in the line starting with the first non-whitespace character and up to, but not including, the first ASCII =, :, or whitespace character. All of the key termination characters may be included in the key by preceding them with a \. Any whitespace after the key is skipped; if the first non-whitespace character after the key is = or :, then it is ignored and any whitespace characters after it are also skipped. All remaining characters on the line become part of the associated element string. Within the element string, the ASCII escape sequences \t, \n, \r, \, \", \', \ (a backslash and a space), and \uxxxx are recognized and converted to single characters. Moreover, if the last character on the line is \, then the next line is treated as a continuation of the current line; the \ and line terminator are simply discarded, and any leading whitespace characters on the continuation line are also discarded and are not part of the element string.

As an example, each of the following four lines specifies the key "Truth" and the associated element value "Beauty":

 Truth = Beauty
        Truth:Beauty
 Truth         :Beauty
                        

As another example, the following three lines specify a single property:

 fruits           apple, banana, pear, \
                                  cantaloupe, watermelon, \
                                  kiwi, mango
                        
The key is "<code>fruits</code>" and the associated element is:
"apple, banana, pear, cantaloupe, watermelon, kiwi, mango"
                        
Note that a space appears before each \ so that a space will appear after each comma in the final result; the \, line terminator, and leading whitespace on the continuation line are merely discarded and are not replaced by one or more other characters.

As a third example, the line:

cheeses
                        
specifies that the key is "<code>cheeses</code>" and the associated element is the empty string.

Parameters:
inStream the input stream.
Exceptions:
IOException if an error occurred when reading from the input stream.

std::vector<LogString> propertyNames  )  const
 

Returns an enumeration of all the keys in this property list, including distinct keys in the default property list if a key of the same name has not already been found from the main properties list.

Returns:
an array of all the keys in this property list, including the keys in the default property list.

LogString put const LogString key,
const LogString value
 

Puts a property value into the collection.

Parameters:
key the key to be placed into this property list.
value the value corresponding to key.
Returns:
the previous value of the specified key in this property list, or an empty string if it did not have one.

LogString setProperty const LogString key,
const LogString value
 

Calls Properties::put.

Parameters:
key the key to be placed into this property list.
value the value corresponding to key.
Returns:
the previous value of the specified key in this property list, or an empty string if it did not have one.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_properties-members.html100644 0 0 11576 10774263472 26055 0ustar 0 0 Apache log4cxx: Member List

Properties Member List

This is the complete list of members for Properties, including all inherited members.

get(const LogString &key) const Properties
getProperty(const LogString &key) const Properties
load(InputStreamPtr inStream)Properties
Properties()Properties
propertyNames() const Properties
put(const LogString &key, const LogString &value)Properties
setProperty(const LogString &key, const LogString &value)Properties
~Properties()Properties
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_property_resource_bundle.html100644 0 0 23673 10774263472 27356 0ustar 0 0 Apache log4cxx: PropertyResourceBundle Class Reference

PropertyResourceBundle Class Reference

Inherits ResourceBundle.

List of all members.


Detailed Description

PropertyResourceBundle is a concrete subclass of ResourceBundle that manages resources for a locale using a set of static strings from a property file.


Public Member Functions

 PropertyResourceBundle (InputStreamPtr inStream)
 Creates a property resource bundle.
virtual LogString getString (const LogString &key) const
 Gets a string for the given key from this resource bundle or one of its parents.

Protected Attributes

Properties properties


Constructor & Destructor Documentation

PropertyResourceBundle InputStreamPtr  inStream  ) 
 

Creates a property resource bundle.

Parameters:
inStream property file to read from.
Exceptions:
IOException if an error occurred when reading from the input stream.


Member Function Documentation

virtual LogString getString const LogString key  )  const [virtual]
 

Gets a string for the given key from this resource bundle or one of its parents.

Calling this method is equivalent to calling

Parameters:
key the key for the desired string
Returns:
the string for the given key
Exceptions:
MissingResourceException - if no object for the given key can be found

Implements ResourceBundle.


Member Data Documentation

Properties properties [protected]
 


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 145 10774264511 10262 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_property_resource_bundle-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_property_resource_bundle-members.html100644 0 0 17140 10774263472 30776 0ustar 0 0 Apache log4cxx: Member List

PropertyResourceBundle Member List

This is the complete list of members for PropertyResourceBundle, including all inherited members.

addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
getBundle(const LogString &baseName, const Locale &locale)ResourceBundle [static]
getClass() const Object [virtual]
getStaticClass()Object [static]
getString(const LogString &key) const PropertyResourceBundle [virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
parentResourceBundle [protected]
propertiesPropertyResourceBundle [protected]
PropertyResourceBundle(InputStreamPtr inStream)PropertyResourceBundle
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
setParent(const ResourceBundlePtr &parent1)ResourceBundle [inline, protected]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_reader.html100644 0 0 23645 10774263472 23473 0ustar 0 0 Apache log4cxx: Reader Class Reference

Reader Class Reference

Inherits ObjectImpl.

Inherited by InputStreamReader.

List of all members.


Detailed Description

Abstract class for reading from character streams.


Public Member Functions

virtual void close (Pool &p)=0
 Closes the stream.
virtual LogString read (Pool &p)=0

Protected Member Functions

 Reader ()
 Creates a new character-stream reader.
virtual ~Reader ()


Constructor & Destructor Documentation

Reader  )  [protected]
 

Creates a new character-stream reader.

virtual ~Reader  )  [protected, virtual]
 


Member Function Documentation

virtual void close Pool p  )  [pure virtual]
 

Closes the stream.

Parameters:
p The memory pool associated with the reader.

Implemented in InputStreamReader.

virtual LogString read Pool p  )  [pure virtual]
 

Returns:
The complete stream contents as a LogString.
Parameters:
p The memory pool associated with the reader.

Implemented in InputStreamReader.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_reader-members.html100644 0 0 15325 10774263472 25117 0ustar 0 0 Apache log4cxx: Member List

Reader Member List

This is the complete list of members for Reader, including all inherited members.

addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
close(Pool &p)=0Reader [pure virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
read(Pool &p)=0Reader [pure virtual]
Reader()Reader [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~Reader()Reader [protected, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_relative_time_date_format.html100644 0 0 17661 10774263472 27430 0ustar 0 0 Apache log4cxx: RelativeTimeDateFormat Class Reference

RelativeTimeDateFormat Class Reference

Inherits DateFormat.

List of all members.


Detailed Description

Formats a date by printing the number of seconds elapsed since the start of the application.

This is the fastest printing DateFormat in the package.


Public Member Functions

 RelativeTimeDateFormat ()
virtual void format (LogString &s, log4cxx_time_t tm, log4cxx::helpers::Pool &p) const
 Formats an log4cxx_time_t into a date/time string.


Constructor & Destructor Documentation

RelativeTimeDateFormat  ) 
 


Member Function Documentation

virtual void format LogString s,
log4cxx_time_t  tm,
log4cxx::helpers::Pool p
const [virtual]
 

Formats an log4cxx_time_t into a date/time string.

Parameters:
s string to which the date/time string is appended.
tm date to be formatted.
p memory pool used during formatting.

Implements DateFormat.


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 146 10774264511 10263 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_relative_time_date_format-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_relative_time_date_format-members.htm100644 0 0 17053 10774263472 30677 0ustar 0 0 Apache log4cxx: Member List

RelativeTimeDateFormat Member List

This is the complete list of members for RelativeTimeDateFormat, including all inherited members.

addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
DateFormat()DateFormat [protected]
format(LogString &s, log4cxx_time_t tm, log4cxx::helpers::Pool &p) const RelativeTimeDateFormat [virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
numberFormat(LogString &s, int n, log4cxx::helpers::Pool &p) const DateFormat [virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
RelativeTimeDateFormat()RelativeTimeDateFormat
releaseRef() const ObjectImpl [virtual]
setTimeZone(const TimeZonePtr &zone)DateFormat [virtual]
~DateFormat()DateFormat [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_resource_bundle.html100644 0 0 27407 10774263472 25411 0ustar 0 0 Apache log4cxx: ResourceBundle Class Reference

ResourceBundle Class Reference

Inherits ObjectImpl.

Inherited by PropertyResourceBundle.

List of all members.


Detailed Description

Resource bundles contain locale-specific objects.


Public Member Functions

virtual LogString getString (const LogString &key) const =0
 Gets a string for the given key from this resource bundle or one of its parents.

Static Public Member Functions

static ResourceBundlePtr getBundle (const LogString &baseName, const Locale &locale)
 Gets a resource bundle using the specified base name and locale.

Protected Member Functions

void setParent (const ResourceBundlePtr &parent1)

Protected Attributes

ResourceBundlePtr parent
 The parent bundle of this bundle.


Member Function Documentation

static ResourceBundlePtr getBundle const LogString baseName,
const Locale locale
[static]
 

Gets a resource bundle using the specified base name and locale.

Parameters:
baseName the base name of the resource bundle, a fully qualified class name or property filename
locale the locale for which a resource bundle is desired

virtual LogString getString const LogString key  )  const [pure virtual]
 

Gets a string for the given key from this resource bundle or one of its parents.

Calling this method is equivalent to calling

Parameters:
key the key for the desired string
Returns:
the string for the given key
Exceptions:
MissingResourceException - if no object for the given key can be found

Implemented in PropertyResourceBundle.

void setParent const ResourceBundlePtr &  parent1  )  [inline, protected]
 


Member Data Documentation

ResourceBundlePtr parent [protected]
 

The parent bundle of this bundle.

The parent bundle is searched by getString when this bundle does not contain a particular resource.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_resource_bundle-members.html100644 0 0 15672 10774263472 27042 0ustar 0 0 Apache log4cxx: Member List

ResourceBundle Member List

This is the complete list of members for ResourceBundle, including all inherited members.

addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
getBundle(const LogString &baseName, const Locale &locale)ResourceBundle [static]
getClass() const Object [virtual]
getStaticClass()Object [static]
getString(const LogString &key) const =0ResourceBundle [pure virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
parentResourceBundle [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
setParent(const ResourceBundlePtr &parent1)ResourceBundle [inline, protected]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_server_socket.html100644 0 0 26076 10774263472 25110 0ustar 0 0 Apache log4cxx: ServerSocket Class Reference

ServerSocket Class Reference

List of all members.

Public Member Functions

 ServerSocket (int port)
 Creates a server socket on a specified port.
virtual ~ServerSocket ()
SocketPtr accept ()
 Listens for a connection to be made to this socket and accepts it.
void close ()
 Closes this socket.
int getSoTimeout () const
 Retrive setting for SO_TIMEOUT.
void setSoTimeout (int timeout)
 Enable/disable SO_TIMEOUT with the specified timeout, in milliseconds.

Constructor & Destructor Documentation

ServerSocket int  port  ) 
 

Creates a server socket on a specified port.

virtual ~ServerSocket  )  [virtual]
 


Member Function Documentation

SocketPtr accept  ) 
 

Listens for a connection to be made to this socket and accepts it.

void close  ) 
 

Closes this socket.

int getSoTimeout  )  const
 

Retrive setting for SO_TIMEOUT.

void setSoTimeout int  timeout  ) 
 

Enable/disable SO_TIMEOUT with the specified timeout, in milliseconds.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_server_socket-members.html100644 0 0 10500 10774263472 26521 0ustar 0 0 Apache log4cxx: Member List

ServerSocket Member List

This is the complete list of members for ServerSocket, including all inherited members.

accept()ServerSocket
close()ServerSocket
getSoTimeout() const ServerSocket
ServerSocket(int port)ServerSocket
setSoTimeout(int timeout)ServerSocket
~ServerSocket()ServerSocket [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_simple_date_format.html100644 0 0 33061 10774263472 26060 0ustar 0 0 Apache log4cxx: SimpleDateFormat Class Reference

SimpleDateFormat Class Reference

Inherits DateFormat.

Inherited by AbsoluteTimeDateFormat, DateTimeDateFormat, and ISO8601DateFormat.

List of all members.


Detailed Description

Concrete class for formatting and parsing dates in a locale-sensitive manner.


Public Member Functions

 SimpleDateFormat (const LogString &pattern)
 Constructs a DateFormat using the given pattern and the default time zone.
 SimpleDateFormat (const LogString &pattern, const std::locale *locale)
 ~SimpleDateFormat ()
virtual void format (LogString &s, log4cxx_time_t tm, log4cxx::helpers::Pool &p) const
 Formats an log4cxx_time_t into a date/time string.
void setTimeZone (const TimeZonePtr &zone)
 Set time zone.


Constructor & Destructor Documentation

SimpleDateFormat const LogString pattern  ) 
 

Constructs a DateFormat using the given pattern and the default time zone.

Parameters:
pattern the pattern describing the date and time format

SimpleDateFormat const LogString pattern,
const std::locale *  locale
 

~SimpleDateFormat  ) 
 


Member Function Documentation

virtual void format LogString s,
log4cxx_time_t  tm,
log4cxx::helpers::Pool p
const [virtual]
 

Formats an log4cxx_time_t into a date/time string.

Parameters:
s string to which the date/time string is appended.
tm date to be formatted.
p memory pool used during formatting.

Implements DateFormat.

void setTimeZone const TimeZonePtr &  zone  )  [virtual]
 

Set time zone.

Parameters:
zone new time zone.

Reimplemented from DateFormat.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_simple_date_format-members.html100644 0 0 20172 10774263472 27507 0ustar 0 0 Apache log4cxx: Member List

SimpleDateFormat Member List

This is the complete list of members for SimpleDateFormat, including all inherited members.

addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
DateFormat()DateFormat [protected]
format(LogString &s, log4cxx_time_t tm, log4cxx::helpers::Pool &p) const SimpleDateFormat [virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
numberFormat(LogString &s, int n, log4cxx::helpers::Pool &p) const DateFormat [virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
setTimeZone(const TimeZonePtr &zone)SimpleDateFormat [virtual]
SimpleDateFormat(const LogString &pattern)SimpleDateFormat
SimpleDateFormat(const LogString &pattern, const std::locale *locale)SimpleDateFormat
~DateFormat()DateFormat [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~SimpleDateFormat()SimpleDateFormat
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_socket.html100644 0 0 32315 10774263472 23513 0ustar 0 0 Apache log4cxx: Socket Class Reference

Socket Class Reference

Inherits ObjectImpl.

List of all members.


Detailed Description

This class implements client sockets (also called just "sockets"). A socket is an endpoint for communication between two machines.

The actual work of the socket is performed by an instance of the SocketImpl class. An application, by changing the socket factory that creates the socket implementation, can configure itself to create sockets appropriate to the local firewall.


Public Member Functions

 Socket (InetAddressPtr &address, int port)
 Creates a stream socket and connects it to the specified port number at the specified IP address.
 Socket (apr_socket_t *socket, apr_pool_t *pool)
 ~Socket ()
size_t write (ByteBuffer &)
void close ()
 Closes this socket.
InetAddressPtr getInetAddress () const
 Returns the value of this socket's address field.
int getPort () const
 Returns the value of this socket's port field.


Constructor & Destructor Documentation

Socket InetAddressPtr &  address,
int  port
 

Creates a stream socket and connects it to the specified port number at the specified IP address.

Socket apr_socket_t *  socket,
apr_pool_t *  pool
 

~Socket  ) 
 


Member Function Documentation

void close  ) 
 

Closes this socket.

InetAddressPtr getInetAddress  )  const
 

Returns the value of this socket's address field.

int getPort  )  const
 

Returns the value of this socket's port field.

size_t write ByteBuffer  ) 
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_socket-members.html100644 0 0 16563 10774263472 25152 0ustar 0 0 Apache log4cxx: Member List

Socket Member List

This is the complete list of members for Socket, including all inherited members.

addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
close()Socket
getClass() const Object [virtual]
getInetAddress() const Socket
getPort() const Socket
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
Socket(InetAddressPtr &address, int port)Socket
Socket(apr_socket_t *socket, apr_pool_t *pool)Socket
write(ByteBuffer &)Socket
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~Socket()Socket
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_socket_output_stream.html100644 0 0 25317 10774263472 26512 0ustar 0 0 Apache log4cxx: SocketOutputStream Class Reference

SocketOutputStream Class Reference

Inherits OutputStream.

List of all members.

Public Member Functions

 SocketOutputStream (const SocketPtr &socket)
 ~SocketOutputStream ()
virtual void close (Pool &p)
virtual void flush (Pool &p)
virtual void write (ByteBuffer &buf, Pool &p)


Constructor & Destructor Documentation

SocketOutputStream const SocketPtr &  socket  ) 
 

~SocketOutputStream  ) 
 


Member Function Documentation

virtual void close Pool p  )  [virtual]
 

Implements OutputStream.

virtual void flush Pool p  )  [virtual]
 

Implements OutputStream.

virtual void write ByteBuffer buf,
Pool p
[virtual]
 

Implements OutputStream.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_socket_output_stream-members.html100644 0 0 17414 10774263472 30141 0ustar 0 0 Apache log4cxx: Member List

SocketOutputStream Member List

This is the complete list of members for SocketOutputStream, including all inherited members.

addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
close(Pool &p)SocketOutputStream [virtual]
flush(Pool &p)SocketOutputStream [virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
OutputStream()OutputStream [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
SocketOutputStream(const SocketPtr &socket)SocketOutputStream
write(ByteBuffer &buf, Pool &p)SocketOutputStream [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OutputStream()OutputStream [protected, virtual]
~SocketOutputStream()SocketOutputStream
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_strftime_date_format.html100644 0 0 27050 10774263472 26425 0ustar 0 0 Apache log4cxx: StrftimeDateFormat Class Reference

StrftimeDateFormat Class Reference

Inherits DateFormat.

List of all members.


Detailed Description

Concrete class for formatting and parsing dates in a locale-sensitive manner.


Public Member Functions

 StrftimeDateFormat (const LogString &pattern)
 Constructs a DateFormat using the given pattern and the default time zone.
 ~StrftimeDateFormat ()
virtual void format (LogString &s, log4cxx_time_t tm, log4cxx::helpers::Pool &p) const
 Formats an log4cxx_time_t into a date/time string.
void setTimeZone (const TimeZonePtr &zone)
 Set time zone.


Constructor & Destructor Documentation

StrftimeDateFormat const LogString pattern  ) 
 

Constructs a DateFormat using the given pattern and the default time zone.

Parameters:
pattern the pattern describing the date and time format

~StrftimeDateFormat  ) 
 


Member Function Documentation

virtual void format LogString s,
log4cxx_time_t  tm,
log4cxx::helpers::Pool p
const [virtual]
 

Formats an log4cxx_time_t into a date/time string.

Parameters:
s string to which the date/time string is appended.
tm date to be formatted.
p memory pool used during formatting.

Implements DateFormat.

void setTimeZone const TimeZonePtr &  zone  )  [virtual]
 

Set time zone.

Parameters:
zone new time zone.

Reimplemented from DateFormat.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_strftime_date_format-members.html100644 0 0 17521 10774263472 30057 0ustar 0 0 Apache log4cxx: Member List

StrftimeDateFormat Member List

This is the complete list of members for StrftimeDateFormat, including all inherited members.

addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
DateFormat()DateFormat [protected]
format(LogString &s, log4cxx_time_t tm, log4cxx::helpers::Pool &p) const StrftimeDateFormat [virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
numberFormat(LogString &s, int n, log4cxx::helpers::Pool &p) const DateFormat [virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
setTimeZone(const TimeZonePtr &zone)StrftimeDateFormat [virtual]
StrftimeDateFormat(const LogString &pattern)StrftimeDateFormat
~DateFormat()DateFormat [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~StrftimeDateFormat()StrftimeDateFormat
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_strict_math.html100644 0 0 15302 10774263472 24541 0ustar 0 0 Apache log4cxx: StrictMath Class Reference

StrictMath Class Reference

List of all members.

Detailed Description

The class StrictMath contains methods for performing basic numeric operations.


Static Public Member Functions

template<typename _type>
static const _type & minimum (const _type &a, const _type &b)
template<typename _type>
static const _type & maximum (const _type &a, const _type &b)


Member Function Documentation

static const _type& maximum const _type &  a,
const _type &  b
[inline, static]
 

static const _type& minimum const _type &  a,
const _type &  b
[inline, static]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_strict_math-members.html100644 0 0 6577 10774263472 26167 0ustar 0 0 Apache log4cxx: Member List

StrictMath Member List

This is the complete list of members for StrictMath, including all inherited members.

maximum(const _type &a, const _type &b)StrictMath [inline, static]
minimum(const _type &a, const _type &b)StrictMath [inline, static]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_string_helper.html100644 0 0 65345 10774263472 25101 0ustar 0 0 Apache log4cxx: StringHelper Class Reference

StringHelper Class Reference

List of all members.

Detailed Description

String manipulation routines.


Static Public Member Functions

static LogString trim (const LogString &s)
static bool startsWith (const LogString &s, const LogString &suffix)
static bool endsWith (const LogString &s, const LogString &suffix)
static bool equalsIgnoreCase (const LogString &s1, const logchar *upper, const logchar *lower)
static bool equalsIgnoreCase (const LogString &s1, const LogString &upper, const LogString &lower)
static int toInt (const LogString &s)
static log4cxx_int64_t toInt64 (const LogString &s)
static void toString (int i, log4cxx::helpers::Pool &pool, LogString &dst)
static void toString (log4cxx_int64_t i, log4cxx::helpers::Pool &pool, LogString &dst)
static void toString (size_t i, log4cxx::helpers::Pool &pool, LogString &dst)
static void toString (bool val, LogString &dst)
static LogString toLowerCase (const LogString &s)
static LogString format (const LogString &pattern, const std::vector< LogString > &params)


Member Function Documentation

static bool endsWith const LogString s,
const LogString suffix
[static]
 

static bool equalsIgnoreCase const LogString s1,
const LogString upper,
const LogString lower
[static]
 

static bool equalsIgnoreCase const LogString s1,
const logchar *  upper,
const logchar *  lower
[static]
 

static LogString format const LogString pattern,
const std::vector< LogString > &  params
[static]
 

static bool startsWith const LogString s,
const LogString suffix
[static]
 

static int toInt const LogString s  )  [static]
 

static log4cxx_int64_t toInt64 const LogString s  )  [static]
 

static LogString toLowerCase const LogString s  )  [static]
 

static void toString bool  val,
LogString dst
[static]
 

static void toString size_t  i,
log4cxx::helpers::Pool pool,
LogString dst
[static]
 

static void toString log4cxx_int64_t  i,
log4cxx::helpers::Pool pool,
LogString dst
[static]
 

static void toString int  i,
log4cxx::helpers::Pool pool,
LogString dst
[static]
 

static LogString trim const LogString s  )  [static]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_string_helper-members.html100644 0 0 15630 10774263472 26521 0ustar 0 0 Apache log4cxx: Member List

StringHelper Member List

This is the complete list of members for StringHelper, including all inherited members.

endsWith(const LogString &s, const LogString &suffix)StringHelper [static]
equalsIgnoreCase(const LogString &s1, const logchar *upper, const logchar *lower)StringHelper [static]
equalsIgnoreCase(const LogString &s1, const LogString &upper, const LogString &lower)StringHelper [static]
format(const LogString &pattern, const std::vector< LogString > &params)StringHelper [static]
startsWith(const LogString &s, const LogString &suffix)StringHelper [static]
toInt(const LogString &s)StringHelper [static]
toInt64(const LogString &s)StringHelper [static]
toLowerCase(const LogString &s)StringHelper [static]
toString(int i, log4cxx::helpers::Pool &pool, LogString &dst)StringHelper [static]
toString(log4cxx_int64_t i, log4cxx::helpers::Pool &pool, LogString &dst)StringHelper [static]
toString(size_t i, log4cxx::helpers::Pool &pool, LogString &dst)StringHelper [static]
toString(bool val, LogString &dst)StringHelper [static]
trim(const LogString &s)StringHelper [static]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_string_tokenizer.html100644 0 0 30055 10774263472 25622 0ustar 0 0 Apache log4cxx: StringTokenizer Class Reference

StringTokenizer Class Reference

List of all members.

Public Member Functions

 StringTokenizer (const LogString &str, const LogString &delim)
 ~StringTokenizer ()
bool hasMoreTokens () const
LogString nextToken ()

Protected Attributes

LogString src
LogString delim
size_t pos

Constructor & Destructor Documentation

StringTokenizer const LogString str,
const LogString delim
 

~StringTokenizer  ) 
 


Member Function Documentation

bool hasMoreTokens  )  const
 

LogString nextToken  ) 
 


Member Data Documentation

LogString delim [protected]
 

size_t pos [protected]
 

LogString src [protected]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_string_tokenizer-members.html100644 0 0 11321 10774263472 27245 0ustar 0 0 Apache log4cxx: Member List

StringTokenizer Member List

This is the complete list of members for StringTokenizer, including all inherited members.

delimStringTokenizer [protected]
hasMoreTokens() const StringTokenizer
nextToken()StringTokenizer
posStringTokenizer [protected]
srcStringTokenizer [protected]
StringTokenizer(const LogString &str, const LogString &delim)StringTokenizer
~StringTokenizer()StringTokenizer
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1synchronized.html100644 0 0 13627 10774263472 24610 0ustar 0 0 Apache log4cxx: synchronized Class Reference

synchronized Class Reference

List of all members.

Detailed Description

utility class for objects multi-thread synchronization.


Public Member Functions

 synchronized (const Mutex &mutex)
 ~synchronized ()


Constructor & Destructor Documentation

synchronized const Mutex mutex  ) 
 

~synchronized  ) 
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1synchronized-members.html100644 0 0 6440 10774263472 26213 0ustar 0 0 Apache log4cxx: Member List

synchronized Member List

This is the complete list of members for synchronized, including all inherited members.

synchronized(const Mutex &mutex)synchronized
~synchronized()synchronized
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_syslog_writer.html100644 0 0 14676 10774263472 25151 0ustar 0 0 Apache log4cxx: SyslogWriter Class Reference

SyslogWriter Class Reference

List of all members.

Detailed Description

SyslogWriter is a wrapper around the DatagramSocket class it writes text to the specified host on the port 514 (UNIX syslog).


Public Member Functions

 SyslogWriter (const LogString &syslogHost)
void write (const LogString &string)


Constructor & Destructor Documentation

SyslogWriter const LogString syslogHost  ) 
 


Member Function Documentation

void write const LogString string  ) 
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_syslog_writer-members.html100644 0 0 6506 10774263472 26552 0ustar 0 0 Apache log4cxx: Member List

SyslogWriter Member List

This is the complete list of members for SyslogWriter, including all inherited members.

SyslogWriter(const LogString &syslogHost)SyslogWriter
write(const LogString &string)SyslogWriter
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_system.html100644 0 0 13677 10774263472 23561 0ustar 0 0 Apache log4cxx: System Class Reference

System Class Reference

List of all members.

Detailed Description

The System class contains several useful class fields and methods.

It cannot be instantiated.


Static Public Member Functions

static LogString getProperty (const LogString &key)
 Gets the system property indicated by the specified key.


Member Function Documentation

static LogString getProperty const LogString key  )  [static]
 

Gets the system property indicated by the specified key.

Parameters:
key the name of the system property.
Returns:
the string value of the system property, or the default value if there is no property with that key.
Exceptions:
IllegalArgumentException if key is empty.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_system-members.html100644 0 0 6027 10774263472 25160 0ustar 0 0 Apache log4cxx: Member List

System Member List

This is the complete list of members for System, including all inherited members.

getProperty(const LogString &key)System [static]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_system_err_writer.html100644 0 0 32150 10774263472 26010 0ustar 0 0 Apache log4cxx: SystemErrWriter Class Reference

SystemErrWriter Class Reference

Inherits Writer.

List of all members.


Detailed Description

Abstract class for writing to character streams.


Public Member Functions

 SystemErrWriter ()
virtual ~SystemErrWriter ()
virtual void close (Pool &p)
virtual void flush (Pool &p)
virtual void write (const LogString &str, Pool &p)

Static Public Member Functions

static void write (const LogString &str)
static void flush ()


Constructor & Destructor Documentation

SystemErrWriter  ) 
 

virtual ~SystemErrWriter  )  [virtual]
 


Member Function Documentation

virtual void close Pool p  )  [virtual]
 

Implements Writer.

static void flush  )  [static]
 

virtual void flush Pool p  )  [virtual]
 

Implements Writer.

static void write const LogString str  )  [static]
 

virtual void write const LogString str,
Pool p
[virtual]
 

Implements Writer.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_system_err_writer-members.html100644 0 0 20355 10774263472 27444 0ustar 0 0 Apache log4cxx: Member List

SystemErrWriter Member List

This is the complete list of members for SystemErrWriter, including all inherited members.

addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
close(Pool &p)SystemErrWriter [virtual]
flush(Pool &p)SystemErrWriter [virtual]
flush()SystemErrWriter [static]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
SystemErrWriter()SystemErrWriter
write(const LogString &str, Pool &p)SystemErrWriter [virtual]
write(const LogString &str)SystemErrWriter [static]
Writer()Writer [protected]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~SystemErrWriter()SystemErrWriter [virtual]
~Writer()Writer [protected, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_system_out_writer.html100644 0 0 32102 10774263472 26024 0ustar 0 0 Apache log4cxx: SystemOutWriter Class Reference

SystemOutWriter Class Reference

Inherits Writer.

List of all members.


Detailed Description

Abstract class for writing to character streams.


Public Member Functions

 SystemOutWriter ()
 ~SystemOutWriter ()
virtual void close (Pool &p)
virtual void flush (Pool &p)
virtual void write (const LogString &str, Pool &p)

Static Public Member Functions

static void write (const LogString &str)
static void flush ()


Constructor & Destructor Documentation

SystemOutWriter  ) 
 

~SystemOutWriter  ) 
 


Member Function Documentation

virtual void close Pool p  )  [virtual]
 

Implements Writer.

static void flush  )  [static]
 

virtual void flush Pool p  )  [virtual]
 

Implements Writer.

static void write const LogString str  )  [static]
 

virtual void write const LogString str,
Pool p
[virtual]
 

Implements Writer.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_system_out_writer-members.html100644 0 0 20326 10774263472 27461 0ustar 0 0 Apache log4cxx: Member List

SystemOutWriter Member List

This is the complete list of members for SystemOutWriter, including all inherited members.

addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
close(Pool &p)SystemOutWriter [virtual]
flush(Pool &p)SystemOutWriter [virtual]
flush()SystemOutWriter [static]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
SystemOutWriter()SystemOutWriter
write(const LogString &str, Pool &p)SystemOutWriter [virtual]
write(const LogString &str)SystemOutWriter [static]
Writer()Writer [protected]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~SystemOutWriter()SystemOutWriter
~Writer()Writer [protected, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_thread.html100644 0 0 47065 10774263472 23502 0ustar 0 0 Apache log4cxx: Thread Class Reference

Thread Class Reference

List of all members.

Detailed Description

This class implements an approximation of java.util.Thread.


Public Member Functions

 Thread ()
 Create new instance.
 ~Thread ()
 Destructor.
void run (Runnable start, void *data)
 Runs the specified method on a newly created thread.
void join ()
bool isActive ()
void interrupt ()
 Sets interrupted status to true.
bool isAlive ()
bool isCurrentThread () const
void ending ()

Static Public Member Functions

static void sleep (int millis)
 Causes the currently executing thread to sleep for the specified number of milliseconds.
static void currentThreadInterrupt ()
 Sets interrupted status for current thread to true.
static bool interrupted ()
 Tests if the current thread has been interrupted and sets the interrupted status to false.

Classes

class  LaunchPackage
 This class is used to encapsulate the parameters to Thread::run when they are passed to Thread::launcher.
class  LaunchStatus
 This object atomically sets the specified memory location to non-zero on construction and to zero on destruction.


Constructor & Destructor Documentation

Thread  ) 
 

Create new instance.

~Thread  ) 
 

Destructor.


Member Function Documentation

static void currentThreadInterrupt  )  [static]
 

Sets interrupted status for current thread to true.

void ending  ) 
 

void interrupt  ) 
 

Sets interrupted status to true.

static bool interrupted  )  [static]
 

Tests if the current thread has been interrupted and sets the interrupted status to false.

bool isActive  )  [inline]
 

bool isAlive  ) 
 

bool isCurrentThread  )  const
 

void join  ) 
 

void run Runnable  start,
void *  data
 

Runs the specified method on a newly created thread.

static void sleep int  millis  )  [static]
 

Causes the currently executing thread to sleep for the specified number of milliseconds.

Parameters:
millis milliseconds.
Exceptions:
Interrupted Exception if the thread is interrupted.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_thread-members.html100644 0 0 13176 10774263472 25126 0ustar 0 0 Apache log4cxx: Member List

Thread Member List

This is the complete list of members for Thread, including all inherited members.

currentThreadInterrupt()Thread [static]
ending()Thread
interrupt()Thread
interrupted()Thread [static]
isActive()Thread [inline]
isAlive()Thread
isCurrentThread() const Thread
join()Thread
run(Runnable start, void *data)Thread
sleep(int millis)Thread [static]
Thread()Thread
~Thread()Thread
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_thread_local.html100644 0 0 22045 10774263472 24643 0ustar 0 0 Apache log4cxx: ThreadLocal Class Reference

ThreadLocal Class Reference

List of all members.

Detailed Description

This class provides thread-local variables.

This class is similar in function to java.lang.ThreadLocal.


Public Member Functions

 ThreadLocal ()
 Create new instance.
 ~ThreadLocal ()
 Destructor.
void set (void *priv)
 Sets the value in the current thread's copy of this thread-local variable.
void * get ()
 Returns the value in the current thread's copy of this thread-local variable.


Constructor & Destructor Documentation

ThreadLocal  ) 
 

Create new instance.

~ThreadLocal  ) 
 

Destructor.


Member Function Documentation

void* get  ) 
 

Returns the value in the current thread's copy of this thread-local variable.

Returns:
value of thread-local variable for the current thread.

void set void *  priv  ) 
 

Sets the value in the current thread's copy of this thread-local variable.

Parameters:
priv new value.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_thread_local-members.html100644 0 0 7377 10774263472 26266 0ustar 0 0 Apache log4cxx: Member List

ThreadLocal Member List

This is the complete list of members for ThreadLocal, including all inherited members.

get()ThreadLocal
set(void *priv)ThreadLocal
ThreadLocal()ThreadLocal
~ThreadLocal()ThreadLocal
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_thread_specific_data.html100644 0 0 37544 10774263472 26341 0ustar 0 0 Apache log4cxx: ThreadSpecificData Class Reference

ThreadSpecificData Class Reference

List of all members.

Detailed Description

This class contains all the thread-specific data in use by log4cxx.


Public Member Functions

 ThreadSpecificData ()
 ~ThreadSpecificData ()
void recycle ()
 Release this ThreadSpecficData if empty.
log4cxx::NDC::StackgetStack ()
log4cxx::MDC::MapgetMap ()

Static Public Member Functions

static ThreadSpecificDatagetCurrentData ()
 Gets current thread specific data.
static void put (const LogString &key, const LogString &val)
static void push (const LogString &val)
static void inherit (const log4cxx::NDC::Stack &stack)


Constructor & Destructor Documentation

ThreadSpecificData  ) 
 

~ThreadSpecificData  ) 
 


Member Function Documentation

static ThreadSpecificData* getCurrentData  )  [static]
 

Gets current thread specific data.

Returns:
thread specific data, may be null.

log4cxx::MDC::Map& getMap  ) 
 

log4cxx::NDC::Stack& getStack  ) 
 

static void inherit const log4cxx::NDC::Stack stack  )  [static]
 

static void push const LogString val  )  [static]
 

static void put const LogString key,
const LogString val
[static]
 

void recycle  ) 
 

Release this ThreadSpecficData if empty.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_thread_specific_data-members.html100644 0 0 12630 10774263472 27756 0ustar 0 0 Apache log4cxx: Member List

ThreadSpecificData Member List

This is the complete list of members for ThreadSpecificData, including all inherited members.

getCurrentData()ThreadSpecificData [static]
getMap()ThreadSpecificData
getStack()ThreadSpecificData
inherit(const log4cxx::NDC::Stack &stack)ThreadSpecificData [static]
push(const LogString &val)ThreadSpecificData [static]
put(const LogString &key, const LogString &val)ThreadSpecificData [static]
recycle()ThreadSpecificData
ThreadSpecificData()ThreadSpecificData
~ThreadSpecificData()ThreadSpecificData
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_time_zone.html100644 0 0 33724 10774263472 24221 0ustar 0 0 Apache log4cxx: TimeZone Class Reference

TimeZone Class Reference

Inherits ObjectImpl.

List of all members.

Public Member Functions

const LogString getID () const
virtual log4cxx_status_t explode (apr_time_exp_t *result, log4cxx_time_t input) const =0
 Expand an APR time into the human readable components for this timezone.

Static Public Member Functions

static const TimeZonePtr & getDefault ()
static const TimeZonePtr & getGMT ()
static const TimeZonePtr getTimeZone (const LogString &ID)

Protected Member Functions

 TimeZone (const LogString &ID)
virtual ~TimeZone ()

Protected Attributes

const LogString id


Constructor & Destructor Documentation

TimeZone const LogString ID  )  [protected]
 

virtual ~TimeZone  )  [protected, virtual]
 


Member Function Documentation

virtual log4cxx_status_t explode apr_time_exp_t *  result,
log4cxx_time_t  input
const [pure virtual]
 

Expand an APR time into the human readable components for this timezone.

static const TimeZonePtr& getDefault  )  [static]
 

static const TimeZonePtr& getGMT  )  [static]
 

const LogString getID  )  const [inline]
 

static const TimeZonePtr getTimeZone const LogString ID  )  [static]
 


Member Data Documentation

const LogString id [protected]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_time_zone-members.html100644 0 0 17553 10774263472 25653 0ustar 0 0 Apache log4cxx: Member List

TimeZone Member List

This is the complete list of members for TimeZone, including all inherited members.

addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
explode(apr_time_exp_t *result, log4cxx_time_t input) const =0TimeZone [pure virtual]
getClass() const Object [virtual]
getDefault()TimeZone [static]
getGMT()TimeZone [static]
getID() const TimeZone [inline]
getStaticClass()Object [static]
getTimeZone(const LogString &ID)TimeZone [static]
idTimeZone [protected]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
TimeZone(const LogString &ID)TimeZone [protected]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~TimeZone()TimeZone [protected, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_transcoder.html100644 0 0 151370 10774263472 24412 0ustar 0 0 Apache log4cxx: Transcoder Class Reference

Transcoder Class Reference

List of all members.

Detailed Description

Simple transcoder for converting between external char and wchar_t strings and internal strings.


Public Types

enum  { LOSSCHAR = 0x3F }

Static Public Member Functions

static void decodeUTF8 (const std::string &src, LogString &dst)
 Appends this specified string of UTF-8 characters to LogString.
static void encodeUTF8 (const LogString &src, std::string &dst)
 Converts the LogString to a UTF-8 string.
static char * encodeUTF8 (const LogString &src, log4cxx::helpers::Pool &p)
 Converts the LogString to a UTF-8 string.
static void encodeUTF8 (unsigned int sv, ByteBuffer &dst)
 Append UCS-4 code point to a byte buffer as UTF-8.
static void encodeUTF16LE (unsigned int sv, ByteBuffer &dst)
 Append UCS-4 code point to a byte buffer as UTF-16LE.
static void encodeUTF16BE (unsigned int sv, ByteBuffer &dst)
 Append UCS-4 code point to a byte buffer as UTF-16BE.
static unsigned int decode (const std::string &in, std::string::const_iterator &iter)
 Decodes next character from a UTF-8 string.
static void encode (unsigned int ch, std::string &dst)
 Appends UCS-4 value to a UTF-8 string.
static void decode (const std::string &src, LogString &dst)
 Appends string in the current code-page to a LogString.
static void encode (const LogString &src, std::string &dst)
 Appends a LogString to a string in the current code-page.
static char * encode (const LogString &src, log4cxx::helpers::Pool &p)
 Encodes the specified LogString to the current character set.
static void decode (const std::wstring &src, LogString &dst)
static void encode (const LogString &src, std::wstring &dst)
static wchar_t * wencode (const LogString &src, log4cxx::helpers::Pool &p)
static unsigned int decode (const std::wstring &in, std::wstring::const_iterator &iter)
 Decodes next character from a wstring.
static void encode (unsigned int ch, std::wstring &dst)
 Appends UCS-4 value to a UTF-8 string.
static void decode (const std::basic_string< UniChar > &src, LogString &dst)
static void encode (const LogString &src, std::basic_string< UniChar > &dst)
static unsigned int decode (const std::basic_string< UniChar > &in, std::basic_string< UniChar >::const_iterator &iter)
 Decodes next character from a UniChar string.
static void encode (unsigned int ch, std::basic_string< UniChar > &dst)
 Appends UCS-4 value to a UTF-8 string.
static void decode (const CFStringRef &src, LogString &dst)
static CFStringRef encode (const LogString &src)
static logchar decode (char v)
 Returns a logchar value given a character literal in the ASCII charset.
static LogString decode (const char *v)
 Returns a LogString given a string literal in the ASCII charset.
static std::string encodeCharsetName (const LogString &charsetName)
 Encodes a charset name in the default encoding without using a CharsetEncoder (which could trigger recursion).


Member Enumeration Documentation

anonymous enum
 

Enumerator:
LOSSCHAR 


Member Function Documentation

static LogString decode const char *  v  )  [static]
 

Returns a LogString given a string literal in the ASCII charset.

Used to implement the LOG4CXX_STR macro for EBCDIC and UNICHAR.

static logchar decode char  v  )  [static]
 

Returns a logchar value given a character literal in the ASCII charset.

Used to implement the LOG4CXX_STR macro for EBCDIC and UNICHAR.

static void decode const CFStringRef src,
LogString dst
[static]
 

static unsigned int decode const std::basic_string< UniChar > &  in,
std::basic_string< UniChar >::const_iterator &  iter
[static]
 

Decodes next character from a UniChar string.

Parameters:
in string from which the character is extracted.
iter iterator addressing start of character, will be advanced to next character if successful.
Returns:
scalar value (UCS-4) or 0xFFFF if invalid sequence.

static void decode const std::basic_string< UniChar > &  src,
LogString dst
[static]
 

static unsigned int decode const std::wstring &  in,
std::wstring::const_iterator &  iter
[static]
 

Decodes next character from a wstring.

Parameters:
in string from which the character is extracted.
iter iterator addressing start of character, will be advanced to next character if successful.
Returns:
scalar value (UCS-4) or 0xFFFF if invalid sequence.

static void decode const std::wstring &  src,
LogString dst
[static]
 

static void decode const std::string &  src,
LogString dst
[static]
 

Appends string in the current code-page to a LogString.

static unsigned int decode const std::string &  in,
std::string::const_iterator &  iter
[static]
 

Decodes next character from a UTF-8 string.

Parameters:
in string from which the character is extracted.
iter iterator addressing start of character, will be advanced to next character if successful.
Returns:
scalar value (UCS-4) or 0xFFFF if invalid sequence.

static void decodeUTF8 const std::string &  src,
LogString dst
[static]
 

Appends this specified string of UTF-8 characters to LogString.

static CFStringRef encode const LogString src  )  [static]
 

static void encode unsigned int  ch,
std::basic_string< UniChar > &  dst
[static]
 

Appends UCS-4 value to a UTF-8 string.

Parameters:
ch UCS-4 value.
dst destination.

static void encode const LogString src,
std::basic_string< UniChar > &  dst
[static]
 

static void encode unsigned int  ch,
std::wstring &  dst
[static]
 

Appends UCS-4 value to a UTF-8 string.

Parameters:
ch UCS-4 value.
dst destination.

static void encode const LogString src,
std::wstring &  dst
[static]
 

static char* encode const LogString src,
log4cxx::helpers::Pool p
[static]
 

Encodes the specified LogString to the current character set.

Parameters:
src string to encode.
p pool from which to allocate return value.
Returns:
pool allocated string.

static void encode const LogString src,
std::string &  dst
[static]
 

Appends a LogString to a string in the current code-page.

Unrepresentable characters may be replaced with loss characters.

static void encode unsigned int  ch,
std::string &  dst
[static]
 

Appends UCS-4 value to a UTF-8 string.

Parameters:
ch UCS-4 value.
dst destination.

static std::string encodeCharsetName const LogString charsetName  )  [static]
 

Encodes a charset name in the default encoding without using a CharsetEncoder (which could trigger recursion).

static void encodeUTF16BE unsigned int  sv,
ByteBuffer dst
[static]
 

Append UCS-4 code point to a byte buffer as UTF-16BE.

static void encodeUTF16LE unsigned int  sv,
ByteBuffer dst
[static]
 

Append UCS-4 code point to a byte buffer as UTF-16LE.

static void encodeUTF8 unsigned int  sv,
ByteBuffer dst
[static]
 

Append UCS-4 code point to a byte buffer as UTF-8.

static char* encodeUTF8 const LogString src,
log4cxx::helpers::Pool p
[static]
 

Converts the LogString to a UTF-8 string.

static void encodeUTF8 const LogString src,
std::string &  dst
[static]
 

Converts the LogString to a UTF-8 string.

static wchar_t* wencode const LogString src,
log4cxx::helpers::Pool p
[static]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_transcoder-members.html100644 0 0 25354 10774263472 26024 0ustar 0 0 Apache log4cxx: Member List

Transcoder Member List

This is the complete list of members for Transcoder, including all inherited members.

decode(const std::string &in, std::string::const_iterator &iter)Transcoder [static]
decode(const std::string &src, LogString &dst)Transcoder [static]
decode(const std::wstring &src, LogString &dst)Transcoder [static]
decode(const std::wstring &in, std::wstring::const_iterator &iter)Transcoder [static]
decode(const std::basic_string< UniChar > &src, LogString &dst)Transcoder [static]
decode(const std::basic_string< UniChar > &in, std::basic_string< UniChar >::const_iterator &iter)Transcoder [static]
decode(const CFStringRef &src, LogString &dst)Transcoder [static]
decode(char v)Transcoder [static]
decode(const char *v)Transcoder [static]
decodeUTF8(const std::string &src, LogString &dst)Transcoder [static]
encode(unsigned int ch, std::string &dst)Transcoder [static]
encode(const LogString &src, std::string &dst)Transcoder [static]
encode(const LogString &src, log4cxx::helpers::Pool &p)Transcoder [static]
encode(const LogString &src, std::wstring &dst)Transcoder [static]
encode(unsigned int ch, std::wstring &dst)Transcoder [static]
encode(const LogString &src, std::basic_string< UniChar > &dst)Transcoder [static]
encode(unsigned int ch, std::basic_string< UniChar > &dst)Transcoder [static]
encode(const LogString &src)Transcoder [static]
encodeCharsetName(const LogString &charsetName)Transcoder [static]
encodeUTF16BE(unsigned int sv, ByteBuffer &dst)Transcoder [static]
encodeUTF16LE(unsigned int sv, ByteBuffer &dst)Transcoder [static]
encodeUTF8(const LogString &src, std::string &dst)Transcoder [static]
encodeUTF8(const LogString &src, log4cxx::helpers::Pool &p)Transcoder [static]
encodeUTF8(unsigned int sv, ByteBuffer &dst)Transcoder [static]
LOSSCHAR enum valueTranscoder
wencode(const LogString &src, log4cxx::helpers::Pool &p)Transcoder [static]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_transform.html100644 0 0 21774 10774263472 24245 0ustar 0 0 Apache log4cxx: Transform Class Reference

Transform Class Reference

List of all members.

Detailed Description

Utility class for transforming strings.


Static Public Member Functions

static void appendEscapingTags (LogString &buf, const LogString &input)
 This method takes a string which may contain HTML tags (ie, <b>, <table>, etc) and replaces any '<' and '>' characters with respective predefined entity references.
static void appendEscapingCDATA (LogString &buf, const LogString &input)
 Ensures that embeded CDEnd strings (]]>) are handled properly within message, NDC and throwable tag text.


Member Function Documentation

static void appendEscapingCDATA LogString buf,
const LogString input
[static]
 

Ensures that embeded CDEnd strings (]]>) are handled properly within message, NDC and throwable tag text.

Parameters:
buf output stream holding the XML data to this point. The initial CDStart (<![CDATA[) and final CDEnd (]]>) of the CDATA section are the responsibility of the calling method.
input The String that is inserted into an existing CDATA Section within buf.

static void appendEscapingTags LogString buf,
const LogString input
[static]
 

This method takes a string which may contain HTML tags (ie, <b>, <table>, etc) and replaces any '<' and '>' characters with respective predefined entity references.

Parameters:
buf output stream where to write the modified string.
input The text to be converted.
Returns:
The input string with the characters '<' and '>' replaced with &lt; and &gt; respectively.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_transform-members.html100644 0 0 6610 10774263472 25645 0ustar 0 0 Apache log4cxx: Member List

Transform Member List

This is the complete list of members for Transform, including all inherited members.

appendEscapingCDATA(LogString &buf, const LogString &input)Transform [static]
appendEscapingTags(LogString &buf, const LogString &input)Transform [static]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_writer.html100644 0 0 30130 10774263472 23530 0ustar 0 0 Apache log4cxx: Writer Class Reference

Writer Class Reference

Inherits ObjectImpl.

Inherited by BufferedWriter, OutputStreamWriter, SystemErrWriter, and SystemOutWriter.

List of all members.


Detailed Description

Abstract class for writing to character streams.


Public Member Functions

virtual void close (Pool &p)=0
virtual void flush (Pool &p)=0
virtual void write (const LogString &str, Pool &p)=0

Protected Member Functions

 Writer ()
virtual ~Writer ()


Constructor & Destructor Documentation

Writer  )  [protected]
 

virtual ~Writer  )  [protected, virtual]
 


Member Function Documentation

virtual void close Pool p  )  [pure virtual]
 

Implemented in BufferedWriter, OutputStreamWriter, SystemErrWriter, and SystemOutWriter.

virtual void flush Pool p  )  [pure virtual]
 

Implemented in BufferedWriter, OutputStreamWriter, SystemErrWriter, and SystemOutWriter.

virtual void write const LogString str,
Pool p
[pure virtual]
 

Implemented in BufferedWriter, OutputStreamWriter, SystemErrWriter, and SystemOutWriter.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_writer-members.html100644 0 0 16000 10774263472 25160 0ustar 0 0 Apache log4cxx: Member List

Writer Member List

This is the complete list of members for Writer, including all inherited members.

addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
close(Pool &p)=0Writer [pure virtual]
flush(Pool &p)=0Writer [pure virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
write(const LogString &str, Pool &p)=0Writer [pure virtual]
Writer()Writer [protected]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~Writer()Writer [protected, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_d_o_m_exception.html100644 0 0 11156 10774263472 25356 0ustar 0 0 Apache log4cxx: DOMException Class Reference

DOMException Class Reference

Inherits RuntimeException.

List of all members.

Public Member Functions

 DOMException ()


Constructor & Destructor Documentation

DOMException  )  [inline]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_d_o_m_exception-members.html100644 0 0 13023 10774263472 27001 0ustar 0 0 Apache log4cxx: Member List

DOMException Member List

This is the complete list of members for DOMException, including all inherited members.

DOMException()DOMException [inline]
Exception(const char *msg)Exception
Exception(const LogString &msg)Exception
Exception(const Exception &src)Exception
operator=(const RuntimeException &src)RuntimeException
log4cxx::helpers::Exception::operator=(const Exception &src)Exception
RuntimeException(log4cxx_status_t stat)RuntimeException
RuntimeException(const LogString &msg)RuntimeException
RuntimeException(const RuntimeException &msg)RuntimeException
what() const Exception
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_x_m_l_d_o_m_node.html100644 0 0 24440 10774263472 25463 0ustar 0 0 Apache log4cxx: XMLDOMNode Class Reference

XMLDOMNode Class Reference

Inherits Object.

Inherited by XMLDOMDocument [virtual], and XMLDOMElement [virtual].

List of all members.


Detailed Description

The XMLDOMNode interface is the primary datatype for the entire Document Object Model.


Public Types

enum  XMLDOMNodeType { NOT_IMPLEMENTED_NODE = 0, ELEMENT_NODE = 1, DOCUMENT_NODE = 9 }

Public Member Functions

virtual XMLDOMNodeListPtr getChildNodes ()=0
virtual XMLDOMNodeType getNodeType ()=0
virtual XMLDOMDocumentPtr getOwnerDocument ()=0


Member Enumeration Documentation

enum XMLDOMNodeType
 

Enumerator:
NOT_IMPLEMENTED_NODE 
ELEMENT_NODE 
DOCUMENT_NODE 


Member Function Documentation

virtual XMLDOMNodeListPtr getChildNodes  )  [pure virtual]
 

virtual XMLDOMNodeType getNodeType  )  [pure virtual]
 

virtual XMLDOMDocumentPtr getOwnerDocument  )  [pure virtual]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_x_m_l_d_o_m_node-members.html100644 0 0 15645 10774263472 27122 0ustar 0 0 Apache log4cxx: Member List

XMLDOMNode Member List

This is the complete list of members for XMLDOMNode, including all inherited members.

addRef() const =0Object [pure virtual]
cast(const Class &clazz) const =0Object [pure virtual]
DOCUMENT_NODE enum valueXMLDOMNode
ELEMENT_NODE enum valueXMLDOMNode
getChildNodes()=0XMLDOMNode [pure virtual]
getClass() const Object [virtual]
getNodeType()=0XMLDOMNode [pure virtual]
getOwnerDocument()=0XMLDOMNode [pure virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
NOT_IMPLEMENTED_NODE enum valueXMLDOMNode
registerClass()Object [static]
releaseRef() const =0Object [pure virtual]
XMLDOMNodeType enum nameXMLDOMNode
~Object()Object [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_x_m_l_d_o_m_element.html100644 0 0 14761 10774263472 26174 0ustar 0 0 Apache log4cxx: XMLDOMElement Class Reference

XMLDOMElement Class Reference

Inherits XMLDOMNode.

List of all members.


Detailed Description

The XMLDOMElement interface represents an element in an XML document.


Public Member Functions

virtual LogString getTagName ()=0
virtual LogString getAttribute (const LogString &name)=0


Member Function Documentation

virtual LogString getAttribute const LogString name  )  [pure virtual]
 

virtual LogString getTagName  )  [pure virtual]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_x_m_l_d_o_m_element-members.html100644 0 0 17037 10774263472 27623 0ustar 0 0 Apache log4cxx: Member List

XMLDOMElement Member List

This is the complete list of members for XMLDOMElement, including all inherited members.

addRef() const =0Object [pure virtual]
cast(const Class &clazz) const =0Object [pure virtual]
DOCUMENT_NODE enum valueXMLDOMNode
ELEMENT_NODE enum valueXMLDOMNode
getAttribute(const LogString &name)=0XMLDOMElement [pure virtual]
getChildNodes()=0XMLDOMNode [pure virtual]
getClass() const Object [virtual]
getNodeType()=0XMLDOMNode [pure virtual]
getOwnerDocument()=0XMLDOMNode [pure virtual]
getStaticClass()Object [static]
getTagName()=0XMLDOMElement [pure virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
NOT_IMPLEMENTED_NODE enum valueXMLDOMNode
registerClass()Object [static]
releaseRef() const =0Object [pure virtual]
XMLDOMNodeType enum nameXMLDOMNode
~Object()Object [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_x_m_l_d_o_m_document.html100644 0 0 20215 10774263472 26350 0ustar 0 0 Apache log4cxx: XMLDOMDocument Class Reference

XMLDOMDocument Class Reference

Inherits XMLDOMNode.

List of all members.


Detailed Description

The XMLDOMDocument interface represents an entire XML document.

Conceptually, it is the root of the document tree, and provides the primary access to the document's data.


Public Member Functions

virtual void load (const File &fileName)=0
virtual XMLDOMElementPtr getDocumentElement ()=0
virtual XMLDOMElementPtr getElementById (const LogString &tagName, const LogString &elementId)=0


Member Function Documentation

virtual XMLDOMElementPtr getDocumentElement  )  [pure virtual]
 

virtual XMLDOMElementPtr getElementById const LogString tagName,
const LogString elementId
[pure virtual]
 

virtual void load const File fileName  )  [pure virtual]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_x_m_l_d_o_m_document-members.html100644 0 0 17625 10774263472 30013 0ustar 0 0 Apache log4cxx: Member List

XMLDOMDocument Member List

This is the complete list of members for XMLDOMDocument, including all inherited members.

addRef() const =0Object [pure virtual]
cast(const Class &clazz) const =0Object [pure virtual]
DOCUMENT_NODE enum valueXMLDOMNode
ELEMENT_NODE enum valueXMLDOMNode
getChildNodes()=0XMLDOMNode [pure virtual]
getClass() const Object [virtual]
getDocumentElement()=0XMLDOMDocument [pure virtual]
getElementById(const LogString &tagName, const LogString &elementId)=0XMLDOMDocument [pure virtual]
getNodeType()=0XMLDOMNode [pure virtual]
getOwnerDocument()=0XMLDOMNode [pure virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
load(const File &fileName)=0XMLDOMDocument [pure virtual]
NOT_IMPLEMENTED_NODE enum valueXMLDOMNode
registerClass()Object [static]
releaseRef() const =0Object [pure virtual]
XMLDOMNodeType enum nameXMLDOMNode
~Object()Object [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_x_m_l_d_o_m_node_list.html100644 0 0 14720 10774263472 26516 0ustar 0 0 Apache log4cxx: XMLDOMNodeList Class Reference

XMLDOMNodeList Class Reference

Inherits Object.

List of all members.


Detailed Description

The XMLDOMNodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented.

XMLDOMNodeList objects in the DOM are live.

The items in the XMLDOMNodeList are accessible via an integral index, starting from 0.


Public Member Functions

virtual int getLength ()=0
virtual XMLDOMNodePtr item (int index)=0


Member Function Documentation

virtual int getLength  )  [pure virtual]
 

virtual XMLDOMNodePtr item int  index  )  [pure virtual]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1helpers_1_1_x_m_l_d_o_m_node_list-members.html100644 0 0 12776 10774263472 30157 0ustar 0 0 Apache log4cxx: Member List

XMLDOMNodeList Member List

This is the complete list of members for XMLDOMNodeList, including all inherited members.

addRef() const =0Object [pure virtual]
cast(const Class &clazz) const =0Object [pure virtual]
getClass() const Object [virtual]
getLength()=0XMLDOMNodeList [pure virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
item(int index)=0XMLDOMNodeList [pure virtual]
registerClass()Object [static]
releaseRef() const =0Object [pure virtual]
~Object()Object [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/modules.html100644 0 0 4574 10774263472 16500 0ustar 0 0 Apache log4cxx: Module Index

Apache log4cxx Modules

Here is a list of all modules: apache-log4cxx-0.10.0/site/apidocs/namespacelog4cxx_1_1helpers_1_1_simple_date_format_impl.html100644 0 0 5570 10774263472 27714 0ustar 0 0 Apache log4cxx: log4cxx::helpers::SimpleDateFormatImpl Namespace Reference

log4cxx::helpers::SimpleDateFormatImpl Namespace Reference

apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1net_1_1_s_m_t_p_appender.html100644 0 0 172567 10774263472 24703 0ustar 0 0 Apache log4cxx: SMTPAppender Class Reference

SMTPAppender Class Reference

Inherits AppenderSkeleton.

List of all members.


Detailed Description

Send an e-mail when a specific logging event occurs, typically on errors or fatal errors.

The number of logging events delivered in this e-mail depend on the value of BufferSize option. The SMTPAppender keeps only the last BufferSize logging events in its cyclic buffer. This keeps memory requirements at a reasonable level while still delivering useful application context.


Public Member Functions

 SMTPAppender ()
 SMTPAppender (log4cxx::helpers::Pool &p)
 The default constructor will instantiate the appender with a spi::TriggeringEventEvaluator that will trigger on events with level ERROR or higher.
 SMTPAppender (spi::TriggeringEventEvaluatorPtr evaluator)
 Use evaluator passed as parameter as the spi::TriggeringEventEvaluator for this net::SMTPAppender.
 ~SMTPAppender ()
virtual void setOption (const LogString &option, const LogString &value)
 Set options.
virtual void activateOptions (log4cxx::helpers::Pool &p)
 Activate the specified options, such as the smtp host, the recipient, from, etc.
virtual void append (const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)
 Perform SMTPAppender specific appending actions, mainly adding the event to a cyclic buffer and checking if the event triggers an e-mail to be sent.
virtual void close ()
 Release any resources allocated within the appender such as file handles, network connections, etc.
LogString getTo () const
 Returns value of the To option.
LogString getCc () const
 Returns value of the cc option.
LogString getBcc () const
 Returns value of the bcc option.
virtual bool requiresLayout () const
 The SMTPAppender requires a layout.
void sendBuffer (log4cxx::helpers::Pool &p)
 Send the contents of the cyclic buffer as an e-mail message.
LogString getEvaluatorClass ()
 Returns value of the EvaluatorClass option.
LogString getFrom () const
 Returns value of the From option.
LogString getSubject () const
 Returns value of the Subject option.
void setFrom (const LogString &from)
 The From option takes a string value which should be a e-mail address of the sender.
void setSubject (const LogString &subject)
 The Subject option takes a string value which should be a the subject of the e-mail message.
void setBufferSize (int bufferSize)
 The BufferSize option takes a positive integer representing the maximum number of logging events to collect in a cyclic buffer.
void setSMTPHost (const LogString &smtpHost)
 The SMTPHost option takes a string value which should be a the host name of the SMTP server that will send the e-mail message.
LogString getSMTPHost () const
 Returns value of the SMTPHost option.
void setSMTPPort (int port)
 The SMTPPort option takes a string value which should be a the port of the SMTP server that will send the e-mail message.
int getSMTPPort () const
 Returns value of the SMTPHost option.
void setTo (const LogString &to)
 The To option takes a string value which should be a comma separated list of e-mail address of the recipients.
void setCc (const LogString &to)
 The Cc option takes a string value which should be a comma separated list of e-mail address of the cc'd recipients.
void setBcc (const LogString &to)
 The Bcc option takes a string value which should be a comma separated list of e-mail address of the bcc'd recipients.
void setSMTPUsername (const LogString &newVal)
 The SMTPUsername option takes a string value which should be a the user name for the SMTP server.
LogString getSMTPUsername () const
 Returns value of the SMTPUsername option.
void setSMTPPassword (const LogString &newVal)
 The SMTPPassword option takes a string value which should be a the password for the SMTP server.
LogString getSMTPPassword () const
 Returns value of the SMTPPassword option.
int getBufferSize () const
 Returns value of the BufferSize option.
log4cxx::spi::TriggeringEventEvaluatorPtr getEvaluator () const
 Gets the current triggering evaluator.
void setEvaluator (log4cxx::spi::TriggeringEventEvaluatorPtr &trigger)
 Sets the triggering evaluator.
void setEvaluatorClass (const LogString &value)
 The EvaluatorClass option takes a string value representing the name of the class implementing the spi::TriggeringEventEvaluator interface.
void setLocationInfo (bool locationInfo)
 The LocationInfo option is provided for compatibility with log4j and has no effect in log4cxx.
bool getLocationInfo () const
 Returns value of the LocationInfo option.


Constructor & Destructor Documentation

SMTPAppender  ) 
 

SMTPAppender log4cxx::helpers::Pool p  ) 
 

The default constructor will instantiate the appender with a spi::TriggeringEventEvaluator that will trigger on events with level ERROR or higher.

SMTPAppender spi::TriggeringEventEvaluatorPtr  evaluator  ) 
 

Use evaluator passed as parameter as the spi::TriggeringEventEvaluator for this net::SMTPAppender.

~SMTPAppender  ) 
 


Member Function Documentation

virtual void activateOptions log4cxx::helpers::Pool p  )  [virtual]
 

Activate the specified options, such as the smtp host, the recipient, from, etc.

Reimplemented from AppenderSkeleton.

virtual void append const spi::LoggingEventPtr event,
log4cxx::helpers::Pool p
[virtual]
 

Perform SMTPAppender specific appending actions, mainly adding the event to a cyclic buffer and checking if the event triggers an e-mail to be sent.

Implements AppenderSkeleton.

virtual void close  )  [virtual]
 

Release any resources allocated within the appender such as file handles, network connections, etc.

It is a programming error to append to a closed appender.

Implements Appender.

LogString getBcc  )  const
 

Returns value of the bcc option.

int getBufferSize  )  const [inline]
 

Returns value of the BufferSize option.

LogString getCc  )  const
 

Returns value of the cc option.

log4cxx::spi::TriggeringEventEvaluatorPtr getEvaluator  )  const
 

Gets the current triggering evaluator.

Returns:
triggering evaluator.

LogString getEvaluatorClass  ) 
 

Returns value of the EvaluatorClass option.

LogString getFrom  )  const
 

Returns value of the From option.

bool getLocationInfo  )  const
 

Returns value of the LocationInfo option.

LogString getSMTPHost  )  const
 

Returns value of the SMTPHost option.

LogString getSMTPPassword  )  const
 

Returns value of the SMTPPassword option.

int getSMTPPort  )  const
 

Returns value of the SMTPHost option.

LogString getSMTPUsername  )  const
 

Returns value of the SMTPUsername option.

LogString getSubject  )  const
 

Returns value of the Subject option.

LogString getTo  )  const
 

Returns value of the To option.

virtual bool requiresLayout  )  const [virtual]
 

The SMTPAppender requires a layout.

Implements Appender.

void sendBuffer log4cxx::helpers::Pool p  ) 
 

Send the contents of the cyclic buffer as an e-mail message.

void setBcc const LogString to  ) 
 

The Bcc option takes a string value which should be a comma separated list of e-mail address of the bcc'd recipients.

void setBufferSize int  bufferSize  ) 
 

The BufferSize option takes a positive integer representing the maximum number of logging events to collect in a cyclic buffer.

When the BufferSize is reached, oldest events are deleted as new events are added to the buffer. By default the size of the cyclic buffer is 512 events.

void setCc const LogString to  ) 
 

The Cc option takes a string value which should be a comma separated list of e-mail address of the cc'd recipients.

void setEvaluator log4cxx::spi::TriggeringEventEvaluatorPtr &  trigger  ) 
 

Sets the triggering evaluator.

Parameters:
trigger triggering evaluator.

void setEvaluatorClass const LogString value  ) 
 

The EvaluatorClass option takes a string value representing the name of the class implementing the spi::TriggeringEventEvaluator interface.

A corresponding object will be instantiated and assigned as the triggering event evaluator for the SMTPAppender.

void setFrom const LogString from  ) 
 

The From option takes a string value which should be a e-mail address of the sender.

void setLocationInfo bool  locationInfo  ) 
 

The LocationInfo option is provided for compatibility with log4j and has no effect in log4cxx.

virtual void setOption const LogString option,
const LogString value
[virtual]
 

Set options.

Reimplemented from AppenderSkeleton.

void setSMTPHost const LogString smtpHost  ) 
 

The SMTPHost option takes a string value which should be a the host name of the SMTP server that will send the e-mail message.

void setSMTPPassword const LogString newVal  ) 
 

The SMTPPassword option takes a string value which should be a the password for the SMTP server.

void setSMTPPort int  port  ) 
 

The SMTPPort option takes a string value which should be a the port of the SMTP server that will send the e-mail message.

void setSMTPUsername const LogString newVal  ) 
 

The SMTPUsername option takes a string value which should be a the user name for the SMTP server.

void setSubject const LogString subject  ) 
 

The Subject option takes a string value which should be a the subject of the e-mail message.

void setTo const LogString to  ) 
 

The To option takes a string value which should be a comma separated list of e-mail address of the recipients.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1net_1_1_s_m_t_p_appender-members.html100644 0 0 55767 10774263472 26315 0ustar 0 0 Apache log4cxx: Member List

SMTPAppender Member List

This is the complete list of members for SMTPAppender, including all inherited members.

activateOptions(log4cxx::helpers::Pool &p)SMTPAppender [virtual]
addFilter(const spi::FilterPtr &newFilter)AppenderSkeleton [virtual]
addRef() const AppenderSkeleton [virtual]
append(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)SMTPAppender [virtual]
AppenderSkeleton()AppenderSkeleton
AppenderSkeleton(const LayoutPtr &layout)AppenderSkeleton
cast(const Class &clazz) const =0Object [pure virtual]
clearFilters()AppenderSkeleton [virtual]
close()SMTPAppender [virtual]
closedAppenderSkeleton [protected]
doAppend(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)AppenderSkeleton [virtual]
errorHandlerAppenderSkeleton [protected]
finalize()AppenderSkeleton
getBcc() const SMTPAppender
getBufferSize() const SMTPAppender [inline]
getCc() const SMTPAppender
getClass() const Object [virtual]
getErrorHandler() const AppenderSkeleton [inline]
getEvaluator() const SMTPAppender
getEvaluatorClass()SMTPAppender
getFilter() const AppenderSkeleton [inline, virtual]
getFirstFilter() const AppenderSkeleton [inline]
getFrom() const SMTPAppender
getLayout() const AppenderSkeleton [inline, virtual]
getLocationInfo() const SMTPAppender
getName() const AppenderSkeleton [inline, virtual]
getSMTPHost() const SMTPAppender
getSMTPPassword() const SMTPAppender
getSMTPPort() const SMTPAppender
getSMTPUsername() const SMTPAppender
getStaticClass()Object [static]
getSubject() const SMTPAppender
getThreshold()AppenderSkeleton [inline]
getTo() const SMTPAppender
headFilterAppenderSkeleton [protected]
instanceof(const Class &clazz) const =0Object [pure virtual]
isAsSevereAsThreshold(const LevelPtr &level) const AppenderSkeleton
layoutAppenderSkeleton [protected]
mutexAppenderSkeleton [protected]
nameAppenderSkeleton [protected]
ObjectImpl()ObjectImpl
poolAppenderSkeleton [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const AppenderSkeleton [virtual]
requiresLayout() const SMTPAppender [virtual]
sendBuffer(log4cxx::helpers::Pool &p)SMTPAppender
setBcc(const LogString &to)SMTPAppender
setBufferSize(int bufferSize)SMTPAppender
setCc(const LogString &to)SMTPAppender
setErrorHandler(const spi::ErrorHandlerPtr &eh)AppenderSkeleton
setEvaluator(log4cxx::spi::TriggeringEventEvaluatorPtr &trigger)SMTPAppender
setEvaluatorClass(const LogString &value)SMTPAppender
setFrom(const LogString &from)SMTPAppender
setLayout(const LayoutPtr &layout1)AppenderSkeleton [inline, virtual]
setLocationInfo(bool locationInfo)SMTPAppender
setName(const LogString &name1)AppenderSkeleton [inline, virtual]
setOption(const LogString &option, const LogString &value)SMTPAppender [virtual]
setSMTPHost(const LogString &smtpHost)SMTPAppender
setSMTPPassword(const LogString &newVal)SMTPAppender
setSMTPPort(int port)SMTPAppender
setSMTPUsername(const LogString &newVal)SMTPAppender
setSubject(const LogString &subject)SMTPAppender
setThreshold(const LevelPtr &threshold)AppenderSkeleton
setTo(const LogString &to)SMTPAppender
SMTPAppender()SMTPAppender
SMTPAppender(log4cxx::helpers::Pool &p)SMTPAppender
SMTPAppender(spi::TriggeringEventEvaluatorPtr evaluator)SMTPAppender
tailFilterAppenderSkeleton [protected]
thresholdAppenderSkeleton [protected]
~Appender()Appender [inline, virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
~SMTPAppender()SMTPAppender
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1net_1_1_socket_appender.html100644 0 0 60352 10774263472 24517 0ustar 0 0 Apache log4cxx: SocketAppender Class Reference

SocketAppender Class Reference

Inherits SocketAppenderSkeleton.

List of all members.


Detailed Description

Sends LoggingEvent objects to a remote a log server, usually Apache Chainsaw.

The SocketAppender has the following properties:

  • If sent to Apache Chainsaw, remote logging is non-intrusive as far as the log event is concerned. In other words, the event will be logged with the same time stamp, NDC, location info as if it were logged locally by the client.

  • SocketAppenders do not use a layout. They ship a serialized LoggingEvent object to the server side.

  • Remote logging uses the TCP protocol. Consequently, if the server is reachable, then log events will eventually arrive at the server.

  • If the remote server is down, the logging requests are simply dropped. However, if and when the server comes back up, then event transmission is resumed transparently. This transparent reconneciton is performed by a connector thread which periodically attempts to connect to the server.

  • Logging events are automatically buffered by the native TCP implementation. This means that if the link to server is slow but still faster than the rate of (log) event production by the client, the client will not be affected by the slow network connection. However, if the network connection is slower then the rate of event production, then the client can only progress at the network rate. In particular, if the network link to the the server is down, the client will be blocked.

    On the other hand, if the network link is up, but the server is down, the client will not be blocked when making log requests but the log events will be lost due to server unavailability.

  • Even if a SocketAppender is no longer attached to any logger, it will not be destroyed in the presence of a connector thread. A connector thread exists only if the connection to the server is down. To avoid this destruction problem, you should close the the SocketAppender explicitly. See also next item.

    Long lived applications which create/destroy many SocketAppender instances should be aware of this destruction problem. Most other applications can safely ignore it.

  • If the application hosting the SocketAppender exits before the SocketAppender is closed either explicitly or subsequent to destruction, then there might be untransmitted data in the pipe which might be lost.

    To avoid lost data, it is usually sufficient to close the SocketAppender either explicitly or by calling the LogManager::shutdown method before exiting the application.


Public Member Functions

 SocketAppender ()
 ~SocketAppender ()
 SocketAppender (helpers::InetAddressPtr &address, int port)
 Connects to remote server at address and port.
 SocketAppender (const LogString &host, int port)
 Connects to remote server at host and port.

Static Public Attributes

static int DEFAULT_PORT
 The default port number of remote logging server (4560).
static int DEFAULT_RECONNECTION_DELAY
 The default reconnection delay (30000 milliseconds or 30 seconds).

Protected Member Functions

virtual void setSocket (log4cxx::helpers::SocketPtr &socket, log4cxx::helpers::Pool &p)
virtual void cleanUp (log4cxx::helpers::Pool &p)
virtual int getDefaultDelay () const
virtual int getDefaultPort () const
void append (const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)
 Subclasses of AppenderSkeleton should implement this method to perform actual logging.


Constructor & Destructor Documentation

SocketAppender  ) 
 

~SocketAppender  ) 
 

SocketAppender helpers::InetAddressPtr &  address,
int  port
 

Connects to remote server at address and port.

SocketAppender const LogString host,
int  port
 

Connects to remote server at host and port.


Member Function Documentation

void append const spi::LoggingEventPtr event,
log4cxx::helpers::Pool pool
[protected, virtual]
 

Subclasses of AppenderSkeleton should implement this method to perform actual logging.

See also AppenderSkeleton::doAppend method.

Implements AppenderSkeleton.

virtual void cleanUp log4cxx::helpers::Pool p  )  [protected, virtual]
 

Implements SocketAppenderSkeleton.

virtual int getDefaultDelay  )  const [protected, virtual]
 

Implements SocketAppenderSkeleton.

virtual int getDefaultPort  )  const [protected, virtual]
 

Implements SocketAppenderSkeleton.

virtual void setSocket log4cxx::helpers::SocketPtr &  socket,
log4cxx::helpers::Pool p
[protected, virtual]
 

Implements SocketAppenderSkeleton.


Member Data Documentation

int DEFAULT_PORT [static]
 

The default port number of remote logging server (4560).

int DEFAULT_RECONNECTION_DELAY [static]
 

The default reconnection delay (30000 milliseconds or 30 seconds).


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1net_1_1_socket_appender-members.html100644 0 0 53511 10774263472 26146 0ustar 0 0 Apache log4cxx: Member List

SocketAppender Member List

This is the complete list of members for SocketAppender, including all inherited members.

activateOptions(log4cxx::helpers::Pool &p)SocketAppenderSkeleton [virtual]
addFilter(const spi::FilterPtr &newFilter)AppenderSkeleton [virtual]
addRef() const AppenderSkeleton [virtual]
append(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)SocketAppender [protected, virtual]
AppenderSkeleton()AppenderSkeleton
AppenderSkeleton(const LayoutPtr &layout)AppenderSkeleton
cast(const Class &clazz) const =0Object [pure virtual]
cleanUp(log4cxx::helpers::Pool &p)SocketAppender [protected, virtual]
clearFilters()AppenderSkeleton [virtual]
close()SocketAppenderSkeleton [virtual]
closedAppenderSkeleton [protected]
DEFAULT_PORTSocketAppender [static]
DEFAULT_RECONNECTION_DELAYSocketAppender [static]
doAppend(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)AppenderSkeleton [virtual]
errorHandlerAppenderSkeleton [protected]
finalize()AppenderSkeleton
fireConnector()SocketAppenderSkeleton
getClass() const Object [virtual]
getDefaultDelay() const SocketAppender [protected, virtual]
getDefaultPort() const SocketAppender [protected, virtual]
getErrorHandler() const AppenderSkeleton [inline]
getFilter() const AppenderSkeleton [inline, virtual]
getFirstFilter() const AppenderSkeleton [inline]
getLayout() const AppenderSkeleton [inline, virtual]
getLocationInfo() const SocketAppenderSkeleton [inline]
getName() const AppenderSkeleton [inline, virtual]
getPort() const SocketAppenderSkeleton [inline]
getReconnectionDelay() const SocketAppenderSkeleton [inline]
getRemoteHost() const SocketAppenderSkeleton [inline]
getStaticClass()Object [static]
getThreshold()AppenderSkeleton [inline]
headFilterAppenderSkeleton [protected]
instanceof(const Class &clazz) const =0Object [pure virtual]
isAsSevereAsThreshold(const LevelPtr &level) const AppenderSkeleton
layoutAppenderSkeleton [protected]
mutexAppenderSkeleton [protected]
nameAppenderSkeleton [protected]
ObjectImpl()ObjectImpl
poolAppenderSkeleton [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const AppenderSkeleton [virtual]
requiresLayout() const SocketAppenderSkeleton [inline, virtual]
setErrorHandler(const spi::ErrorHandlerPtr &eh)AppenderSkeleton
setLayout(const LayoutPtr &layout1)AppenderSkeleton [inline, virtual]
setLocationInfo(bool locationInfo1)SocketAppenderSkeleton [inline]
setName(const LogString &name1)AppenderSkeleton [inline, virtual]
setOption(const LogString &option, const LogString &value)SocketAppenderSkeleton [virtual]
setPort(int port1)SocketAppenderSkeleton [inline]
setReconnectionDelay(int reconnectionDelay1)SocketAppenderSkeleton [inline]
setRemoteHost(const LogString &host)SocketAppenderSkeleton [inline]
setSocket(log4cxx::helpers::SocketPtr &socket, log4cxx::helpers::Pool &p)SocketAppender [protected, virtual]
setThreshold(const LevelPtr &threshold)AppenderSkeleton
SocketAppender()SocketAppender
SocketAppender(helpers::InetAddressPtr &address, int port)SocketAppender
SocketAppender(const LogString &host, int port)SocketAppender
SocketAppenderSkeleton(int defaultPort, int reconnectionDelay)SocketAppenderSkeleton
SocketAppenderSkeleton(helpers::InetAddressPtr address, int port, int reconnectionDelay)SocketAppenderSkeleton
SocketAppenderSkeleton(const LogString &host, int port, int reconnectionDelay)SocketAppenderSkeleton
tailFilterAppenderSkeleton [protected]
thresholdAppenderSkeleton [protected]
~Appender()Appender [inline, virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
~SocketAppender()SocketAppender
~SocketAppenderSkeleton()SocketAppenderSkeleton
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1net_1_1_socket_appender_skeleton.html100644 0 0 114010 10774263472 26432 0ustar 0 0 Apache log4cxx: SocketAppenderSkeleton Class Reference

SocketAppenderSkeleton Class Reference

Inherits AppenderSkeleton.

Inherited by SocketAppender, and XMLSocketAppender.

List of all members.


Detailed Description

Abstract base class for SocketAppender and XMLSocketAppender.


Public Member Functions

 SocketAppenderSkeleton (int defaultPort, int reconnectionDelay)
 ~SocketAppenderSkeleton ()
 SocketAppenderSkeleton (helpers::InetAddressPtr address, int port, int reconnectionDelay)
 Connects to remote server at address and port.
 SocketAppenderSkeleton (const LogString &host, int port, int reconnectionDelay)
 Connects to remote server at host and port.
void activateOptions (log4cxx::helpers::Pool &p)
 Connect to the specified RemoteHost and Port.
void close ()
 Release any resources allocated within the appender such as file handles, network connections, etc.
bool requiresLayout () const
 This appender does not use a layout.
void setRemoteHost (const LogString &host)
 The RemoteHost option takes a string value which should be the host name of the server where a Apache Chainsaw or compatible is running.
const LogStringgetRemoteHost () const
 Returns value of the RemoteHost option.
void setPort (int port1)
 The Port option takes a positive integer representing the port where the server is waiting for connections.
int getPort () const
 Returns value of the Port option.
void setLocationInfo (bool locationInfo1)
 The LocationInfo option takes a boolean value.
bool getLocationInfo () const
 Returns value of the LocationInfo option.
void setReconnectionDelay (int reconnectionDelay1)
 The ReconnectionDelay option takes a positive integer representing the number of milliseconds to wait between each failed connection attempt to the server.
int getReconnectionDelay () const
 Returns value of the ReconnectionDelay option.
void fireConnector ()
void setOption (const LogString &option, const LogString &value)
 Set option to value.

Protected Member Functions

virtual void setSocket (log4cxx::helpers::SocketPtr &socket, log4cxx::helpers::Pool &p)=0
virtual void cleanUp (log4cxx::helpers::Pool &p)=0
virtual int getDefaultDelay () const =0
virtual int getDefaultPort () const =0


Constructor & Destructor Documentation

SocketAppenderSkeleton int  defaultPort,
int  reconnectionDelay
 

~SocketAppenderSkeleton  ) 
 

SocketAppenderSkeleton helpers::InetAddressPtr  address,
int  port,
int  reconnectionDelay
 

Connects to remote server at address and port.

SocketAppenderSkeleton const LogString host,
int  port,
int  reconnectionDelay
 

Connects to remote server at host and port.


Member Function Documentation

void activateOptions log4cxx::helpers::Pool p  )  [virtual]
 

Connect to the specified RemoteHost and Port.

Reimplemented from AppenderSkeleton.

virtual void cleanUp log4cxx::helpers::Pool p  )  [protected, pure virtual]
 

Implemented in SocketAppender, and XMLSocketAppender.

void close  )  [virtual]
 

Release any resources allocated within the appender such as file handles, network connections, etc.

It is a programming error to append to a closed appender.

Implements Appender.

void fireConnector  ) 
 

virtual int getDefaultDelay  )  const [protected, pure virtual]
 

Implemented in SocketAppender, and XMLSocketAppender.

virtual int getDefaultPort  )  const [protected, pure virtual]
 

Implemented in SocketAppender, and XMLSocketAppender.

bool getLocationInfo  )  const [inline]
 

Returns value of the LocationInfo option.

int getPort  )  const [inline]
 

Returns value of the Port option.

int getReconnectionDelay  )  const [inline]
 

Returns value of the ReconnectionDelay option.

const LogString& getRemoteHost  )  const [inline]
 

Returns value of the RemoteHost option.

bool requiresLayout  )  const [inline, virtual]
 

This appender does not use a layout.

Hence, this method returns false.

Implements Appender.

void setLocationInfo bool  locationInfo1  )  [inline]
 

The LocationInfo option takes a boolean value.

If true, the information sent to the remote host will include location information. By default no location information is sent to the server.

void setOption const LogString option,
const LogString value
[virtual]
 

Set option to value.

The handling of each option depends on the OptionHandler instance. Some options may become active immediately whereas other may be activated only when activateOptions is called.

Reimplemented from AppenderSkeleton.

void setPort int  port1  )  [inline]
 

The Port option takes a positive integer representing the port where the server is waiting for connections.

void setReconnectionDelay int  reconnectionDelay1  )  [inline]
 

The ReconnectionDelay option takes a positive integer representing the number of milliseconds to wait between each failed connection attempt to the server.

The default value of this option is 30000 which corresponds to 30 seconds.

Setting this option to zero turns off reconnection capability.

void setRemoteHost const LogString host  )  [inline]
 

The RemoteHost option takes a string value which should be the host name of the server where a Apache Chainsaw or compatible is running.

virtual void setSocket log4cxx::helpers::SocketPtr &  socket,
log4cxx::helpers::Pool p
[protected, pure virtual]
 

Implemented in SocketAppender, and XMLSocketAppender.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1net_1_1_socket_appender_skeleton-members.html100644 0 0 50522 10774263472 30051 0ustar 0 0 Apache log4cxx: Member List

SocketAppenderSkeleton Member List

This is the complete list of members for SocketAppenderSkeleton, including all inherited members.

activateOptions(log4cxx::helpers::Pool &p)SocketAppenderSkeleton [virtual]
addFilter(const spi::FilterPtr &newFilter)AppenderSkeleton [virtual]
addRef() const AppenderSkeleton [virtual]
append(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)=0AppenderSkeleton [protected, pure virtual]
AppenderSkeleton()AppenderSkeleton
AppenderSkeleton(const LayoutPtr &layout)AppenderSkeleton
cast(const Class &clazz) const =0Object [pure virtual]
cleanUp(log4cxx::helpers::Pool &p)=0SocketAppenderSkeleton [protected, pure virtual]
clearFilters()AppenderSkeleton [virtual]
close()SocketAppenderSkeleton [virtual]
closedAppenderSkeleton [protected]
doAppend(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)AppenderSkeleton [virtual]
errorHandlerAppenderSkeleton [protected]
finalize()AppenderSkeleton
fireConnector()SocketAppenderSkeleton
getClass() const Object [virtual]
getDefaultDelay() const =0SocketAppenderSkeleton [protected, pure virtual]
getDefaultPort() const =0SocketAppenderSkeleton [protected, pure virtual]
getErrorHandler() const AppenderSkeleton [inline]
getFilter() const AppenderSkeleton [inline, virtual]
getFirstFilter() const AppenderSkeleton [inline]
getLayout() const AppenderSkeleton [inline, virtual]
getLocationInfo() const SocketAppenderSkeleton [inline]
getName() const AppenderSkeleton [inline, virtual]
getPort() const SocketAppenderSkeleton [inline]
getReconnectionDelay() const SocketAppenderSkeleton [inline]
getRemoteHost() const SocketAppenderSkeleton [inline]
getStaticClass()Object [static]
getThreshold()AppenderSkeleton [inline]
headFilterAppenderSkeleton [protected]
instanceof(const Class &clazz) const =0Object [pure virtual]
isAsSevereAsThreshold(const LevelPtr &level) const AppenderSkeleton
layoutAppenderSkeleton [protected]
mutexAppenderSkeleton [protected]
nameAppenderSkeleton [protected]
ObjectImpl()ObjectImpl
poolAppenderSkeleton [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const AppenderSkeleton [virtual]
requiresLayout() const SocketAppenderSkeleton [inline, virtual]
setErrorHandler(const spi::ErrorHandlerPtr &eh)AppenderSkeleton
setLayout(const LayoutPtr &layout1)AppenderSkeleton [inline, virtual]
setLocationInfo(bool locationInfo1)SocketAppenderSkeleton [inline]
setName(const LogString &name1)AppenderSkeleton [inline, virtual]
setOption(const LogString &option, const LogString &value)SocketAppenderSkeleton [virtual]
setPort(int port1)SocketAppenderSkeleton [inline]
setReconnectionDelay(int reconnectionDelay1)SocketAppenderSkeleton [inline]
setRemoteHost(const LogString &host)SocketAppenderSkeleton [inline]
setSocket(log4cxx::helpers::SocketPtr &socket, log4cxx::helpers::Pool &p)=0SocketAppenderSkeleton [protected, pure virtual]
setThreshold(const LevelPtr &threshold)AppenderSkeleton
SocketAppenderSkeleton(int defaultPort, int reconnectionDelay)SocketAppenderSkeleton
SocketAppenderSkeleton(helpers::InetAddressPtr address, int port, int reconnectionDelay)SocketAppenderSkeleton
SocketAppenderSkeleton(const LogString &host, int port, int reconnectionDelay)SocketAppenderSkeleton
tailFilterAppenderSkeleton [protected]
thresholdAppenderSkeleton [protected]
~Appender()Appender [inline, virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
~SocketAppenderSkeleton()SocketAppenderSkeleton
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1net_1_1_socket_hub_appender.html100644 0 0 64532 10774263472 25361 0ustar 0 0 Apache log4cxx: SocketHubAppender Class Reference

SocketHubAppender Class Reference

Inherits AppenderSkeleton.

List of all members.


Detailed Description

Sends LoggingEvent objects to a set of remote log servers, usually a SocketNode.

Acts just like SocketAppender except that instead of connecting to a given remote log server, SocketHubAppender accepts connections from the remote log servers as clients. It can accept more than one connection. When a log event is received, the event is sent to the set of currently connected remote log servers. Implemented this way it does not require any update to the configuration file to send data to another remote log server. The remote log server simply connects to the host and port the SocketHubAppender is running on.

The SocketHubAppender does not store events such that the remote side will events that arrived after the establishment of its connection. Once connected, events arrive in order as guaranteed by the TCP protocol.

This implementation borrows heavily from the SocketAppender.

The SocketHubAppender has the following characteristics:

  • If sent to a SocketNode, logging is non-intrusive as far as the log event is concerned. In other words, the event will be logged with the same time stamp, NDC, location info as if it were logged locally.

  • SocketHubAppender relies on the TCP protocol. Consequently, if the remote side is reachable, then log events will eventually arrive at remote client.

  • If no remote clients are attached, the logging requests are simply dropped.

  • Logging events are automatically buffered by the native TCP implementation. This means that if the link to remote client is slow but still faster than the rate of (log) event production, the application will not be affected by the slow network connection. However, if the network connection is slower then the rate of event production, then the local application can only progress at the network rate. In particular, if the network link to the the remote client is down, the application will be blocked.

    On the other hand, if the network link is up, but the remote client is down, the client will not be blocked when making log requests but the log events will be lost due to client unavailability.

    The single remote client case extends to multiple clients connections. The rate of logging will be determined by the slowest link.

  • If the application hosting the SocketHubAppender exits before the SocketHubAppender is closed either explicitly or subsequent to garbage collection, then there might be untransmitted data in the pipe which might be lost. This is a common problem on Windows based systems.

    To avoid lost data, it is usually sufficient to close the SocketHubAppender either explicitly or by calling the LogManager::shutdown method before exiting the application.


Public Member Functions

 SocketHubAppender ()
 ~SocketHubAppender ()
 SocketHubAppender (int port)
 Connects to remote server at address and port.
virtual void activateOptions (log4cxx::helpers::Pool &p)
 Set up the socket server on the specified port.
virtual void setOption (const LogString &option, const LogString &value)
 Set options.
virtual void close ()
 Release any resources allocated within the appender such as file handles, network connections, etc.
virtual void append (const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)
 Append an event to all of current connections.
virtual bool requiresLayout () const
 The SocketHubAppender does not use a layout.
void setPort (int port1)
 The Port option takes a positive integer representing the port where the server is waiting for connections.
int getPort () const
 Returns value of the Port option.
void setLocationInfo (bool locationInfo1)
 The LocationInfo option takes a boolean value.
bool getLocationInfo () const
 Returns value of the LocationInfo option.


Constructor & Destructor Documentation

SocketHubAppender  ) 
 

~SocketHubAppender  ) 
 

SocketHubAppender int  port  ) 
 

Connects to remote server at address and port.


Member Function Documentation

virtual void activateOptions log4cxx::helpers::Pool p  )  [virtual]
 

Set up the socket server on the specified port.

Reimplemented from AppenderSkeleton.

virtual void append const spi::LoggingEventPtr event,
log4cxx::helpers::Pool p
[virtual]
 

Append an event to all of current connections.

Implements AppenderSkeleton.

virtual void close  )  [virtual]
 

Release any resources allocated within the appender such as file handles, network connections, etc.

It is a programming error to append to a closed appender.

Implements Appender.

bool getLocationInfo  )  const [inline]
 

Returns value of the LocationInfo option.

int getPort  )  const [inline]
 

Returns value of the Port option.

virtual bool requiresLayout  )  const [inline, virtual]
 

The SocketHubAppender does not use a layout.

Hence, this method returns false.

Implements Appender.

void setLocationInfo bool  locationInfo1  )  [inline]
 

The LocationInfo option takes a boolean value.

If true, the information sent to the remote host will include location information. By default no location information is sent to the server.

virtual void setOption const LogString option,
const LogString value
[virtual]
 

Set options.

Reimplemented from AppenderSkeleton.

void setPort int  port1  )  [inline]
 

The Port option takes a positive integer representing the port where the server is waiting for connections.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1net_1_1_socket_hub_appender-members.html100644 0 0 41460 10774263472 27004 0ustar 0 0 Apache log4cxx: Member List

SocketHubAppender Member List

This is the complete list of members for SocketHubAppender, including all inherited members.

activateOptions(log4cxx::helpers::Pool &p)SocketHubAppender [virtual]
addFilter(const spi::FilterPtr &newFilter)AppenderSkeleton [virtual]
addRef() const AppenderSkeleton [virtual]
append(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)SocketHubAppender [virtual]
AppenderSkeleton()AppenderSkeleton
AppenderSkeleton(const LayoutPtr &layout)AppenderSkeleton
cast(const Class &clazz) const =0Object [pure virtual]
clearFilters()AppenderSkeleton [virtual]
close()SocketHubAppender [virtual]
closedAppenderSkeleton [protected]
doAppend(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)AppenderSkeleton [virtual]
errorHandlerAppenderSkeleton [protected]
finalize()AppenderSkeleton
getClass() const Object [virtual]
getErrorHandler() const AppenderSkeleton [inline]
getFilter() const AppenderSkeleton [inline, virtual]
getFirstFilter() const AppenderSkeleton [inline]
getLayout() const AppenderSkeleton [inline, virtual]
getLocationInfo() const SocketHubAppender [inline]
getName() const AppenderSkeleton [inline, virtual]
getPort() const SocketHubAppender [inline]
getStaticClass()Object [static]
getThreshold()AppenderSkeleton [inline]
headFilterAppenderSkeleton [protected]
instanceof(const Class &clazz) const =0Object [pure virtual]
isAsSevereAsThreshold(const LevelPtr &level) const AppenderSkeleton
layoutAppenderSkeleton [protected]
mutexAppenderSkeleton [protected]
nameAppenderSkeleton [protected]
ObjectImpl()ObjectImpl
poolAppenderSkeleton [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const AppenderSkeleton [virtual]
requiresLayout() const SocketHubAppender [inline, virtual]
setErrorHandler(const spi::ErrorHandlerPtr &eh)AppenderSkeleton
setLayout(const LayoutPtr &layout1)AppenderSkeleton [inline, virtual]
setLocationInfo(bool locationInfo1)SocketHubAppender [inline]
setName(const LogString &name1)AppenderSkeleton [inline, virtual]
setOption(const LogString &option, const LogString &value)SocketHubAppender [virtual]
setPort(int port1)SocketHubAppender [inline]
setThreshold(const LevelPtr &threshold)AppenderSkeleton
SocketHubAppender()SocketHubAppender
SocketHubAppender(int port)SocketHubAppender
tailFilterAppenderSkeleton [protected]
thresholdAppenderSkeleton [protected]
~Appender()Appender [inline, virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
~SocketHubAppender()SocketHubAppender
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1net_1_1_syslog_appender.html100644 0 0 120041 10774263472 24557 0ustar 0 0 Apache log4cxx: SyslogAppender Class Reference

SyslogAppender Class Reference

Inherits AppenderSkeleton.

List of all members.


Detailed Description

Use SyslogAppender to send log messages to a remote syslog daemon.


Public Member Functions

 SyslogAppender ()
 SyslogAppender (const LayoutPtr &layout, int syslogFacility)
 SyslogAppender (const LayoutPtr &layout, const LogString &syslogHost, int syslogFacility)
 ~SyslogAppender ()
void close ()
 Release any resources held by this SyslogAppender.
void append (const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)
 Subclasses of AppenderSkeleton should implement this method to perform actual logging.
void activateOptions (log4cxx::helpers::Pool &p)
 This method returns immediately as options are activated when they are set.
void setOption (const LogString &option, const LogString &value)
 Set option to value.
virtual bool requiresLayout () const
 The SyslogAppender requires a layout.
void setSyslogHost (const LogString &syslogHost)
 The SyslogHost option is the name of the the syslog host where log output should go.
const LogStringgetSyslogHost () const
 Returns the value of the SyslogHost option.
void setFacility (const LogString &facilityName)
 Set the syslog facility.
LogString getFacility () const
 Returns the value of the Facility option.
void setFacilityPrinting (bool facilityPrinting1)
 If the FacilityPrinting option is set to true, the printed message will include the facility name of the application.
bool getFacilityPrinting () const
 Returns the value of the FacilityPrinting option.

Static Public Member Functions

static LogString getFacilityString (int syslogFacility)
 Returns the specified syslog facility as a lower-case String, e.g.
static int getFacility (const LogString &facilityName)
 Returns the integer value corresponding to the named syslog facility, or -1 if it couldn't be recognized.

Protected Member Functions

void initSyslogFacilityStr ()

Protected Attributes

int syslogFacility
LogString facilityStr
bool facilityPrinting
helpers::SyslogWritersw
LogString syslogHost


Constructor & Destructor Documentation

SyslogAppender  ) 
 

SyslogAppender const LayoutPtr layout,
int  syslogFacility
 

SyslogAppender const LayoutPtr layout,
const LogString syslogHost,
int  syslogFacility
 

~SyslogAppender  ) 
 


Member Function Documentation

void activateOptions log4cxx::helpers::Pool p  )  [virtual]
 

This method returns immediately as options are activated when they are set.

Reimplemented from AppenderSkeleton.

void append const spi::LoggingEventPtr event,
log4cxx::helpers::Pool p
[virtual]
 

Subclasses of AppenderSkeleton should implement this method to perform actual logging.

See also AppenderSkeleton::doAppend method.

Implements AppenderSkeleton.

void close  )  [virtual]
 

Release any resources held by this SyslogAppender.

Implements Appender.

LogString getFacility  )  const [inline]
 

Returns the value of the Facility option.

static int getFacility const LogString facilityName  )  [static]
 

Returns the integer value corresponding to the named syslog facility, or -1 if it couldn't be recognized.

Parameters:
facilityName one of the strings KERN, USER, MAIL, DAEMON, AUTH, SYSLOG, LPR, NEWS, UUCP, CRON, AUTHPRIV, FTP, LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7. The matching is case-insensitive.

bool getFacilityPrinting  )  const [inline]
 

Returns the value of the FacilityPrinting option.

static LogString getFacilityString int  syslogFacility  )  [static]
 

Returns the specified syslog facility as a lower-case String, e.g.

"kern", "user", etc.

const LogString& getSyslogHost  )  const [inline]
 

Returns the value of the SyslogHost option.

void initSyslogFacilityStr  )  [protected]
 

virtual bool requiresLayout  )  const [inline, virtual]
 

The SyslogAppender requires a layout.

Hence, this method returns true.

Implements Appender.

void setFacility const LogString facilityName  ) 
 

Set the syslog facility.

This is the Facility option.

The facilityName parameter must be one of the strings KERN, USER, MAIL, DAEMON, AUTH, SYSLOG, LPR, NEWS, UUCP, CRON, AUTHPRIV, FTP, LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7. Case is unimportant.

void setFacilityPrinting bool  facilityPrinting1  )  [inline]
 

If the FacilityPrinting option is set to true, the printed message will include the facility name of the application.

It is false by default.

void setOption const LogString option,
const LogString value
[virtual]
 

Set option to value.

The handling of each option depends on the OptionHandler instance. Some options may become active immediately whereas other may be activated only when activateOptions is called.

Reimplemented from AppenderSkeleton.

void setSyslogHost const LogString syslogHost  ) 
 

The SyslogHost option is the name of the the syslog host where log output should go.

WARNING If the SyslogHost is not set, then this appender will fail.


Member Data Documentation

bool facilityPrinting [protected]
 

LogString facilityStr [protected]
 

helpers::SyslogWriter* sw [protected]
 

int syslogFacility [protected]
 

LogString syslogHost [protected]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1net_1_1_syslog_appender-members.html100644 0 0 47527 10774263472 26210 0ustar 0 0 Apache log4cxx: Member List

SyslogAppender Member List

This is the complete list of members for SyslogAppender, including all inherited members.

activateOptions(log4cxx::helpers::Pool &p)SyslogAppender [virtual]
addFilter(const spi::FilterPtr &newFilter)AppenderSkeleton [virtual]
addRef() const AppenderSkeleton [virtual]
append(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)SyslogAppender [virtual]
AppenderSkeleton()AppenderSkeleton
AppenderSkeleton(const LayoutPtr &layout)AppenderSkeleton
cast(const Class &clazz) const =0Object [pure virtual]
clearFilters()AppenderSkeleton [virtual]
close()SyslogAppender [virtual]
closedAppenderSkeleton [protected]
doAppend(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)AppenderSkeleton [virtual]
errorHandlerAppenderSkeleton [protected]
facilityPrintingSyslogAppender [protected]
facilityStrSyslogAppender [protected]
finalize()AppenderSkeleton
getClass() const Object [virtual]
getErrorHandler() const AppenderSkeleton [inline]
getFacility(const LogString &facilityName)SyslogAppender [static]
getFacility() const SyslogAppender [inline]
getFacilityPrinting() const SyslogAppender [inline]
getFacilityString(int syslogFacility)SyslogAppender [static]
getFilter() const AppenderSkeleton [inline, virtual]
getFirstFilter() const AppenderSkeleton [inline]
getLayout() const AppenderSkeleton [inline, virtual]
getName() const AppenderSkeleton [inline, virtual]
getStaticClass()Object [static]
getSyslogHost() const SyslogAppender [inline]
getThreshold()AppenderSkeleton [inline]
headFilterAppenderSkeleton [protected]
initSyslogFacilityStr()SyslogAppender [protected]
instanceof(const Class &clazz) const =0Object [pure virtual]
isAsSevereAsThreshold(const LevelPtr &level) const AppenderSkeleton
layoutAppenderSkeleton [protected]
mutexAppenderSkeleton [protected]
nameAppenderSkeleton [protected]
ObjectImpl()ObjectImpl
poolAppenderSkeleton [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const AppenderSkeleton [virtual]
requiresLayout() const SyslogAppender [inline, virtual]
setErrorHandler(const spi::ErrorHandlerPtr &eh)AppenderSkeleton
setFacility(const LogString &facilityName)SyslogAppender
setFacilityPrinting(bool facilityPrinting1)SyslogAppender [inline]
setLayout(const LayoutPtr &layout1)AppenderSkeleton [inline, virtual]
setName(const LogString &name1)AppenderSkeleton [inline, virtual]
setOption(const LogString &option, const LogString &value)SyslogAppender [virtual]
setSyslogHost(const LogString &syslogHost)SyslogAppender
setThreshold(const LevelPtr &threshold)AppenderSkeleton
swSyslogAppender [protected]
SyslogAppender()SyslogAppender
SyslogAppender(const LayoutPtr &layout, int syslogFacility)SyslogAppender
SyslogAppender(const LayoutPtr &layout, const LogString &syslogHost, int syslogFacility)SyslogAppender
syslogFacilitySyslogAppender [protected]
syslogHostSyslogAppender [protected]
tailFilterAppenderSkeleton [protected]
thresholdAppenderSkeleton [protected]
~Appender()Appender [inline, virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
~SyslogAppender()SyslogAppender
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1net_1_1_telnet_appender.html100644 0 0 53710 10774263472 24522 0ustar 0 0 Apache log4cxx: TelnetAppender Class Reference

TelnetAppender Class Reference

Inherits AppenderSkeleton.

List of all members.


Detailed Description

The TelnetAppender is a log4cxx appender that specializes in writing to a read-only socket. The output is provided in a telnet-friendly way so that a log can be monitored over TCP/IP. Clients using telnet connect to the socket and receive log data. This is handy for remote monitoring, especially when monitoring a servlet.

Here is a list of the available configuration options:

Name Requirement Description Sample Value

Port optional This parameter determines the port to use for announcing log events. The default port is 23 (telnet). 5875


Public Member Functions

 TelnetAppender ()
 ~TelnetAppender ()
virtual bool requiresLayout () const
 This appender requires a layout to format the text to the attached client(s).
LogString getEncoding () const
void setEncoding (const LogString &value)
void activateOptions (log4cxx::helpers::Pool &p)
 all of the options have been set, create the socket handler and wait for connections.
virtual void setOption (const LogString &option, const LogString &value)
 Set options.
int getPort () const
 Returns value of the Port option.
void setPort (int port1)
 The Port option takes a positive integer representing the port where the server is waiting for connections.
void close ()
 shuts down the appender.

Protected Member Functions

virtual void append (const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)
 Handles a log event.

Friends

class SocketHandler


Constructor & Destructor Documentation

TelnetAppender  ) 
 

~TelnetAppender  ) 
 


Member Function Documentation

void activateOptions log4cxx::helpers::Pool p  )  [virtual]
 

all of the options have been set, create the socket handler and wait for connections.

Reimplemented from AppenderSkeleton.

virtual void append const spi::LoggingEventPtr event,
log4cxx::helpers::Pool p
[protected, virtual]
 

Handles a log event.

For this appender, that means writing the message to each connected client.

Implements AppenderSkeleton.

void close  )  [virtual]
 

shuts down the appender.

Implements Appender.

LogString getEncoding  )  const
 

int getPort  )  const [inline]
 

Returns value of the Port option.

virtual bool requiresLayout  )  const [inline, virtual]
 

This appender requires a layout to format the text to the attached client(s).

Implements Appender.

void setEncoding const LogString value  ) 
 

virtual void setOption const LogString option,
const LogString value
[virtual]
 

Set options.

Reimplemented from AppenderSkeleton.

void setPort int  port1  )  [inline]
 

The Port option takes a positive integer representing the port where the server is waiting for connections.


Friends And Related Function Documentation

friend class SocketHandler [friend]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1net_1_1_telnet_appender-members.html100644 0 0 41211 10774263472 26143 0ustar 0 0 Apache log4cxx: Member List

TelnetAppender Member List

This is the complete list of members for TelnetAppender, including all inherited members.

activateOptions(log4cxx::helpers::Pool &p)TelnetAppender [virtual]
addFilter(const spi::FilterPtr &newFilter)AppenderSkeleton [virtual]
addRef() const AppenderSkeleton [virtual]
append(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)TelnetAppender [protected, virtual]
AppenderSkeleton()AppenderSkeleton
AppenderSkeleton(const LayoutPtr &layout)AppenderSkeleton
cast(const Class &clazz) const =0Object [pure virtual]
clearFilters()AppenderSkeleton [virtual]
close()TelnetAppender [virtual]
closedAppenderSkeleton [protected]
doAppend(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)AppenderSkeleton [virtual]
errorHandlerAppenderSkeleton [protected]
finalize()AppenderSkeleton
getClass() const Object [virtual]
getEncoding() const TelnetAppender
getErrorHandler() const AppenderSkeleton [inline]
getFilter() const AppenderSkeleton [inline, virtual]
getFirstFilter() const AppenderSkeleton [inline]
getLayout() const AppenderSkeleton [inline, virtual]
getName() const AppenderSkeleton [inline, virtual]
getPort() const TelnetAppender [inline]
getStaticClass()Object [static]
getThreshold()AppenderSkeleton [inline]
headFilterAppenderSkeleton [protected]
instanceof(const Class &clazz) const =0Object [pure virtual]
isAsSevereAsThreshold(const LevelPtr &level) const AppenderSkeleton
layoutAppenderSkeleton [protected]
mutexAppenderSkeleton [protected]
nameAppenderSkeleton [protected]
ObjectImpl()ObjectImpl
poolAppenderSkeleton [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const AppenderSkeleton [virtual]
requiresLayout() const TelnetAppender [inline, virtual]
setEncoding(const LogString &value)TelnetAppender
setErrorHandler(const spi::ErrorHandlerPtr &eh)AppenderSkeleton
setLayout(const LayoutPtr &layout1)AppenderSkeleton [inline, virtual]
setName(const LogString &name1)AppenderSkeleton [inline, virtual]
setOption(const LogString &option, const LogString &value)TelnetAppender [virtual]
setPort(int port1)TelnetAppender [inline]
setThreshold(const LevelPtr &threshold)AppenderSkeleton
SocketHandler classTelnetAppender [friend]
tailFilterAppenderSkeleton [protected]
TelnetAppender()TelnetAppender
thresholdAppenderSkeleton [protected]
~Appender()Appender [inline, virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
~TelnetAppender()TelnetAppender
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1net_1_1_x_m_l_socket_appender.html100644 0 0 63332 10774263472 25676 0ustar 0 0 Apache log4cxx: XMLSocketAppender Class Reference

XMLSocketAppender Class Reference

Inherits SocketAppenderSkeleton.

List of all members.


Detailed Description

Sends LoggingEvent objects in XML format to a remote a log server, usually a XMLSocketNode.

The XMLSocketAppender has the following properties:

  • If sent to a XMLSocketNode, remote logging is non-intrusive as far as the log event is concerned. In other words, the event will be logged with the same time stamp, NDC, location info as if it were logged locally by the client.

  • XMLSocketAppenders use exclusively an XMLLayout. They ship an XML stream representing a LoggingEvent object to the server side.

  • Remote logging uses the TCP protocol. Consequently, if the server is reachable, then log events will eventually arrive at the server.

  • If the remote server is down, the logging requests are simply dropped. However, if and when the server comes back up, then event transmission is resumed transparently. This transparent reconneciton is performed by a connector thread which periodically attempts to connect to the server.

  • Logging events are automatically buffered by the native TCP implementation. This means that if the link to server is slow but still faster than the rate of (log) event production by the client, the client will not be affected by the slow network connection. However, if the network connection is slower then the rate of event production, then the client can only progress at the network rate. In particular, if the network link to the the server is down, the client will be blocked.

    On the other hand, if the network link is up, but the server is down, the client will not be blocked when making log requests but the log events will be lost due to server unavailability.

  • Even if an XMLSocketAppender is no longer attached to any logger, it will not be destroyed in the presence of a connector thread. A connector thread exists only if the connection to the server is down. To avoid this destruction problem, you should close the the XMLSocketAppender explicitly. See also next item.

    Long lived applications which create/destroy many XMLSocketAppender instances should be aware of this destruction problem. Most other applications can safely ignore it.

  • If the application hosting the XMLSocketAppender exits before the XMLSocketAppender is closed either explicitly or subsequent to destruction, then there might be untransmitted data in the pipe which might be lost.

    To avoid lost data, it is usually sufficient to close the XMLSocketAppender either explicitly or by calling the LogManager::shutdown method before exiting the application.


Public Member Functions

 XMLSocketAppender ()
 ~XMLSocketAppender ()
 XMLSocketAppender (helpers::InetAddressPtr address, int port)
 Connects to remote server at address and port.
 XMLSocketAppender (const LogString &host, int port)
 Connects to remote server at host and port.

Static Public Attributes

static int DEFAULT_PORT
 The default port number of remote logging server (4560).
static int DEFAULT_RECONNECTION_DELAY
 The default reconnection delay (30000 milliseconds or 30 seconds).
static const int MAX_EVENT_LEN
 An event XML stream cannot exceed 1024 bytes.

Protected Member Functions

virtual void setSocket (log4cxx::helpers::SocketPtr &socket, log4cxx::helpers::Pool &p)
virtual void cleanUp (log4cxx::helpers::Pool &p)
virtual int getDefaultDelay () const
virtual int getDefaultPort () const
void append (const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)
 Subclasses of AppenderSkeleton should implement this method to perform actual logging.


Constructor & Destructor Documentation

XMLSocketAppender  ) 
 

~XMLSocketAppender  ) 
 

XMLSocketAppender helpers::InetAddressPtr  address,
int  port
 

Connects to remote server at address and port.

XMLSocketAppender const LogString host,
int  port
 

Connects to remote server at host and port.


Member Function Documentation

void append const spi::LoggingEventPtr event,
log4cxx::helpers::Pool pool
[protected, virtual]
 

Subclasses of AppenderSkeleton should implement this method to perform actual logging.

See also AppenderSkeleton::doAppend method.

Implements AppenderSkeleton.

virtual void cleanUp log4cxx::helpers::Pool p  )  [protected, virtual]
 

Implements SocketAppenderSkeleton.

virtual int getDefaultDelay  )  const [protected, virtual]
 

Implements SocketAppenderSkeleton.

virtual int getDefaultPort  )  const [protected, virtual]
 

Implements SocketAppenderSkeleton.

virtual void setSocket log4cxx::helpers::SocketPtr &  socket,
log4cxx::helpers::Pool p
[protected, virtual]
 

Implements SocketAppenderSkeleton.


Member Data Documentation

int DEFAULT_PORT [static]
 

The default port number of remote logging server (4560).

int DEFAULT_RECONNECTION_DELAY [static]
 

The default reconnection delay (30000 milliseconds or 30 seconds).

const int MAX_EVENT_LEN [static]
 

An event XML stream cannot exceed 1024 bytes.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1net_1_1_x_m_l_socket_appender-members.html100644 0 0 54445 10774263472 27333 0ustar 0 0 Apache log4cxx: Member List

XMLSocketAppender Member List

This is the complete list of members for XMLSocketAppender, including all inherited members.

activateOptions(log4cxx::helpers::Pool &p)SocketAppenderSkeleton [virtual]
addFilter(const spi::FilterPtr &newFilter)AppenderSkeleton [virtual]
addRef() const AppenderSkeleton [virtual]
append(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)XMLSocketAppender [protected, virtual]
AppenderSkeleton()AppenderSkeleton
AppenderSkeleton(const LayoutPtr &layout)AppenderSkeleton
cast(const Class &clazz) const =0Object [pure virtual]
cleanUp(log4cxx::helpers::Pool &p)XMLSocketAppender [protected, virtual]
clearFilters()AppenderSkeleton [virtual]
close()SocketAppenderSkeleton [virtual]
closedAppenderSkeleton [protected]
DEFAULT_PORTXMLSocketAppender [static]
DEFAULT_RECONNECTION_DELAYXMLSocketAppender [static]
doAppend(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)AppenderSkeleton [virtual]
errorHandlerAppenderSkeleton [protected]
finalize()AppenderSkeleton
fireConnector()SocketAppenderSkeleton
getClass() const Object [virtual]
getDefaultDelay() const XMLSocketAppender [protected, virtual]
getDefaultPort() const XMLSocketAppender [protected, virtual]
getErrorHandler() const AppenderSkeleton [inline]
getFilter() const AppenderSkeleton [inline, virtual]
getFirstFilter() const AppenderSkeleton [inline]
getLayout() const AppenderSkeleton [inline, virtual]
getLocationInfo() const SocketAppenderSkeleton [inline]
getName() const AppenderSkeleton [inline, virtual]
getPort() const SocketAppenderSkeleton [inline]
getReconnectionDelay() const SocketAppenderSkeleton [inline]
getRemoteHost() const SocketAppenderSkeleton [inline]
getStaticClass()Object [static]
getThreshold()AppenderSkeleton [inline]
headFilterAppenderSkeleton [protected]
instanceof(const Class &clazz) const =0Object [pure virtual]
isAsSevereAsThreshold(const LevelPtr &level) const AppenderSkeleton
layoutAppenderSkeleton [protected]
MAX_EVENT_LENXMLSocketAppender [static]
mutexAppenderSkeleton [protected]
nameAppenderSkeleton [protected]
ObjectImpl()ObjectImpl
poolAppenderSkeleton [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const AppenderSkeleton [virtual]
requiresLayout() const SocketAppenderSkeleton [inline, virtual]
setErrorHandler(const spi::ErrorHandlerPtr &eh)AppenderSkeleton
setLayout(const LayoutPtr &layout1)AppenderSkeleton [inline, virtual]
setLocationInfo(bool locationInfo1)SocketAppenderSkeleton [inline]
setName(const LogString &name1)AppenderSkeleton [inline, virtual]
setOption(const LogString &option, const LogString &value)SocketAppenderSkeleton [virtual]
setPort(int port1)SocketAppenderSkeleton [inline]
setReconnectionDelay(int reconnectionDelay1)SocketAppenderSkeleton [inline]
setRemoteHost(const LogString &host)SocketAppenderSkeleton [inline]
setSocket(log4cxx::helpers::SocketPtr &socket, log4cxx::helpers::Pool &p)XMLSocketAppender [protected, virtual]
setThreshold(const LevelPtr &threshold)AppenderSkeleton
SocketAppenderSkeleton(int defaultPort, int reconnectionDelay)SocketAppenderSkeleton
SocketAppenderSkeleton(helpers::InetAddressPtr address, int port, int reconnectionDelay)SocketAppenderSkeleton
SocketAppenderSkeleton(const LogString &host, int port, int reconnectionDelay)SocketAppenderSkeleton
tailFilterAppenderSkeleton [protected]
thresholdAppenderSkeleton [protected]
XMLSocketAppender()XMLSocketAppender
XMLSocketAppender(helpers::InetAddressPtr address, int port)XMLSocketAppender
XMLSocketAppender(const LogString &host, int port)XMLSocketAppender
~Appender()Appender [inline, virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
~SocketAppenderSkeleton()SocketAppenderSkeleton
~XMLSocketAppender()XMLSocketAppender
apache-log4cxx-0.10.0/site/apidocs/namespacelog4cxx_1_1nt.html100644 0 0 11271 10774263472 21307 0ustar 0 0 Apache log4cxx: log4cxx::nt Namespace Reference

log4cxx::nt Namespace Reference


Classes

class  NTEventLogAppender
 Appends log events to NT EventLog. More...
class  OutputDebugStringAppender

Functions

 LOG4CXX_PTR_DEF (NTEventLogAppender)


Function Documentation

log4cxx::nt::LOG4CXX_PTR_DEF NTEventLogAppender   ) 
 

apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1nt_1_1_n_t_event_log_appender.html100644 0 0 121207 10774263472 25721 0ustar 0 0 Apache log4cxx: NTEventLogAppender Class Reference

NTEventLogAppender Class Reference

Inherits AppenderSkeleton.

List of all members.


Detailed Description

Appends log events to NT EventLog.


Public Member Functions

 NTEventLogAppender ()
 NTEventLogAppender (const LogString &server, const LogString &log, const LogString &source, const LayoutPtr &layout)
virtual ~NTEventLogAppender ()
virtual void activateOptions (log4cxx::helpers::Pool &p)
 Derived appenders should override this method if option structure requires it.
virtual void close ()
 Release any resources allocated within the appender such as file handles, network connections, etc.
virtual void setOption (const LogString &option, const LogString &value)
 Set option to value.
bool requiresLayout () const
 The SocketAppender does not use a layout.
void setSource (const LogString &source)
const LogStringgetSource () const
void setLog (const LogString &log)
const LogStringgetLog () const
void setServer (const LogString &server)
const LogStringgetServer () const

Protected Types

typedef void SID
typedef void * HANDLE

Protected Member Functions

virtual void append (const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)
 Subclasses of AppenderSkeleton should implement this method to perform actual logging.
void addRegistryInfo ()

Static Protected Member Functions

static unsigned short getEventType (const spi::LoggingEventPtr &event)
static unsigned short getEventCategory (const spi::LoggingEventPtr &event)
static LogString getErrorString (const LogString &function)

Protected Attributes

LogString server
LogString log
LogString source
HANDLE hEventLog
SIDpCurrentUserSID


Member Typedef Documentation

typedef void* HANDLE [protected]
 

typedef void SID [protected]
 


Constructor & Destructor Documentation

NTEventLogAppender  ) 
 

NTEventLogAppender const LogString server,
const LogString log,
const LogString source,
const LayoutPtr layout
 

virtual ~NTEventLogAppender  )  [virtual]
 


Member Function Documentation

virtual void activateOptions log4cxx::helpers::Pool p  )  [virtual]
 

Derived appenders should override this method if option structure requires it.

Reimplemented from AppenderSkeleton.

void addRegistryInfo  )  [protected]
 

virtual void append const spi::LoggingEventPtr event,
log4cxx::helpers::Pool p
[protected, virtual]
 

Subclasses of AppenderSkeleton should implement this method to perform actual logging.

See also AppenderSkeleton::doAppend method.

Implements AppenderSkeleton.

virtual void close  )  [virtual]
 

Release any resources allocated within the appender such as file handles, network connections, etc.

It is a programming error to append to a closed appender.

Implements Appender.

static LogString getErrorString const LogString function  )  [static, protected]
 

static unsigned short getEventCategory const spi::LoggingEventPtr event  )  [static, protected]
 

static unsigned short getEventType const spi::LoggingEventPtr event  )  [static, protected]
 

const LogString& getLog  )  const [inline]
 

const LogString& getServer  )  const [inline]
 

const LogString& getSource  )  const [inline]
 

bool requiresLayout  )  const [inline, virtual]
 

The SocketAppender does not use a layout.

Hence, this method returns false.

Implements Appender.

void setLog const LogString log  )  [inline]
 

virtual void setOption const LogString option,
const LogString value
[virtual]
 

Set option to value.

The handling of each option depends on the OptionHandler instance. Some options may become active immediately whereas other may be activated only when activateOptions is called.

Reimplemented from AppenderSkeleton.

void setServer const LogString server  )  [inline]
 

void setSource const LogString source  )  [inline]
 


Member Data Documentation

HANDLE hEventLog [protected]
 

LogString log [protected]
 

SID* pCurrentUserSID [protected]
 

LogString server [protected]
 

LogString source [protected]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1nt_1_1_n_t_event_log_appender-members.html100644 0 0 51627 10774263472 27341 0ustar 0 0 Apache log4cxx: Member List

NTEventLogAppender Member List

This is the complete list of members for NTEventLogAppender, including all inherited members.

activateOptions(log4cxx::helpers::Pool &p)NTEventLogAppender [virtual]
addFilter(const spi::FilterPtr &newFilter)AppenderSkeleton [virtual]
addRef() const AppenderSkeleton [virtual]
addRegistryInfo()NTEventLogAppender [protected]
append(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)NTEventLogAppender [protected, virtual]
AppenderSkeleton()AppenderSkeleton
AppenderSkeleton(const LayoutPtr &layout)AppenderSkeleton
cast(const Class &clazz) const =0Object [pure virtual]
clearFilters()AppenderSkeleton [virtual]
close()NTEventLogAppender [virtual]
closedAppenderSkeleton [protected]
doAppend(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)AppenderSkeleton [virtual]
errorHandlerAppenderSkeleton [protected]
finalize()AppenderSkeleton
getClass() const Object [virtual]
getErrorHandler() const AppenderSkeleton [inline]
getErrorString(const LogString &function)NTEventLogAppender [protected, static]
getEventCategory(const spi::LoggingEventPtr &event)NTEventLogAppender [protected, static]
getEventType(const spi::LoggingEventPtr &event)NTEventLogAppender [protected, static]
getFilter() const AppenderSkeleton [inline, virtual]
getFirstFilter() const AppenderSkeleton [inline]
getLayout() const AppenderSkeleton [inline, virtual]
getLog() const NTEventLogAppender [inline]
getName() const AppenderSkeleton [inline, virtual]
getServer() const NTEventLogAppender [inline]
getSource() const NTEventLogAppender [inline]
getStaticClass()Object [static]
getThreshold()AppenderSkeleton [inline]
HANDLE typedefNTEventLogAppender [protected]
headFilterAppenderSkeleton [protected]
hEventLogNTEventLogAppender [protected]
instanceof(const Class &clazz) const =0Object [pure virtual]
isAsSevereAsThreshold(const LevelPtr &level) const AppenderSkeleton
layoutAppenderSkeleton [protected]
logNTEventLogAppender [protected]
mutexAppenderSkeleton [protected]
nameAppenderSkeleton [protected]
NTEventLogAppender()NTEventLogAppender
NTEventLogAppender(const LogString &server, const LogString &log, const LogString &source, const LayoutPtr &layout)NTEventLogAppender
ObjectImpl()ObjectImpl
pCurrentUserSIDNTEventLogAppender [protected]
poolAppenderSkeleton [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const AppenderSkeleton [virtual]
requiresLayout() const NTEventLogAppender [inline, virtual]
serverNTEventLogAppender [protected]
setErrorHandler(const spi::ErrorHandlerPtr &eh)AppenderSkeleton
setLayout(const LayoutPtr &layout1)AppenderSkeleton [inline, virtual]
setLog(const LogString &log)NTEventLogAppender [inline]
setName(const LogString &name1)AppenderSkeleton [inline, virtual]
setOption(const LogString &option, const LogString &value)NTEventLogAppender [virtual]
setServer(const LogString &server)NTEventLogAppender [inline]
setSource(const LogString &source)NTEventLogAppender [inline]
setThreshold(const LevelPtr &threshold)AppenderSkeleton
SID typedefNTEventLogAppender [protected]
sourceNTEventLogAppender [protected]
tailFilterAppenderSkeleton [protected]
thresholdAppenderSkeleton [protected]
~Appender()Appender [inline, virtual]
~NTEventLogAppender()NTEventLogAppender [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1nt_1_1_output_debug_string_appender.html100644 0 0 25711 10774263472 27156 0ustar 0 0 Apache log4cxx: OutputDebugStringAppender Class Reference

OutputDebugStringAppender Class Reference

Inherits AppenderSkeleton.

List of all members.

Public Member Functions

 OutputDebugStringAppender ()
bool requiresLayout () const
 Configurators call this method to determine if the appender requires a layout.
virtual void close ()
 Release any resources allocated within the appender such as file handles, network connections, etc.
virtual void append (const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)
 Subclasses of AppenderSkeleton should implement this method to perform actual logging.


Constructor & Destructor Documentation

OutputDebugStringAppender  ) 
 


Member Function Documentation

virtual void append const spi::LoggingEventPtr event,
log4cxx::helpers::Pool p
[virtual]
 

Subclasses of AppenderSkeleton should implement this method to perform actual logging.

See also AppenderSkeleton::doAppend method.

Implements AppenderSkeleton.

virtual void close  )  [inline, virtual]
 

Release any resources allocated within the appender such as file handles, network connections, etc.

It is a programming error to append to a closed appender.

Implements Appender.

bool requiresLayout  )  const [inline, virtual]
 

Configurators call this method to determine if the appender requires a layout.

If this method returns true, meaning that layout is required, then the configurator will configure an layout using the configuration information at its disposal. If this method returns false, meaning that a layout is not required, then layout configuration will be skipped even if there is available layout configuration information at the disposal of the configurator..

In the rather exceptional case, where the appender implementation admits a layout but can also work without it, then the appender should return true.

Implements Appender.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1nt_1_1_output_debug_string_appender-members.html100644 0 0 36307 10774263472 30611 0ustar 0 0 Apache log4cxx: Member List

OutputDebugStringAppender Member List

This is the complete list of members for OutputDebugStringAppender, including all inherited members.

activateOptions(log4cxx::helpers::Pool &)AppenderSkeleton [inline, virtual]
addFilter(const spi::FilterPtr &newFilter)AppenderSkeleton [virtual]
addRef() const AppenderSkeleton [virtual]
append(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)OutputDebugStringAppender [virtual]
AppenderSkeleton()AppenderSkeleton
AppenderSkeleton(const LayoutPtr &layout)AppenderSkeleton
cast(const Class &clazz) const =0Object [pure virtual]
clearFilters()AppenderSkeleton [virtual]
close()OutputDebugStringAppender [inline, virtual]
closedAppenderSkeleton [protected]
doAppend(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)AppenderSkeleton [virtual]
errorHandlerAppenderSkeleton [protected]
finalize()AppenderSkeleton
getClass() const Object [virtual]
getErrorHandler() const AppenderSkeleton [inline]
getFilter() const AppenderSkeleton [inline, virtual]
getFirstFilter() const AppenderSkeleton [inline]
getLayout() const AppenderSkeleton [inline, virtual]
getName() const AppenderSkeleton [inline, virtual]
getStaticClass()Object [static]
getThreshold()AppenderSkeleton [inline]
headFilterAppenderSkeleton [protected]
instanceof(const Class &clazz) const =0Object [pure virtual]
isAsSevereAsThreshold(const LevelPtr &level) const AppenderSkeleton
layoutAppenderSkeleton [protected]
mutexAppenderSkeleton [protected]
nameAppenderSkeleton [protected]
ObjectImpl()ObjectImpl
OutputDebugStringAppender()OutputDebugStringAppender
poolAppenderSkeleton [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const AppenderSkeleton [virtual]
requiresLayout() const OutputDebugStringAppender [inline, virtual]
setErrorHandler(const spi::ErrorHandlerPtr &eh)AppenderSkeleton
setLayout(const LayoutPtr &layout1)AppenderSkeleton [inline, virtual]
setName(const LogString &name1)AppenderSkeleton [inline, virtual]
setOption(const LogString &option, const LogString &value)AppenderSkeleton [virtual]
setThreshold(const LevelPtr &threshold)AppenderSkeleton
tailFilterAppenderSkeleton [protected]
thresholdAppenderSkeleton [protected]
~Appender()Appender [inline, virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/namespacelog4cxx_1_1pattern.html100644 0 0 65541 10774263472 22354 0ustar 0 0 Apache log4cxx: log4cxx::pattern Namespace Reference

log4cxx::pattern Namespace Reference


Classes

class  CachedDateFormat
class  ClassNamePatternConverter
 Formats the class name of the site of the logging request. More...
class  DatePatternConverter
 Convert and format the event's date in a StringBuffer. More...
class  FileDatePatternConverter
 Formats an date by delegating to DatePatternConverter. More...
class  FileLocationPatternConverter
 Return the event's line location information in a StringBuffer. More...
class  FormattingInfo
 Modifies the output of a pattern converter for a specified minimum and maximum width and alignment. More...
class  FullLocationPatternConverter
 Format the event's line location information. More...
class  IntegerPatternConverter
 Formats an integer. More...
class  LevelPatternConverter
 Return the event's level in a StringBuffer. More...
class  LineLocationPatternConverter
 Format the event's line location information. More...
class  LineSeparatorPatternConverter
 Formats a line separator. More...
class  LiteralPatternConverter
 Formats a string literal. More...
class  LoggerPatternConverter
 Formats a logger name. More...
class  LoggingEventPatternConverter
 LoggingEventPatternConverter is a base class for pattern converters that can format information from instances of LoggingEvent. More...
class  MessagePatternConverter
 Formats the message of an logging event. More...
class  MethodLocationPatternConverter
 Return the event's line location information in a StringBuffer. More...
class  NameAbbreviator
 NameAbbreviator generates abbreviated logger and class names. More...
class  NamePatternConverter
 Base class for other pattern converters which can return only parts of their name. More...
class  NDCPatternConverter
 Return the event's NDC in a StringBuffer. More...
class  PatternConverter
class  PatternParser
 Most of the work of the PatternLayout class is delegated to the PatternParser class. More...
class  PropertiesPatternConverter
 Able to handle the contents of the LoggingEvent's Property bundle and either output the entire contents of the properties in a similar format to the java.util.Hashtable.toString(), or to output the value of a specific key within the property bundle when this pattern converter has the option set. More...
class  RelativeTimePatternConverter
 Format the relative time in milliseconds. More...
class  ThreadPatternConverter
 Formats the event thread name. More...
class  ThrowableInformationPatternConverter
 Outputs the ThrowableInformation portion of the LoggingiEvent as a full stacktrace unless this converter's option is 'short', where it just outputs the first line of the trace. More...

Typedefs

typedef helpers::ObjectPtrT<
FormattingInfo
FormattingInfoPtr
typedef std::vector< LogStringOptionsList
typedef PatternConverterPtr(* PatternConstructor )(const std::vector< LogString > &options)
typedef std::map< LogString,
PatternConstructor
PatternMap

Functions

 LOG4CXX_PTR_DEF (DatePatternConverter)
 LOG4CXX_PTR_DEF (FormattingInfo)
 LOG4CXX_PTR_DEF (IntegerPatternConverter)
 LOG4CXX_PTR_DEF (LoggingEventPatternConverter)
 LOG4CXX_PTR_DEF (NameAbbreviator)
 LOG4CXX_PTR_DEF (PatternConverter)


Typedef Documentation

typedef helpers::ObjectPtrT<FormattingInfo> FormattingInfoPtr
 

typedef std::vector<LogString> OptionsList
 

typedef PatternConverterPtr(* PatternConstructor)(const std::vector< LogString > &options)
 

typedef std::map<LogString, PatternConstructor> PatternMap
 


Function Documentation

log4cxx::pattern::LOG4CXX_PTR_DEF PatternConverter   ) 
 

log4cxx::pattern::LOG4CXX_PTR_DEF NameAbbreviator   ) 
 

log4cxx::pattern::LOG4CXX_PTR_DEF LoggingEventPatternConverter   ) 
 

log4cxx::pattern::LOG4CXX_PTR_DEF IntegerPatternConverter   ) 
 

log4cxx::pattern::LOG4CXX_PTR_DEF FormattingInfo   ) 
 

log4cxx::pattern::LOG4CXX_PTR_DEF DatePatternConverter   ) 
 

apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_cached_date_format.html100644 0 0 52130 10774263472 26007 0ustar 0 0 Apache log4cxx: CachedDateFormat Class Reference

CachedDateFormat Class Reference

Inherits DateFormat.

List of all members.

Public Types

enum  { NO_MILLISECONDS = -2, UNRECOGNIZED_MILLISECONDS = -1 }

Public Member Functions

 CachedDateFormat (const log4cxx::helpers::DateFormatPtr &dateFormat, int expiration)
 Creates a new CachedDateFormat object.
virtual void format (LogString &sbuf, log4cxx_time_t date, log4cxx::helpers::Pool &p) const
 Formats a Date into a date/time string.
virtual void setTimeZone (const log4cxx::helpers::TimeZonePtr &zone)
 Set timezone.
virtual void numberFormat (LogString &s, int n, log4cxx::helpers::Pool &p) const
 Format an integer consistent with the format method.

Static Public Member Functions

static int findMillisecondStart (log4cxx_time_t time, const LogString &formatted, const log4cxx::helpers::DateFormatPtr &formatter, log4cxx::helpers::Pool &pool)
 Finds start of millisecond field in formatted time.
static int getMaximumCacheValidity (const LogString &pattern)
 Gets maximum cache validity for the specified SimpleDateTime conversion pattern.


Member Enumeration Documentation

anonymous enum
 

Enumerator:
NO_MILLISECONDS 
UNRECOGNIZED_MILLISECONDS 


Constructor & Destructor Documentation

CachedDateFormat const log4cxx::helpers::DateFormatPtr &  dateFormat,
int  expiration
 

Creates a new CachedDateFormat object.

Parameters:
dateFormat Date format, may not be null.
expiration maximum cached range in microseconds. If the dateFormat is known to be incompatible with the caching algorithm, use a value of 0 to totally disable caching or 1 to only use cache for duplicate requests.


Member Function Documentation

static int findMillisecondStart log4cxx_time_t  time,
const LogString formatted,
const log4cxx::helpers::DateFormatPtr &  formatter,
log4cxx::helpers::Pool pool
[static]
 

Finds start of millisecond field in formatted time.

Parameters:
time long time, must be integral number of seconds
formatted String corresponding formatted string
formatter DateFormat date format
pool pool.
Returns:
int position in string of first digit of milliseconds, -1 indicates no millisecond field, -2 indicates unrecognized field (likely RelativeTimeDateFormat)

virtual void format LogString sbuf,
log4cxx_time_t  date,
log4cxx::helpers::Pool p
const [virtual]
 

Formats a Date into a date/time string.

Parameters:
date the date to format.
sbuf the string buffer to write to.
p memory pool.

Implements DateFormat.

static int getMaximumCacheValidity const LogString pattern  )  [static]
 

Gets maximum cache validity for the specified SimpleDateTime conversion pattern.

Parameters:
pattern conversion pattern, may not be null.
Returns:
Duration in microseconds from an integral second that the cache will return consistent results.

virtual void numberFormat LogString s,
int  n,
log4cxx::helpers::Pool p
const [virtual]
 

Format an integer consistent with the format method.

Parameters:
s string to which the numeric string is appended.
n integer value.
p memory pool used during formatting.

Reimplemented from DateFormat.

virtual void setTimeZone const log4cxx::helpers::TimeZonePtr &  zone  )  [virtual]
 

Set timezone.

Remarks:
Setting the timezone using getCalendar().setTimeZone() will likely cause caching to misbehave.
Parameters:
zone TimeZone new timezone


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_cached_date_format-members.html100644 0 0 22501 10774263472 27436 0ustar 0 0 Apache log4cxx: Member List

CachedDateFormat Member List

This is the complete list of members for CachedDateFormat, including all inherited members.

addRef() const ObjectImpl [virtual]
CachedDateFormat(const log4cxx::helpers::DateFormatPtr &dateFormat, int expiration)CachedDateFormat
cast(const Class &clazz) const =0Object [pure virtual]
DateFormat()DateFormat [protected]
findMillisecondStart(log4cxx_time_t time, const LogString &formatted, const log4cxx::helpers::DateFormatPtr &formatter, log4cxx::helpers::Pool &pool)CachedDateFormat [static]
format(LogString &sbuf, log4cxx_time_t date, log4cxx::helpers::Pool &p) const CachedDateFormat [virtual]
getClass() const Object [virtual]
getMaximumCacheValidity(const LogString &pattern)CachedDateFormat [static]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
NO_MILLISECONDS enum valueCachedDateFormat
numberFormat(LogString &s, int n, log4cxx::helpers::Pool &p) const CachedDateFormat [virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
setTimeZone(const log4cxx::helpers::TimeZonePtr &zone)CachedDateFormat [virtual]
log4cxx::helpers::DateFormat::setTimeZone(const TimeZonePtr &zone)DateFormat [virtual]
UNRECOGNIZED_MILLISECONDS enum valueCachedDateFormat
~DateFormat()DateFormat [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_class_name_pattern_converter.html100644 0 0 22257 10774263472 30173 0ustar 0 0 Apache log4cxx: ClassNamePatternConverter Class Reference

ClassNamePatternConverter Class Reference

Inherits NamePatternConverter.

List of all members.


Detailed Description

Formats the class name of the site of the logging request.


Public Member Functions

void format (const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const
 Formats an event into a string buffer.

Static Public Member Functions

static PatternConverterPtr newInstance (const std::vector< LogString > &options)
 Gets an instance of ClassNamePatternConverter.


Member Function Documentation

void format const log4cxx::spi::LoggingEventPtr event,
LogString toAppendTo,
log4cxx::helpers::Pool p
const [virtual]
 

Formats an event into a string buffer.

Parameters:
event event to format, may not be null.
toAppendTo string buffer to which the formatted event will be appended. May not be null.
p pool for memory allocations needing during format.

Implements LoggingEventPatternConverter.

static PatternConverterPtr newInstance const std::vector< LogString > &  options  )  [static]
 

Gets an instance of ClassNamePatternConverter.

Parameters:
options options, may be null.
Returns:
instance of pattern converter.


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 151 10774264511 10257 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_class_name_pattern_converter-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_class_name_pattern_converter-members.100644 0 0 23375 10774263472 30740 0ustar 0 0 Apache log4cxx: Member List

ClassNamePatternConverter Member List

This is the complete list of members for ClassNamePatternConverter, including all inherited members.

abbreviate(int nameStart, LogString &buf) const NamePatternConverter [protected]
addRef() const ObjectImpl [virtual]
append(LogString &toAppendTo, const std::string &src)PatternConverter [protected, static]
cast(const Class &clazz) const =0Object [pure virtual]
format(const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const ClassNamePatternConverter [virtual]
log4cxx::pattern::NamePatternConverter::format(const log4cxx::helpers::ObjectPtr &obj, LogString &toAppendTo, log4cxx::helpers::Pool &p) const LoggingEventPatternConverter
getClass() const Object [virtual]
getStaticClass()Object [static]
getStyleClass(const log4cxx::helpers::ObjectPtr &e) const PatternConverter [virtual]
handlesThrowable() const LoggingEventPatternConverter [virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
LoggingEventPatternConverter(const LogString &name, const LogString &style)LoggingEventPatternConverter [protected]
NamePatternConverter(const LogString &name, const LogString &style, const std::vector< LogString > &options)NamePatternConverter [protected]
newInstance(const std::vector< LogString > &options)ClassNamePatternConverter [static]
ObjectImpl()ObjectImpl
PatternConverter(const LogString &name, const LogString &style)PatternConverter [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~PatternConverter()PatternConverter [protected, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_date_pattern_converter.html100644 0 0 31743 10774263472 27003 0ustar 0 0 Apache log4cxx: DatePatternConverter Class Reference

DatePatternConverter Class Reference

Inherits LoggingEventPatternConverter.

List of all members.


Detailed Description

Convert and format the event's date in a StringBuffer.


Public Member Functions

void format (const log4cxx::spi::LoggingEventPtr &event, LogString &output, log4cxx::helpers::Pool &p) const
 Formats an event into a string buffer.
void format (const log4cxx::helpers::ObjectPtr &obj, LogString &output, log4cxx::helpers::Pool &p) const
void format (const log4cxx::helpers::DatePtr &date, LogString &toAppendTo, log4cxx::helpers::Pool &p) const

Static Public Member Functions

static PatternConverterPtr newInstance (const std::vector< LogString > &options)


Member Function Documentation

void format const log4cxx::helpers::DatePtr &  date,
LogString toAppendTo,
log4cxx::helpers::Pool p
const
 

void format const log4cxx::helpers::ObjectPtr obj,
LogString output,
log4cxx::helpers::Pool p
const
 

Reimplemented from LoggingEventPatternConverter.

void format const log4cxx::spi::LoggingEventPtr event,
LogString output,
log4cxx::helpers::Pool p
const [virtual]
 

Formats an event into a string buffer.

Parameters:
event event to format, may not be null.
toAppendTo string buffer to which the formatted event will be appended. May not be null.
p pool for memory allocations needing during format.

Implements LoggingEventPatternConverter.

static PatternConverterPtr newInstance const std::vector< LogString > &  options  )  [static]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_date_pattern_converter-members.html100644 0 0 22401 10774263472 30422 0ustar 0 0 Apache log4cxx: Member List

DatePatternConverter Member List

This is the complete list of members for DatePatternConverter, including all inherited members.

addRef() const ObjectImpl [virtual]
append(LogString &toAppendTo, const std::string &src)PatternConverter [protected, static]
cast(const Class &clazz) const =0Object [pure virtual]
format(const log4cxx::spi::LoggingEventPtr &event, LogString &output, log4cxx::helpers::Pool &p) const DatePatternConverter [virtual]
format(const log4cxx::helpers::ObjectPtr &obj, LogString &output, log4cxx::helpers::Pool &p) const DatePatternConverter
format(const log4cxx::helpers::DatePtr &date, LogString &toAppendTo, log4cxx::helpers::Pool &p) const DatePatternConverter
getClass() const Object [virtual]
getStaticClass()Object [static]
getStyleClass(const log4cxx::helpers::ObjectPtr &e) const PatternConverter [virtual]
handlesThrowable() const LoggingEventPatternConverter [virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
LoggingEventPatternConverter(const LogString &name, const LogString &style)LoggingEventPatternConverter [protected]
newInstance(const std::vector< LogString > &options)DatePatternConverter [static]
ObjectImpl()ObjectImpl
PatternConverter(const LogString &name, const LogString &style)PatternConverter [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~PatternConverter()PatternConverter [protected, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_file_date_pattern_converter.html100644 0 0 13346 10774263472 30001 0ustar 0 0 Apache log4cxx: FileDatePatternConverter Class Reference

FileDatePatternConverter Class Reference

List of all members.

Detailed Description

Formats an date by delegating to DatePatternConverter.

The default date pattern for a d specifier in a file name is different than the d pattern in pattern layout.


Static Public Member Functions

static PatternConverterPtr newInstance (const std::vector< LogString > &options)
 Obtains an instance of pattern converter.


Member Function Documentation

static PatternConverterPtr newInstance const std::vector< LogString > &  options  )  [static]
 

Obtains an instance of pattern converter.

Parameters:
options options, may be null.
Returns:
instance of pattern converter.


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 150 10774264511 10256 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_file_date_pattern_converter-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_file_date_pattern_converter-members.h100644 0 0 6245 10774263472 30674 0ustar 0 0 Apache log4cxx: Member List

FileDatePatternConverter Member List

This is the complete list of members for FileDatePatternConverter, including all inherited members.

newInstance(const std::vector< LogString > &options)FileDatePatternConverter [static]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_file_location_pattern_converter.html100644 0 0 22071 10774263472 30667 0ustar 0 0 Apache log4cxx: FileLocationPatternConverter Class Reference

FileLocationPatternConverter Class Reference

Inherits LoggingEventPatternConverter.

List of all members.


Detailed Description

Return the event's line location information in a StringBuffer.


Public Member Functions

void format (const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const
 Formats an event into a string buffer.

Static Public Member Functions

static PatternConverterPtr newInstance (const std::vector< LogString > &options)
 Obtains an instance of pattern converter.


Member Function Documentation

void format const log4cxx::spi::LoggingEventPtr event,
LogString toAppendTo,
log4cxx::helpers::Pool p
const [virtual]
 

Formats an event into a string buffer.

Parameters:
event event to format, may not be null.
toAppendTo string buffer to which the formatted event will be appended. May not be null.
p pool for memory allocations needing during format.

Implements LoggingEventPatternConverter.

static PatternConverterPtr newInstance const std::vector< LogString > &  options  )  [static]
 

Obtains an instance of pattern converter.

Parameters:
options options, may be null.
Returns:
instance of pattern converter.


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 154 10774264511 10262 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_file_location_pattern_converter-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_file_location_pattern_converter-membe100644 0 0 22040 10774263472 31003 0ustar 0 0 Apache log4cxx: Member List

FileLocationPatternConverter Member List

This is the complete list of members for FileLocationPatternConverter, including all inherited members.

addRef() const ObjectImpl [virtual]
append(LogString &toAppendTo, const std::string &src)PatternConverter [protected, static]
cast(const Class &clazz) const =0Object [pure virtual]
format(const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const FileLocationPatternConverter [virtual]
log4cxx::pattern::LoggingEventPatternConverter::format(const log4cxx::helpers::ObjectPtr &obj, LogString &toAppendTo, log4cxx::helpers::Pool &p) const LoggingEventPatternConverter
getClass() const Object [virtual]
getStaticClass()Object [static]
getStyleClass(const log4cxx::helpers::ObjectPtr &e) const PatternConverter [virtual]
handlesThrowable() const LoggingEventPatternConverter [virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
LoggingEventPatternConverter(const LogString &name, const LogString &style)LoggingEventPatternConverter [protected]
newInstance(const std::vector< LogString > &options)FileLocationPatternConverter [static]
ObjectImpl()ObjectImpl
PatternConverter(const LogString &name, const LogString &style)PatternConverter [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~PatternConverter()PatternConverter [protected, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_formatting_info.html100644 0 0 33527 10774263472 25431 0ustar 0 0 Apache log4cxx: FormattingInfo Class Reference

FormattingInfo Class Reference

Inherits ObjectImpl.

List of all members.


Detailed Description

Modifies the output of a pattern converter for a specified minimum and maximum width and alignment.


Public Member Functions

 FormattingInfo (const bool leftAlign, const int minLength, const int maxLength)
 Creates new instance.
bool isLeftAligned () const
 Determine if left aligned.
int getMinLength () const
 Get minimum length.
int getMaxLength () const
 Get maximum length.
void format (const int fieldStart, LogString &buffer) const
 Adjust the content of the buffer based on the specified lengths and alignment.

Static Public Member Functions

static FormattingInfoPtr getDefault ()
 Gets default instance.


Constructor & Destructor Documentation

FormattingInfo const bool  leftAlign,
const int  minLength,
const int  maxLength
 

Creates new instance.

Parameters:
leftAlign left align if true.
minLength minimum length.
maxLength maximum length.


Member Function Documentation

void format const int  fieldStart,
LogString buffer
const
 

Adjust the content of the buffer based on the specified lengths and alignment.

Parameters:
fieldStart start of field in buffer.
buffer buffer to be modified.

static FormattingInfoPtr getDefault  )  [static]
 

Gets default instance.

Returns:
default instance.

int getMaxLength  )  const [inline]
 

Get maximum length.

Returns:
maximum length.

int getMinLength  )  const [inline]
 

Get minimum length.

Returns:
minimum length.

bool isLeftAligned  )  const [inline]
 

Determine if left aligned.

Returns:
true if left aligned.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_formatting_info-members.html100644 0 0 16713 10774263472 27057 0ustar 0 0 Apache log4cxx: Member List

FormattingInfo Member List

This is the complete list of members for FormattingInfo, including all inherited members.

addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
format(const int fieldStart, LogString &buffer) const FormattingInfo
FormattingInfo(const bool leftAlign, const int minLength, const int maxLength)FormattingInfo
getClass() const Object [virtual]
getDefault()FormattingInfo [static]
getMaxLength() const FormattingInfo [inline]
getMinLength() const FormattingInfo [inline]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
isLeftAligned() const FormattingInfo [inline]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_full_location_pattern_converter.html100644 0 0 22047 10774263472 30715 0ustar 0 0 Apache log4cxx: FullLocationPatternConverter Class Reference

FullLocationPatternConverter Class Reference

Inherits LoggingEventPatternConverter.

List of all members.


Detailed Description

Format the event's line location information.


Public Member Functions

void format (const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const
 Formats an event into a string buffer.

Static Public Member Functions

static PatternConverterPtr newInstance (const std::vector< LogString > &options)
 Obtains an instance of pattern converter.


Member Function Documentation

void format const log4cxx::spi::LoggingEventPtr event,
LogString toAppendTo,
log4cxx::helpers::Pool p
const [virtual]
 

Formats an event into a string buffer.

Parameters:
event event to format, may not be null.
toAppendTo string buffer to which the formatted event will be appended. May not be null.
p pool for memory allocations needing during format.

Implements LoggingEventPatternConverter.

static PatternConverterPtr newInstance const std::vector< LogString > &  options  )  [static]
 

Obtains an instance of pattern converter.

Parameters:
options options, may be null.
Returns:
instance of pattern converter.


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 154 10774264511 10262 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_full_location_pattern_converter-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_full_location_pattern_converter-membe100644 0 0 22040 10774263472 31026 0ustar 0 0 Apache log4cxx: Member List

FullLocationPatternConverter Member List

This is the complete list of members for FullLocationPatternConverter, including all inherited members.

addRef() const ObjectImpl [virtual]
append(LogString &toAppendTo, const std::string &src)PatternConverter [protected, static]
cast(const Class &clazz) const =0Object [pure virtual]
format(const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const FullLocationPatternConverter [virtual]
log4cxx::pattern::LoggingEventPatternConverter::format(const log4cxx::helpers::ObjectPtr &obj, LogString &toAppendTo, log4cxx::helpers::Pool &p) const LoggingEventPatternConverter
getClass() const Object [virtual]
getStaticClass()Object [static]
getStyleClass(const log4cxx::helpers::ObjectPtr &e) const PatternConverter [virtual]
handlesThrowable() const LoggingEventPatternConverter [virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
LoggingEventPatternConverter(const LogString &name, const LogString &style)LoggingEventPatternConverter [protected]
newInstance(const std::vector< LogString > &options)FullLocationPatternConverter [static]
ObjectImpl()ObjectImpl
PatternConverter(const LogString &name, const LogString &style)PatternConverter [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~PatternConverter()PatternConverter [protected, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_integer_pattern_converter.html100644 0 0 17762 10774263472 27530 0ustar 0 0 Apache log4cxx: IntegerPatternConverter Class Reference

IntegerPatternConverter Class Reference

Inherits PatternConverter.

List of all members.


Detailed Description

Formats an integer.


Public Member Functions

void format (const log4cxx::helpers::ObjectPtr &obj, LogString &toAppendTo, log4cxx::helpers::Pool &p) const

Static Public Member Functions

static PatternConverterPtr newInstance (const std::vector< LogString > &options)
 Obtains an instance of pattern converter.


Member Function Documentation

void format const log4cxx::helpers::ObjectPtr obj,
LogString toAppendTo,
log4cxx::helpers::Pool p
const
 

static PatternConverterPtr newInstance const std::vector< LogString > &  options  )  [static]
 

Obtains an instance of pattern converter.

Parameters:
options options, may be null.
Returns:
instance of pattern converter.


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 146 10774264511 10263 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_integer_pattern_converter-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_integer_pattern_converter-members.htm100644 0 0 17434 10774263472 31000 0ustar 0 0 Apache log4cxx: Member List

IntegerPatternConverter Member List

This is the complete list of members for IntegerPatternConverter, including all inherited members.

addRef() const ObjectImpl [virtual]
append(LogString &toAppendTo, const std::string &src)PatternConverter [protected, static]
cast(const Class &clazz) const =0Object [pure virtual]
format(const log4cxx::helpers::ObjectPtr &obj, LogString &toAppendTo, log4cxx::helpers::Pool &p) const IntegerPatternConverter
getClass() const Object [virtual]
getStaticClass()Object [static]
getStyleClass(const log4cxx::helpers::ObjectPtr &e) const PatternConverter [virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
newInstance(const std::vector< LogString > &options)IntegerPatternConverter [static]
ObjectImpl()ObjectImpl
PatternConverter(const LogString &name, const LogString &style)PatternConverter [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~PatternConverter()PatternConverter [protected, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_level_pattern_converter.html100644 0 0 26750 10774263472 27177 0ustar 0 0 Apache log4cxx: LevelPatternConverter Class Reference

LevelPatternConverter Class Reference

Inherits LoggingEventPatternConverter.

List of all members.


Detailed Description

Return the event's level in a StringBuffer.


Public Member Functions

void format (const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const
 Formats an event into a string buffer.
LogString getStyleClass (const log4cxx::helpers::ObjectPtr &e) const
 This method returns the CSS style class that should be applied to the LoggingEvent passed as parameter, which can be null.

Static Public Member Functions

static PatternConverterPtr newInstance (const std::vector< LogString > &options)
 Obtains an instance of pattern converter.


Member Function Documentation

void format const log4cxx::spi::LoggingEventPtr event,
LogString toAppendTo,
log4cxx::helpers::Pool p
const [virtual]
 

Formats an event into a string buffer.

Parameters:
event event to format, may not be null.
toAppendTo string buffer to which the formatted event will be appended. May not be null.
p pool for memory allocations needing during format.

Implements LoggingEventPatternConverter.

LogString getStyleClass const log4cxx::helpers::ObjectPtr e  )  const [virtual]
 

This method returns the CSS style class that should be applied to the LoggingEvent passed as parameter, which can be null.

This information is currently used only by HTMLLayout.

Parameters:
e null values are accepted
Returns:
the name of the conversion pattern

Reimplemented from PatternConverter.

static PatternConverterPtr newInstance const std::vector< LogString > &  options  )  [static]
 

Obtains an instance of pattern converter.

Parameters:
options options, may be null.
Returns:
instance of pattern converter.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_level_pattern_converter-members.html100644 0 0 21755 10774263472 30627 0ustar 0 0 Apache log4cxx: Member List

LevelPatternConverter Member List

This is the complete list of members for LevelPatternConverter, including all inherited members.

addRef() const ObjectImpl [virtual]
append(LogString &toAppendTo, const std::string &src)PatternConverter [protected, static]
cast(const Class &clazz) const =0Object [pure virtual]
format(const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const LevelPatternConverter [virtual]
log4cxx::pattern::LoggingEventPatternConverter::format(const log4cxx::helpers::ObjectPtr &obj, LogString &toAppendTo, log4cxx::helpers::Pool &p) const LoggingEventPatternConverter
getClass() const Object [virtual]
getStaticClass()Object [static]
getStyleClass(const log4cxx::helpers::ObjectPtr &e) const LevelPatternConverter [virtual]
handlesThrowable() const LoggingEventPatternConverter [virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
LoggingEventPatternConverter(const LogString &name, const LogString &style)LoggingEventPatternConverter [protected]
newInstance(const std::vector< LogString > &options)LevelPatternConverter [static]
ObjectImpl()ObjectImpl
PatternConverter(const LogString &name, const LogString &style)PatternConverter [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~PatternConverter()PatternConverter [protected, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_line_location_pattern_converter.html100644 0 0 22047 10774263472 30702 0ustar 0 0 Apache log4cxx: LineLocationPatternConverter Class Reference

LineLocationPatternConverter Class Reference

Inherits LoggingEventPatternConverter.

List of all members.


Detailed Description

Format the event's line location information.


Public Member Functions

void format (const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const
 Formats an event into a string buffer.

Static Public Member Functions

static PatternConverterPtr newInstance (const std::vector< LogString > &options)
 Obtains an instance of pattern converter.


Member Function Documentation

void format const log4cxx::spi::LoggingEventPtr event,
LogString toAppendTo,
log4cxx::helpers::Pool p
const [virtual]
 

Formats an event into a string buffer.

Parameters:
event event to format, may not be null.
toAppendTo string buffer to which the formatted event will be appended. May not be null.
p pool for memory allocations needing during format.

Implements LoggingEventPatternConverter.

static PatternConverterPtr newInstance const std::vector< LogString > &  options  )  [static]
 

Obtains an instance of pattern converter.

Parameters:
options options, may be null.
Returns:
instance of pattern converter.


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 154 10774264511 10262 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_line_location_pattern_converter-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_line_location_pattern_converter-membe100644 0 0 22040 10774263472 31013 0ustar 0 0 Apache log4cxx: Member List

LineLocationPatternConverter Member List

This is the complete list of members for LineLocationPatternConverter, including all inherited members.

addRef() const ObjectImpl [virtual]
append(LogString &toAppendTo, const std::string &src)PatternConverter [protected, static]
cast(const Class &clazz) const =0Object [pure virtual]
format(const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const LineLocationPatternConverter [virtual]
log4cxx::pattern::LoggingEventPatternConverter::format(const log4cxx::helpers::ObjectPtr &obj, LogString &toAppendTo, log4cxx::helpers::Pool &p) const LoggingEventPatternConverter
getClass() const Object [virtual]
getStaticClass()Object [static]
getStyleClass(const log4cxx::helpers::ObjectPtr &e) const PatternConverter [virtual]
handlesThrowable() const LoggingEventPatternConverter [virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
LoggingEventPatternConverter(const LogString &name, const LogString &style)LoggingEventPatternConverter [protected]
newInstance(const std::vector< LogString > &options)LineLocationPatternConverter [static]
ObjectImpl()ObjectImpl
PatternConverter(const LogString &name, const LogString &style)PatternConverter [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~PatternConverter()PatternConverter [protected, virtual]
././@LongLink100644 0 0 145 10774264511 10262 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_line_separator_pattern_converter.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_line_separator_pattern_converter.html100644 0 0 26756 10774263472 31105 0ustar 0 0 Apache log4cxx: LineSeparatorPatternConverter Class Reference

LineSeparatorPatternConverter Class Reference

Inherits LoggingEventPatternConverter.

List of all members.


Detailed Description

Formats a line separator.


Public Member Functions

void format (const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const
 Formats an event into a string buffer.
void format (const log4cxx::helpers::ObjectPtr &obj, LogString &toAppendTo, log4cxx::helpers::Pool &p) const

Static Public Member Functions

static PatternConverterPtr newInstance (const std::vector< LogString > &options)
 Obtains an instance of pattern converter.


Member Function Documentation

void format const log4cxx::helpers::ObjectPtr obj,
LogString toAppendTo,
log4cxx::helpers::Pool p
const
 

Reimplemented from LoggingEventPatternConverter.

void format const log4cxx::spi::LoggingEventPtr event,
LogString toAppendTo,
log4cxx::helpers::Pool p
const [virtual]
 

Formats an event into a string buffer.

Parameters:
event event to format, may not be null.
toAppendTo string buffer to which the formatted event will be appended. May not be null.
p pool for memory allocations needing during format.

Implements LoggingEventPatternConverter.

static PatternConverterPtr newInstance const std::vector< LogString > &  options  )  [static]
 

Obtains an instance of pattern converter.

Parameters:
options options, may be null.
Returns:
instance of pattern converter.


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 155 10774264511 10263 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_line_separator_pattern_converter-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_line_separator_pattern_converter-memb100644 0 0 21774 10774263472 31053 0ustar 0 0 Apache log4cxx: Member List

LineSeparatorPatternConverter Member List

This is the complete list of members for LineSeparatorPatternConverter, including all inherited members.

addRef() const ObjectImpl [virtual]
append(LogString &toAppendTo, const std::string &src)PatternConverter [protected, static]
cast(const Class &clazz) const =0Object [pure virtual]
format(const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const LineSeparatorPatternConverter [virtual]
format(const log4cxx::helpers::ObjectPtr &obj, LogString &toAppendTo, log4cxx::helpers::Pool &p) const LineSeparatorPatternConverter
getClass() const Object [virtual]
getStaticClass()Object [static]
getStyleClass(const log4cxx::helpers::ObjectPtr &e) const PatternConverter [virtual]
handlesThrowable() const LoggingEventPatternConverter [virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
LoggingEventPatternConverter(const LogString &name, const LogString &style)LoggingEventPatternConverter [protected]
newInstance(const std::vector< LogString > &options)LineSeparatorPatternConverter [static]
ObjectImpl()ObjectImpl
PatternConverter(const LogString &name, const LogString &style)PatternConverter [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~PatternConverter()PatternConverter [protected, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_literal_pattern_converter.html100644 0 0 25516 10774263472 27523 0ustar 0 0 Apache log4cxx: LiteralPatternConverter Class Reference

LiteralPatternConverter Class Reference

Inherits LoggingEventPatternConverter.

List of all members.


Detailed Description

Formats a string literal.


Public Member Functions

void format (const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const
 Formats an event into a string buffer.
void format (const log4cxx::helpers::ObjectPtr &obj, LogString &toAppendTo, log4cxx::helpers::Pool &p) const

Static Public Member Functions

static PatternConverterPtr newInstance (const LogString &literal)


Member Function Documentation

void format const log4cxx::helpers::ObjectPtr obj,
LogString toAppendTo,
log4cxx::helpers::Pool p
const
 

Reimplemented from LoggingEventPatternConverter.

void format const log4cxx::spi::LoggingEventPtr event,
LogString toAppendTo,
log4cxx::helpers::Pool p
const [virtual]
 

Formats an event into a string buffer.

Parameters:
event event to format, may not be null.
toAppendTo string buffer to which the formatted event will be appended. May not be null.
p pool for memory allocations needing during format.

Implements LoggingEventPatternConverter.

static PatternConverterPtr newInstance const LogString literal  )  [static]
 


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 146 10774264511 10263 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_literal_pattern_converter-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_literal_pattern_converter-members.htm100644 0 0 21630 10774263472 30770 0ustar 0 0 Apache log4cxx: Member List

LiteralPatternConverter Member List

This is the complete list of members for LiteralPatternConverter, including all inherited members.

addRef() const ObjectImpl [virtual]
append(LogString &toAppendTo, const std::string &src)PatternConverter [protected, static]
cast(const Class &clazz) const =0Object [pure virtual]
format(const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const LiteralPatternConverter [virtual]
format(const log4cxx::helpers::ObjectPtr &obj, LogString &toAppendTo, log4cxx::helpers::Pool &p) const LiteralPatternConverter
getClass() const Object [virtual]
getStaticClass()Object [static]
getStyleClass(const log4cxx::helpers::ObjectPtr &e) const PatternConverter [virtual]
handlesThrowable() const LoggingEventPatternConverter [virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
LoggingEventPatternConverter(const LogString &name, const LogString &style)LoggingEventPatternConverter [protected]
newInstance(const LogString &literal)LiteralPatternConverter [static]
ObjectImpl()ObjectImpl
PatternConverter(const LogString &name, const LogString &style)PatternConverter [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~PatternConverter()PatternConverter [protected, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_logger_pattern_converter.html100644 0 0 21653 10774263472 27344 0ustar 0 0 Apache log4cxx: LoggerPatternConverter Class Reference

LoggerPatternConverter Class Reference

Inherits NamePatternConverter.

List of all members.


Detailed Description

Formats a logger name.


Public Member Functions

void format (const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const
 Formats an event into a string buffer.

Static Public Member Functions

static PatternConverterPtr newInstance (const std::vector< LogString > &options)
 Obtains an instance of pattern converter.


Member Function Documentation

void format const log4cxx::spi::LoggingEventPtr event,
LogString toAppendTo,
log4cxx::helpers::Pool p
const [virtual]
 

Formats an event into a string buffer.

Parameters:
event event to format, may not be null.
toAppendTo string buffer to which the formatted event will be appended. May not be null.
p pool for memory allocations needing during format.

Implements LoggingEventPatternConverter.

static PatternConverterPtr newInstance const std::vector< LogString > &  options  )  [static]
 

Obtains an instance of pattern converter.

Parameters:
options options, may be null.
Returns:
instance of pattern converter.


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 145 10774264511 10262 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_logger_pattern_converter-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_logger_pattern_converter-members.html100644 0 0 23335 10774263472 30773 0ustar 0 0 Apache log4cxx: Member List

LoggerPatternConverter Member List

This is the complete list of members for LoggerPatternConverter, including all inherited members.

abbreviate(int nameStart, LogString &buf) const NamePatternConverter [protected]
addRef() const ObjectImpl [virtual]
append(LogString &toAppendTo, const std::string &src)PatternConverter [protected, static]
cast(const Class &clazz) const =0Object [pure virtual]
format(const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const LoggerPatternConverter [virtual]
log4cxx::pattern::NamePatternConverter::format(const log4cxx::helpers::ObjectPtr &obj, LogString &toAppendTo, log4cxx::helpers::Pool &p) const LoggingEventPatternConverter
getClass() const Object [virtual]
getStaticClass()Object [static]
getStyleClass(const log4cxx::helpers::ObjectPtr &e) const PatternConverter [virtual]
handlesThrowable() const LoggingEventPatternConverter [virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
LoggingEventPatternConverter(const LogString &name, const LogString &style)LoggingEventPatternConverter [protected]
NamePatternConverter(const LogString &name, const LogString &style, const std::vector< LogString > &options)NamePatternConverter [protected]
newInstance(const std::vector< LogString > &options)LoggerPatternConverter [static]
ObjectImpl()ObjectImpl
PatternConverter(const LogString &name, const LogString &style)PatternConverter [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~PatternConverter()PatternConverter [protected, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_logging_event_pattern_converter.html100644 0 0 44761 10774263472 30721 0ustar 0 0 Apache log4cxx: LoggingEventPatternConverter Class Reference

LoggingEventPatternConverter Class Reference

Inherits PatternConverter.

Inherited by DatePatternConverter, FileLocationPatternConverter, FullLocationPatternConverter, LevelPatternConverter, LineLocationPatternConverter, LineSeparatorPatternConverter, LiteralPatternConverter, MessagePatternConverter, MethodLocationPatternConverter, NamePatternConverter, NDCPatternConverter, PropertiesPatternConverter, RelativeTimePatternConverter, ThreadPatternConverter, and ThrowableInformationPatternConverter.

List of all members.


Detailed Description

LoggingEventPatternConverter is a base class for pattern converters that can format information from instances of LoggingEvent.


Public Member Functions

virtual void format (const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const =0
 Formats an event into a string buffer.
void format (const log4cxx::helpers::ObjectPtr &obj, LogString &toAppendTo, log4cxx::helpers::Pool &p) const
virtual bool handlesThrowable () const
 Normally pattern converters are not meant to handle Exceptions although few pattern converters might.

Protected Member Functions

 LoggingEventPatternConverter (const LogString &name, const LogString &style)
 Constructs an instance of LoggingEventPatternConverter.


Constructor & Destructor Documentation

LoggingEventPatternConverter const LogString name,
const LogString style
[protected]
 

Constructs an instance of LoggingEventPatternConverter.

Parameters:
name name of converter.
style CSS style for output.


Member Function Documentation

void format const log4cxx::helpers::ObjectPtr obj,
LogString toAppendTo,
log4cxx::helpers::Pool p
const
 

Reimplemented in DatePatternConverter, LineSeparatorPatternConverter, and LiteralPatternConverter.

virtual void format const log4cxx::spi::LoggingEventPtr event,
LogString toAppendTo,
log4cxx::helpers::Pool p
const [pure virtual]
 

Formats an event into a string buffer.

Parameters:
event event to format, may not be null.
toAppendTo string buffer to which the formatted event will be appended. May not be null.
p pool for memory allocations needing during format.

Implemented in ClassNamePatternConverter, DatePatternConverter, FileLocationPatternConverter, FullLocationPatternConverter, LevelPatternConverter, LineLocationPatternConverter, LineSeparatorPatternConverter, LiteralPatternConverter, LoggerPatternConverter, MessagePatternConverter, MethodLocationPatternConverter, NDCPatternConverter, PropertiesPatternConverter, RelativeTimePatternConverter, ThreadPatternConverter, and ThrowableInformationPatternConverter.

virtual bool handlesThrowable  )  const [virtual]
 

Normally pattern converters are not meant to handle Exceptions although few pattern converters might.

By examining the return values for this method, the containing layout will determine whether it handles throwables or not.

Returns:
true if this PatternConverter handles throwables

Reimplemented in ThrowableInformationPatternConverter.


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 154 10774264511 10262 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_logging_event_pattern_converter-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_logging_event_pattern_converter-membe100644 0 0 21173 10774263472 31031 0ustar 0 0 Apache log4cxx: Member List

LoggingEventPatternConverter Member List

This is the complete list of members for LoggingEventPatternConverter, including all inherited members.

addRef() const ObjectImpl [virtual]
append(LogString &toAppendTo, const std::string &src)PatternConverter [protected, static]
cast(const Class &clazz) const =0Object [pure virtual]
format(const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const =0LoggingEventPatternConverter [pure virtual]
format(const log4cxx::helpers::ObjectPtr &obj, LogString &toAppendTo, log4cxx::helpers::Pool &p) const LoggingEventPatternConverter
getClass() const Object [virtual]
getStaticClass()Object [static]
getStyleClass(const log4cxx::helpers::ObjectPtr &e) const PatternConverter [virtual]
handlesThrowable() const LoggingEventPatternConverter [virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
LoggingEventPatternConverter(const LogString &name, const LogString &style)LoggingEventPatternConverter [protected]
ObjectImpl()ObjectImpl
PatternConverter(const LogString &name, const LogString &style)PatternConverter [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~PatternConverter()PatternConverter [protected, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_message_pattern_converter.html100644 0 0 21742 10774263472 27510 0ustar 0 0 Apache log4cxx: MessagePatternConverter Class Reference

MessagePatternConverter Class Reference

Inherits LoggingEventPatternConverter.

List of all members.


Detailed Description

Formats the message of an logging event.


Public Member Functions

void format (const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const
 Formats an event into a string buffer.

Static Public Member Functions

static PatternConverterPtr newInstance (const std::vector< LogString > &options)
 Obtains an instance of pattern converter.


Member Function Documentation

void format const log4cxx::spi::LoggingEventPtr event,
LogString toAppendTo,
log4cxx::helpers::Pool p
const [virtual]
 

Formats an event into a string buffer.

Parameters:
event event to format, may not be null.
toAppendTo string buffer to which the formatted event will be appended. May not be null.
p pool for memory allocations needing during format.

Implements LoggingEventPatternConverter.

static PatternConverterPtr newInstance const std::vector< LogString > &  options  )  [static]
 

Obtains an instance of pattern converter.

Parameters:
options options, may be null.
Returns:
instance of pattern converter.


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 146 10774264511 10263 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_message_pattern_converter-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_message_pattern_converter-members.htm100644 0 0 21756 10774263472 30771 0ustar 0 0 Apache log4cxx: Member List

MessagePatternConverter Member List

This is the complete list of members for MessagePatternConverter, including all inherited members.

addRef() const ObjectImpl [virtual]
append(LogString &toAppendTo, const std::string &src)PatternConverter [protected, static]
cast(const Class &clazz) const =0Object [pure virtual]
format(const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const MessagePatternConverter [virtual]
log4cxx::pattern::LoggingEventPatternConverter::format(const log4cxx::helpers::ObjectPtr &obj, LogString &toAppendTo, log4cxx::helpers::Pool &p) const LoggingEventPatternConverter
getClass() const Object [virtual]
getStaticClass()Object [static]
getStyleClass(const log4cxx::helpers::ObjectPtr &e) const PatternConverter [virtual]
handlesThrowable() const LoggingEventPatternConverter [virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
LoggingEventPatternConverter(const LogString &name, const LogString &style)LoggingEventPatternConverter [protected]
newInstance(const std::vector< LogString > &options)MessagePatternConverter [static]
ObjectImpl()ObjectImpl
PatternConverter(const LogString &name, const LogString &style)PatternConverter [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~PatternConverter()PatternConverter [protected, virtual]
././@LongLink100644 0 0 146 10774264511 10263 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_method_location_pattern_converter.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_method_location_pattern_converter.htm100644 0 0 22614 10774263472 31057 0ustar 0 0 Apache log4cxx: MethodLocationPatternConverter Class Reference

MethodLocationPatternConverter Class Reference

Inherits LoggingEventPatternConverter.

List of all members.


Detailed Description

Return the event's line location information in a StringBuffer.


Public Member Functions

void format (const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const
 Formats an event into a string buffer.

Static Public Member Functions

static PatternConverterPtr newInstance (const std::vector< LogString > &options)
 Obtains an instance of MethodLocationPatternConverter.


Member Function Documentation

void format const log4cxx::spi::LoggingEventPtr event,
LogString toAppendTo,
log4cxx::helpers::Pool p
const [virtual]
 

Formats an event into a string buffer.

Parameters:
event event to format, may not be null.
toAppendTo string buffer to which the formatted event will be appended. May not be null.
p pool for memory allocations needing during format.

Implements LoggingEventPatternConverter.

static PatternConverterPtr newInstance const std::vector< LogString > &  options  )  [static]
 

Obtains an instance of MethodLocationPatternConverter.

Parameters:
options options, may be null.
Returns:
instance of MethodLocationPatternConverter.


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 156 10774264511 10264 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_method_location_pattern_converter-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_method_location_pattern_converter-mem100644 0 0 22062 10774263472 31041 0ustar 0 0 Apache log4cxx: Member List

MethodLocationPatternConverter Member List

This is the complete list of members for MethodLocationPatternConverter, including all inherited members.

addRef() const ObjectImpl [virtual]
append(LogString &toAppendTo, const std::string &src)PatternConverter [protected, static]
cast(const Class &clazz) const =0Object [pure virtual]
format(const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const MethodLocationPatternConverter [virtual]
log4cxx::pattern::LoggingEventPatternConverter::format(const log4cxx::helpers::ObjectPtr &obj, LogString &toAppendTo, log4cxx::helpers::Pool &p) const LoggingEventPatternConverter
getClass() const Object [virtual]
getStaticClass()Object [static]
getStyleClass(const log4cxx::helpers::ObjectPtr &e) const PatternConverter [virtual]
handlesThrowable() const LoggingEventPatternConverter [virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
LoggingEventPatternConverter(const LogString &name, const LogString &style)LoggingEventPatternConverter [protected]
newInstance(const std::vector< LogString > &options)MethodLocationPatternConverter [static]
ObjectImpl()ObjectImpl
PatternConverter(const LogString &name, const LogString &style)PatternConverter [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~PatternConverter()PatternConverter [protected, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_name_abbreviator.html100644 0 0 30050 10774263472 25530 0ustar 0 0 Apache log4cxx: NameAbbreviator Class Reference

NameAbbreviator Class Reference

Inherits ObjectImpl.

List of all members.


Detailed Description

NameAbbreviator generates abbreviated logger and class names.


Public Member Functions

virtual ~NameAbbreviator ()
virtual void abbreviate (LogString::size_type nameStart, LogString &buf) const =0
 Abbreviates a name in a StringBuffer.

Static Public Member Functions

static NameAbbreviatorPtr getAbbreviator (const LogString &pattern)
 Gets an abbreviator.
static NameAbbreviatorPtr getDefaultAbbreviator ()
 Gets default abbreviator.

Protected Member Functions

 NameAbbreviator ()


Constructor & Destructor Documentation

NameAbbreviator  )  [protected]
 

virtual ~NameAbbreviator  )  [virtual]
 


Member Function Documentation

virtual void abbreviate LogString::size_type  nameStart,
LogString buf
const [pure virtual]
 

Abbreviates a name in a StringBuffer.

Parameters:
nameStart starting position of name in buf.
buf buffer, may not be null.

static NameAbbreviatorPtr getAbbreviator const LogString pattern  )  [static]
 

Gets an abbreviator.

For example, "%logger{2}" will output only 2 elements of the logger name, "%logger{1.}" will output only the first character of the non-final elements in the name, "logger(1~.2~} will output the first character of the first element, two characters of the second and subsequent elements and will use a tilde to indicate abbreviated characters.

Parameters:
pattern abbreviation pattern.
Returns:
abbreviator, will not be null.

static NameAbbreviatorPtr getDefaultAbbreviator  )  [static]
 

Gets default abbreviator.

Returns:
default abbreviator.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_name_abbreviator-members.html100644 0 0 16334 10774263472 27171 0ustar 0 0 Apache log4cxx: Member List

NameAbbreviator Member List

This is the complete list of members for NameAbbreviator, including all inherited members.

abbreviate(LogString::size_type nameStart, LogString &buf) const =0NameAbbreviator [pure virtual]
addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
getAbbreviator(const LogString &pattern)NameAbbreviator [static]
getClass() const Object [virtual]
getDefaultAbbreviator()NameAbbreviator [static]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
NameAbbreviator()NameAbbreviator [protected]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
~NameAbbreviator()NameAbbreviator [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_name_pattern_converter.html100644 0 0 22451 10774263472 27002 0ustar 0 0 Apache log4cxx: NamePatternConverter Class Reference

NamePatternConverter Class Reference

Inherits LoggingEventPatternConverter.

Inherited by ClassNamePatternConverter, and LoggerPatternConverter.

List of all members.


Detailed Description

Base class for other pattern converters which can return only parts of their name.


Protected Member Functions

 NamePatternConverter (const LogString &name, const LogString &style, const std::vector< LogString > &options)
 Constructor.
void abbreviate (int nameStart, LogString &buf) const
 Abbreviate name in string buffer.


Constructor & Destructor Documentation

NamePatternConverter const LogString name,
const LogString style,
const std::vector< LogString > &  options
[protected]
 

Constructor.

Parameters:
name name of converter.
style style name for associated output.
options options, may be null, first element will be interpreted as an abbreviation pattern.


Member Function Documentation

void abbreviate int  nameStart,
LogString buf
const [protected]
 

Abbreviate name in string buffer.

Parameters:
nameStart starting position of name to abbreviate.
buf string buffer containing name.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_name_pattern_converter-members.html100644 0 0 22542 10774263472 30433 0ustar 0 0 Apache log4cxx: Member List

NamePatternConverter Member List

This is the complete list of members for NamePatternConverter, including all inherited members.

abbreviate(int nameStart, LogString &buf) const NamePatternConverter [protected]
addRef() const ObjectImpl [virtual]
append(LogString &toAppendTo, const std::string &src)PatternConverter [protected, static]
cast(const Class &clazz) const =0Object [pure virtual]
format(const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const =0LoggingEventPatternConverter [pure virtual]
format(const log4cxx::helpers::ObjectPtr &obj, LogString &toAppendTo, log4cxx::helpers::Pool &p) const LoggingEventPatternConverter
getClass() const Object [virtual]
getStaticClass()Object [static]
getStyleClass(const log4cxx::helpers::ObjectPtr &e) const PatternConverter [virtual]
handlesThrowable() const LoggingEventPatternConverter [virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
LoggingEventPatternConverter(const LogString &name, const LogString &style)LoggingEventPatternConverter [protected]
NamePatternConverter(const LogString &name, const LogString &style, const std::vector< LogString > &options)NamePatternConverter [protected]
ObjectImpl()ObjectImpl
PatternConverter(const LogString &name, const LogString &style)PatternConverter [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~PatternConverter()PatternConverter [protected, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_n_d_c_pattern_converter.html100644 0 0 22354 10774263472 27126 0ustar 0 0 Apache log4cxx: NDCPatternConverter Class Reference

NDCPatternConverter Class Reference

Inherits LoggingEventPatternConverter.

List of all members.


Detailed Description

Return the event's NDC in a StringBuffer.


Public Member Functions

void format (const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const
 Formats an event into a string buffer.

Static Public Member Functions

static PatternConverterPtr newInstance (const std::vector< LogString > &options)
 Obtains an instance of NDCPatternConverter.


Member Function Documentation

void format const log4cxx::spi::LoggingEventPtr event,
LogString toAppendTo,
log4cxx::helpers::Pool p
const [virtual]
 

Formats an event into a string buffer.

Parameters:
event event to format, may not be null.
toAppendTo string buffer to which the formatted event will be appended. May not be null.
p pool for memory allocations needing during format.

Implements LoggingEventPatternConverter.

static PatternConverterPtr newInstance const std::vector< LogString > &  options  )  [static]
 

Obtains an instance of NDCPatternConverter.

Parameters:
options options, may be null.
Returns:
instance of NDCPatternConverter.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_n_d_c_pattern_converter-members.html100644 0 0 21724 10774263472 30556 0ustar 0 0 Apache log4cxx: Member List

NDCPatternConverter Member List

This is the complete list of members for NDCPatternConverter, including all inherited members.

addRef() const ObjectImpl [virtual]
append(LogString &toAppendTo, const std::string &src)PatternConverter [protected, static]
cast(const Class &clazz) const =0Object [pure virtual]
format(const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const NDCPatternConverter [virtual]
log4cxx::pattern::LoggingEventPatternConverter::format(const log4cxx::helpers::ObjectPtr &obj, LogString &toAppendTo, log4cxx::helpers::Pool &p) const LoggingEventPatternConverter
getClass() const Object [virtual]
getStaticClass()Object [static]
getStyleClass(const log4cxx::helpers::ObjectPtr &e) const PatternConverter [virtual]
handlesThrowable() const LoggingEventPatternConverter [virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
LoggingEventPatternConverter(const LogString &name, const LogString &style)LoggingEventPatternConverter [protected]
newInstance(const std::vector< LogString > &options)NDCPatternConverter [static]
ObjectImpl()ObjectImpl
PatternConverter(const LogString &name, const LogString &style)PatternConverter [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~PatternConverter()PatternConverter [protected, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_pattern_converter.html100644 0 0 31376 10774263472 26010 0ustar 0 0 Apache log4cxx: PatternConverter Class Reference

PatternConverter Class Reference

Inherits ObjectImpl.

Inherited by IntegerPatternConverter, and LoggingEventPatternConverter.

List of all members.


Detailed Description

PatternConverter is an abstract class that provides the formatting functionality that derived classes need.

Conversion specifiers in a conversion patterns are parsed to individual PatternConverters. Each of which is responsible for converting an object in a converter specific manner.


Public Member Functions

virtual LogString getStyleClass (const log4cxx::helpers::ObjectPtr &e) const
 This method returns the CSS style class that should be applied to the LoggingEvent passed as parameter, which can be null.

Protected Member Functions

 PatternConverter (const LogString &name, const LogString &style)
 Create a new pattern converter.
virtual ~PatternConverter ()

Static Protected Member Functions

static void append (LogString &toAppendTo, const std::string &src)
 Appends content in the locale code page to a LogString.


Constructor & Destructor Documentation

PatternConverter const LogString name,
const LogString style
[protected]
 

Create a new pattern converter.

Parameters:
name name for pattern converter.
style CSS style for formatted output.

virtual ~PatternConverter  )  [protected, virtual]
 


Member Function Documentation

static void append LogString toAppendTo,
const std::string &  src
[static, protected]
 

Appends content in the locale code page to a LogString.

Parameters:
toAppendTo string to which content is appended.
src content.

virtual LogString getStyleClass const log4cxx::helpers::ObjectPtr e  )  const [virtual]
 

This method returns the CSS style class that should be applied to the LoggingEvent passed as parameter, which can be null.

This information is currently used only by HTMLLayout.

Parameters:
e null values are accepted
Returns:
the name of the conversion pattern

Reimplemented in LevelPatternConverter.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_pattern_converter-members.html100644 0 0 16021 10774263472 27426 0ustar 0 0 Apache log4cxx: Member List

PatternConverter Member List

This is the complete list of members for PatternConverter, including all inherited members.

addRef() const ObjectImpl [virtual]
append(LogString &toAppendTo, const std::string &src)PatternConverter [protected, static]
cast(const Class &clazz) const =0Object [pure virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
getStyleClass(const log4cxx::helpers::ObjectPtr &e) const PatternConverter [virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
PatternConverter(const LogString &name, const LogString &style)PatternConverter [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~PatternConverter()PatternConverter [protected, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_pattern_parser.html100644 0 0 16565 10774263472 25300 0ustar 0 0 Apache log4cxx: PatternParser Class Reference

PatternParser Class Reference

List of all members.

Detailed Description

Most of the work of the PatternLayout class is delegated to the PatternParser class.

It is this class that parses conversion patterns and creates a chained list of PatternConverters.


Static Public Member Functions

static void parse (const LogString &pattern, std::vector< PatternConverterPtr > &patternConverters, std::vector< FormattingInfoPtr > &formattingInfos, const PatternMap &rules)
 Parse a format specifier.


Member Function Documentation

static void parse const LogString pattern,
std::vector< PatternConverterPtr > &  patternConverters,
std::vector< FormattingInfoPtr > &  formattingInfos,
const PatternMap rules
[static]
 

Parse a format specifier.

Parameters:
pattern pattern to parse.
patternConverters list to receive pattern converters.
formattingInfos list to receive field specifiers corresponding to pattern converters.
rules map of stock pattern converters keyed by format specifier.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_pattern_parser-members.html100644 0 0 6335 10774263472 26702 0ustar 0 0 Apache log4cxx: Member List

PatternParser Member List

This is the complete list of members for PatternParser, including all inherited members.

parse(const LogString &pattern, std::vector< PatternConverterPtr > &patternConverters, std::vector< FormattingInfoPtr > &formattingInfos, const PatternMap &rules)PatternParser [static]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_properties_pattern_converter.html100644 0 0 23133 10774263472 30254 0ustar 0 0 Apache log4cxx: PropertiesPatternConverter Class Reference

PropertiesPatternConverter Class Reference

Inherits LoggingEventPatternConverter.

List of all members.


Detailed Description

Able to handle the contents of the LoggingEvent's Property bundle and either output the entire contents of the properties in a similar format to the java.util.Hashtable.toString(), or to output the value of a specific key within the property bundle when this pattern converter has the option set.


Public Member Functions

void format (const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const
 Formats an event into a string buffer.

Static Public Member Functions

static PatternConverterPtr newInstance (const std::vector< LogString > &options)
 Obtains an instance of PropertiesPatternConverter.


Member Function Documentation

void format const log4cxx::spi::LoggingEventPtr event,
LogString toAppendTo,
log4cxx::helpers::Pool p
const [virtual]
 

Formats an event into a string buffer.

Parameters:
event event to format, may not be null.
toAppendTo string buffer to which the formatted event will be appended. May not be null.
p pool for memory allocations needing during format.

Implements LoggingEventPatternConverter.

static PatternConverterPtr newInstance const std::vector< LogString > &  options  )  [static]
 

Obtains an instance of PropertiesPatternConverter.

Parameters:
options options, may be null or first element contains name of property to format.
Returns:
instance of PropertiesPatternConverter.


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 151 10774264511 10257 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_properties_pattern_converter-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_properties_pattern_converter-members.100644 0 0 22011 10774263472 31011 0ustar 0 0 Apache log4cxx: Member List

PropertiesPatternConverter Member List

This is the complete list of members for PropertiesPatternConverter, including all inherited members.

addRef() const ObjectImpl [virtual]
append(LogString &toAppendTo, const std::string &src)PatternConverter [protected, static]
cast(const Class &clazz) const =0Object [pure virtual]
format(const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const PropertiesPatternConverter [virtual]
log4cxx::pattern::LoggingEventPatternConverter::format(const log4cxx::helpers::ObjectPtr &obj, LogString &toAppendTo, log4cxx::helpers::Pool &p) const LoggingEventPatternConverter
getClass() const Object [virtual]
getStaticClass()Object [static]
getStyleClass(const log4cxx::helpers::ObjectPtr &e) const PatternConverter [virtual]
handlesThrowable() const LoggingEventPatternConverter [virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
LoggingEventPatternConverter(const LogString &name, const LogString &style)LoggingEventPatternConverter [protected]
newInstance(const std::vector< LogString > &options)PropertiesPatternConverter [static]
ObjectImpl()ObjectImpl
PatternConverter(const LogString &name, const LogString &style)PatternConverter [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~PatternConverter()PatternConverter [protected, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_relative_time_pattern_converter.html100644 0 0 25431 10774263472 30714 0ustar 0 0 Apache log4cxx: RelativeTimePatternConverter Class Reference

RelativeTimePatternConverter Class Reference

Inherits LoggingEventPatternConverter.

List of all members.


Detailed Description

Format the relative time in milliseconds.


Public Member Functions

 RelativeTimePatternConverter ()
 Private constructor.
void format (const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const
 Formats an event into a string buffer.

Static Public Member Functions

static PatternConverterPtr newInstance (const std::vector< LogString > &options)
 Obtains an instance of RelativeTimePatternConverter.


Constructor & Destructor Documentation

RelativeTimePatternConverter  ) 
 

Private constructor.


Member Function Documentation

void format const log4cxx::spi::LoggingEventPtr event,
LogString toAppendTo,
log4cxx::helpers::Pool p
const [virtual]
 

Formats an event into a string buffer.

Parameters:
event event to format, may not be null.
toAppendTo string buffer to which the formatted event will be appended. May not be null.
p pool for memory allocations needing during format.

Implements LoggingEventPatternConverter.

static PatternConverterPtr newInstance const std::vector< LogString > &  options  )  [static]
 

Obtains an instance of RelativeTimePatternConverter.

Parameters:
options options, currently ignored, may be null.
Returns:
instance of RelativeTimePatternConverter.


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 154 10774264512 10263 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_relative_time_pattern_converter-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_relative_time_pattern_converter-membe100644 0 0 22546 10774263472 31040 0ustar 0 0 Apache log4cxx: Member List

RelativeTimePatternConverter Member List

This is the complete list of members for RelativeTimePatternConverter, including all inherited members.

addRef() const ObjectImpl [virtual]
append(LogString &toAppendTo, const std::string &src)PatternConverter [protected, static]
cast(const Class &clazz) const =0Object [pure virtual]
format(const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const RelativeTimePatternConverter [virtual]
log4cxx::pattern::LoggingEventPatternConverter::format(const log4cxx::helpers::ObjectPtr &obj, LogString &toAppendTo, log4cxx::helpers::Pool &p) const LoggingEventPatternConverter
getClass() const Object [virtual]
getStaticClass()Object [static]
getStyleClass(const log4cxx::helpers::ObjectPtr &e) const PatternConverter [virtual]
handlesThrowable() const LoggingEventPatternConverter [virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
LoggingEventPatternConverter(const LogString &name, const LogString &style)LoggingEventPatternConverter [protected]
newInstance(const std::vector< LogString > &options)RelativeTimePatternConverter [static]
ObjectImpl()ObjectImpl
PatternConverter(const LogString &name, const LogString &style)PatternConverter [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
RelativeTimePatternConverter()RelativeTimePatternConverter
releaseRef() const ObjectImpl [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~PatternConverter()PatternConverter [protected, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_thread_pattern_converter.html100644 0 0 22347 10774263472 27335 0ustar 0 0 Apache log4cxx: ThreadPatternConverter Class Reference

ThreadPatternConverter Class Reference

Inherits LoggingEventPatternConverter.

List of all members.


Detailed Description

Formats the event thread name.


Public Member Functions

void format (const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const
 Formats an event into a string buffer.

Static Public Member Functions

static PatternConverterPtr newInstance (const std::vector< LogString > &options)
 Obtains an instance of ThreadPatternConverter.


Member Function Documentation

void format const log4cxx::spi::LoggingEventPtr event,
LogString toAppendTo,
log4cxx::helpers::Pool p
const [virtual]
 

Formats an event into a string buffer.

Parameters:
event event to format, may not be null.
toAppendTo string buffer to which the formatted event will be appended. May not be null.
p pool for memory allocations needing during format.

Implements LoggingEventPatternConverter.

static PatternConverterPtr newInstance const std::vector< LogString > &  options  )  [static]
 

Obtains an instance of ThreadPatternConverter.

Parameters:
options options, currently ignored, may be null.
Returns:
instance of ThreadPatternConverter.


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 145 10774264512 10263 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_thread_pattern_converter-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_thread_pattern_converter-members.html100644 0 0 21745 10774263472 30766 0ustar 0 0 Apache log4cxx: Member List

ThreadPatternConverter Member List

This is the complete list of members for ThreadPatternConverter, including all inherited members.

addRef() const ObjectImpl [virtual]
append(LogString &toAppendTo, const std::string &src)PatternConverter [protected, static]
cast(const Class &clazz) const =0Object [pure virtual]
format(const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const ThreadPatternConverter [virtual]
log4cxx::pattern::LoggingEventPatternConverter::format(const log4cxx::helpers::ObjectPtr &obj, LogString &toAppendTo, log4cxx::helpers::Pool &p) const LoggingEventPatternConverter
getClass() const Object [virtual]
getStaticClass()Object [static]
getStyleClass(const log4cxx::helpers::ObjectPtr &e) const PatternConverter [virtual]
handlesThrowable() const LoggingEventPatternConverter [virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
LoggingEventPatternConverter(const LogString &name, const LogString &style)LoggingEventPatternConverter [protected]
newInstance(const std::vector< LogString > &options)ThreadPatternConverter [static]
ObjectImpl()ObjectImpl
PatternConverter(const LogString &name, const LogString &style)PatternConverter [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~PatternConverter()PatternConverter [protected, virtual]
././@LongLink100644 0 0 154 10774264512 10263 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_throwable_information_pattern_converter.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_throwable_information_pattern_convert100644 0 0 25640 10774263472 31167 0ustar 0 0 Apache log4cxx: ThrowableInformationPatternConverter Class Reference

ThrowableInformationPatternConverter Class Reference

Inherits LoggingEventPatternConverter.

List of all members.


Detailed Description

Outputs the ThrowableInformation portion of the LoggingiEvent as a full stacktrace unless this converter's option is 'short', where it just outputs the first line of the trace.


Public Member Functions

void format (const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const
 Formats an event into a string buffer.
bool handlesThrowable () const
 This converter obviously handles throwables.

Static Public Member Functions

static PatternConverterPtr newInstance (const std::vector< LogString > &options)
 Gets an instance of the class.


Member Function Documentation

void format const log4cxx::spi::LoggingEventPtr event,
LogString toAppendTo,
log4cxx::helpers::Pool p
const [virtual]
 

Formats an event into a string buffer.

Parameters:
event event to format, may not be null.
toAppendTo string buffer to which the formatted event will be appended. May not be null.
p pool for memory allocations needing during format.

Implements LoggingEventPatternConverter.

bool handlesThrowable  )  const [virtual]
 

This converter obviously handles throwables.

Returns:
true.

Reimplemented from LoggingEventPatternConverter.

static PatternConverterPtr newInstance const std::vector< LogString > &  options  )  [static]
 

Gets an instance of the class.

Parameters:
options pattern options, may be null. If first element is "short", only the first line of the throwable will be formatted.
Returns:
instance of class.


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 164 10774264512 10264 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_throwable_information_pattern_converter-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1pattern_1_1_throwable_information_pattern_convert100644 0 0 22200 10774263472 31154 0ustar 0 0 Apache log4cxx: Member List

ThrowableInformationPatternConverter Member List

This is the complete list of members for ThrowableInformationPatternConverter, including all inherited members.

addRef() const ObjectImpl [virtual]
append(LogString &toAppendTo, const std::string &src)PatternConverter [protected, static]
cast(const Class &clazz) const =0Object [pure virtual]
format(const log4cxx::spi::LoggingEventPtr &event, LogString &toAppendTo, log4cxx::helpers::Pool &p) const ThrowableInformationPatternConverter [virtual]
log4cxx::pattern::LoggingEventPatternConverter::format(const log4cxx::helpers::ObjectPtr &obj, LogString &toAppendTo, log4cxx::helpers::Pool &p) const LoggingEventPatternConverter
getClass() const Object [virtual]
getStaticClass()Object [static]
getStyleClass(const log4cxx::helpers::ObjectPtr &e) const PatternConverter [virtual]
handlesThrowable() const ThrowableInformationPatternConverter [virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
LoggingEventPatternConverter(const LogString &name, const LogString &style)LoggingEventPatternConverter [protected]
newInstance(const std::vector< LogString > &options)ThrowableInformationPatternConverter [static]
ObjectImpl()ObjectImpl
PatternConverter(const LogString &name, const LogString &style)PatternConverter [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~PatternConverter()PatternConverter [protected, virtual]
apache-log4cxx-0.10.0/site/apidocs/namespacelog4cxx_1_1rolling.html100644 0 0 64235 10774263472 22344 0ustar 0 0 Apache log4cxx: log4cxx::rolling Namespace Reference

log4cxx::rolling Namespace Reference


Classes

class  Action
 A file system action performed as part of a rollover event. More...
class  FileRenameAction
class  FilterBasedTriggeringPolicy
 FilterBasedTriggeringPolicy determines if rolling should be triggered by evaluating the current message against a set of filters. More...
class  FixedWindowRollingPolicy
 When rolling over, FixedWindowRollingPolicy renames files according to a fixed window algorithm as described below. More...
class  GZCompressAction
class  ManualTriggeringPolicy
 ManualTriggeringPolicy only rolls over on explicit calls to RollingFileAppender.rollover(). More...
class  RollingFileAppender
 RollingFileAppender extends log4cxx::FileAppender to backup the log files depending on RollingPolicy and TriggeringPolicy. More...
class  RollingFileAppenderSkeleton
 Base class for log4cxx::rolling::RollingFileAppender and log4cxx::RollingFileAppender (analogues of org.apache.log4j.rolling.RFA from extras companion and org.apache.log4j.RFA from log4j 1.2, respectively). More...
class  RollingPolicy
 A RollingPolicy is responsible for performing the rolling over of the active log file. More...
class  RollingPolicyBase
 Implements methods common to most, it not all, rolling policies. More...
class  RolloverDescription
class  SizeBasedTriggeringPolicy
 SizeBasedTriggeringPolicy looks at size of the file being currently written to. More...
class  TimeBasedRollingPolicy
 TimeBasedRollingPolicy is both easy to configure and quite powerful. More...
class  TriggeringPolicy
 A TriggeringPolicy controls the conditions under which rollover occurs. More...
class  ZipCompressAction

Functions

 LOG4CXX_PTR_DEF (Action)
 LOG4CXX_PTR_DEF (FileRenameAction)
 LOG4CXX_PTR_DEF (FilterBasedTriggeringPolicy)
 LOG4CXX_PTR_DEF (FixedWindowRollingPolicy)
 LOG4CXX_PTR_DEF (GZCompressAction)
 LOG4CXX_PTR_DEF (RollingFileAppender)
 LOG4CXX_PTR_DEF (RollingFileAppenderSkeleton)
 LOG4CXX_PTR_DEF (RollingPolicy)
 LOG4CXX_PTR_DEF (RolloverDescription)
 LOG4CXX_PTR_DEF (SizeBasedTriggeringPolicy)
 LOG4CXX_PTR_DEF (TimeBasedRollingPolicy)
 LOG4CXX_PTR_DEF (TriggeringPolicy)
 LOG4CXX_PTR_DEF (ZipCompressAction)


Function Documentation

log4cxx::rolling::LOG4CXX_PTR_DEF ZipCompressAction   ) 
 

log4cxx::rolling::LOG4CXX_PTR_DEF TriggeringPolicy   ) 
 

log4cxx::rolling::LOG4CXX_PTR_DEF TimeBasedRollingPolicy   ) 
 

log4cxx::rolling::LOG4CXX_PTR_DEF SizeBasedTriggeringPolicy   ) 
 

log4cxx::rolling::LOG4CXX_PTR_DEF RolloverDescription   ) 
 

log4cxx::rolling::LOG4CXX_PTR_DEF RollingPolicy   ) 
 

log4cxx::rolling::LOG4CXX_PTR_DEF RollingFileAppenderSkeleton   ) 
 

log4cxx::rolling::LOG4CXX_PTR_DEF RollingFileAppender   ) 
 

log4cxx::rolling::LOG4CXX_PTR_DEF GZCompressAction   ) 
 

log4cxx::rolling::LOG4CXX_PTR_DEF FixedWindowRollingPolicy   ) 
 

log4cxx::rolling::LOG4CXX_PTR_DEF FilterBasedTriggeringPolicy   ) 
 

log4cxx::rolling::LOG4CXX_PTR_DEF FileRenameAction   ) 
 

log4cxx::rolling::LOG4CXX_PTR_DEF Action   ) 
 

apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_action.html100644 0 0 32145 10774263472 23505 0ustar 0 0 Apache log4cxx: Action Class Reference

Action Class Reference

Inherits ObjectImpl.

Inherited by FileRenameAction, GZCompressAction, and ZipCompressAction.

List of all members.


Detailed Description

A file system action performed as part of a rollover event.


Public Member Functions

virtual bool execute (log4cxx::helpers::Pool &pool) const =0
 Perform action.
void run (log4cxx::helpers::Pool &pool)
void close ()
bool isComplete () const
 Tests if the action is complete.
void reportException (const std::exception &)

Protected Member Functions

 Action ()
 Constructor.
virtual ~Action ()


Constructor & Destructor Documentation

Action  )  [protected]
 

Constructor.

virtual ~Action  )  [protected, virtual]
 


Member Function Documentation

void close  ) 
 

virtual bool execute log4cxx::helpers::Pool pool  )  const [pure virtual]
 

Perform action.

Returns:
true if successful.

Implemented in FileRenameAction, GZCompressAction, and ZipCompressAction.

bool isComplete  )  const
 

Tests if the action is complete.

Returns:
true if action is complete.

void reportException const std::exception &   ) 
 

void run log4cxx::helpers::Pool pool  ) 
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_action-members.html100644 0 0 16716 10774263472 25143 0ustar 0 0 Apache log4cxx: Member List

Action Member List

This is the complete list of members for Action, including all inherited members.

Action()Action [protected]
addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
close()Action
execute(log4cxx::helpers::Pool &pool) const =0Action [pure virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
isComplete() const Action
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
reportException(const std::exception &)Action
run(log4cxx::helpers::Pool &pool)Action
~Action()Action [protected, virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_file_rename_action.html100644 0 0 16704 10774263472 26036 0ustar 0 0 Apache log4cxx: FileRenameAction Class Reference

FileRenameAction Class Reference

Inherits Action.

List of all members.

Public Member Functions

 FileRenameAction (const File &toRename, const File &renameTo, bool renameEmptyFile)
 Constructor.
virtual bool execute (log4cxx::helpers::Pool &pool) const
 Perform action.


Constructor & Destructor Documentation

FileRenameAction const File toRename,
const File renameTo,
bool  renameEmptyFile
 

Constructor.


Member Function Documentation

virtual bool execute log4cxx::helpers::Pool pool  )  const [virtual]
 

Perform action.

Returns:
true if successful.

Implements Action.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_file_rename_action-members.html100644 0 0 17545 10774263472 27472 0ustar 0 0 Apache log4cxx: Member List

FileRenameAction Member List

This is the complete list of members for FileRenameAction, including all inherited members.

Action()Action [protected]
addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
close()Action
execute(log4cxx::helpers::Pool &pool) const FileRenameAction [virtual]
FileRenameAction(const File &toRename, const File &renameTo, bool renameEmptyFile)FileRenameAction
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
isComplete() const Action
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
reportException(const std::exception &)Action
run(log4cxx::helpers::Pool &pool)Action
~Action()Action [protected, virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_filter_based_triggering_policy.html100644 0 0 46371 10774263472 30461 0ustar 0 0 Apache log4cxx: FilterBasedTriggeringPolicy Class Reference

FilterBasedTriggeringPolicy Class Reference

Inherits TriggeringPolicy.

List of all members.


Detailed Description

FilterBasedTriggeringPolicy determines if rolling should be triggered by evaluating the current message against a set of filters.

Unless a filter rejects a message, a rolling event will be triggered.


Public Member Functions

 FilterBasedTriggeringPolicy ()
 Creates a new FilterBasedTriggeringPolicy.
virtual ~FilterBasedTriggeringPolicy ()
virtual bool isTriggeringEvent (Appender *appender, const log4cxx::spi::LoggingEventPtr &event, const LogString &filename, size_t fileLength)
 Determines if a rollover may be appropriate at this time.
void addFilter (const log4cxx::spi::FilterPtr &newFilter)
 Add a filter to end of the filter list.
void clearFilters ()
 Clear the filters chain.
log4cxx::spi::FilterPtrgetFilter ()
 Returns the head Filter.
void activateOptions (log4cxx::helpers::Pool &)
 Prepares the instance for use.
void setOption (const LogString &option, const LogString &value)
 Set option to value.


Constructor & Destructor Documentation

FilterBasedTriggeringPolicy  ) 
 

Creates a new FilterBasedTriggeringPolicy.

virtual ~FilterBasedTriggeringPolicy  )  [virtual]
 


Member Function Documentation

void activateOptions log4cxx::helpers::Pool  )  [virtual]
 

Prepares the instance for use.

Implements OptionHandler.

void addFilter const log4cxx::spi::FilterPtr newFilter  ) 
 

Add a filter to end of the filter list.

Parameters:
newFilter filter to add to end of list.

void clearFilters  ) 
 

Clear the filters chain.

log4cxx::spi::FilterPtr& getFilter  ) 
 

Returns the head Filter.

virtual bool isTriggeringEvent Appender appender,
const log4cxx::spi::LoggingEventPtr event,
const LogString filename,
size_t  fileLength
[virtual]
 

Determines if a rollover may be appropriate at this time.

If true is returned, RolloverPolicy.rollover will be called but it can determine that a rollover is not warranted.

Parameters:
appender A reference to the appender.
event A reference to the currently event.
filename The filename for the currently active log file.
fileLength Length of the file in bytes.
Returns:
true if a rollover should occur.

Implements TriggeringPolicy.

void setOption const LogString option,
const LogString value
[virtual]
 

Set option to value.

The handling of each option depends on the OptionHandler instance. Some options may become active immediately whereas other may be activated only when activateOptions is called.

Implements OptionHandler.


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 153 10774264512 10262 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_filter_based_triggering_policy-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_filter_based_triggering_policy-member100644 0 0 22135 10774263472 30753 0ustar 0 0 Apache log4cxx: Member List

FilterBasedTriggeringPolicy Member List

This is the complete list of members for FilterBasedTriggeringPolicy, including all inherited members.

activateOptions(log4cxx::helpers::Pool &)FilterBasedTriggeringPolicy [virtual]
addFilter(const log4cxx::spi::FilterPtr &newFilter)FilterBasedTriggeringPolicy
addRef() const TriggeringPolicy [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
clearFilters()FilterBasedTriggeringPolicy
FilterBasedTriggeringPolicy()FilterBasedTriggeringPolicy
getClass() const Object [virtual]
getFilter()FilterBasedTriggeringPolicy
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
isTriggeringEvent(Appender *appender, const log4cxx::spi::LoggingEventPtr &event, const LogString &filename, size_t fileLength)FilterBasedTriggeringPolicy [virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const TriggeringPolicy [virtual]
setOption(const LogString &option, const LogString &value)FilterBasedTriggeringPolicy [virtual]
~FilterBasedTriggeringPolicy()FilterBasedTriggeringPolicy [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
~TriggeringPolicy()TriggeringPolicy [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_fixed_window_rolling_policy.html100644 0 0 62154 10774263472 30026 0ustar 0 0 Apache log4cxx: FixedWindowRollingPolicy Class Reference

FixedWindowRollingPolicy Class Reference

Inherits RollingPolicyBase.

List of all members.


Detailed Description

When rolling over, FixedWindowRollingPolicy renames files according to a fixed window algorithm as described below.

The ActiveFileName property, which is required, represents the name of the file where current logging output will be written. The FileNamePattern option represents the file name pattern for the archived (rolled over) log files. If present, the FileNamePattern option must include an integer token, that is the string "%i" somwhere within the pattern.

Let max and min represent the values of respectively the MaxIndex and MinIndex options. Let "foo.log" be the value of the ActiveFile option and "foo.%i.log" the value of FileNamePattern. Then, when rolling over, the file foo.max.log will be deleted, the file foo.max-1.log will be renamed as foo.max.log, the file foo.max-2.log renamed as foo.max-1.log, and so on, the file foo.min+1.log renamed as foo.min+2.log. Lastly, the active file foo.log will be renamed as foo.min.log and a new active file name foo.log will be created.

Given that this rollover algorithm requires as many file renaming operations as the window size, large window sizes are discouraged. The current implementation will automatically reduce the window size to 12 when larger values are specified by the user.


Public Member Functions

 FixedWindowRollingPolicy ()
void activateOptions (log4cxx::helpers::Pool &p)
 Activate the options that were previously set with calls to option setters.
void setOption (const LogString &option, const LogString &value)
 Set option to value.
void rollover ()
int getMaxIndex () const
int getMinIndex () const
void setMaxIndex (int newVal)
void setMinIndex (int newVal)
virtual RolloverDescriptionPtr initialize (const LogString &file, const bool append, log4cxx::helpers::Pool &p)
 Initialize the policy and return any initial actions for rolling file appender.
virtual RolloverDescriptionPtr rollover (const LogString &activeFile, log4cxx::helpers::Pool &p)
 Prepare for a rollover.

Protected Member Functions

log4cxx::pattern::PatternMap getFormatSpecifiers () const


Constructor & Destructor Documentation

FixedWindowRollingPolicy  ) 
 


Member Function Documentation

void activateOptions log4cxx::helpers::Pool p  )  [virtual]
 

Activate the options that were previously set with calls to option setters.

This allows to defer activiation of the options until all options have been set. This is required for components which have related options that remain ambigous until all are set.

For example, the FileAppender has the File and Append options both of which are ambigous until the other is also set.

Implements RollingPolicyBase.

log4cxx::pattern::PatternMap getFormatSpecifiers  )  const [protected, virtual]
 

Implements RollingPolicyBase.

int getMaxIndex  )  const
 

int getMinIndex  )  const
 

virtual RolloverDescriptionPtr initialize const LogString file,
const bool  append,
log4cxx::helpers::Pool p
[virtual]
 

Initialize the policy and return any initial actions for rolling file appender.

Parameters:
file current value of RollingFileAppender::getFile().
append current value of RollingFileAppender::getAppend().
p pool used for any required memory allocations.
Returns:
Description of the initialization, may be null to indicate no initialization needed.
Exceptions:
SecurityException if denied access to log files.

Implements RollingPolicy.

virtual RolloverDescriptionPtr rollover const LogString activeFile,
log4cxx::helpers::Pool p
[virtual]
 

Prepare for a rollover.

This method is called prior to closing the active log file, performs any necessary preliminary actions and describes actions needed after close of current log file.

Parameters:
activeFile file name for current active log file.
p pool used for any required memory allocations.
Returns:
Description of pending rollover, may be null to indicate no rollover at this time.
Exceptions:
SecurityException if denied access to log files.

Implements RollingPolicy.

void rollover  ) 
 

void setMaxIndex int  newVal  ) 
 

void setMinIndex int  newVal  ) 
 

void setOption const LogString option,
const LogString value
[virtual]
 

Set option to value.

The handling of each option depends on the OptionHandler instance. Some options may become active immediately whereas other may be activated only when activateOptions is called.

Reimplemented from RollingPolicyBase.


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 150 10774264512 10257 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_fixed_window_rolling_policy-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_fixed_window_rolling_policy-members.h100644 0 0 30604 10774263472 30734 0ustar 0 0 Apache log4cxx: Member List

FixedWindowRollingPolicy Member List

This is the complete list of members for FixedWindowRollingPolicy, including all inherited members.

activateOptions(log4cxx::helpers::Pool &p)FixedWindowRollingPolicy [virtual]
addRef() const RollingPolicyBase [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
FixedWindowRollingPolicy()FixedWindowRollingPolicy
formatFileName(log4cxx::helpers::ObjectPtr &obj, LogString &buf, log4cxx::helpers::Pool &p) const RollingPolicyBase [protected]
getClass() const Object [virtual]
getDatePatternConverter() const RollingPolicyBase [protected]
getFileNamePattern() const RollingPolicyBase
getFormatSpecifiers() const FixedWindowRollingPolicy [protected, virtual]
getIntegerPatternConverter() const RollingPolicyBase [protected]
getMaxIndex() const FixedWindowRollingPolicy
getMinIndex() const FixedWindowRollingPolicy
getStaticClass()Object [static]
initialize(const LogString &file, const bool append, log4cxx::helpers::Pool &p)FixedWindowRollingPolicy [virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
parseFileNamePattern()RollingPolicyBase [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const RollingPolicyBase [virtual]
RollingPolicyBase()RollingPolicyBase
rollover()FixedWindowRollingPolicy
rollover(const LogString &activeFile, log4cxx::helpers::Pool &p)FixedWindowRollingPolicy [virtual]
setFileNamePattern(const LogString &fnp)RollingPolicyBase
setMaxIndex(int newVal)FixedWindowRollingPolicy
setMinIndex(int newVal)FixedWindowRollingPolicy
setOption(const LogString &option, const LogString &value)FixedWindowRollingPolicy [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
~RollingPolicy()RollingPolicy [inline, virtual]
~RollingPolicyBase()RollingPolicyBase [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_g_z_compress_action.html100644 0 0 16703 10774263472 26261 0ustar 0 0 Apache log4cxx: GZCompressAction Class Reference

GZCompressAction Class Reference

Inherits Action.

List of all members.

Public Member Functions

 GZCompressAction (const File &source, const File &destination, bool deleteSource)
 Constructor.
virtual bool execute (log4cxx::helpers::Pool &pool) const
 Perform action.


Constructor & Destructor Documentation

GZCompressAction const File source,
const File destination,
bool  deleteSource
 

Constructor.


Member Function Documentation

virtual bool execute log4cxx::helpers::Pool pool  )  const [virtual]
 

Perform action.

Returns:
true if successful.

Implements Action.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_g_z_compress_action-members.html100644 0 0 17550 10774263472 27712 0ustar 0 0 Apache log4cxx: Member List

GZCompressAction Member List

This is the complete list of members for GZCompressAction, including all inherited members.

Action()Action [protected]
addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
close()Action
execute(log4cxx::helpers::Pool &pool) const GZCompressAction [virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
GZCompressAction(const File &source, const File &destination, bool deleteSource)GZCompressAction
instanceof(const Class &clazz) const =0Object [pure virtual]
isComplete() const Action
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
reportException(const std::exception &)Action
run(log4cxx::helpers::Pool &pool)Action
~Action()Action [protected, virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_manual_triggering_policy.html100644 0 0 33200 10774263472 27276 0ustar 0 0 Apache log4cxx: ManualTriggeringPolicy Class Reference

ManualTriggeringPolicy Class Reference

Inherits TriggeringPolicy.

List of all members.


Detailed Description

ManualTriggeringPolicy only rolls over on explicit calls to RollingFileAppender.rollover().


Public Member Functions

 ManualTriggeringPolicy ()
virtual bool isTriggeringEvent (Appender *appender, const log4cxx::spi::LoggingEventPtr &event, const LogString &filename, size_t fileLength)
 Determines if a rollover may be appropriate at this time.
void activateOptions (log4cxx::helpers::Pool &)
 Activate the options that were previously set with calls to option setters.
void setOption (const LogString &option, const LogString &value)
 Set option to value.


Constructor & Destructor Documentation

ManualTriggeringPolicy  ) 
 


Member Function Documentation

void activateOptions log4cxx::helpers::Pool  )  [virtual]
 

Activate the options that were previously set with calls to option setters.

This allows to defer activiation of the options until all options have been set. This is required for components which have related options that remain ambigous until all are set.

For example, the FileAppender has the File and Append options both of which are ambigous until the other is also set.

Implements OptionHandler.

virtual bool isTriggeringEvent Appender appender,
const log4cxx::spi::LoggingEventPtr event,
const LogString filename,
size_t  fileLength
[virtual]
 

Determines if a rollover may be appropriate at this time.

If true is returned, RolloverPolicy.rollover will be called but it can determine that a rollover is not warranted.

Parameters:
appender A reference to the appender.
event A reference to the currently event.
filename The filename for the currently active log file.
fileLength Length of the file in bytes.
Returns:
true if a rollover should occur.

Implements TriggeringPolicy.

void setOption const LogString option,
const LogString value
[virtual]
 

Set option to value.

The handling of each option depends on the OptionHandler instance. Some options may become active immediately whereas other may be activated only when activateOptions is called.

Implements OptionHandler.


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 145 10774264512 10263 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_manual_triggering_policy-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_manual_triggering_policy-members.html100644 0 0 17353 10774263472 30741 0ustar 0 0 Apache log4cxx: Member List

ManualTriggeringPolicy Member List

This is the complete list of members for ManualTriggeringPolicy, including all inherited members.

activateOptions(log4cxx::helpers::Pool &)ManualTriggeringPolicy [virtual]
addRef() const TriggeringPolicy [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
isTriggeringEvent(Appender *appender, const log4cxx::spi::LoggingEventPtr &event, const LogString &filename, size_t fileLength)ManualTriggeringPolicy [virtual]
ManualTriggeringPolicy()ManualTriggeringPolicy
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const TriggeringPolicy [virtual]
setOption(const LogString &option, const LogString &value)ManualTriggeringPolicy [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
~TriggeringPolicy()TriggeringPolicy [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_rolling_file_appender.html100644 0 0 17156 10774263472 26560 0ustar 0 0 Apache log4cxx: RollingFileAppender Class Reference

RollingFileAppender Class Reference

Inherits RollingFileAppenderSkeleton.

List of all members.


Detailed Description

RollingFileAppender extends log4cxx::FileAppender to backup the log files depending on RollingPolicy and TriggeringPolicy.

To be of any use, a RollingFileAppender instance must have both a RollingPolicy and a TriggeringPolicy set up. However, if its RollingPolicy also implements the TriggeringPolicy interface, then only the former needs to be set up. For example, TimeBasedRollingPolicy acts both as a RollingPolicy and a TriggeringPolicy.

RollingFileAppender can be configured programattically or using log4cxx::xml::DOMConfigurator. Here is a sample configration file:

<?xml version="1.0" encoding="UTF-8" ?>
        <!DOCTYPE log4j:configuration>

        <log4j:configuration debug="true">

          <appender name="ROLL" class="org.apache.log4j.rolling.RollingFileAppender">
            <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
              <param name="FileNamePattern" value="/wombat/foo.d{yyyy-MM}.gz"/>
            </rollingPolicy>

            <layout class="org.apache.log4j.PatternLayout">
              <param name="ConversionPattern" value="c{1} - mn"/>
            </layout>
          </appender>

          <root">
            <appender-ref ref="ROLL"/>
          </root>

        </log4j:configuration>
        

This configuration file specifies a monthly rollover schedule including automatic compression of the archived files. See TimeBasedRollingPolicy for more details.


Public Member Functions

 RollingFileAppender ()


Constructor & Destructor Documentation

RollingFileAppender  ) 
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_rolling_file_appender-members.html100644 0 0 66246 10774263472 30214 0ustar 0 0 Apache log4cxx: Member List

RollingFileAppender Member List

This is the complete list of members for RollingFileAppender, including all inherited members.

activateOptions(log4cxx::helpers::Pool &)RollingFileAppenderSkeleton [virtual]
addFilter(const spi::FilterPtr &newFilter)AppenderSkeleton [virtual]
addRef() const AppenderSkeleton [virtual]
append(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)WriterAppender [virtual]
AppenderSkeleton()AppenderSkeleton
AppenderSkeleton(const LayoutPtr &layout)AppenderSkeleton
bufferedIOFileAppender [protected]
bufferSizeFileAppender [protected]
cast(const Class &clazz) const =0Object [pure virtual]
checkEntryConditions() const WriterAppender [protected, virtual]
clearFilters()AppenderSkeleton [virtual]
close()RollingFileAppenderSkeleton [virtual]
closedAppenderSkeleton [protected]
closeWriter()WriterAppender [protected]
createWriter(log4cxx::helpers::OutputStreamPtr &os)RollingFileAppenderSkeleton [protected, virtual]
doAppend(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)AppenderSkeleton [virtual]
errorHandlerAppenderSkeleton [protected]
fileAppendFileAppender [protected]
FileAppender()FileAppender
FileAppender(const LayoutPtr &layout, const LogString &filename, bool append, bool bufferedIO, int bufferSize)FileAppender
FileAppender(const LayoutPtr &layout, const LogString &filename, bool append)FileAppender
FileAppender(const LayoutPtr &layout, const LogString &filename)FileAppender
fileNameFileAppender [protected]
finalize()AppenderSkeleton
getAppend() const FileAppender [inline]
getBufferedIO() const FileAppender [inline]
getBufferSize() const FileAppender [inline]
getClass() const Object [virtual]
getEncoding() const WriterAppender
getErrorHandler() const AppenderSkeleton [inline]
getFile() const FileAppender [inline]
getFileLength() const RollingFileAppenderSkeleton
getFilter() const AppenderSkeleton [inline, virtual]
getFirstFilter() const AppenderSkeleton [inline]
getImmediateFlush() const WriterAppender [inline]
getLayout() const AppenderSkeleton [inline, virtual]
getName() const AppenderSkeleton [inline, virtual]
getRollingPolicy() const RollingFileAppenderSkeleton [protected]
getStaticClass()Object [static]
getThreshold()AppenderSkeleton [inline]
getTriggeringPolicy() const RollingFileAppenderSkeleton [protected]
headFilterAppenderSkeleton [protected]
incrementFileLength(size_t increment)RollingFileAppenderSkeleton
instanceof(const Class &clazz) const =0Object [pure virtual]
isAsSevereAsThreshold(const LevelPtr &level) const AppenderSkeleton
layoutAppenderSkeleton [protected]
mutexAppenderSkeleton [protected]
nameAppenderSkeleton [protected]
ObjectImpl()ObjectImpl
poolAppenderSkeleton [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const AppenderSkeleton [virtual]
requiresLayout() const WriterAppender [virtual]
RollingFileAppender()RollingFileAppender
RollingFileAppenderSkeleton()RollingFileAppenderSkeleton
rollover(log4cxx::helpers::Pool &p)RollingFileAppenderSkeleton
setAppend(bool fileAppend1)FileAppender
setBufferedIO(bool bufferedIO)FileAppender
setBufferSize(int bufferSize1)FileAppender [inline]
setEncoding(const LogString &value)WriterAppender
setErrorHandler(const spi::ErrorHandlerPtr &eh)AppenderSkeleton
setFile(const LogString &file)FileAppender [virtual]
setFile(const LogString &file, bool append, bool bufferedIO, size_t bufferSize, log4cxx::helpers::Pool &p)FileAppender [virtual]
setImmediateFlush(bool value)WriterAppender
setLayout(const LayoutPtr &layout1)AppenderSkeleton [inline, virtual]
setName(const LogString &name1)AppenderSkeleton [inline, virtual]
setOption(const LogString &option, const LogString &value)FileAppender [virtual]
setRollingPolicy(const RollingPolicyPtr &policy)RollingFileAppenderSkeleton [protected]
setThreshold(const LevelPtr &threshold)AppenderSkeleton
setTriggeringPolicy(const TriggeringPolicyPtr &policy)RollingFileAppenderSkeleton [protected]
setWriter(const log4cxx::helpers::WriterPtr &writer)WriterAppender
stripDuplicateBackslashes(const LogString &name)FileAppender [static]
subAppend(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)RollingFileAppenderSkeleton [protected, virtual]
tailFilterAppenderSkeleton [protected]
thresholdAppenderSkeleton [protected]
writeFooter(log4cxx::helpers::Pool &p)WriterAppender [protected, virtual]
writeHeader(log4cxx::helpers::Pool &p)WriterAppender [protected, virtual]
WriterAppender()WriterAppender
WriterAppender(const LayoutPtr &layout, log4cxx::helpers::WriterPtr &writer)WriterAppender [protected]
WriterAppender(const LayoutPtr &layout)WriterAppender [protected]
~Appender()Appender [inline, virtual]
~FileAppender()FileAppender
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
~WriterAppender()WriterAppender
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_rolling_file_appender_skeleton.html100644 0 0 61070 10774263472 30456 0ustar 0 0 Apache log4cxx: RollingFileAppenderSkeleton Class Reference

RollingFileAppenderSkeleton Class Reference

Inherits FileAppender.

Inherited by DailyRollingFileAppender, RollingFileAppender, and RollingFileAppender.

List of all members.


Detailed Description

Base class for log4cxx::rolling::RollingFileAppender and log4cxx::RollingFileAppender (analogues of org.apache.log4j.rolling.RFA from extras companion and org.apache.log4j.RFA from log4j 1.2, respectively).


Public Member Functions

 RollingFileAppenderSkeleton ()
 The default constructor simply calls its parents constructor.
void activateOptions (log4cxx::helpers::Pool &)
bool rollover (log4cxx::helpers::Pool &p)
 Implements the usual roll over behaviour.
void close ()
 Close appender.
size_t getFileLength () const
 Get byte length of current active log file.
void incrementFileLength (size_t increment)
 Increments estimated byte length of current active log file.

Protected Member Functions

virtual void subAppend (const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)
 Actual writing occurs here.
RollingPolicyPtr getRollingPolicy () const
TriggeringPolicyPtr getTriggeringPolicy () const
void setRollingPolicy (const RollingPolicyPtr &policy)
 Sets the rolling policy.
void setTriggeringPolicy (const TriggeringPolicyPtr &policy)
log4cxx::helpers::WriterPtr createWriter (log4cxx::helpers::OutputStreamPtr &os)
 Returns an OutputStreamWriter when passed an OutputStream.


Constructor & Destructor Documentation

RollingFileAppenderSkeleton  ) 
 

The default constructor simply calls its parents constructor.


Member Function Documentation

void activateOptions log4cxx::helpers::Pool  )  [virtual]
 

Sets and opens the file where the log output will go. The specified file must be writable.

If there was already an opened file, then the previous file is closed first.

Reimplemented from FileAppender.

Reimplemented in DailyRollingFileAppender, and RollingFileAppender.

void close  )  [virtual]
 

Close appender.

Waits for any asynchronous file compression actions to be completed.

Reimplemented from WriterAppender.

log4cxx::helpers::WriterPtr createWriter log4cxx::helpers::OutputStreamPtr &  os  )  [protected, virtual]
 

Returns an OutputStreamWriter when passed an OutputStream.

The encoding used will depend on the value of the encoding property. If the encoding value is specified incorrectly the writer will be opened using the default system encoding (an error message will be printed to the loglog.

Parameters:
os output stream, may not be null.
Returns:
new writer.

Reimplemented from WriterAppender.

size_t getFileLength  )  const
 

Get byte length of current active log file.

Returns:
byte length of current active log file.

RollingPolicyPtr getRollingPolicy  )  const [protected]
 

TriggeringPolicyPtr getTriggeringPolicy  )  const [protected]
 

void incrementFileLength size_t  increment  ) 
 

Increments estimated byte length of current active log file.

Parameters:
increment additional bytes written to log file.

bool rollover log4cxx::helpers::Pool p  ) 
 

Implements the usual roll over behaviour.

If MaxBackupIndex is positive, then files {File.1, ..., File.MaxBackupIndex -1} are renamed to {File.2, ..., File.MaxBackupIndex}. Moreover, File is renamed File.1 and closed. A new File is created to receive further log output.

If MaxBackupIndex is equal to zero, then the File is truncated with no backup files created.

void setRollingPolicy const RollingPolicyPtr &  policy  )  [protected]
 

Sets the rolling policy.

In case the 'policy' argument also implements TriggeringPolicy, then the triggering policy for this appender is automatically set to be the policy argument.

Parameters:
policy 

void setTriggeringPolicy const TriggeringPolicyPtr &  policy  )  [protected]
 

virtual void subAppend const spi::LoggingEventPtr event,
log4cxx::helpers::Pool p
[protected, virtual]
 

Actual writing occurs here.

Reimplemented from WriterAppender.


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 153 10774264512 10262 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_rolling_file_appender_skeleton-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_rolling_file_appender_skeleton-member100644 0 0 65637 10774263472 30775 0ustar 0 0 Apache log4cxx: Member List

RollingFileAppenderSkeleton Member List

This is the complete list of members for RollingFileAppenderSkeleton, including all inherited members.

activateOptions(log4cxx::helpers::Pool &)RollingFileAppenderSkeleton [virtual]
addFilter(const spi::FilterPtr &newFilter)AppenderSkeleton [virtual]
addRef() const AppenderSkeleton [virtual]
append(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)WriterAppender [virtual]
AppenderSkeleton()AppenderSkeleton
AppenderSkeleton(const LayoutPtr &layout)AppenderSkeleton
bufferedIOFileAppender [protected]
bufferSizeFileAppender [protected]
cast(const Class &clazz) const =0Object [pure virtual]
checkEntryConditions() const WriterAppender [protected, virtual]
clearFilters()AppenderSkeleton [virtual]
close()RollingFileAppenderSkeleton [virtual]
closedAppenderSkeleton [protected]
closeWriter()WriterAppender [protected]
createWriter(log4cxx::helpers::OutputStreamPtr &os)RollingFileAppenderSkeleton [protected, virtual]
doAppend(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)AppenderSkeleton [virtual]
errorHandlerAppenderSkeleton [protected]
fileAppendFileAppender [protected]
FileAppender()FileAppender
FileAppender(const LayoutPtr &layout, const LogString &filename, bool append, bool bufferedIO, int bufferSize)FileAppender
FileAppender(const LayoutPtr &layout, const LogString &filename, bool append)FileAppender
FileAppender(const LayoutPtr &layout, const LogString &filename)FileAppender
fileNameFileAppender [protected]
finalize()AppenderSkeleton
getAppend() const FileAppender [inline]
getBufferedIO() const FileAppender [inline]
getBufferSize() const FileAppender [inline]
getClass() const Object [virtual]
getEncoding() const WriterAppender
getErrorHandler() const AppenderSkeleton [inline]
getFile() const FileAppender [inline]
getFileLength() const RollingFileAppenderSkeleton
getFilter() const AppenderSkeleton [inline, virtual]
getFirstFilter() const AppenderSkeleton [inline]
getImmediateFlush() const WriterAppender [inline]
getLayout() const AppenderSkeleton [inline, virtual]
getName() const AppenderSkeleton [inline, virtual]
getRollingPolicy() const RollingFileAppenderSkeleton [protected]
getStaticClass()Object [static]
getThreshold()AppenderSkeleton [inline]
getTriggeringPolicy() const RollingFileAppenderSkeleton [protected]
headFilterAppenderSkeleton [protected]
incrementFileLength(size_t increment)RollingFileAppenderSkeleton
instanceof(const Class &clazz) const =0Object [pure virtual]
isAsSevereAsThreshold(const LevelPtr &level) const AppenderSkeleton
layoutAppenderSkeleton [protected]
mutexAppenderSkeleton [protected]
nameAppenderSkeleton [protected]
ObjectImpl()ObjectImpl
poolAppenderSkeleton [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const AppenderSkeleton [virtual]
requiresLayout() const WriterAppender [virtual]
RollingFileAppenderSkeleton()RollingFileAppenderSkeleton
rollover(log4cxx::helpers::Pool &p)RollingFileAppenderSkeleton
setAppend(bool fileAppend1)FileAppender
setBufferedIO(bool bufferedIO)FileAppender
setBufferSize(int bufferSize1)FileAppender [inline]
setEncoding(const LogString &value)WriterAppender
setErrorHandler(const spi::ErrorHandlerPtr &eh)AppenderSkeleton
setFile(const LogString &file)FileAppender [virtual]
setFile(const LogString &file, bool append, bool bufferedIO, size_t bufferSize, log4cxx::helpers::Pool &p)FileAppender [virtual]
setImmediateFlush(bool value)WriterAppender
setLayout(const LayoutPtr &layout1)AppenderSkeleton [inline, virtual]
setName(const LogString &name1)AppenderSkeleton [inline, virtual]
setOption(const LogString &option, const LogString &value)FileAppender [virtual]
setRollingPolicy(const RollingPolicyPtr &policy)RollingFileAppenderSkeleton [protected]
setThreshold(const LevelPtr &threshold)AppenderSkeleton
setTriggeringPolicy(const TriggeringPolicyPtr &policy)RollingFileAppenderSkeleton [protected]
setWriter(const log4cxx::helpers::WriterPtr &writer)WriterAppender
stripDuplicateBackslashes(const LogString &name)FileAppender [static]
subAppend(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)RollingFileAppenderSkeleton [protected, virtual]
tailFilterAppenderSkeleton [protected]
thresholdAppenderSkeleton [protected]
writeFooter(log4cxx::helpers::Pool &p)WriterAppender [protected, virtual]
writeHeader(log4cxx::helpers::Pool &p)WriterAppender [protected, virtual]
WriterAppender()WriterAppender
WriterAppender(const LayoutPtr &layout, log4cxx::helpers::WriterPtr &writer)WriterAppender [protected]
WriterAppender(const LayoutPtr &layout)WriterAppender [protected]
~Appender()Appender [inline, virtual]
~FileAppender()FileAppender
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
~WriterAppender()WriterAppender
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_rolling_policy.html100644 0 0 30402 10774263472 25247 0ustar 0 0 Apache log4cxx: RollingPolicy Class Reference

RollingPolicy Class Reference

Inherits OptionHandler.

Inherited by RollingPolicyBase [virtual].

List of all members.


Detailed Description

A RollingPolicy is responsible for performing the rolling over of the active log file.

The RollingPolicy is also responsible for providing the active log file, that is the live file where logging output will be directed.


Public Member Functions

virtual ~RollingPolicy ()
virtual RolloverDescriptionPtr initialize (const LogString &file, const bool append, log4cxx::helpers::Pool &p)=0
 Initialize the policy and return any initial actions for rolling file appender.
virtual RolloverDescriptionPtr rollover (const LogString &activeFile, log4cxx::helpers::Pool &p)=0
 Prepare for a rollover.


Constructor & Destructor Documentation

virtual ~RollingPolicy  )  [inline, virtual]
 


Member Function Documentation

virtual RolloverDescriptionPtr initialize const LogString file,
const bool  append,
log4cxx::helpers::Pool p
[pure virtual]
 

Initialize the policy and return any initial actions for rolling file appender.

Parameters:
file current value of RollingFileAppender.getFile().
append current value of RollingFileAppender.getAppend().
p pool for memory allocations during call.
Returns:
Description of the initialization, may be null to indicate no initialization needed.
Exceptions:
SecurityException if denied access to log files.

Implemented in FixedWindowRollingPolicy, and TimeBasedRollingPolicy.

virtual RolloverDescriptionPtr rollover const LogString activeFile,
log4cxx::helpers::Pool p
[pure virtual]
 

Prepare for a rollover.

This method is called prior to closing the active log file, performs any necessary preliminary actions and describes actions needed after close of current log file.

Parameters:
activeFile file name for current active log file.
p pool for memory allocations during call.
Returns:
Description of pending rollover, may be null to indicate no rollover at this time.
Exceptions:
SecurityException if denied access to log files.

Implemented in FixedWindowRollingPolicy, and TimeBasedRollingPolicy.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_rolling_policy-members.html100644 0 0 15452 10774263472 26707 0ustar 0 0 Apache log4cxx: Member List

RollingPolicy Member List

This is the complete list of members for RollingPolicy, including all inherited members.

activateOptions(log4cxx::helpers::Pool &p)=0OptionHandler [pure virtual]
addRef() const =0Object [pure virtual]
cast(const Class &clazz) const =0Object [pure virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
initialize(const LogString &file, const bool append, log4cxx::helpers::Pool &p)=0RollingPolicy [pure virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
registerClass()Object [static]
releaseRef() const =0Object [pure virtual]
rollover(const LogString &activeFile, log4cxx::helpers::Pool &p)=0RollingPolicy [pure virtual]
setOption(const LogString &option, const LogString &value)=0OptionHandler [pure virtual]
~Object()Object [inline, virtual]
~OptionHandler()OptionHandler [inline, virtual]
~RollingPolicy()RollingPolicy [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_rolling_policy_base.html100644 0 0 63724 10774263472 26256 0ustar 0 0 Apache log4cxx: RollingPolicyBase Class Reference

RollingPolicyBase Class Reference

Inherits RollingPolicy, and ObjectImpl.

Inherited by FixedWindowRollingPolicy, and TimeBasedRollingPolicy.

List of all members.


Detailed Description

Implements methods common to most, it not all, rolling policies.


Public Member Functions

 RollingPolicyBase ()
virtual ~RollingPolicyBase ()
void addRef () const
void releaseRef () const
virtual void activateOptions (log4cxx::helpers::Pool &p)=0
 Activate the options that were previously set with calls to option setters.
virtual log4cxx::pattern::PatternMap getFormatSpecifiers () const =0
virtual void setOption (const LogString &option, const LogString &value)
 Set option to value.
void setFileNamePattern (const LogString &fnp)
 Set file name pattern.
LogString getFileNamePattern () const
 Get file name pattern.

Protected Member Functions

void parseFileNamePattern ()
 Parse file name pattern.
void formatFileName (log4cxx::helpers::ObjectPtr &obj, LogString &buf, log4cxx::helpers::Pool &p) const
 Format file name.
log4cxx::pattern::PatternConverterPtr getIntegerPatternConverter () const
log4cxx::pattern::PatternConverterPtr getDatePatternConverter () const


Constructor & Destructor Documentation

RollingPolicyBase  ) 
 

virtual ~RollingPolicyBase  )  [virtual]
 


Member Function Documentation

virtual void activateOptions log4cxx::helpers::Pool p  )  [pure virtual]
 

Activate the options that were previously set with calls to option setters.

This allows to defer activiation of the options until all options have been set. This is required for components which have related options that remain ambigous until all are set.

For example, the FileAppender has the File and Append options both of which are ambigous until the other is also set.

Implements OptionHandler.

Implemented in FixedWindowRollingPolicy, and TimeBasedRollingPolicy.

void addRef  )  const [virtual]
 

Reimplemented from ObjectImpl.

Reimplemented in TimeBasedRollingPolicy.

void formatFileName log4cxx::helpers::ObjectPtr obj,
LogString buf,
log4cxx::helpers::Pool p
const [protected]
 

Format file name.

Parameters:
obj object to be evaluted in formatting, may not be null.
buf string buffer to which formatted file name is appended, may not be null.
p memory pool.

log4cxx::pattern::PatternConverterPtr getDatePatternConverter  )  const [protected]
 

LogString getFileNamePattern  )  const
 

Get file name pattern.

Returns:
file name pattern.

virtual log4cxx::pattern::PatternMap getFormatSpecifiers  )  const [pure virtual]
 

Implemented in FixedWindowRollingPolicy, and TimeBasedRollingPolicy.

log4cxx::pattern::PatternConverterPtr getIntegerPatternConverter  )  const [protected]
 

void parseFileNamePattern  )  [protected]
 

Parse file name pattern.

void releaseRef  )  const [virtual]
 

Reimplemented from ObjectImpl.

Reimplemented in TimeBasedRollingPolicy.

void setFileNamePattern const LogString fnp  ) 
 

Set file name pattern.

Parameters:
fnp file name pattern.

virtual void setOption const LogString option,
const LogString value
[virtual]
 

Set option to value.

The handling of each option depends on the OptionHandler instance. Some options may become active immediately whereas other may be activated only when activateOptions is called.

Implements OptionHandler.

Reimplemented in FixedWindowRollingPolicy.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_rolling_policy_base-members.html100644 0 0 24716 10774263472 27704 0ustar 0 0 Apache log4cxx: Member List

RollingPolicyBase Member List

This is the complete list of members for RollingPolicyBase, including all inherited members.

activateOptions(log4cxx::helpers::Pool &p)=0RollingPolicyBase [pure virtual]
addRef() const RollingPolicyBase [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
formatFileName(log4cxx::helpers::ObjectPtr &obj, LogString &buf, log4cxx::helpers::Pool &p) const RollingPolicyBase [protected]
getClass() const Object [virtual]
getDatePatternConverter() const RollingPolicyBase [protected]
getFileNamePattern() const RollingPolicyBase
getFormatSpecifiers() const =0RollingPolicyBase [pure virtual]
getIntegerPatternConverter() const RollingPolicyBase [protected]
getStaticClass()Object [static]
initialize(const LogString &file, const bool append, log4cxx::helpers::Pool &p)=0RollingPolicy [pure virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
parseFileNamePattern()RollingPolicyBase [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const RollingPolicyBase [virtual]
RollingPolicyBase()RollingPolicyBase
rollover(const LogString &activeFile, log4cxx::helpers::Pool &p)=0RollingPolicy [pure virtual]
setFileNamePattern(const LogString &fnp)RollingPolicyBase
setOption(const LogString &option, const LogString &value)RollingPolicyBase [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
~RollingPolicy()RollingPolicy [inline, virtual]
~RollingPolicyBase()RollingPolicyBase [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_rollover_description.html100644 0 0 33616 10774263472 26503 0ustar 0 0 Apache log4cxx: RolloverDescription Class Reference

RolloverDescription Class Reference

Inherits ObjectImpl.

List of all members.

Public Member Functions

 RolloverDescription ()
 RolloverDescription (const LogString &activeFileName, const bool append, const ActionPtr &synchronous, const ActionPtr &asynchronous)
 Create new instance.
LogString getActiveFileName () const
 Active log file name after rollover.
bool getAppend () const
ActionPtr getSynchronous () const
 Action to be completed after close of current active log file before returning control to caller.
ActionPtr getAsynchronous () const
 Action to be completed after close of current active log file and before next rollover attempt, may be executed asynchronously.


Constructor & Destructor Documentation

RolloverDescription  ) 
 

RolloverDescription const LogString activeFileName,
const bool  append,
const ActionPtr &  synchronous,
const ActionPtr &  asynchronous
 

Create new instance.

Parameters:
activeFileName active log file name after rollover, may not be null.
append true if active log file after rollover should be opened for appending.
synchronous action to be completed after close of current active log file, may be null.
asynchronous action to be completed after close of current active log file and before next rollover attempt.


Member Function Documentation

LogString getActiveFileName  )  const
 

Active log file name after rollover.

Returns:
active log file name after rollover.

bool getAppend  )  const
 

ActionPtr getAsynchronous  )  const
 

Action to be completed after close of current active log file and before next rollover attempt, may be executed asynchronously.

Returns:
action, may be null.

ActionPtr getSynchronous  )  const
 

Action to be completed after close of current active log file before returning control to caller.

Returns:
action, may be null.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_rollover_description-members.html100644 0 0 17010 10774263472 30121 0ustar 0 0 Apache log4cxx: Member List

RolloverDescription Member List

This is the complete list of members for RolloverDescription, including all inherited members.

addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
getActiveFileName() const RolloverDescription
getAppend() const RolloverDescription
getAsynchronous() const RolloverDescription
getClass() const Object [virtual]
getStaticClass()Object [static]
getSynchronous() const RolloverDescription
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
RolloverDescription()RolloverDescription
RolloverDescription(const LogString &activeFileName, const bool append, const ActionPtr &synchronous, const ActionPtr &asynchronous)RolloverDescription
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_size_based_triggering_policy.html100644 0 0 41654 10774263472 30145 0ustar 0 0 Apache log4cxx: SizeBasedTriggeringPolicy Class Reference

SizeBasedTriggeringPolicy Class Reference

Inherits TriggeringPolicy.

List of all members.


Detailed Description

SizeBasedTriggeringPolicy looks at size of the file being currently written to.


Public Member Functions

 SizeBasedTriggeringPolicy ()
virtual bool isTriggeringEvent (Appender *appender, const log4cxx::spi::LoggingEventPtr &event, const LogString &filename, size_t fileLength)
 Determines if a rollover may be appropriate at this time.
size_t getMaxFileSize ()
void setMaxFileSize (size_t l)
void activateOptions (log4cxx::helpers::Pool &)
 Activate the options that were previously set with calls to option setters.
void setOption (const LogString &option, const LogString &value)
 Set option to value.

Protected Attributes

size_t maxFileSize


Constructor & Destructor Documentation

SizeBasedTriggeringPolicy  ) 
 


Member Function Documentation

void activateOptions log4cxx::helpers::Pool  )  [virtual]
 

Activate the options that were previously set with calls to option setters.

This allows to defer activiation of the options until all options have been set. This is required for components which have related options that remain ambigous until all are set.

For example, the FileAppender has the File and Append options both of which are ambigous until the other is also set.

Implements OptionHandler.

size_t getMaxFileSize  ) 
 

virtual bool isTriggeringEvent Appender appender,
const log4cxx::spi::LoggingEventPtr event,
const LogString filename,
size_t  fileLength
[virtual]
 

Determines if a rollover may be appropriate at this time.

If true is returned, RolloverPolicy.rollover will be called but it can determine that a rollover is not warranted.

Parameters:
appender A reference to the appender.
event A reference to the currently event.
filename The filename for the currently active log file.
fileLength Length of the file in bytes.
Returns:
true if a rollover should occur.

Implements TriggeringPolicy.

void setMaxFileSize size_t  l  ) 
 

void setOption const LogString option,
const LogString value
[virtual]
 

Set option to value.

The handling of each option depends on the OptionHandler instance. Some options may become active immediately whereas other may be activated only when activateOptions is called.

Implements OptionHandler.


Member Data Documentation

size_t maxFileSize [protected]
 


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 151 10774264512 10260 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_size_based_triggering_policy-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_size_based_triggering_policy-members.100644 0 0 21315 10774263472 30700 0ustar 0 0 Apache log4cxx: Member List

SizeBasedTriggeringPolicy Member List

This is the complete list of members for SizeBasedTriggeringPolicy, including all inherited members.

activateOptions(log4cxx::helpers::Pool &)SizeBasedTriggeringPolicy [virtual]
addRef() const TriggeringPolicy [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
getClass() const Object [virtual]
getMaxFileSize()SizeBasedTriggeringPolicy
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
isTriggeringEvent(Appender *appender, const log4cxx::spi::LoggingEventPtr &event, const LogString &filename, size_t fileLength)SizeBasedTriggeringPolicy [virtual]
maxFileSizeSizeBasedTriggeringPolicy [protected]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const TriggeringPolicy [virtual]
setMaxFileSize(size_t l)SizeBasedTriggeringPolicy
setOption(const LogString &option, const LogString &value)SizeBasedTriggeringPolicy [virtual]
SizeBasedTriggeringPolicy()SizeBasedTriggeringPolicy
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
~TriggeringPolicy()TriggeringPolicy [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_time_based_rolling_policy.html100644 0 0 64773 10774263472 27445 0ustar 0 0 Apache log4cxx: TimeBasedRollingPolicy Class Reference

TimeBasedRollingPolicy Class Reference

Inherits RollingPolicyBase, and TriggeringPolicy.

List of all members.


Detailed Description

TimeBasedRollingPolicy is both easy to configure and quite powerful.

In order to use TimeBasedRollingPolicy, the FileNamePattern option must be set. It basically specifies the name of the rolled log files. The value FileNamePattern should consist of the name of the file, plus a suitably placed d conversion specifier. The d conversion specifier may contain a date and time pattern as specified by the log4cxx::helpers::SimpleDateFormat class. If the date and time pattern is ommitted, then the default pattern of "yyyy-MM-dd" is assumed. The following examples should clarify the point.

FileNamePattern value Rollover schedule Example
/wombat/folder/foo.d Daily rollover (at midnight). Due to the omission of the optional time and date pattern for the d token specifier, the default pattern of "yyyy-MM-dd" is assumed, which corresponds to daily rollover. During November 23rd, 2004, logging output will go to the file /wombat/foo.2004-11-23. At midnight and for the rest of the 24th, logging output will be directed to /wombat/foo.2004-11-24.
/wombat/foo.d{yyyy-MM}.log Rollover at the beginning of each month. During the month of October 2004, logging output will go to /wombat/foo.2004-10.log. After midnight of October 31st and for the rest of November, logging output will be directed to /wombat/foo.2004-11.log.

Automatic file compression

TimeBasedRollingPolicy supports automatic file compression. This feature is enabled if the value of the FileNamePattern option ends with .gz or .zip.

FileNamePattern value Rollover schedule Example
/wombat/foo.d.gz Daily rollover (at midnight) with automatic GZIP compression of the arcived files. During November 23rd, 2004, logging output will go to the file /wombat/foo.2004-11-23. However, at midnight that file will be compressed to become /wombat/foo.2004-11-23.gz. For the 24th of November, logging output will be directed to /wombat/folder/foo.2004-11-24 until its rolled over at the beginning of the next day.

Decoupling the location of the active log file and the archived log files

The active file is defined as the log file for the current period whereas archived files are thos files which have been rolled over in previous periods.

By setting the ActiveFileName option you can decouple the location of the active log file and the location of the archived log files.

FileNamePattern value ActiveFileName Rollover schedule Example
/wombat/foo.log.d /wombat/foo.log Daily rollover.

During November 23rd, 2004, logging output will go to the file /wombat/foo.log. However, at midnight that file will archived as /wombat/foo.log.2004-11-23. For the 24th of November, logging output will be directed to /wombat/folder/foo.log until its archived as /wombat/foo.log.2004-11-24 at the beginning of the next day.

If configuring programatically, do not forget to call activateOptions method before using this policy. Moreover, activateOptions of TimeBasedRollingPolicy must be called before calling the activateOptions method of the owning RollingFileAppender.


Public Member Functions

 TimeBasedRollingPolicy ()
void addRef () const
void releaseRef () const
void activateOptions (log4cxx::helpers::Pool &)
 Activate the options that were previously set with calls to option setters.
RolloverDescriptionPtr initialize (const LogString &file, const bool append, log4cxx::helpers::Pool &pool)
 Initialize the policy and return any initial actions for rolling file appender.
RolloverDescriptionPtr rollover (const LogString &activeFile, log4cxx::helpers::Pool &pool)
 Prepare for a rollover.
virtual bool isTriggeringEvent (Appender *appender, const log4cxx::spi::LoggingEventPtr &event, const LogString &filename, size_t fileLength)
 Determines if a rollover may be appropriate at this time.

Protected Member Functions

log4cxx::pattern::PatternMap getFormatSpecifiers () const


Constructor & Destructor Documentation

TimeBasedRollingPolicy  ) 
 


Member Function Documentation

void activateOptions log4cxx::helpers::Pool  )  [virtual]
 

Activate the options that were previously set with calls to option setters.

This allows to defer activiation of the options until all options have been set. This is required for components which have related options that remain ambigous until all are set.

For example, the FileAppender has the File and Append options both of which are ambigous until the other is also set.

Implements RollingPolicyBase.

void addRef  )  const [virtual]
 

Reimplemented from RollingPolicyBase.

log4cxx::pattern::PatternMap getFormatSpecifiers  )  const [protected, virtual]
 

Implements RollingPolicyBase.

RolloverDescriptionPtr initialize const LogString file,
const bool  append,
log4cxx::helpers::Pool pool
[virtual]
 

Initialize the policy and return any initial actions for rolling file appender.

Parameters:
file current value of RollingFileAppender.getFile().
append current value of RollingFileAppender.getAppend().
pool pool for any required allocations.
Returns:
Description of the initialization, may be null to indicate no initialization needed.
Exceptions:
SecurityException if denied access to log files.

Implements RollingPolicy.

virtual bool isTriggeringEvent Appender appender,
const log4cxx::spi::LoggingEventPtr event,
const LogString filename,
size_t  fileLength
[virtual]
 

Determines if a rollover may be appropriate at this time.

If true is returned, RolloverPolicy.rollover will be called but it can determine that a rollover is not warranted.

Parameters:
appender A reference to the appender.
event A reference to the currently event.
filename The filename for the currently active log file.
fileLength Length of the file in bytes.
Returns:
true if a rollover should occur.

Implements TriggeringPolicy.

void releaseRef  )  const [virtual]
 

Reimplemented from RollingPolicyBase.

RolloverDescriptionPtr rollover const LogString activeFile,
log4cxx::helpers::Pool pool
[virtual]
 

Prepare for a rollover.

This method is called prior to closing the active log file, performs any necessary preliminary actions and describes actions needed after close of current log file.

Parameters:
activeFile file name for current active log file.
pool pool for any required allocations.
Returns:
Description of pending rollover, may be null to indicate no rollover at this time.
Exceptions:
SecurityException if denied access to log files.

Implements RollingPolicy.


The documentation for this class was generated from the following file: ././@LongLink100644 0 0 146 10774264512 10264 Lustar 0 0 apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_time_based_rolling_policy-members.htmlapache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_time_based_rolling_policy-members.htm100644 0 0 27140 10774263472 30704 0ustar 0 0 Apache log4cxx: Member List

TimeBasedRollingPolicy Member List

This is the complete list of members for TimeBasedRollingPolicy, including all inherited members.

activateOptions(log4cxx::helpers::Pool &)TimeBasedRollingPolicy [virtual]
addRef() const TimeBasedRollingPolicy [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
formatFileName(log4cxx::helpers::ObjectPtr &obj, LogString &buf, log4cxx::helpers::Pool &p) const RollingPolicyBase [protected]
getClass() const Object [virtual]
getDatePatternConverter() const RollingPolicyBase [protected]
getFileNamePattern() const RollingPolicyBase
getFormatSpecifiers() const TimeBasedRollingPolicy [protected, virtual]
getIntegerPatternConverter() const RollingPolicyBase [protected]
getStaticClass()Object [static]
initialize(const LogString &file, const bool append, log4cxx::helpers::Pool &pool)TimeBasedRollingPolicy [virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
isTriggeringEvent(Appender *appender, const log4cxx::spi::LoggingEventPtr &event, const LogString &filename, size_t fileLength)TimeBasedRollingPolicy [virtual]
ObjectImpl()ObjectImpl
parseFileNamePattern()RollingPolicyBase [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const TimeBasedRollingPolicy [virtual]
RollingPolicyBase()RollingPolicyBase
rollover(const LogString &activeFile, log4cxx::helpers::Pool &pool)TimeBasedRollingPolicy [virtual]
setFileNamePattern(const LogString &fnp)RollingPolicyBase
setOption(const LogString &option, const LogString &value)RollingPolicyBase [virtual]
TimeBasedRollingPolicy()TimeBasedRollingPolicy
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
~RollingPolicy()RollingPolicy [inline, virtual]
~RollingPolicyBase()RollingPolicyBase [virtual]
~TriggeringPolicy()TriggeringPolicy [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_triggering_policy.html100644 0 0 31025 10774263472 25744 0ustar 0 0 Apache log4cxx: TriggeringPolicy Class Reference

TriggeringPolicy Class Reference

Inherits OptionHandler, and ObjectImpl.

Inherited by FilterBasedTriggeringPolicy, ManualTriggeringPolicy, SizeBasedTriggeringPolicy, and TimeBasedRollingPolicy.

List of all members.


Detailed Description

A TriggeringPolicy controls the conditions under which rollover occurs.

Such conditions include time of day, file size, an external event or a combination thereof.


Public Member Functions

virtual ~TriggeringPolicy ()
void addRef () const
void releaseRef () const
virtual bool isTriggeringEvent (Appender *appender, const log4cxx::spi::LoggingEventPtr &event, const LogString &filename, size_t fileLength)=0
 Determines if a rollover may be appropriate at this time.


Constructor & Destructor Documentation

virtual ~TriggeringPolicy  )  [virtual]
 


Member Function Documentation

void addRef  )  const [virtual]
 

Reimplemented from ObjectImpl.

Reimplemented in TimeBasedRollingPolicy.

virtual bool isTriggeringEvent Appender appender,
const log4cxx::spi::LoggingEventPtr event,
const LogString filename,
size_t  fileLength
[pure virtual]
 

Determines if a rollover may be appropriate at this time.

If true is returned, RolloverPolicy.rollover will be called but it can determine that a rollover is not warranted.

Parameters:
appender A reference to the appender.
event A reference to the currently event.
filename The filename for the currently active log file.
fileLength Length of the file in bytes.
Returns:
true if a rollover should occur.

Implemented in FilterBasedTriggeringPolicy, ManualTriggeringPolicy, SizeBasedTriggeringPolicy, and TimeBasedRollingPolicy.

void releaseRef  )  const [virtual]
 

Reimplemented from ObjectImpl.

Reimplemented in TimeBasedRollingPolicy.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_triggering_policy-members.html100644 0 0 16544 10774263472 27405 0ustar 0 0 Apache log4cxx: Member List

TriggeringPolicy Member List

This is the complete list of members for TriggeringPolicy, including all inherited members.

activateOptions(log4cxx::helpers::Pool &p)=0OptionHandler [pure virtual]
addRef() const TriggeringPolicy [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
isTriggeringEvent(Appender *appender, const log4cxx::spi::LoggingEventPtr &event, const LogString &filename, size_t fileLength)=0TriggeringPolicy [pure virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const TriggeringPolicy [virtual]
setOption(const LogString &option, const LogString &value)=0OptionHandler [pure virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
~TriggeringPolicy()TriggeringPolicy [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_zip_compress_action.html100644 0 0 16716 10774263472 26310 0ustar 0 0 Apache log4cxx: ZipCompressAction Class Reference

ZipCompressAction Class Reference

Inherits Action.

List of all members.

Public Member Functions

 ZipCompressAction (const File &source, const File &destination, bool deleteSource)
 Constructor.
virtual bool execute (log4cxx::helpers::Pool &pool) const
 Perform action.


Constructor & Destructor Documentation

ZipCompressAction const File source,
const File destination,
bool  deleteSource
 

Constructor.


Member Function Documentation

virtual bool execute log4cxx::helpers::Pool pool  )  const [virtual]
 

Perform action.

Returns:
true if successful.

Implements Action.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1rolling_1_1_zip_compress_action-members.html100644 0 0 17555 10774263472 27742 0ustar 0 0 Apache log4cxx: Member List

ZipCompressAction Member List

This is the complete list of members for ZipCompressAction, including all inherited members.

Action()Action [protected]
addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
close()Action
execute(log4cxx::helpers::Pool &pool) const ZipCompressAction [virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
isComplete() const Action
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
reportException(const std::exception &)Action
run(log4cxx::helpers::Pool &pool)Action
ZipCompressAction(const File &source, const File &destination, bool deleteSource)ZipCompressAction
~Action()Action [protected, virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/namespacelog4cxx_1_1rule.html100644 0 0 14062 10774263472 21636 0ustar 0 0 Apache log4cxx: log4cxx::rule Namespace Reference

log4cxx::rule Namespace Reference


Typedefs

typedef helpers::ObjectPtrT<
Rule > 
RulePtr
typedef helpers::ObjectPtrT<
Rule > 
RulePtr
typedef helpers::ObjectPtrT<
ExpressionRule > 
ExpressionRulePtr


Typedef Documentation

typedef helpers::ObjectPtrT< ExpressionRule > ExpressionRulePtr
 

typedef helpers::ObjectPtrT< Rule > RulePtr
 

typedef helpers::ObjectPtrT< Rule > RulePtr
 

apache-log4cxx-0.10.0/site/apidocs/namespacelog4cxx_1_1spi.html100644 0 0 111607 10774263472 21505 0ustar 0 0 Apache log4cxx: log4cxx::spi Namespace Reference

log4cxx::spi Namespace Reference


Classes

class  AppenderAttachable
 This Interface is for attaching Appenders to objects. More...
class  Configurator
 Implemented by classes capable of configuring log4j using a URL. More...
class  DefaultRepositorySelector
class  ErrorCode
class  ErrorHandler
 Appenders may delegate their error handling to ErrorHandlers. More...
class  Filter
 Users should extend this class to implement customized logging event filtering. More...
class  HierarchyEventListener
 Listen to events occuring within a Hierarchy. More...
class  LocationInfo
 This class represents the location of a logging statement. More...
class  LoggerFactory
 Implement this interface to create new instances of Logger or a sub-class of Logger. More...
class  LoggerRepository
 A LoggerRepository is used to create and retrieve Loggers. More...
class  LoggingEvent
 The internal representation of logging events. More...
class  OptionHandler
 A string based interface to configure package components. More...
class  RepositorySelector
 The LogManager uses one (and only one) RepositorySelector implementation to select the LoggerRepository for a particular application context. More...
class  RootLogger
 RootLogger sits at the top of the logger hierachy. More...
class  TriggeringEventEvaluator
 Implementions of this interface allow certain appenders to decide when to perform an appender specific action. More...

Typedefs

typedef helpers::ObjectPtrT<
LoggingEvent
LoggingEventPtr
typedef helpers::ObjectPtrT<
Filter
FilterPtr
typedef log4cxx::helpers::ObjectPtrT<
ErrorHandler
ErrorHandlerPtr
typedef log4cxx::helpers::ObjectPtrT<
ErrorHandler
ErrorHandlerPtr
typedef helpers::ObjectPtrT<
LoggerRepository
LoggerRepositoryPtr
typedef helpers::ObjectPtrT<
LoggingEvent
LoggingEventPtr
typedef helpers::ObjectPtrT<
LoggerRepository
LoggerRepositoryPtr
typedef helpers::ObjectPtrT<
LoggerFactory
LoggerFactoryPtr
typedef helpers::ObjectPtrT<
OptionHandler
OptionHandlerPtr
typedef helpers::ObjectPtrT<
LoggerRepository
LoggerRepositoryPtr

Functions

 LOG4CXX_PTR_DEF (LoggerRepository)
 LOG4CXX_PTR_DEF (LoggerFactory)
 LOG4CXX_PTR_DEF (AppenderAttachable)
 LOG4CXX_PTR_DEF (Configurator)
 LOG4CXX_PTR_DEF (ErrorHandler)
 LOG4CXX_PTR_DEF (Filter)
 LOG4CXX_PTR_DEF (HierarchyEventListener)
 LOG4CXX_LIST_DEF (HierarchyEventListenerList, HierarchyEventListenerPtr)
 LOG4CXX_PTR_DEF (LoggingEvent)
 LOG4CXX_LIST_DEF (LoggingEventList, LoggingEventPtr)
 LOG4CXX_PTR_DEF (RepositorySelector)
 LOG4CXX_PTR_DEF (TriggeringEventEvaluator)


Typedef Documentation

typedef log4cxx::helpers::ObjectPtrT<ErrorHandler> ErrorHandlerPtr
 

typedef log4cxx::helpers::ObjectPtrT<ErrorHandler> ErrorHandlerPtr
 

typedef helpers::ObjectPtrT<Filter> FilterPtr
 

typedef helpers::ObjectPtrT<LoggerFactory> LoggerFactoryPtr
 

typedef helpers::ObjectPtrT<LoggerRepository> LoggerRepositoryPtr
 

typedef helpers::ObjectPtrT<LoggerRepository> LoggerRepositoryPtr
 

typedef helpers::ObjectPtrT<LoggerRepository> LoggerRepositoryPtr
 

typedef helpers::ObjectPtrT<LoggingEvent> LoggingEventPtr
 

typedef helpers::ObjectPtrT<LoggingEvent> LoggingEventPtr
 

typedef helpers::ObjectPtrT<OptionHandler> OptionHandlerPtr
 


Function Documentation

log4cxx::spi::LOG4CXX_LIST_DEF LoggingEventList  ,
LoggingEventPtr 
 

log4cxx::spi::LOG4CXX_LIST_DEF HierarchyEventListenerList  ,
HierarchyEventListenerPtr 
 

log4cxx::spi::LOG4CXX_PTR_DEF TriggeringEventEvaluator   ) 
 

log4cxx::spi::LOG4CXX_PTR_DEF RepositorySelector   ) 
 

log4cxx::spi::LOG4CXX_PTR_DEF LoggingEvent   ) 
 

log4cxx::spi::LOG4CXX_PTR_DEF HierarchyEventListener   ) 
 

log4cxx::spi::LOG4CXX_PTR_DEF Filter   ) 
 

log4cxx::spi::LOG4CXX_PTR_DEF ErrorHandler   ) 
 

log4cxx::spi::LOG4CXX_PTR_DEF Configurator   ) 
 

log4cxx::spi::LOG4CXX_PTR_DEF AppenderAttachable   ) 
 

log4cxx::spi::LOG4CXX_PTR_DEF LoggerFactory   ) 
 

log4cxx::spi::LOG4CXX_PTR_DEF LoggerRepository   ) 
 

apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1spi_1_1_appender_attachable.html100644 0 0 45360 10774263472 25326 0ustar 0 0 Apache log4cxx: AppenderAttachable Class Reference

AppenderAttachable Class Reference

Inherits Object.

Inherited by AsyncAppender [virtual], AppenderAttachableImpl [virtual], and Logger [virtual].

List of all members.


Detailed Description

This Interface is for attaching Appenders to objects.


Public Member Functions

virtual void addAppender (const AppenderPtr &newAppender)=0
 Add an appender.
virtual AppenderList getAllAppenders () const =0
 Get all previously added appenders as an AppenderList.
virtual AppenderPtr getAppender (const LogString &name) const =0
 Get an appender by name.
virtual bool isAttached (const AppenderPtr &appender) const =0
 Returns true if the specified appender is in list of attached attached, false otherwise.
virtual void removeAllAppenders ()=0
 Remove all previously added appenders.
virtual void removeAppender (const AppenderPtr &appender)=0
 Remove the appender passed as parameter from the list of appenders.
virtual void removeAppender (const LogString &name)=0
 Remove the appender with the name passed as parameter from the list of appenders.
virtual ~AppenderAttachable ()


Constructor & Destructor Documentation

virtual ~AppenderAttachable  )  [inline, virtual]
 


Member Function Documentation

virtual void addAppender const AppenderPtr newAppender  )  [pure virtual]
 

Add an appender.

Implemented in AsyncAppender, AppenderAttachableImpl, and Logger.

virtual AppenderList getAllAppenders  )  const [pure virtual]
 

Get all previously added appenders as an AppenderList.

Implemented in AsyncAppender, AppenderAttachableImpl, and Logger.

virtual AppenderPtr getAppender const LogString name  )  const [pure virtual]
 

Get an appender by name.

Implemented in AsyncAppender, AppenderAttachableImpl, and Logger.

virtual bool isAttached const AppenderPtr appender  )  const [pure virtual]
 

Returns true if the specified appender is in list of attached attached, false otherwise.

Implemented in AsyncAppender, AppenderAttachableImpl, and Logger.

virtual void removeAllAppenders  )  [pure virtual]
 

Remove all previously added appenders.

Implemented in AsyncAppender, AppenderAttachableImpl, and Logger.

virtual void removeAppender const LogString name  )  [pure virtual]
 

Remove the appender with the name passed as parameter from the list of appenders.

Implemented in AsyncAppender, AppenderAttachableImpl, and Logger.

virtual void removeAppender const AppenderPtr appender  )  [pure virtual]
 

Remove the appender passed as parameter from the list of appenders.

Implemented in AsyncAppender, AppenderAttachableImpl, and Logger.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1spi_1_1_appender_attachable-members.html100644 0 0 16646 10774263472 26763 0ustar 0 0 Apache log4cxx: Member List

AppenderAttachable Member List

This is the complete list of members for AppenderAttachable, including all inherited members.

addAppender(const AppenderPtr &newAppender)=0AppenderAttachable [pure virtual]
addRef() const =0Object [pure virtual]
cast(const Class &clazz) const =0Object [pure virtual]
getAllAppenders() const =0AppenderAttachable [pure virtual]
getAppender(const LogString &name) const =0AppenderAttachable [pure virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
isAttached(const AppenderPtr &appender) const =0AppenderAttachable [pure virtual]
registerClass()Object [static]
releaseRef() const =0Object [pure virtual]
removeAllAppenders()=0AppenderAttachable [pure virtual]
removeAppender(const AppenderPtr &appender)=0AppenderAttachable [pure virtual]
removeAppender(const LogString &name)=0AppenderAttachable [pure virtual]
~AppenderAttachable()AppenderAttachable [inline, virtual]
~Object()Object [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1spi_1_1_configurator.html100644 0 0 17315 10774263472 24061 0ustar 0 0 Apache log4cxx: Configurator Class Reference

Configurator Class Reference

Inherits Object.

Inherited by PropertyConfigurator [virtual], and DOMConfigurator [virtual].

List of all members.


Detailed Description

Implemented by classes capable of configuring log4j using a URL.


Public Member Functions

 Configurator ()
virtual void doConfigure (const File &configFileName, spi::LoggerRepositoryPtr &repository)=0
 Interpret a resource pointed by a URL and set up log4j accordingly.


Constructor & Destructor Documentation

Configurator  ) 
 


Member Function Documentation

virtual void doConfigure const File configFileName,
spi::LoggerRepositoryPtr repository
[pure virtual]
 

Interpret a resource pointed by a URL and set up log4j accordingly.

The configuration is done relative to the hierarchy parameter.

Parameters:
configFileName The file to parse
repository The hierarchy to operation upon.

Implemented in PropertyConfigurator, and DOMConfigurator.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1spi_1_1_configurator-members.html100644 0 0 12740 10774263472 25506 0ustar 0 0 Apache log4cxx: Member List

Configurator Member List

This is the complete list of members for Configurator, including all inherited members.

addRef() const =0Object [pure virtual]
cast(const Class &clazz) const =0Object [pure virtual]
Configurator()Configurator
doConfigure(const File &configFileName, spi::LoggerRepositoryPtr &repository)=0Configurator [pure virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
registerClass()Object [static]
releaseRef() const =0Object [pure virtual]
~Object()Object [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1spi_1_1_default_repository_selector.html100644 0 0 22175 10774263472 27202 0ustar 0 0 Apache log4cxx: DefaultRepositorySelector Class Reference

DefaultRepositorySelector Class Reference

Inherits RepositorySelector, and ObjectImpl.

List of all members.

Public Member Functions

 DefaultRepositorySelector (const LoggerRepositoryPtr &repository1)
void addRef () const
void releaseRef () const
virtual LoggerRepositoryPtrgetLoggerRepository ()


Constructor & Destructor Documentation

DefaultRepositorySelector const LoggerRepositoryPtr repository1  ) 
 


Member Function Documentation

void addRef  )  const [virtual]
 

Reimplemented from ObjectImpl.

virtual LoggerRepositoryPtr& getLoggerRepository  )  [virtual]
 

Implements RepositorySelector.

void releaseRef  )  const [virtual]
 

Reimplemented from ObjectImpl.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1spi_1_1_default_repository_selector-members.html100644 0 0 15374 10774263472 30635 0ustar 0 0 Apache log4cxx: Member List

DefaultRepositorySelector Member List

This is the complete list of members for DefaultRepositorySelector, including all inherited members.

addRef() const DefaultRepositorySelector [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
DefaultRepositorySelector(const LoggerRepositoryPtr &repository1)DefaultRepositorySelector
getClass() const Object [virtual]
getLoggerRepository()DefaultRepositorySelector [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const DefaultRepositorySelector [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~RepositorySelector()RepositorySelector [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1spi_1_1_error_code.html100644 0 0 16177 10774263472 23507 0ustar 0 0 Apache log4cxx: ErrorCode Class Reference

ErrorCode Class Reference

List of all members.

Public Types

enum  {
  GENERIC_FAILURE = 0, WRITE_FAILURE = 1, FLUSH_FAILURE = 2, CLOSE_FAILURE = 3,
  FILE_OPEN_FAILURE = 4, MISSING_LAYOUT = 5, ADDRESS_PARSE_FAILURE = 6
}

Member Enumeration Documentation

anonymous enum
 

Enumerator:
GENERIC_FAILURE 
WRITE_FAILURE 
FLUSH_FAILURE 
CLOSE_FAILURE 
FILE_OPEN_FAILURE 
MISSING_LAYOUT 
ADDRESS_PARSE_FAILURE 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1spi_1_1_error_code-members.html100644 0 0 11316 10774263472 25125 0ustar 0 0 Apache log4cxx: Member List

ErrorCode Member List

This is the complete list of members for ErrorCode, including all inherited members.

ADDRESS_PARSE_FAILURE enum valueErrorCode
CLOSE_FAILURE enum valueErrorCode
FILE_OPEN_FAILURE enum valueErrorCode
FLUSH_FAILURE enum valueErrorCode
GENERIC_FAILURE enum valueErrorCode
MISSING_LAYOUT enum valueErrorCode
WRITE_FAILURE enum valueErrorCode
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1spi_1_1_error_handler.html100644 0 0 47627 10774263472 24216 0ustar 0 0 Apache log4cxx: ErrorHandler Class Reference

ErrorHandler Class Reference

Inherits OptionHandler.

Inherited by OnlyOnceErrorHandler [virtual], and FallbackErrorHandler [virtual].

List of all members.


Detailed Description

Appenders may delegate their error handling to ErrorHandlers.

Error handling is a particularly tedious to get right because by definition errors are hard to predict and to reproduce.

Please take the time to contact the author in case you discover that errors are not properly handled. You are most welcome to suggest new error handling policies or criticize existing policies.


Public Member Functions

virtual ~ErrorHandler ()
virtual void setLogger (const LoggerPtr &logger)=0
 Add a reference to a logger to which the failing appender might be attached to.
virtual void error (const LogString &message, const std::exception &e, int errorCode) const =0
 Equivalent to the error(const String&, helpers::Exception&, int, spi::LoggingEvent&) with the the event parameteter set to null.
virtual void error (const LogString &message) const =0
 This method is normally used to just print the error message passed as a parameter.
virtual void error (const LogString &message, const std::exception &e, int errorCode, const LoggingEventPtr &event) const =0
 This method is invoked to handle the error.
virtual void setAppender (const AppenderPtr &appender)=0
 Set the appender for which errors are handled.
virtual void setBackupAppender (const AppenderPtr &appender)=0
 Set the appender to fallback upon in case of failure.


Constructor & Destructor Documentation

virtual ~ErrorHandler  )  [inline, virtual]
 


Member Function Documentation

virtual void error const LogString message,
const std::exception &  e,
int  errorCode,
const LoggingEventPtr event
const [pure virtual]
 

This method is invoked to handle the error.

Parameters:
message The message assoicated with the error.
e The Exption that was thrown when the error occured.
errorCode The error code associated with the error.
event The logging event that the failing appender is asked to log.

Implemented in OnlyOnceErrorHandler, and FallbackErrorHandler.

virtual void error const LogString message  )  const [pure virtual]
 

This method is normally used to just print the error message passed as a parameter.

Implemented in OnlyOnceErrorHandler, and FallbackErrorHandler.

virtual void error const LogString message,
const std::exception &  e,
int  errorCode
const [pure virtual]
 

Equivalent to the error(const String&, helpers::Exception&, int, spi::LoggingEvent&) with the the event parameteter set to null.

Implemented in OnlyOnceErrorHandler, and FallbackErrorHandler.

virtual void setAppender const AppenderPtr appender  )  [pure virtual]
 

Set the appender for which errors are handled.

This method is usually called when the error handler is configured.

Implemented in OnlyOnceErrorHandler, and FallbackErrorHandler.

virtual void setBackupAppender const AppenderPtr appender  )  [pure virtual]
 

Set the appender to fallback upon in case of failure.

Implemented in OnlyOnceErrorHandler, and FallbackErrorHandler.

virtual void setLogger const LoggerPtr logger  )  [pure virtual]
 

Add a reference to a logger to which the failing appender might be attached to.

The failing appender will be searched and replaced only in the loggers you add through this method.

Parameters:
logger One of the loggers that will be searched for the failing appender in view of replacement.

Implemented in OnlyOnceErrorHandler, and FallbackErrorHandler.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1spi_1_1_error_handler-members.html100644 0 0 20006 10774263472 25624 0ustar 0 0 Apache log4cxx: Member List

ErrorHandler Member List

This is the complete list of members for ErrorHandler, including all inherited members.

activateOptions(log4cxx::helpers::Pool &p)=0OptionHandler [pure virtual]
addRef() const =0Object [pure virtual]
cast(const Class &clazz) const =0Object [pure virtual]
error(const LogString &message, const std::exception &e, int errorCode) const =0ErrorHandler [pure virtual]
error(const LogString &message) const =0ErrorHandler [pure virtual]
error(const LogString &message, const std::exception &e, int errorCode, const LoggingEventPtr &event) const =0ErrorHandler [pure virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
registerClass()Object [static]
releaseRef() const =0Object [pure virtual]
setAppender(const AppenderPtr &appender)=0ErrorHandler [pure virtual]
setBackupAppender(const AppenderPtr &appender)=0ErrorHandler [pure virtual]
setLogger(const LoggerPtr &logger)=0ErrorHandler [pure virtual]
setOption(const LogString &option, const LogString &value)=0OptionHandler [pure virtual]
~ErrorHandler()ErrorHandler [inline, virtual]
~Object()Object [inline, virtual]
~OptionHandler()OptionHandler [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1spi_1_1_filter.html100644 0 0 57237 10774263472 22653 0ustar 0 0 Apache log4cxx: Filter Class Reference

Filter Class Reference

Inherits OptionHandler, and ObjectImpl.

Inherited by AndFilter, DenyAllFilter, ExpressionFilter, LevelMatchFilter, LevelRangeFilter, LocationInfoFilter, MapFilter, PropertyFilter, and StringMatchFilter.

List of all members.


Detailed Description

Users should extend this class to implement customized logging event filtering.

Note that Logger and AppenderSkeleton, the parent class of all standard appenders, have built-in filtering rules. It is suggested that you first use and understand the built-in rules before rushing to write your own custom filters.

This abstract class assumes and also imposes that filters be organized in a linear chain. The decide(LoggingEvent) method of each filter is called sequentially, in the order of their addition to the chain.

The decide(LoggingEvent) method must return one of the integer constants DENY, NEUTRAL or ACCEPT.

If the value DENY is returned, then the log event is dropped immediately without consulting with the remaining filters.

If the value NEUTRAL is returned, then the next filter in the chain is consulted. If there are no more filters in the chain, then the log event is logged. Thus, in the presence of no filters, the default behaviour is to log all logging events.

If the value ACCEPT is returned, then the log event is logged without consulting the remaining filters.

The philosophy of log4cxx filters is largely inspired from the Linux ipchains.

Note that filtering is only supported by the DOMConfigurator.


Public Types

enum  FilterDecision { DENY = -1, NEUTRAL = 0, ACCEPT = 1 }

Public Member Functions

 Filter ()
void addRef () const
void releaseRef () const
log4cxx::spi::FilterPtr getNext () const
void setNext (const log4cxx::spi::FilterPtr &newNext)
void activateOptions (log4cxx::helpers::Pool &p)
 Usually filters options become active when set.
void setOption (const LogString &option, const LogString &value)
 Set option to value.
virtual FilterDecision decide (const LoggingEventPtr &event) const =0


Member Enumeration Documentation

enum FilterDecision
 

Enumerator:
DENY  The log event must be dropped immediately without consulting with the remaining filters, if any, in the chain.
NEUTRAL  This filter is neutral with respect to the log event.

The remaining filters, if any, should be consulted for a final decision.

ACCEPT  The log event must be logged immediately without consulting with the remaining filters, if any, in the chain.


Constructor & Destructor Documentation

Filter  ) 
 


Member Function Documentation

void activateOptions log4cxx::helpers::Pool p  )  [virtual]
 

Usually filters options become active when set.

We provide a

default do-nothing implementation for convenience.

Implements OptionHandler.

Reimplemented in ExpressionFilter, and LocationInfoFilter.

void addRef  )  const [virtual]
 

Reimplemented from ObjectImpl.

virtual FilterDecision decide const LoggingEventPtr event  )  const [pure virtual]
 

If the decision is DENY, then the event will be dropped. If the decision is NEUTRAL, then the next filter, if any, will be invoked. If the decision is ACCEPT then the event will be logged without consulting with other filters in the chain.

Parameters:
event The LoggingEvent to decide upon.
Returns:
The decision of the filter.

Implemented in AndFilter, DenyAllFilter, ExpressionFilter, LevelMatchFilter, LevelRangeFilter, LocationInfoFilter, MapFilter, PropertyFilter, and StringMatchFilter.

log4cxx::spi::FilterPtr getNext  )  const
 

void releaseRef  )  const [virtual]
 

Reimplemented from ObjectImpl.

void setNext const log4cxx::spi::FilterPtr newNext  ) 
 

void setOption const LogString option,
const LogString value
[virtual]
 

Set option to value.

The handling of each option depends on the OptionHandler instance. Some options may become active immediately whereas other may be activated only when activateOptions is called.

Implements OptionHandler.

Reimplemented in LevelMatchFilter, LevelRangeFilter, and StringMatchFilter.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1spi_1_1_filter-members.html100644 0 0 20750 10774263472 24271 0ustar 0 0 Apache log4cxx: Member List

Filter Member List

This is the complete list of members for Filter, including all inherited members.

ACCEPT enum valueFilter
activateOptions(log4cxx::helpers::Pool &p)Filter [virtual]
addRef() const Filter [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
decide(const LoggingEventPtr &event) const =0Filter [pure virtual]
DENY enum valueFilter
Filter()Filter
FilterDecision enum nameFilter
getClass() const Object [virtual]
getNext() const Filter
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
NEUTRAL enum valueFilter
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const Filter [virtual]
setNext(const log4cxx::spi::FilterPtr &newNext)Filter
setOption(const LogString &option, const LogString &value)Filter [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1spi_1_1_hierarchy_event_listener.html100644 0 0 22761 10774263472 26444 0ustar 0 0 Apache log4cxx: HierarchyEventListener Class Reference

HierarchyEventListener Class Reference

Inherits Object.

List of all members.


Detailed Description

Listen to events occuring within a Hierarchy.


Public Member Functions

virtual ~HierarchyEventListener ()
virtual void addAppenderEvent (const log4cxx::helpers::ObjectPtrT< Logger > &logger, const log4cxx::helpers::ObjectPtrT< Appender > &appender)=0
virtual void removeAppenderEvent (const log4cxx::helpers::ObjectPtrT< Logger > &logger, const log4cxx::helpers::ObjectPtrT< Appender > &appender)=0


Constructor & Destructor Documentation

virtual ~HierarchyEventListener  )  [inline, virtual]
 


Member Function Documentation

virtual void addAppenderEvent const log4cxx::helpers::ObjectPtrT< Logger > &  logger,
const log4cxx::helpers::ObjectPtrT< Appender > &  appender
[pure virtual]
 

virtual void removeAppenderEvent const log4cxx::helpers::ObjectPtrT< Logger > &  logger,
const log4cxx::helpers::ObjectPtrT< Appender > &  appender
[pure virtual]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1spi_1_1_hierarchy_event_listener-members.html100644 0 0 14156 10774263472 30073 0ustar 0 0 Apache log4cxx: Member List

HierarchyEventListener Member List

This is the complete list of members for HierarchyEventListener, including all inherited members.

addAppenderEvent(const log4cxx::helpers::ObjectPtrT< Logger > &logger, const log4cxx::helpers::ObjectPtrT< Appender > &appender)=0HierarchyEventListener [pure virtual]
addRef() const =0Object [pure virtual]
cast(const Class &clazz) const =0Object [pure virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
registerClass()Object [static]
releaseRef() const =0Object [pure virtual]
removeAppenderEvent(const log4cxx::helpers::ObjectPtrT< Logger > &logger, const log4cxx::helpers::ObjectPtrT< Appender > &appender)=0HierarchyEventListener [pure virtual]
~HierarchyEventListener()HierarchyEventListener [inline, virtual]
~Object()Object [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1spi_1_1_location_info.html100644 0 0 54604 10774263472 24204 0ustar 0 0 Apache log4cxx: LocationInfo Class Reference

LocationInfo Class Reference

List of all members.

Detailed Description

This class represents the location of a logging statement.


Public Member Functions

 LocationInfo (const char *const fileName, const char *const functionName, int lineNumber)
 Constructor.
 LocationInfo ()
 Default constructor.
 LocationInfo (const LocationInfo &src)
 Copy constructor.
LocationInfooperator= (const LocationInfo &src)
 Assignment operator.
void clear ()
 Resets location info to default state.
const std::string getClassName () const
 Return the class name of the call site.
const char * getFileName () const
 Return the file name of the caller.
int getLineNumber () const
 Returns the line number of the caller.
const std::string getMethodName () const
 Returns the method name of the caller.
void write (log4cxx::helpers::ObjectOutputStream &os, log4cxx::helpers::Pool &p) const

Static Public Member Functions

static const LocationInfogetLocationUnavailable ()

Static Public Attributes

static const char *const NA
 When location information is not available the constant NA is returned.
static const char *const NA_METHOD


Constructor & Destructor Documentation

LocationInfo const char *const   fileName,
const char *const   functionName,
int  lineNumber
 

Constructor.

Remarks:
Used by LOG4CXX_LOCATION to generate location info for current code site

LocationInfo  ) 
 

Default constructor.

LocationInfo const LocationInfo src  ) 
 

Copy constructor.

Parameters:
src source location


Member Function Documentation

void clear  ) 
 

Resets location info to default state.

const std::string getClassName  )  const
 

Return the class name of the call site.

const char* getFileName  )  const
 

Return the file name of the caller.

Returns:
file name, may be null.

int getLineNumber  )  const
 

Returns the line number of the caller.

Returns:
line number, -1 if not available.

static const LocationInfo& getLocationUnavailable  )  [static]
 

const std::string getMethodName  )  const
 

Returns the method name of the caller.

LocationInfo& operator= const LocationInfo src  ) 
 

Assignment operator.

Parameters:
src source location

void write log4cxx::helpers::ObjectOutputStream os,
log4cxx::helpers::Pool p
const
 


Member Data Documentation

const char* const NA [static]
 

When location information is not available the constant NA is returned.

Current value of this string constant is ?.

const char* const NA_METHOD [static]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1spi_1_1_location_info-members.html100644 0 0 14326 10774263472 25631 0ustar 0 0 Apache log4cxx: Member List

LocationInfo Member List

This is the complete list of members for LocationInfo, including all inherited members.

clear()LocationInfo
getClassName() const LocationInfo
getFileName() const LocationInfo
getLineNumber() const LocationInfo
getLocationUnavailable()LocationInfo [static]
getMethodName() const LocationInfo
LocationInfo(const char *const fileName, const char *const functionName, int lineNumber)LocationInfo
LocationInfo()LocationInfo
LocationInfo(const LocationInfo &src)LocationInfo
NALocationInfo [static]
NA_METHODLocationInfo [static]
operator=(const LocationInfo &src)LocationInfo
write(log4cxx::helpers::ObjectOutputStream &os, log4cxx::helpers::Pool &p) const LocationInfo
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1spi_1_1_logger_factory.html100644 0 0 16263 10774263472 24366 0ustar 0 0 Apache log4cxx: LoggerFactory Class Reference

LoggerFactory Class Reference

Inherits Object.

Inherited by DefaultLoggerFactory [virtual].

List of all members.


Detailed Description

Implement this interface to create new instances of Logger or a sub-class of Logger.


Public Member Functions

virtual ~LoggerFactory ()
virtual LoggerPtr makeNewLoggerInstance (log4cxx::helpers::Pool &pool, const LogString &name) const =0


Constructor & Destructor Documentation

virtual ~LoggerFactory  )  [inline, virtual]
 


Member Function Documentation

virtual LoggerPtr makeNewLoggerInstance log4cxx::helpers::Pool pool,
const LogString name
const [pure virtual]
 

Implemented in DefaultLoggerFactory.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1spi_1_1_logger_factory-members.html100644 0 0 13023 10774263472 26005 0ustar 0 0 Apache log4cxx: Member List

LoggerFactory Member List

This is the complete list of members for LoggerFactory, including all inherited members.

addRef() const =0Object [pure virtual]
cast(const Class &clazz) const =0Object [pure virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
makeNewLoggerInstance(log4cxx::helpers::Pool &pool, const LogString &name) const =0LoggerFactory [pure virtual]
registerClass()Object [static]
releaseRef() const =0Object [pure virtual]
~LoggerFactory()LoggerFactory [inline, virtual]
~Object()Object [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1spi_1_1_logger_repository.html100644 0 0 76505 10774263472 25143 0ustar 0 0 Apache log4cxx: LoggerRepository Class Reference

LoggerRepository Class Reference

Inherits Object.

Inherited by Hierarchy [virtual].

List of all members.


Detailed Description

A LoggerRepository is used to create and retrieve Loggers.

The relation between loggers in a repository depends on the repository but typically loggers are arranged in a named hierarchy.

In addition to the creational methods, a LoggerRepository can be queried for existing loggers, can act as a point of registry for events related to loggers.


Public Member Functions

virtual ~LoggerRepository ()
virtual void addHierarchyEventListener (const HierarchyEventListenerPtr &listener)=0
 Add a HierarchyEventListener event to the repository.
virtual bool isDisabled (int level) const =0
 Is the repository disabled for a given level? The answer depends on the repository threshold and the level parameter.
virtual void setThreshold (const LevelPtr &level)=0
 Set the repository-wide threshold.
virtual void setThreshold (const LogString &val)=0
 Another form of setThreshold accepting a string parameter instead of a Level.
virtual void emitNoAppenderWarning (const LoggerPtr &logger)=0
virtual const LevelPtrgetThreshold () const =0
 Get the repository-wide threshold.
virtual LoggerPtr getLogger (const LogString &name)=0
virtual LoggerPtr getLogger (const LogString &name, const spi::LoggerFactoryPtr &factory)=0
virtual LoggerPtr getRootLogger () const =0
virtual LoggerPtr exists (const LogString &name)=0
virtual void shutdown ()=0
virtual LoggerList getCurrentLoggers () const =0
virtual void fireAddAppenderEvent (const LoggerPtr &logger, const AppenderPtr &appender)=0
virtual void resetConfiguration ()=0
virtual bool isConfigured ()=0
virtual void setConfigured (bool configured)=0


Constructor & Destructor Documentation

virtual ~LoggerRepository  )  [inline, virtual]
 


Member Function Documentation

virtual void addHierarchyEventListener const HierarchyEventListenerPtr &  listener  )  [pure virtual]
 

Add a HierarchyEventListener event to the repository.

virtual void emitNoAppenderWarning const LoggerPtr logger  )  [pure virtual]
 

Implemented in Hierarchy.

virtual LoggerPtr exists const LogString name  )  [pure virtual]
 

Implemented in Hierarchy.

virtual void fireAddAppenderEvent const LoggerPtr logger,
const AppenderPtr appender
[pure virtual]
 

Implemented in Hierarchy.

virtual LoggerList getCurrentLoggers  )  const [pure virtual]
 

Implemented in Hierarchy.

virtual LoggerPtr getLogger const LogString name,
const spi::LoggerFactoryPtr factory
[pure virtual]
 

Implemented in Hierarchy.

virtual LoggerPtr getLogger const LogString name  )  [pure virtual]
 

Implemented in Hierarchy.

virtual LoggerPtr getRootLogger  )  const [pure virtual]
 

Implemented in Hierarchy.

virtual const LevelPtr& getThreshold  )  const [pure virtual]
 

Get the repository-wide threshold.

See setThreshold for an explanation.

Implemented in Hierarchy.

virtual bool isConfigured  )  [pure virtual]
 

Implemented in Hierarchy.

virtual bool isDisabled int  level  )  const [pure virtual]
 

Is the repository disabled for a given level? The answer depends on the repository threshold and the level parameter.

See also setThreshold method.

Implemented in Hierarchy.

virtual void resetConfiguration  )  [pure virtual]
 

Implemented in Hierarchy.

virtual void setConfigured bool  configured  )  [pure virtual]
 

Implemented in Hierarchy.

virtual void setThreshold const LogString val  )  [pure virtual]
 

Another form of setThreshold accepting a string parameter instead of a Level.

Implemented in Hierarchy.

virtual void setThreshold const LevelPtr level  )  [pure virtual]
 

Set the repository-wide threshold.

All logging requests below the threshold are immediately dropped. By default, the threshold is set to Level::getAll() which has the lowest possible rank.

Implemented in Hierarchy.

virtual void shutdown  )  [pure virtual]
 

Implemented in Hierarchy.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1spi_1_1_logger_repository-members.html100644 0 0 24171 10774263472 26563 0ustar 0 0 Apache log4cxx: Member List

LoggerRepository Member List

This is the complete list of members for LoggerRepository, including all inherited members.

addHierarchyEventListener(const HierarchyEventListenerPtr &listener)=0LoggerRepository [pure virtual]
addRef() const =0Object [pure virtual]
cast(const Class &clazz) const =0Object [pure virtual]
emitNoAppenderWarning(const LoggerPtr &logger)=0LoggerRepository [pure virtual]
exists(const LogString &name)=0LoggerRepository [pure virtual]
fireAddAppenderEvent(const LoggerPtr &logger, const AppenderPtr &appender)=0LoggerRepository [pure virtual]
getClass() const Object [virtual]
getCurrentLoggers() const =0LoggerRepository [pure virtual]
getLogger(const LogString &name)=0LoggerRepository [pure virtual]
getLogger(const LogString &name, const spi::LoggerFactoryPtr &factory)=0LoggerRepository [pure virtual]
getRootLogger() const =0LoggerRepository [pure virtual]
getStaticClass()Object [static]
getThreshold() const =0LoggerRepository [pure virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
isConfigured()=0LoggerRepository [pure virtual]
isDisabled(int level) const =0LoggerRepository [pure virtual]
registerClass()Object [static]
releaseRef() const =0Object [pure virtual]
resetConfiguration()=0LoggerRepository [pure virtual]
setConfigured(bool configured)=0LoggerRepository [pure virtual]
setThreshold(const LevelPtr &level)=0LoggerRepository [pure virtual]
setThreshold(const LogString &val)=0LoggerRepository [pure virtual]
shutdown()=0LoggerRepository [pure virtual]
~LoggerRepository()LoggerRepository [inline, virtual]
~Object()Object [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1spi_1_1_logging_event.html100644 0 0 117532 10774263472 24230 0ustar 0 0 Apache log4cxx: LoggingEvent Class Reference

LoggingEvent Class Reference

Inherits ObjectImpl.

List of all members.


Detailed Description

The internal representation of logging events.

When an affirmative decision is made to log then a LoggingEvent instance is created. This instance is passed around to the different log4cxx components.

This class is of concern to those wishing to extend log4cxx.


Public Member Functions

 LoggingEvent ()
 For serialization only.
 LoggingEvent (const LogString &logger, const LevelPtr &level, const LogString &message, const log4cxx::spi::LocationInfo &location)
 Instantiate a LoggingEvent from the supplied parameters.
 ~LoggingEvent ()
const LevelPtrgetLevel () const
 Return the level of this event.
const LogStringgetLoggerName () const
 Return the name of the logger.
const LogStringgetMessage () const
 Return the message for this logging event.
const LogStringgetRenderedMessage () const
 Return the message for this logging event.
const LogStringgetThreadName () const
 Return the threadName of this event.
log4cxx_time_t getTimeStamp () const
 Return the timeStamp of this event.
const log4cxx::spi::LocationInfogetLocationInformation () const
bool getNDC (LogString &dest) const
 This method appends the NDC for this event to passed string.
void write (helpers::ObjectOutputStream &os, helpers::Pool &p) const
 Writes the content of the LoggingEvent in a format compatible with log4j's serialized form.
bool getMDC (const LogString &key, LogString &dest) const
 Appends the the context corresponding to the key parameter.
 LOG4CXX_LIST_DEF (KeySet, LogString)
KeySet getMDCKeySet () const
 Returns the set of of the key values in the MDC for the event.
void getMDCCopy () const
 Obtain a copy of this thread's MDC prior to serialization or asynchronous logging.
bool getProperty (const LogString &key, LogString &dest) const
 Return a previously set property.
KeySet getPropertyKeySet () const
 Returns the set of of the key values in the properties for the event.
void setProperty (const LogString &key, const LogString &value)
 Set a string property using a key and a string value.

Static Public Member Functions

static log4cxx_time_t getStartTime ()
 Returns the time when the application started, in seconds elapsed since 01.01.1970.


Constructor & Destructor Documentation

LoggingEvent  ) 
 

For serialization only.

LoggingEvent const LogString logger,
const LevelPtr level,
const LogString message,
const log4cxx::spi::LocationInfo location
 

Instantiate a LoggingEvent from the supplied parameters.

Except timeStamp all the other fields of LoggingEvent are filled when actually needed.

Parameters:
logger The logger of this event.
level The level of this event.
message The message of this event.
location location of logging request.

~LoggingEvent  ) 
 


Member Function Documentation

const LevelPtr& getLevel  )  const [inline]
 

Return the level of this event.

const log4cxx::spi::LocationInfo& getLocationInformation  )  const [inline]
 

const LogString& getLoggerName  )  const [inline]
 

Return the name of the logger.

bool getMDC const LogString key,
LogString dest
const
 

Appends the the context corresponding to the key parameter.

If there is a local MDC copy, possibly because we are in a logging server or running inside AsyncAppender, then we search for the key in MDC copy, if a value is found it is returned. Otherwise, if the search in MDC copy returns an empty result, then the current thread's MDC is used.

Note that both the local MDC copy and the current thread's MDC are searched.

Parameters:
key key.
dest string to which value, if any, is appended.
Returns:
true if key had a corresponding value.

void getMDCCopy  )  const
 

Obtain a copy of this thread's MDC prior to serialization or asynchronous logging.

KeySet getMDCKeySet  )  const
 

Returns the set of of the key values in the MDC for the event.

The returned set is unmodifiable by the caller.

Returns:
Set an unmodifiable set of the MDC keys.

const LogString& getMessage  )  const [inline]
 

Return the message for this logging event.

bool getNDC LogString dest  )  const
 

This method appends the NDC for this event to passed string.

It will return the correct content even if the event was generated in a different thread or even on a different machine. The NDC::get method should never be called directly.

Parameters:
dest destination for NDC, unchanged if NDC is not set.
Returns:
true if NDC is set.

bool getProperty const LogString key,
LogString dest
const
 

Return a previously set property.

Parameters:
key key.
dest string to which value, if any, is appended.
Returns:
true if key had a corresponding value.

KeySet getPropertyKeySet  )  const
 

Returns the set of of the key values in the properties for the event.

The returned set is unmodifiable by the caller.

Returns:
Set an unmodifiable set of the property keys.

const LogString& getRenderedMessage  )  const [inline]
 

Return the message for this logging event.

static log4cxx_time_t getStartTime  )  [static]
 

Returns the time when the application started, in seconds elapsed since 01.01.1970.

const LogString& getThreadName  )  const [inline]
 

Return the threadName of this event.

log4cxx_time_t getTimeStamp  )  const [inline]
 

Return the timeStamp of this event.

LOG4CXX_LIST_DEF KeySet  ,
LogString 
 

void setProperty const LogString key,
const LogString value
 

Set a string property using a key and a string value.

since 1.3

void write helpers::ObjectOutputStream os,
helpers::Pool p
const
 

Writes the content of the LoggingEvent in a format compatible with log4j's serialized form.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1spi_1_1_logging_event-members.html100644 0 0 26301 10774263472 25631 0ustar 0 0 Apache log4cxx: Member List

LoggingEvent Member List

This is the complete list of members for LoggingEvent, including all inherited members.

addRef() const ObjectImpl [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
getClass() const Object [virtual]
getLevel() const LoggingEvent [inline]
getLocationInformation() const LoggingEvent [inline]
getLoggerName() const LoggingEvent [inline]
getMDC(const LogString &key, LogString &dest) const LoggingEvent
getMDCCopy() const LoggingEvent
getMDCKeySet() const LoggingEvent
getMessage() const LoggingEvent [inline]
getNDC(LogString &dest) const LoggingEvent
getProperty(const LogString &key, LogString &dest) const LoggingEvent
getPropertyKeySet() const LoggingEvent
getRenderedMessage() const LoggingEvent [inline]
getStartTime()LoggingEvent [static]
getStaticClass()Object [static]
getThreadName() const LoggingEvent [inline]
getTimeStamp() const LoggingEvent [inline]
instanceof(const Class &clazz) const =0Object [pure virtual]
LOG4CXX_LIST_DEF(KeySet, LogString)LoggingEvent
LoggingEvent()LoggingEvent
LoggingEvent(const LogString &logger, const LevelPtr &level, const LogString &message, const log4cxx::spi::LocationInfo &location)LoggingEvent
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const ObjectImpl [virtual]
setProperty(const LogString &key, const LogString &value)LoggingEvent
write(helpers::ObjectOutputStream &os, helpers::Pool &p) const LoggingEvent
~LoggingEvent()LoggingEvent
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1spi_1_1_option_handler.html100644 0 0 42416 10774263472 24364 0ustar 0 0 Apache log4cxx: OptionHandler Class Reference

OptionHandler Class Reference

Inherits Object.

Inherited by Appender [virtual], Layout [virtual], RollingPolicy [virtual], TriggeringPolicy [virtual], ErrorHandler [virtual], and Filter [virtual].

List of all members.


Detailed Description

A string based interface to configure package components.


Public Member Functions

virtual ~OptionHandler ()
virtual void activateOptions (log4cxx::helpers::Pool &p)=0
 Activate the options that were previously set with calls to option setters.
virtual void setOption (const LogString &option, const LogString &value)=0
 Set option to value.


Constructor & Destructor Documentation

virtual ~OptionHandler  )  [inline, virtual]
 


Member Function Documentation

virtual void activateOptions log4cxx::helpers::Pool p  )  [pure virtual]
 

Activate the options that were previously set with calls to option setters.

This allows to defer activiation of the options until all options have been set. This is required for components which have related options that remain ambigous until all are set.

For example, the FileAppender has the File and Append options both of which are ambigous until the other is also set.

Implemented in AppenderSkeleton, ConsoleAppender, DailyRollingFileAppender, ODBCAppender, FileAppender, ExpressionFilter, LocationInfoFilter, DateLayout, OnlyOnceErrorHandler, HTMLLayout, SMTPAppender, SocketAppenderSkeleton, SocketHubAppender, SyslogAppender, TelnetAppender, NTEventLogAppender, PatternLayout, FilterBasedTriggeringPolicy, FixedWindowRollingPolicy, ManualTriggeringPolicy, RollingFileAppenderSkeleton, RollingPolicyBase, SizeBasedTriggeringPolicy, TimeBasedRollingPolicy, RollingFileAppender, SimpleLayout, Filter, FallbackErrorHandler, WriterAppender, and XMLLayout.

virtual void setOption const LogString option,
const LogString value
[pure virtual]
 

Set option to value.

The handling of each option depends on the OptionHandler instance. Some options may become active immediately whereas other may be activated only when activateOptions is called.

Implemented in AppenderSkeleton, AsyncAppender, ConsoleAppender, DailyRollingFileAppender, ODBCAppender, FileAppender, LevelMatchFilter, LevelRangeFilter, StringMatchFilter, DateLayout, OnlyOnceErrorHandler, HTMLLayout, SMTPAppender, SocketAppenderSkeleton, SocketHubAppender, SyslogAppender, TelnetAppender, NTEventLogAppender, PatternLayout, FilterBasedTriggeringPolicy, FixedWindowRollingPolicy, ManualTriggeringPolicy, RollingPolicyBase, SizeBasedTriggeringPolicy, RollingFileAppender, SimpleLayout, Filter, FallbackErrorHandler, WriterAppender, and XMLLayout.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1spi_1_1_option_handler-members.html100644 0 0 13467 10774263472 26020 0ustar 0 0 Apache log4cxx: Member List

OptionHandler Member List

This is the complete list of members for OptionHandler, including all inherited members.

activateOptions(log4cxx::helpers::Pool &p)=0OptionHandler [pure virtual]
addRef() const =0Object [pure virtual]
cast(const Class &clazz) const =0Object [pure virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
registerClass()Object [static]
releaseRef() const =0Object [pure virtual]
setOption(const LogString &option, const LogString &value)=0OptionHandler [pure virtual]
~Object()Object [inline, virtual]
~OptionHandler()OptionHandler [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1spi_1_1_repository_selector.html100644 0 0 16175 10774263472 25501 0ustar 0 0 Apache log4cxx: RepositorySelector Class Reference

RepositorySelector Class Reference

Inherits Object.

Inherited by DefaultRepositorySelector [virtual].

List of all members.


Detailed Description

The LogManager uses one (and only one) RepositorySelector implementation to select the LoggerRepository for a particular application context.

It is the responsability of the RepositorySelector implementation to track the application context. log4cxx makes no assumptions about the application context or on its management.

See also LogManager.


Public Member Functions

virtual ~RepositorySelector ()
virtual LoggerRepositoryPtrgetLoggerRepository ()=0


Constructor & Destructor Documentation

virtual ~RepositorySelector  )  [inline, virtual]
 


Member Function Documentation

virtual LoggerRepositoryPtr& getLoggerRepository  )  [pure virtual]
 

Implemented in DefaultRepositorySelector.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1spi_1_1_repository_selector-members.html100644 0 0 13001 10774263472 27112 0ustar 0 0 Apache log4cxx: Member List

RepositorySelector Member List

This is the complete list of members for RepositorySelector, including all inherited members.

addRef() const =0Object [pure virtual]
cast(const Class &clazz) const =0Object [pure virtual]
getClass() const Object [virtual]
getLoggerRepository()=0RepositorySelector [pure virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
registerClass()Object [static]
releaseRef() const =0Object [pure virtual]
~Object()Object [inline, virtual]
~RepositorySelector()RepositorySelector [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1spi_1_1_root_logger.html100644 0 0 23163 10774263472 23677 0ustar 0 0 Apache log4cxx: RootLogger Class Reference

RootLogger Class Reference

Inherits Logger.

List of all members.


Detailed Description

RootLogger sits at the top of the logger hierachy.

It is a regular logger except that it provides several guarantees.

First, it cannot be assigned a null level. Second, since root logger cannot have a parent, the getEffectiveLevel method always returns the value of the level field without walking the hierarchy.


Public Member Functions

 RootLogger (log4cxx::helpers::Pool &pool, const LevelPtr &level)
 The root logger names itself as "root".
virtual const LevelPtrgetEffectiveLevel () const
 Return the assigned level value without walking the logger hierarchy.
void setLevel (const LevelPtr &level)
 Setting a null value to the level of the root logger may have catastrophic results.


Constructor & Destructor Documentation

RootLogger log4cxx::helpers::Pool pool,
const LevelPtr level
 

The root logger names itself as "root".

However, the root logger cannot be retrieved by name.


Member Function Documentation

virtual const LevelPtr& getEffectiveLevel  )  const [virtual]
 

Return the assigned level value without walking the logger hierarchy.

Reimplemented from Logger.

void setLevel const LevelPtr level  )  [virtual]
 

Setting a null value to the level of the root logger may have catastrophic results.

We prevent this here.

Reimplemented from Logger.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1spi_1_1_root_logger-members.html100644 0 0 132045 10774263472 25347 0ustar 0 0 Apache log4cxx: Member List

RootLogger Member List

This is the complete list of members for RootLogger, including all inherited members.

aaiLogger [protected]
addAppender(const AppenderPtr &newAppender)Logger [virtual]
additiveLogger [protected]
addRef() const Logger [virtual]
callAppenders(const log4cxx::spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p) const Logger
cast(const Class &clazz) const =0Object [pure virtual]
closeNestedAppenders()Logger
debug(const std::string &msg, const log4cxx::spi::LocationInfo &location) const Logger
debug(const std::string &msg) const Logger
debug(const std::wstring &msg, const log4cxx::spi::LocationInfo &location) const Logger
debug(const std::wstring &msg) const Logger
debug(const std::basic_string< UniChar > &msg, const log4cxx::spi::LocationInfo &location) const Logger
debug(const std::basic_string< UniChar > &msg) const Logger
debug(const CFStringRef &msg, const log4cxx::spi::LocationInfo &location) const Logger
debug(const CFStringRef &msg) const Logger
DefaultLoggerFactory classLogger [friend]
error(const std::string &msg, const log4cxx::spi::LocationInfo &location) const Logger
error(const std::string &msg) const Logger
error(const std::wstring &msg) const Logger
error(const std::wstring &msg, const log4cxx::spi::LocationInfo &location) const Logger
error(const std::basic_string< UniChar > &msg, const log4cxx::spi::LocationInfo &location) const Logger
error(const std::basic_string< UniChar > &msg) const Logger
error(const CFStringRef &msg, const log4cxx::spi::LocationInfo &location) const Logger
error(const CFStringRef &msg) const Logger
fatal(const std::string &msg, const log4cxx::spi::LocationInfo &location) const Logger
fatal(const std::string &msg) const Logger
fatal(const std::wstring &msg, const log4cxx::spi::LocationInfo &location) const Logger
fatal(const std::wstring &msg) const Logger
fatal(const std::basic_string< UniChar > &msg, const log4cxx::spi::LocationInfo &location) const Logger
fatal(const std::basic_string< UniChar > &msg) const Logger
fatal(const CFStringRef &msg, const log4cxx::spi::LocationInfo &location) const Logger
fatal(const CFStringRef &msg) const Logger
forcedLog(const LevelPtr &level, const std::string &message, const log4cxx::spi::LocationInfo &location) const Logger
forcedLog(const LevelPtr &level, const std::string &message) const Logger
forcedLog(const LevelPtr &level, const std::wstring &message, const log4cxx::spi::LocationInfo &location) const Logger
forcedLog(const LevelPtr &level, const std::wstring &message) const Logger
forcedLog(const LevelPtr &level, const std::basic_string< UniChar > &message, const log4cxx::spi::LocationInfo &location) const Logger
forcedLog(const LevelPtr &level, const std::basic_string< UniChar > &message) const Logger
forcedLog(const LevelPtr &level, const CFStringRef &message, const log4cxx::spi::LocationInfo &location) const Logger
forcedLog(const LevelPtr &level, const CFStringRef &message) const Logger
forcedLogLS(const LevelPtr &level, const LogString &message, const log4cxx::spi::LocationInfo &location) const Logger
getAdditivity() const Logger
getAllAppenders() const Logger [virtual]
getAppender(const LogString &name) const Logger [virtual]
getClass() const Object [virtual]
getEffectiveLevel() const RootLogger [virtual]
getLevel() const Logger
getLogger(const std::string &name)Logger [static]
getLogger(const char *const name)Logger [static]
getLogger(const std::wstring &name)Logger [static]
getLogger(const wchar_t *const name)Logger [static]
getLogger(const std::basic_string< UniChar > &name)Logger [static]
getLogger(const CFStringRef &name)Logger [static]
getLogger(const std::string &name, const log4cxx::spi::LoggerFactoryPtr &factory)Logger [static]
getLogger(const std::wstring &name, const log4cxx::spi::LoggerFactoryPtr &factory)Logger [static]
getLogger(const std::basic_string< UniChar > &name, const log4cxx::spi::LoggerFactoryPtr &factory)Logger [static]
getLogger(const CFStringRef &name, const log4cxx::spi::LoggerFactoryPtr &factory)Logger [static]
getLoggerLS(const LogString &name)Logger [static]
getLoggerLS(const LogString &name, const log4cxx::spi::LoggerFactoryPtr &factory)Logger [static]
getLoggerRepository() const Logger
getMutex() const Logger [inline]
getName() const Logger [inline]
getName(std::string &name) const Logger
getName(std::wstring &name) const Logger
getName(std::basic_string< UniChar > &name) const Logger
getName(CFStringRef &name) const Logger
getParent() const Logger
getResourceBundle() const Logger
getResourceBundleString(const LogString &key) const Logger [protected]
getRootLogger()Logger [static]
getStaticClass()Object [static]
Hierarchy classLogger [friend]
info(const std::string &msg, const log4cxx::spi::LocationInfo &location) const Logger
info(const std::string &msg) const Logger
info(const std::wstring &msg, const log4cxx::spi::LocationInfo &location) const Logger
info(const std::wstring &msg) const Logger
info(const std::basic_string< UniChar > &msg, const log4cxx::spi::LocationInfo &location) const Logger
info(const std::basic_string< UniChar > &msg) const Logger
info(const CFStringRef &msg, const log4cxx::spi::LocationInfo &location) const Logger
info(const CFStringRef &msg) const Logger
instanceof(const Class &clazz) const =0Object [pure virtual]
isAttached(const AppenderPtr &appender) const Logger [virtual]
isDebugEnabled() const Logger
isEnabledFor(const LevelPtr &level) const Logger
isErrorEnabled() const Logger
isFatalEnabled() const Logger
isInfoEnabled() const Logger
isTraceEnabled() const Logger
isWarnEnabled() const Logger
l7dlog(const LevelPtr &level, const LogString &key, const log4cxx::spi::LocationInfo &locationInfo, const std::vector< LogString > &values) const Logger
l7dlog(const LevelPtr &level, const std::string &key, const log4cxx::spi::LocationInfo &locationInfo) const Logger
l7dlog(const LevelPtr &level, const std::string &key, const log4cxx::spi::LocationInfo &locationInfo, const std::string &val1) const Logger
l7dlog(const LevelPtr &level, const std::string &key, const log4cxx::spi::LocationInfo &locationInfo, const std::string &val1, const std::string &val2) const Logger
l7dlog(const LevelPtr &level, const std::string &key, const log4cxx::spi::LocationInfo &locationInfo, const std::string &val1, const std::string &val2, const std::string &val3) const Logger
l7dlog(const LevelPtr &level, const std::wstring &key, const log4cxx::spi::LocationInfo &locationInfo) const Logger
l7dlog(const LevelPtr &level, const std::wstring &key, const log4cxx::spi::LocationInfo &locationInfo, const std::wstring &val1) const Logger
l7dlog(const LevelPtr &level, const std::wstring &key, const log4cxx::spi::LocationInfo &locationInfo, const std::wstring &val1, const std::wstring &val2) const Logger
l7dlog(const LevelPtr &level, const std::wstring &key, const log4cxx::spi::LocationInfo &locationInfo, const std::wstring &val1, const std::wstring &val2, const std::wstring &val3) const Logger
l7dlog(const LevelPtr &level, const std::basic_string< UniChar > &key, const log4cxx::spi::LocationInfo &locationInfo) const Logger
l7dlog(const LevelPtr &level, const std::basic_string< UniChar > &key, const log4cxx::spi::LocationInfo &locationInfo, const std::basic_string< UniChar > &val1) const Logger
l7dlog(const LevelPtr &level, const std::basic_string< UniChar > &key, const log4cxx::spi::LocationInfo &locationInfo, const std::basic_string< UniChar > &val1, const std::basic_string< UniChar > &val2) const Logger
l7dlog(const LevelPtr &level, const std::basic_string< UniChar > &key, const log4cxx::spi::LocationInfo &locationInfo, const std::basic_string< UniChar > &val1, const std::basic_string< UniChar > &val2, const std::basic_string< UniChar > &val3) const Logger
l7dlog(const LevelPtr &level, const CFStringRef &key, const log4cxx::spi::LocationInfo &locationInfo) const Logger
l7dlog(const LevelPtr &level, const CFStringRef &key, const log4cxx::spi::LocationInfo &locationInfo, const CFStringRef &val1) const Logger
l7dlog(const LevelPtr &level, const CFStringRef &key, const log4cxx::spi::LocationInfo &locationInfo, const CFStringRef &val1, const CFStringRef &val2) const Logger
l7dlog(const LevelPtr &level, const CFStringRef &key, const log4cxx::spi::LocationInfo &locationInfo, const CFStringRef &val1, const CFStringRef &val2, const CFStringRef &val3) const Logger
levelLogger [protected]
log(const LevelPtr &level, const std::string &message, const log4cxx::spi::LocationInfo &location) const Logger
log(const LevelPtr &level, const std::string &message) const Logger
log(const LevelPtr &level, const std::wstring &message, const log4cxx::spi::LocationInfo &location) const Logger
log(const LevelPtr &level, const std::wstring &message) const Logger
log(const LevelPtr &level, const std::basic_string< UniChar > &message, const log4cxx::spi::LocationInfo &location) const Logger
log(const LevelPtr &level, const std::basic_string< UniChar > &message) const Logger
log(const LevelPtr &level, const CFStringRef &message, const log4cxx::spi::LocationInfo &location) const Logger
log(const LevelPtr &level, const CFStringRef &message) const Logger
log4cxx::helpers::synchronized classLogger [friend]
Logger(log4cxx::helpers::Pool &pool, const LogString &name)Logger [protected]
logLS(const LevelPtr &level, const LogString &message, const log4cxx::spi::LocationInfo &location) const Logger
nameLogger [protected]
ObjectImpl()ObjectImpl
parentLogger [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const Logger [virtual]
removeAllAppenders()Logger [virtual]
removeAppender(const AppenderPtr &appender)Logger [virtual]
removeAppender(const LogString &name)Logger [virtual]
repositoryLogger [protected]
resourceBundleLogger [protected]
RootLogger(log4cxx::helpers::Pool &pool, const LevelPtr &level)RootLogger
setAdditivity(bool additive)Logger
setHierarchy(spi::LoggerRepository *repository)Logger [protected]
setLevel(const LevelPtr &level)RootLogger [virtual]
setResourceBundle(const helpers::ResourceBundlePtr &bundle)Logger [inline]
trace(const std::wstring &msg, const log4cxx::spi::LocationInfo &location) const Logger
trace(const std::wstring &msg) const Logger
trace(const std::basic_string< UniChar > &msg, const log4cxx::spi::LocationInfo &location) const Logger
trace(const std::basic_string< UniChar > &msg) const Logger
trace(const CFStringRef &msg, const log4cxx::spi::LocationInfo &location) const Logger
trace(const CFStringRef &msg) const Logger
trace(const std::string &msg, const log4cxx::spi::LocationInfo &location) const Logger
trace(const std::string &msg) const Logger
warn(const std::wstring &msg, const log4cxx::spi::LocationInfo &location) const Logger
warn(const std::wstring &msg) const Logger
warn(const std::basic_string< UniChar > &msg, const log4cxx::spi::LocationInfo &location) const Logger
warn(const std::basic_string< UniChar > &msg) const Logger
warn(const CFStringRef &msg, const log4cxx::spi::LocationInfo &location) const Logger
warn(const CFStringRef &msg) const Logger
warn(const std::string &msg, const log4cxx::spi::LocationInfo &location) const Logger
warn(const std::string &msg) const Logger
~AppenderAttachable()AppenderAttachable [inline, virtual]
~Logger()Logger
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1spi_1_1_triggering_event_evaluator.html100644 0 0 13276 10774263472 27005 0ustar 0 0 Apache log4cxx: TriggeringEventEvaluator Class Reference

TriggeringEventEvaluator Class Reference

Inherits Object.

List of all members.


Detailed Description

Implementions of this interface allow certain appenders to decide when to perform an appender specific action.

For example the SMTPAppender sends an email when the isTriggeringEvent method returns true and adds the event to an internal buffer when the returned result is false.


Public Member Functions

virtual bool isTriggeringEvent (const spi::LoggingEventPtr &event)=0
 Is this the triggering event?


Member Function Documentation

virtual bool isTriggeringEvent const spi::LoggingEventPtr event  )  [pure virtual]
 

Is this the triggering event?


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1spi_1_1_triggering_event_evaluator-members.html100644 0 0 12431 10774263472 30425 0ustar 0 0 Apache log4cxx: Member List

TriggeringEventEvaluator Member List

This is the complete list of members for TriggeringEventEvaluator, including all inherited members.

addRef() const =0Object [pure virtual]
cast(const Class &clazz) const =0Object [pure virtual]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
isTriggeringEvent(const spi::LoggingEventPtr &event)=0TriggeringEventEvaluator [pure virtual]
registerClass()Object [static]
releaseRef() const =0Object [pure virtual]
~Object()Object [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/namespacelog4cxx_1_1varia.html100644 0 0 6536 10774263472 21760 0ustar 0 0 Apache log4cxx: log4cxx::varia Namespace Reference

log4cxx::varia Namespace Reference


Classes

class  FallbackErrorHandler
 The FallbackErrorHandler implements the ErrorHandler interface such that a secondary appender may be specified. More...
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1varia_1_1_fallback_error_handler.html100644 0 0 62765 10774263472 26344 0ustar 0 0 Apache log4cxx: FallbackErrorHandler Class Reference

FallbackErrorHandler Class Reference

Inherits ErrorHandler, and ObjectImpl.

List of all members.


Detailed Description

The FallbackErrorHandler implements the ErrorHandler interface such that a secondary appender may be specified.

This secondary appender takes over if the primary appender fails for whatever reason.

The error message is printed on System.err, and logged in the new secondary appender.


Public Member Functions

 FallbackErrorHandler ()
void addRef () const
void releaseRef () const
void setLogger (const LoggerPtr &logger)
 Adds the logger passed as parameter to the list of loggers that we need to search for in case of appender failure.
void activateOptions (log4cxx::helpers::Pool &p)
 No options to activate.
void setOption (const LogString &option, const LogString &value)
 Set option to value.
void error (const LogString &message, const std::exception &e, int errorCode) const
 Prints the message and the stack trace of the exception on System.err.
void error (const LogString &message, const std::exception &e, int errorCode, const spi::LoggingEventPtr &event) const
 Prints the message and the stack trace of the exception on System.err.
void error (const LogString &) const
 Print a the error message passed as parameter on System.err.
const AppenderPtrgetBackupAppender () const
 Return the backup appender.
void setAppender (const AppenderPtr &primary)
 The appender to which this error handler is attached.
void setBackupAppender (const AppenderPtr &backup)
 Set the backup appender.


Constructor & Destructor Documentation

FallbackErrorHandler  ) 
 


Member Function Documentation

void activateOptions log4cxx::helpers::Pool p  )  [virtual]
 

No options to activate.

Implements OptionHandler.

void addRef  )  const [virtual]
 

Reimplemented from ObjectImpl.

void error const LogString  )  const [inline, virtual]
 

Print a the error message passed as parameter on System.err.

Implements ErrorHandler.

void error const LogString message,
const std::exception &  e,
int  errorCode,
const spi::LoggingEventPtr event
const [virtual]
 

Prints the message and the stack trace of the exception on System.err.

Implements ErrorHandler.

void error const LogString message,
const std::exception &  e,
int  errorCode
const [virtual]
 

Prints the message and the stack trace of the exception on System.err.

Implements ErrorHandler.

const AppenderPtr& getBackupAppender  )  const [inline]
 

Return the backup appender.

void releaseRef  )  const [virtual]
 

Reimplemented from ObjectImpl.

void setAppender const AppenderPtr primary  )  [virtual]
 

The appender to which this error handler is attached.

Implements ErrorHandler.

void setBackupAppender const AppenderPtr backup  )  [virtual]
 

Set the backup appender.

Implements ErrorHandler.

void setLogger const LoggerPtr logger  )  [virtual]
 

Adds the logger passed as parameter to the list of loggers that we need to search for in case of appender failure.

Implements ErrorHandler.

void setOption const LogString option,
const LogString value
[virtual]
 

Set option to value.

The handling of each option depends on the OptionHandler instance. Some options may become active immediately whereas other may be activated only when activateOptions is called.

Implements OptionHandler.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1varia_1_1_fallback_error_handler-members.html100644 0 0 23225 10774263472 27760 0ustar 0 0 Apache log4cxx: Member List

FallbackErrorHandler Member List

This is the complete list of members for FallbackErrorHandler, including all inherited members.

activateOptions(log4cxx::helpers::Pool &p)FallbackErrorHandler [virtual]
addRef() const FallbackErrorHandler [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
error(const LogString &message, const std::exception &e, int errorCode) const FallbackErrorHandler [virtual]
error(const LogString &message, const std::exception &e, int errorCode, const spi::LoggingEventPtr &event) const FallbackErrorHandler [virtual]
error(const LogString &) const FallbackErrorHandler [inline, virtual]
FallbackErrorHandler()FallbackErrorHandler
getBackupAppender() const FallbackErrorHandler [inline]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const FallbackErrorHandler [virtual]
setAppender(const AppenderPtr &primary)FallbackErrorHandler [virtual]
setBackupAppender(const AppenderPtr &backup)FallbackErrorHandler [virtual]
setLogger(const LoggerPtr &logger)FallbackErrorHandler [virtual]
setOption(const LogString &option, const LogString &value)FallbackErrorHandler [virtual]
~ErrorHandler()ErrorHandler [inline, virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/namespacelog4cxx_1_1xml.html100644 0 0 14257 10774263472 21475 0ustar 0 0 Apache log4cxx: log4cxx::xml Namespace Reference

log4cxx::xml Namespace Reference


Classes

class  DOMConfigurator
 Use this class to initialize the log4cxx environment using a DOM tree. More...
class  XMLLayout
 The output of the XMLLayout consists of a series of log4j:event elements. More...

Functions

 LOG4CXX_PTR_DEF (DOMConfigurator)
 LOG4CXX_PTR_DEF (XMLLayout)


Function Documentation

log4cxx::xml::LOG4CXX_PTR_DEF XMLLayout   ) 
 

log4cxx::xml::LOG4CXX_PTR_DEF DOMConfigurator   ) 
 

apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1xml_1_1_d_o_m_configurator.html100644 0 0 250026 10774263472 25241 0ustar 0 0 Apache log4cxx: DOMConfigurator Class Reference

DOMConfigurator Class Reference

Inherits Configurator, and ObjectImpl.

List of all members.


Detailed Description

Use this class to initialize the log4cxx environment using a DOM tree.

Sometimes it is useful to see how log4cxx is reading configuration files. You can enable log4cxx internal logging by setting the debug attribute in the log4cxx element. As in

                      <log4j:configuration debug="true" xmlns:log4j="http://jakarta.apache.org/log4j/">
                      ...
                      </log4j:configuration>
              

There are sample XML files included in the package.


Public Member Functions

 DOMConfigurator ()
 DOMConfigurator (log4cxx::helpers::Pool &p)
void addRef () const
void releaseRef () const
void doConfigure (const File &filename, spi::LoggerRepositoryPtr &repository)
 Interpret the XML file pointed by filename and set up log4cxx accordingly.

Static Public Member Functions

static void configure (const std::string &filename)
 A static version of doConfigure.
static void configure (const std::wstring &filename)
static void configure (const std::basic_string< UniChar > &filename)
static void configure (const CFStringRef &filename)
static void configureAndWatch (const std::string &configFilename)
 Like configureAndWatch(const std::string& configFilename, long delay) except that the default delay as defined by log4cxx::helpers::FileWatchdog::DEFAULT_DELAY is used.
static void configureAndWatch (const std::wstring &configFilename)
static void configureAndWatch (const std::basic_string< UniChar > &configFilename)
static void configureAndWatch (const CFStringRef &configFilename)
static void configureAndWatch (const std::string &configFilename, long delay)
 Read the configuration file configFilename if it exists.
static void configureAndWatch (const std::wstring &configFilename, long delay)
static void configureAndWatch (const std::basic_string< UniChar > &configFilename, long delay)
static void configureAndWatch (const CFStringRef &configFilename, long delay)

Protected Types

typedef std::map< LogString,
AppenderPtr
AppenderMap

Protected Member Functions

AppenderPtr findAppenderByName (log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *elem, apr_xml_doc *doc, const LogString &appenderName, AppenderMap &appenders)
 Used internally to parse appenders by IDREF name.
AppenderPtr findAppenderByReference (log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *appenderRef, apr_xml_doc *doc, AppenderMap &appenders)
 Used internally to parse appenders by IDREF element.
AppenderPtr parseAppender (log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *appenderElement, apr_xml_doc *doc, AppenderMap &appenders)
 Used internally to parse an appender element.
void parseErrorHandler (log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *element, AppenderPtr &appender, apr_xml_doc *doc, AppenderMap &appenders)
 Used internally to parse an ErrorHandler element.
void parseFilters (log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *element, std::vector< log4cxx::spi::FilterPtr > &filters)
 Used internally to parse a filter element.
void parseLogger (log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *loggerElement, apr_xml_doc *doc, AppenderMap &appenders)
 Used internally to parse a logger element.
void parseLoggerFactory (log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *factoryElement)
 Used internally to parse the logger factory element.
log4cxx::helpers::ObjectPtr parseTriggeringPolicy (log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *factoryElement)
 Used internally to parse the logger factory element.
log4cxx::rolling::RollingPolicyPtr parseRollingPolicy (log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *factoryElement)
 Used internally to parse the logger factory element.
void parseRoot (log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *rootElement, apr_xml_doc *doc, AppenderMap &appenders)
 Used internally to parse the root logger element.
void parseChildrenOfLoggerElement (log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *catElement, LoggerPtr logger, bool isRoot, apr_xml_doc *doc, AppenderMap &appenders)
 Used internally to parse the children of a logger element.
LayoutPtr parseLayout (log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *layout_element)
 Used internally to parse a layout element.
void parseLevel (log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *element, LoggerPtr logger, bool isRoot)
 Used internally to parse a level element.
void setParameter (log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *elem, log4cxx::config::PropertySetter &propSetter)
void parse (log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *element, apr_xml_doc *doc, AppenderMap &appenders)
 Used internally to configure the log4cxx framework from an in-memory representation of an XML document.
LogString subst (const LogString &value)

Static Protected Member Functions

static LogString getAttribute (log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *, const std::string &attrName)

Protected Attributes

helpers::Properties props
spi::LoggerRepositoryPtr repository
spi::LoggerFactoryPtr loggerFactory


Member Typedef Documentation

typedef std::map<LogString, AppenderPtr> AppenderMap [protected]
 


Constructor & Destructor Documentation

DOMConfigurator  ) 
 

DOMConfigurator log4cxx::helpers::Pool p  ) 
 


Member Function Documentation

void addRef  )  const [virtual]
 

Reimplemented from ObjectImpl.

static void configure const CFStringRef filename  )  [static]
 

static void configure const std::basic_string< UniChar > &  filename  )  [static]
 

static void configure const std::wstring &  filename  )  [static]
 

static void configure const std::string &  filename  )  [static]
 

A static version of doConfigure.

static void configureAndWatch const CFStringRef configFilename,
long  delay
[static]
 

static void configureAndWatch const std::basic_string< UniChar > &  configFilename,
long  delay
[static]
 

static void configureAndWatch const std::wstring &  configFilename,
long  delay
[static]
 

static void configureAndWatch const std::string &  configFilename,
long  delay
[static]
 

Read the configuration file configFilename if it exists.

Moreover, a thread will be created that will periodically check if configFilename has been created or modified. The period is determined by the delay argument. If a change or file creation is detected, then configFilename is read to configure log4cxx.

Parameters:
configFilename A log4j configuration file in XML format.
delay The delay in milliseconds to wait between each check.

static void configureAndWatch const CFStringRef configFilename  )  [static]
 

static void configureAndWatch const std::basic_string< UniChar > &  configFilename  )  [static]
 

static void configureAndWatch const std::wstring &  configFilename  )  [static]
 

static void configureAndWatch const std::string &  configFilename  )  [static]
 

Like configureAndWatch(const std::string& configFilename, long delay) except that the default delay as defined by log4cxx::helpers::FileWatchdog::DEFAULT_DELAY is used.

Parameters:
configFilename A log4j configuration file in XML format.

void doConfigure const File filename,
spi::LoggerRepositoryPtr repository
[virtual]
 

Interpret the XML file pointed by filename and set up log4cxx accordingly.

The configuration is done relative to the hierarchy parameter.

Parameters:
filename The file to parse.
repository The hierarchy to operation upon.

Implements Configurator.

AppenderPtr findAppenderByName log4cxx::helpers::Pool p,
log4cxx::helpers::CharsetDecoderPtr &  utf8Decoder,
apr_xml_elem *  elem,
apr_xml_doc *  doc,
const LogString appenderName,
AppenderMap appenders
[protected]
 

Used internally to parse appenders by IDREF name.

AppenderPtr findAppenderByReference log4cxx::helpers::Pool p,
log4cxx::helpers::CharsetDecoderPtr &  utf8Decoder,
apr_xml_elem *  appenderRef,
apr_xml_doc *  doc,
AppenderMap appenders
[protected]
 

Used internally to parse appenders by IDREF element.

static LogString getAttribute log4cxx::helpers::CharsetDecoderPtr &  utf8Decoder,
apr_xml_elem *  ,
const std::string &  attrName
[static, protected]
 

void parse log4cxx::helpers::Pool p,
log4cxx::helpers::CharsetDecoderPtr &  utf8Decoder,
apr_xml_elem *  element,
apr_xml_doc *  doc,
AppenderMap appenders
[protected]
 

Used internally to configure the log4cxx framework from an in-memory representation of an XML document.

AppenderPtr parseAppender log4cxx::helpers::Pool p,
log4cxx::helpers::CharsetDecoderPtr &  utf8Decoder,
apr_xml_elem *  appenderElement,
apr_xml_doc *  doc,
AppenderMap appenders
[protected]
 

Used internally to parse an appender element.

void parseChildrenOfLoggerElement log4cxx::helpers::Pool p,
log4cxx::helpers::CharsetDecoderPtr &  utf8Decoder,
apr_xml_elem *  catElement,
LoggerPtr  logger,
bool  isRoot,
apr_xml_doc *  doc,
AppenderMap appenders
[protected]
 

Used internally to parse the children of a logger element.

void parseErrorHandler log4cxx::helpers::Pool p,
log4cxx::helpers::CharsetDecoderPtr &  utf8Decoder,
apr_xml_elem *  element,
AppenderPtr appender,
apr_xml_doc *  doc,
AppenderMap appenders
[protected]
 

Used internally to parse an ErrorHandler element.

void parseFilters log4cxx::helpers::Pool p,
log4cxx::helpers::CharsetDecoderPtr &  utf8Decoder,
apr_xml_elem *  element,
std::vector< log4cxx::spi::FilterPtr > &  filters
[protected]
 

Used internally to parse a filter element.

LayoutPtr parseLayout log4cxx::helpers::Pool p,
log4cxx::helpers::CharsetDecoderPtr &  utf8Decoder,
apr_xml_elem *  layout_element
[protected]
 

Used internally to parse a layout element.

void parseLevel log4cxx::helpers::Pool p,
log4cxx::helpers::CharsetDecoderPtr &  utf8Decoder,
apr_xml_elem *  element,
LoggerPtr  logger,
bool  isRoot
[protected]
 

Used internally to parse a level element.

void parseLogger log4cxx::helpers::Pool p,
log4cxx::helpers::CharsetDecoderPtr &  utf8Decoder,
apr_xml_elem *  loggerElement,
apr_xml_doc *  doc,
AppenderMap appenders
[protected]
 

Used internally to parse a logger element.

void parseLoggerFactory log4cxx::helpers::Pool p,
log4cxx::helpers::CharsetDecoderPtr &  utf8Decoder,
apr_xml_elem *  factoryElement
[protected]
 

Used internally to parse the logger factory element.

log4cxx::rolling::RollingPolicyPtr parseRollingPolicy log4cxx::helpers::Pool p,
log4cxx::helpers::CharsetDecoderPtr &  utf8Decoder,
apr_xml_elem *  factoryElement
[protected]
 

Used internally to parse the logger factory element.

void parseRoot log4cxx::helpers::Pool p,
log4cxx::helpers::CharsetDecoderPtr &  utf8Decoder,
apr_xml_elem *  rootElement,
apr_xml_doc *  doc,
AppenderMap appenders
[protected]
 

Used internally to parse the root logger element.

log4cxx::helpers::ObjectPtr parseTriggeringPolicy log4cxx::helpers::Pool p,
log4cxx::helpers::CharsetDecoderPtr &  utf8Decoder,
apr_xml_elem *  factoryElement
[protected]
 

Used internally to parse the logger factory element.

void releaseRef  )  const [virtual]
 

Reimplemented from ObjectImpl.

void setParameter log4cxx::helpers::Pool p,
log4cxx::helpers::CharsetDecoderPtr &  utf8Decoder,
apr_xml_elem *  elem,
log4cxx::config::PropertySetter propSetter
[protected]
 

LogString subst const LogString value  )  [protected]
 


Member Data Documentation

spi::LoggerFactoryPtr loggerFactory [protected]
 

helpers::Properties props [protected]
 

spi::LoggerRepositoryPtr repository [protected]
 


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1xml_1_1_d_o_m_configurator-members.html100644 0 0 45770 10774263472 26661 0ustar 0 0 Apache log4cxx: Member List

DOMConfigurator Member List

This is the complete list of members for DOMConfigurator, including all inherited members.

addRef() const DOMConfigurator [virtual]
AppenderMap typedefDOMConfigurator [protected]
cast(const Class &clazz) const =0Object [pure virtual]
Configurator()Configurator
configure(const std::string &filename)DOMConfigurator [static]
configure(const std::wstring &filename)DOMConfigurator [static]
configure(const std::basic_string< UniChar > &filename)DOMConfigurator [static]
configure(const CFStringRef &filename)DOMConfigurator [static]
configureAndWatch(const std::string &configFilename)DOMConfigurator [static]
configureAndWatch(const std::wstring &configFilename)DOMConfigurator [static]
configureAndWatch(const std::basic_string< UniChar > &configFilename)DOMConfigurator [static]
configureAndWatch(const CFStringRef &configFilename)DOMConfigurator [static]
configureAndWatch(const std::string &configFilename, long delay)DOMConfigurator [static]
configureAndWatch(const std::wstring &configFilename, long delay)DOMConfigurator [static]
configureAndWatch(const std::basic_string< UniChar > &configFilename, long delay)DOMConfigurator [static]
configureAndWatch(const CFStringRef &configFilename, long delay)DOMConfigurator [static]
doConfigure(const File &filename, spi::LoggerRepositoryPtr &repository)DOMConfigurator [virtual]
DOMConfigurator()DOMConfigurator
DOMConfigurator(log4cxx::helpers::Pool &p)DOMConfigurator
findAppenderByName(log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *elem, apr_xml_doc *doc, const LogString &appenderName, AppenderMap &appenders)DOMConfigurator [protected]
findAppenderByReference(log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *appenderRef, apr_xml_doc *doc, AppenderMap &appenders)DOMConfigurator [protected]
getAttribute(log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *, const std::string &attrName)DOMConfigurator [protected, static]
getClass() const Object [virtual]
getStaticClass()Object [static]
instanceof(const Class &clazz) const =0Object [pure virtual]
loggerFactoryDOMConfigurator [protected]
ObjectImpl()ObjectImpl
parse(log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *element, apr_xml_doc *doc, AppenderMap &appenders)DOMConfigurator [protected]
parseAppender(log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *appenderElement, apr_xml_doc *doc, AppenderMap &appenders)DOMConfigurator [protected]
parseChildrenOfLoggerElement(log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *catElement, LoggerPtr logger, bool isRoot, apr_xml_doc *doc, AppenderMap &appenders)DOMConfigurator [protected]
parseErrorHandler(log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *element, AppenderPtr &appender, apr_xml_doc *doc, AppenderMap &appenders)DOMConfigurator [protected]
parseFilters(log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *element, std::vector< log4cxx::spi::FilterPtr > &filters)DOMConfigurator [protected]
parseLayout(log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *layout_element)DOMConfigurator [protected]
parseLevel(log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *element, LoggerPtr logger, bool isRoot)DOMConfigurator [protected]
parseLogger(log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *loggerElement, apr_xml_doc *doc, AppenderMap &appenders)DOMConfigurator [protected]
parseLoggerFactory(log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *factoryElement)DOMConfigurator [protected]
parseRollingPolicy(log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *factoryElement)DOMConfigurator [protected]
parseRoot(log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *rootElement, apr_xml_doc *doc, AppenderMap &appenders)DOMConfigurator [protected]
parseTriggeringPolicy(log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *factoryElement)DOMConfigurator [protected]
propsDOMConfigurator [protected]
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const DOMConfigurator [virtual]
repositoryDOMConfigurator [protected]
setParameter(log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *elem, log4cxx::config::PropertySetter &propSetter)DOMConfigurator [protected]
subst(const LogString &value)DOMConfigurator [protected]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1xml_1_1_x_m_l_layout.html100644 0 0 47747 10774263472 24073 0ustar 0 0 Apache log4cxx: XMLLayout Class Reference

XMLLayout Class Reference

Inherits Layout.

List of all members.


Detailed Description

The output of the XMLLayout consists of a series of log4j:event elements.

It does not output a complete well-formed XML file. The output is designed to be included as an external entity in a separate file to form a correct XML file.

For example, if abc is the name of the file where the XMLLayout ouput goes, then a well-formed XML file would be:

<?xml version="1.0" ?>

<!DOCTYPE log4j:eventSet [<!ENTITY data SYSTEM "abc">]>

<log4j:eventSet version="1.2" xmlns:log4j="http://jakarta.apache.org/log4j/">

&data;

</log4j:eventSet>

This approach enforces the independence of the XMLLayout and the appender where it is embedded.


Public Member Functions

 XMLLayout ()
void setLocationInfo (bool locationInfo1)
 The LocationInfo option takes a boolean value.
bool getLocationInfo () const
 Returns the current value of the LocationInfo option.
void setProperties (bool flag)
 Sets whether MDC key-value pairs should be output, default false.
bool getProperties ()
 Gets whether MDC key-value pairs should be output.
void activateOptions (log4cxx::helpers::Pool &)
 No options to activate.
virtual void setOption (const LogString &option, const LogString &value)
 Set options.
virtual void format (LogString &output, const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p) const
 Formats a LoggingEvent in conformance with the log4cxx.dtd.
virtual bool ignoresThrowable () const
 The XMLLayout prints and does not ignore exceptions.


Constructor & Destructor Documentation

XMLLayout  ) 
 


Member Function Documentation

void activateOptions log4cxx::helpers::Pool  )  [inline, virtual]
 

No options to activate.

Implements OptionHandler.

virtual void format LogString output,
const spi::LoggingEventPtr event,
log4cxx::helpers::Pool p
const [virtual]
 

Formats a LoggingEvent in conformance with the log4cxx.dtd.

Implements Layout.

bool getLocationInfo  )  const [inline]
 

Returns the current value of the LocationInfo option.

bool getProperties  )  [inline]
 

Gets whether MDC key-value pairs should be output.

Returns:
true if MDC key-value pairs are output.

virtual bool ignoresThrowable  )  const [inline, virtual]
 

The XMLLayout prints and does not ignore exceptions.

Hence the return value false.

Implements Layout.

void setLocationInfo bool  locationInfo1  )  [inline]
 

The LocationInfo option takes a boolean value.

By default, it is set to false which means there will be no location information output by this layout. If the the option is set to true, then the file name and line number of the statement at the origin of the log statement will be output.

If you are embedding this layout within a SMTPAppender then make sure to set the LocationInfo option of that appender as well.

virtual void setOption const LogString option,
const LogString value
[virtual]
 

Set options.

Implements OptionHandler.

void setProperties bool  flag  )  [inline]
 

Sets whether MDC key-value pairs should be output, default false.

Parameters:
flag new value.


The documentation for this class was generated from the following file: apache-log4cxx-0.10.0/site/apidocs/classlog4cxx_1_1xml_1_1_x_m_l_layout-members.html100644 0 0 22762 10774263472 25511 0ustar 0 0 Apache log4cxx: Member List

XMLLayout Member List

This is the complete list of members for XMLLayout, including all inherited members.

activateOptions(log4cxx::helpers::Pool &)XMLLayout [inline, virtual]
addRef() const Layout [virtual]
appendFooter(LogString &output, log4cxx::helpers::Pool &p)Layout [virtual]
appendHeader(LogString &output, log4cxx::helpers::Pool &p)Layout [virtual]
cast(const Class &clazz) const =0Object [pure virtual]
format(LogString &output, const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p) const XMLLayout [virtual]
getClass() const Object [virtual]
getContentType() const Layout [virtual]
getLocationInfo() const XMLLayout [inline]
getProperties()XMLLayout [inline]
getStaticClass()Object [static]
ignoresThrowable() const XMLLayout [inline, virtual]
instanceof(const Class &clazz) const =0Object [pure virtual]
ObjectImpl()ObjectImpl
refObjectImpl [mutable, protected]
registerClass()Object [static]
releaseRef() const Layout [virtual]
setLocationInfo(bool locationInfo1)XMLLayout [inline]
setOption(const LogString &option, const LogString &value)XMLLayout [virtual]
setProperties(bool flag)XMLLayout [inline]
XMLLayout()XMLLayout
~Layout()Layout [virtual]
~Object()Object [inline, virtual]
~ObjectImpl()ObjectImpl [virtual]
~OptionHandler()OptionHandler [inline, virtual]
apache-log4cxx-0.10.0/site/apidocs/namespacestd.html100644 0 0 5064 10774263472 17472 0ustar 0 0 Apache log4cxx: std Namespace Reference

std Namespace Reference

apache-log4cxx-0.10.0/site/apidocs/globals_func.html100644 0 0 30127 10774263472 17477 0ustar 0 0 Apache log4cxx: Class Members

 

apache-log4cxx-0.10.0/site/apidocs/globals_type.html100644 0 0 16557 10774263472 17540 0ustar 0 0 Apache log4cxx: Class Members  

apache-log4cxx-0.10.0/site/apidocs/index.html100644 0 0 2100 10774263472 16116 0ustar 0 0 Apache log4cxx apache-log4cxx-0.10.0/site/apidocs/globals_defs.html100644 0 0 25442 10774263472 17471 0ustar 0 0 Apache log4cxx: Class Members

 

- _ -

- b -

- d -

- e -

- i -

  • IMPLEMENT_LOG4CXX_LEVEL : level.h
  • IMPLEMENT_LOG4CXX_OBJECT : object.h
  • IMPLEMENT_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS : object.h

- l -

apache-log4cxx-0.10.0/site/apidocs/namespacemembers.html100644 0 0 22564 10774263472 20356 0ustar 0 0 Apache log4cxx: Class Members

Here is a list of all namespace members with links to the namespace documentation for each member:

- a -

- e -

- f -

- i -

- l -

- o -

- p -

- r -

- u -

- x -

apache-log4cxx-0.10.0/site/apidocs/namespacemembers_func.html100644 0 0 11625 10774263472 21365 0ustar 0 0 Apache log4cxx: Class Members  

apache-log4cxx-0.10.0/site/apidocs/namespacemembers_type.html100644 0 0 13733 10774263472 21415 0ustar 0 0 Apache log4cxx: Class Members  

apache-log4cxx-0.10.0/site/apidocs/tree.html100644 0 0 636607 10774263472 16037 0ustar 0 0 TreeView

Apache log4cxx

o+File List

|o*absolutetimedateformat.h

|o*action.h

|o*andfilter.h

|o*appender.h

|o*appenderattachable.h

|o*appenderattachableimpl.h

|o*appenderskeleton.h

|o*aprinitializer.h

|o*asyncappender.h

|o*basicconfigurator.h

|o*bufferedoutputstream.h

|o*bufferedwriter.h

|o*bytearrayinputstream.h

|o*bytearrayoutputstream.h

|o*bytebuffer.h

|o*cacheddateformat.h

|o*charsetdecoder.h

|o*charsetencoder.h

|o*class.h

|o*classnamepatternconverter.h

|o*classregistration.h

|o*condition.h

|o*configurator.h

|o*consoleappender.h

|o*cyclicbuffer.h

|o*dailyrollingfileappender.h

|o*datagrampacket.h

|o*datagramsocket.h

|o*date.h

|o*dateformat.h

|o*datelayout.h

|o*datepatternconverter.h

|o*datetimedateformat.h

|o*defaultconfigurator.h

|o*defaultloggerfactory.h

|o*defaultrepositoryselector.h

|o*denyallfilter.h

|o*domconfigurator.h

|o*errorhandler.h

|o*exception.h

|o*expressionfilter.h

|o*fallbackerrorhandler.h

|o*file.h

|o*fileappender.h

|o*filedatepatternconverter.h

|o*fileinputstream.h

|o*filelocationpatternconverter.h

|o*fileoutputstream.h

|o*filerenameaction.h

|o*filewatchdog.h

|o*filter.h

|o*filterbasedtriggeringpolicy.h

|o*fixedwindowrollingpolicy.h

|o*formattinginfo.h

|o*fulllocationpatternconverter.h

|o*gzcompressaction.h

|o*hierarchy.h

|o*hierarchyeventlistener.h

|o*htmllayout.h

|o*inetaddress.h

|o*inputstream.h

|o*inputstreamreader.h

|o*integer.h

|o*integerpatternconverter.h

|o*iso8601dateformat.h

|o*layout.h

|o*level.h

|o*levelmatchfilter.h

|o*levelpatternconverter.h

|o*levelrangefilter.h

|o*linelocationpatternconverter.h

|o*lineseparatorpatternconverter.h

|o*literalpatternconverter.h

|o*loader.h

|o*locale.h

|o*locationinfo.h

|o*locationinfofilter.h

|o*logger.h

|o*loggerfactory.h

|o*loggerpatternconverter.h

|o*loggerrepository.h

|o*loggingevent.h

|o*loggingeventpatternconverter.h

|o*loglog.h

|o*logmanager.h

|o*logstring.h

|o*manualtriggeringpolicy.h

|o*mapfilter.h

|o*mdc.h

|o*messagebuffer.h

|o*messagepatternconverter.h

|o*methodlocationpatternconverter.h

|o*mutex.h

|o*nameabbreviator.h

|o*namepatternconverter.h

|o*ndc.h

|o*ndcpatternconverter.h

|o*nteventlogappender.h

|o*object.h

|o*objectimpl.h

|o*objectoutputstream.h

|o*objectptr.h

|o*odbcappender.h

|o*onlyonceerrorhandler.h

|o*optionconverter.h

|o*optionhandler.h

|o*outputdebugstringappender.h

|o*outputstream.h

|o*outputstreamwriter.h

|o*patternconverter.h

|o*patternlayout.h

|o*patternparser.h

|o*pool.h

|o*portability.h

|o*properties.h

|o*propertiespatternconverter.h

|o*propertyconfigurator.h

|o*propertyfilter.h

|o*propertyresourcebundle.h

|o*propertysetter.h

|o*provisionnode.h

|o*reader.h

|o*relativetimedateformat.h

|o*relativetimepatternconverter.h

|o*repositoryselector.h

|o*resourcebundle.h

|o*rolling/rollingfileappender.h

|o*rollingfileappender.h

|o*rollingfileappenderskeleton.h

|o*rollingpolicy.h

|o*rollingpolicybase.h

|o*rolloverdescription.h

|o*rootlogger.h

|o*serversocket.h

|o*simpledateformat.h

|o*simplelayout.h

|o*sizebasedtriggeringpolicy.h

|o*smtpappender.h

|o*socket.h

|o*socketappender.h

|o*socketappenderskeleton.h

|o*sockethubappender.h

|o*socketoutputstream.h

|o*stream.h

|o*strftimedateformat.h

|o*strictmath.h

|o*stringhelper.h

|o*stringmatchfilter.h

|o*stringtokenizer.h

|o*synchronized.h

|o*syslogappender.h

|o*syslogwriter.h

|o*system.h

|o*systemerrwriter.h

|o*systemoutwriter.h

|o*tchar.h

|o*telnetappender.h

|o*thread.h

|o*threadlocal.h

|o*threadpatternconverter.h

|o*threadspecificdata.h

|o*throwableinformationpatternconverter.h

|o*timebasedrollingpolicy.h

|o*timezone.h

|o*transcoder.h

|o*transform.h

|o*triggeringeventevaluator.h

|o*triggeringpolicy.h

|o*ttcclayout.h

|o*writer.h

|o*writerappender.h

|o*xml.h

|o*xmllayout.h

|o*xmlsocketappender.h

|\*zipcompressaction.h

o+Class List

|o*AbsoluteTimeDateFormat

|o*Action

|o*AndFilter

|o*Appender

|o*AppenderAttachable

|o*AppenderAttachableImpl

|o*AppenderSkeleton

|o*APRInitializer

|o*AsyncAppender

|o*BasicConfigurator

|o*BindException

|o*BufferedOutputStream

|o*BufferedWriter

|o*ByteArrayInputStream

|o*ByteArrayOutputStream

|o*ByteBuffer

|o*CachedDateFormat

|o*CharMessageBuffer

|o*CharsetDecoder

|o*CharsetEncoder

|o*Class

|o*ClassNamePatternConverter

|o*ClassNotFoundException

|o*ClassRegistration

|o*ClosedChannelException

|o*Condition

|o*Configurator

|o*ConnectException

|o*ConsoleAppender

|o*CyclicBuffer

|o*DailyRollingFileAppender

|o*DatagramPacket

|o*DatagramSocket

|o*Date

|o*DateFormat

|o*DateLayout

|o*DatePatternConverter

|o*DateTimeDateFormat

|o*DefaultConfigurator

|o*DefaultLoggerFactory

|o*DefaultRepositorySelector

|o*DenyAllFilter

|o*DOMConfigurator

|o*DOMException

|o*ErrorCode

|o*ErrorHandler

|o*Exception

|o*ExpressionFilter

|o*FallbackErrorHandler

|o*File

|o*FileAppender

|o*FileDatePatternConverter

|o*FileInputStream

|o*FileLocationPatternConverter

|o*FileOutputStream

|o*FileRenameAction

|o*FileWatchdog

|o*Filter

|o*FilterBasedTriggeringPolicy

|o*FixedWindowRollingPolicy

|o*FormattingInfo

|o*FullLocationPatternConverter

|o*GZCompressAction

|o*Hierarchy

|o*HierarchyEventListener

|o*HTMLLayout

|o*IllegalArgumentException

|o*IllegalMonitorStateException

|o*IllegalStateException

|o*InetAddress

|o*InputStream

|o*InputStreamReader

|o*InstantiationException

|o*Integer

|o*IntegerPatternConverter

|o*InterruptedException

|o*InterruptedIOException

|o*IOException

|o*ISO8601DateFormat

|o*Layout

|o*Level

|o*Level::LevelClass

|o*LevelMatchFilter

|o*LevelPatternConverter

|o*LevelRangeFilter

|o*LineLocationPatternConverter

|o*LineSeparatorPatternConverter

|o*LiteralPatternConverter

|o*Loader

|o*Locale

|o*LocationInfo

|o*LocationInfoFilter

|o*Logger

|o*LoggerFactory

|o*LoggerPatternConverter

|o*LoggerRepository

|o*LoggingEvent

|o*LoggingEventPatternConverter

|o*LogLog

|o*LogManager

|o*logstream

|o*logstream_base

|o*ManualTriggeringPolicy

|o*MapFilter

|o*MDC

|o*MessageBuffer

|o*MessagePatternConverter

|o*MethodLocationPatternConverter

|o*MissingResourceException

|o*Mutex

|o*MutexException

|o*NameAbbreviator

|o*NamePatternConverter

|o*NDC

|o*NDCPatternConverter

|o*NoSuchElementException

|o*NTEventLogAppender

|o*NullPointerException

|o*Object

|o*Object::ClazzObject

|o*ObjectImpl

|o*ObjectOutputStream

|o*ObjectPtrBase

|o*ObjectPtrT

|o*ODBCAppender

|o*OnlyOnceErrorHandler

|o*OptionConverter

|o*OptionHandler

|o*OutputDebugStringAppender

|o*OutputStream

|o*OutputStreamWriter

|o*PatternConverter

|o*PatternLayout

|o*PatternParser

|o*Pool

|o*PoolException

|o*Properties

|o*PropertiesPatternConverter

|o*PropertyConfigurator

|o*PropertyFilter

|o*PropertyResourceBundle

|o*PropertySetter

|o*Reader

|o*RelativeTimeDateFormat

|o*RelativeTimePatternConverter

|o*RepositorySelector

|o*ResourceBundle

|o*RollingFileAppender

|o*RollingFileAppender

|o*RollingFileAppenderSkeleton

|o*RollingPolicy

|o*RollingPolicyBase

|o*RolloverDescription

|o*RootLogger

|o*RuntimeException

|o*ServerSocket

|o*SimpleDateFormat

|o*SimpleLayout

|o*SizeBasedTriggeringPolicy

|o*SMTPAppender

|o*Socket

|o*SocketAppender

|o*SocketAppenderSkeleton

|o*SocketException

|o*SocketHubAppender

|o*SocketOutputStream

|o*SocketTimeoutException

|o*SQLException

|o*StrftimeDateFormat

|o*StrictMath

|o*StringHelper

|o*StringMatchFilter

|o*StringTokenizer

|o*synchronized

|o*SyslogAppender

|o*SyslogWriter

|o*System

|o*SystemErrWriter

|o*SystemOutWriter

|o*TelnetAppender

|o*Thread

|o*ThreadException

|o*ThreadLocal

|o*ThreadPatternConverter

|o*ThreadSpecificData

|o*ThrowableInformationPatternConverter

|o*TimeBasedRollingPolicy

|o*TimeZone

|o*Transcoder

|o*TranscoderException

|o*Transform

|o*TriggeringEventEvaluator

|o*TriggeringPolicy

|o*TTCCLayout

|o*ulogstream

|o*UniCharMessageBuffer

|o*UnknownHostException

|o*WideMessageBuffer

|o*wlogstream

|o*Writer

|o*WriterAppender

|o*XMLDOMDocument

|o*XMLDOMElement

|o*XMLDOMNode

|o*XMLDOMNodeList

|o*XMLLayout

|o*XMLSocketAppender

|\*ZipCompressAction

o+Class Hierarchy

|o*APRInitializer

|o*BasicConfigurator

|o*ByteBuffer

|o*CharMessageBuffer

|o+Class

|o*ClassRegistration

|o*Condition

|o*CyclicBuffer

|o*DefaultConfigurator

|o*ErrorCode

|o+Exception

|o*File

|o*FileDatePatternConverter

|o*FileWatchdog

|o*Loader

|o*Locale

|o*LocationInfo

|o*LogLog

|o*LogManager

|o+logstream_base

|o*MDC

|o*MessageBuffer

|o*Mutex

|o*NDC

|o+Object

||o+ObjectImpl

|||o+AppenderSkeleton

|||o*DefaultLoggerFactory

|||o*AppenderAttachableImpl

|||o*CharsetDecoder

|||o*CharsetEncoder

|||o*DatagramPacket

|||o*DatagramSocket

|||o*Date

|||o+DateFormat

|||o*InetAddress

|||o+InputStream

|||o*Integer

|||o*ObjectOutputStream

|||o*OnlyOnceErrorHandler

|||o+OutputStream

|||o+Reader

|||o+ResourceBundle

|||o*Socket

|||o*TimeZone

|||o+Writer

|||o*Hierarchy

|||o+Layout

|||o*Level

|||o+Logger

|||o*FormattingInfo

|||o*NameAbbreviator

|||o+PatternConverter

|||o*PropertyConfigurator

|||o+Action

|||o+RollingPolicyBase

|||o*RolloverDescription

|||o+TriggeringPolicy

|||o*DefaultRepositorySelector

|||o+Filter

|||o*LoggingEvent

|||o*FallbackErrorHandler

|||\*DOMConfigurator

||o+XMLDOMNode

||o*XMLDOMNodeList

||o+AppenderAttachable

||o+Configurator

||o*HierarchyEventListener

||o+LoggerFactory

||o+LoggerRepository

||o+OptionHandler

||o+RepositorySelector

||\*TriggeringEventEvaluator

|o+ObjectPtrBase

|o*OptionConverter

|o*PatternParser

|o*Pool

|o*Properties

|o*PropertySetter

|o*ServerSocket

|o*StrictMath

|o*StringHelper

|o*StringTokenizer

|o*synchronized

|o*SyslogWriter

|o*System

|o*Thread

|o*ThreadLocal

|o*ThreadSpecificData

|o*Transcoder

|o*Transform

|o*UniCharMessageBuffer

|\*WideMessageBuffer

o*Class Members

o+Namespace List

o+Modules

o*File Members

\*Namespace Members

apache-log4cxx-0.10.0/site/apidocs/ftv2blank.png100644 0 0 256 10774263462 16511 0ustar 0 0 PNG  IHDRGtRNStEXtSoftwaregif2png 2.4.2^G%tEXtCommentUlead GIF SmartSaver Ver 2.0!^SIDATxc80Bx<2r|IENDB`apache-log4cxx-0.10.0/site/apidocs/ftv2doc.png100644 0 0 377 10774263462 16173 0ustar 0 0 PNG  IHDR_Tq-PLTEtRNS@ftEXtSoftwaregif2png 2.4.2^GvIDATxc````c``d'0bq$8`q'30012 pT2Si`q'ʀ\\RKRSiȔRRi 6तhQkqMaNU`'E$pgc 0o#UGIENDB`apache-log4cxx-0.10.0/site/apidocs/ftv2folderclosed.png100644 0 0 403 10774263462 20061 0ustar 0 0 PNG  IHDR_Tq-PLTEB@tRNS@ftEXtSoftwaregif2png 2.4.2^G}IDATxڍ 0C#wB+em3Z@SQB%zvyyIs2_I#` 6f@Kx m‹nPdpP x]%` IENDB`apache-log4cxx-0.10.0/site/apidocs/ftv2folderopen.png100644 0 0 405 10774263462 17553 0ustar 0 0 PNG  IHDR_Tq-PLTE2tRNS@ftEXtSoftwaregif2png 2.4.2^G|IDATxڅA0E_-S׍: !o j<*aCipʻ&FL}FTFN*Ε=d squ C )GDIENDB`apache-log4cxx-0.10.0/site/apidocs/ftv2lastnode.png100644 0 0 351 10774263462 17227 0ustar 0 0 PNG  IHDRL10PLTEӠtRNS@ftEXtSoftwaregif2png 2.4.2^G&tEXtCommentUlead GIF SmartSaver Ver 2.0io?IDATxc`0O 3$3=IENDB`apache-log4cxx-0.10.0/site/apidocs/ftv2link.png100644 0 0 546 10774263462 16361 0ustar 0 0 PNG  IHDR_Tq-0PLTE~tRNS@ftEXtSoftwaregif2png 2.4.2^G&tEXtCommentUlead GIF SmartSaver Ver 2.0 JIDATx} 0Eo3c~SW~nZ:d5d/y!Pf}Qp@ϭtb a;j;hQ$Kh^~m((8LF-Y8\+qygyTi/q+xIENDB`apache-log4cxx-0.10.0/site/apidocs/ftv2mlastnode.png100644 0 0 240 10774263462 17401 0ustar 0 0 PNG  IHDRy PLTE<^,tRNS@ftEXtSoftwaregif2png 2.4.2^G#IDATxc`   ` ɨPamiIENDB`apache-log4cxx-0.10.0/site/apidocs/ftv2mnode.png100644 0 0 302 10774263462 16514 0ustar 0 0 PNG  IHDRL1$PLTEStRNS@ftEXtSoftwaregif2png 2.4.2^G*IDATxc`.BtRTn bLJJ"05y'IENDB`apache-log4cxx-0.10.0/site/apidocs/ftv2node.png100644 0 0 353 10774263462 16345 0ustar 0 0 PNG  IHDRL10PLTEӠtRNS@ftEXtSoftwaregif2png 2.4.2^G&tEXtCommentUlead GIF SmartSaver Ver 2.0io?IDATxc`0O V.RE:IENDB`apache-log4cxx-0.10.0/site/apidocs/ftv2plastnode.png100644 0 0 245 10774263462 17411 0ustar 0 0 PNG  IHDRy PLTE<^,tRNS@ftEXtSoftwaregif2png 2.4.2^G(IDATxc` 0ach(`2 BY 1,nuIENDB`apache-log4cxx-0.10.0/site/apidocs/ftv2pnode.png100644 0 0 310 10774263462 16516 0ustar 0 0 PNG  IHDRL1$PLTEStRNS@ftEXtSoftwaregif2png 2.4.2^G0IDATxc`.Bn&8T >DIIYS;:k/oIENDB`apache-log4cxx-0.10.0/site/apidocs/ftv2vertline.png100644 0 0 345 10774263462 17251 0ustar 0 0 PNG  IHDRL10PLTEӠtRNS@ftEXtSoftwaregif2png 2.4.2^G&tEXtCommentUlead GIF SmartSaver Ver 2.0io?IDATxc`0O[!<:IENDB`PNG  IHDR_Tq-PLTEB@tRNS@ftEXtSoftwaregif2png 2.4.2^G}IDATxڍ 0C#wB+em3Z@SQB%zvyyIs2_I#` 6f@Kx m‹nPdpP x]%` IENDB`apache-log4cxx-0.10.0/site/apidocs/ftv2folderopen.png100644 0 0 405 10774263462 17553 0ustar 0 0 PNG  IHDR_Tq-PLTE2tRNS@ftEXtSoftwaregif2png 2.4.2^G|IDATxڅA0E_-S׍: !o j<*aCipʻ&FL}FTFN*Ε=d squ C )GDIENDB`apache-log4cxx-0.10.0/site/apidocs/ftv2lastnode.png100644 0 0 351 10774263462 17227 0ustar 0 0 PNG  IHDRL10PLTEӠtRNS@ftEXtSoftwaregif2png 2.4.2^G&tEXtCommentUlead GIF SmartSaver Ver 2.0io?IDATxc`0O 3$3=IENDB`apache-log4cxx-0.10.0/site/apidocs/ftv2link.png100644 0 0 546 10774263462 16361 0ustar 0 0 PNG  IHDR_Tq-0PLTE~tRNS@ftEXtSoftwaregif2png 2.4.2^G&tEXtCommentUlead GIF SmartSaver Ver 2.0 JIDATx} 0Eo3c~SW~nZ:d5d/y!Pf}Qp@ϭtb a;j;hQ$Kh^~m((8LF-Y8\+qygyTi/q+xIENDB`apache-log4cxx-0.10.0/site/apidocs/ftv2mlastnode.png100644 0 0 240 10774263462 17401 0ustar 0 0 PNG  IHDRy PLTE<^,tRNS@ftEXtSoftwaregif2png 2.4.2^G#IDATxc`   ` ɨPamiIENDB`apache-log4cxx-0.10.0/site/apidocs/ftv2mnode.png100644 0 0 302 10774263462 16514 0ustar 0 0 PNG  IHDRL1$PLTEStRNS@ftEXtSoftwaregif2png 2.4.2^G*IDATxc`.BtRTn bLJJ"05y'IENDB`