diff options
author | Justin Dickow <jjdickow@gmail.com> | 2014-10-20 17:44:41 -0400 |
---|---|---|
committer | Justin Dickow <jjdickow@gmail.com> | 2014-10-20 17:44:41 -0400 |
commit | 34e7256493ff0e6594029b9857d7e2aa31f5dbeb (patch) | |
tree | 367306b507c52d3af211533810adbc22004e0192 /src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx | |
parent | 2eef966e9b5fd4d94dd98820095eb765e200c64b (diff) | |
download | sdl_core-34e7256493ff0e6594029b9857d7e2aa31f5dbeb.tar.gz |
SDL 3.8!
Signed-off-by: Justin Dickow <jjdickow@gmail.com>
Diffstat (limited to 'src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx')
209 files changed, 29438 insertions, 0 deletions
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/Makefile.am b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/Makefile.am new file mode 100644 index 0000000000..719c2dde78 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/Makefile.am @@ -0,0 +1,24 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT 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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/Makefile.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/Makefile.in new file mode 100644 index 0000000000..464dad1111 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/Makefile.in @@ -0,0 +1,570 @@ +# 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: diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/appender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/appender.h new file mode 100644 index 0000000000..8fd798ef5d --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/appender.h @@ -0,0 +1,148 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/spi/optionhandler.h> +#include <log4cxx/helpers/objectptr.h> +#include <log4cxx/helpers/object.h> +#include <vector> + + +namespace log4cxx +{ + // Forward declarations + namespace spi + { + class LoggingEvent; + typedef helpers::ObjectPtrT<LoggingEvent> LoggingEventPtr; + + class Filter; + typedef helpers::ObjectPtrT<Filter> FilterPtr; + + class ErrorHandler; + typedef log4cxx::helpers::ObjectPtrT<ErrorHandler> ErrorHandlerPtr; + } + + class Layout; + typedef log4cxx::helpers::ObjectPtrT<Layout> 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. + <p>It is a programming error to append to a closed appender. + */ + virtual void close() = 0; + + /** + Log in <code>Appender</code> specific way. When appropriate, + Loggers will call the <code>doAppend</code> 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 <code>true</code>, + meaning that layout is required, then the configurator will + configure an layout using the configuration information at its + disposal. If this method returns <code>false</code>, 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.. + + <p>In the rather exceptional case, where the appender + implementation admits a layout but can also work without it, then + the appender should return <code>true</code>. + */ + 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/appenderskeleton.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/appenderskeleton.h new file mode 100644 index 0000000000..16242bdc6a --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/appenderskeleton.h @@ -0,0 +1,213 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/appender.h> +#include <log4cxx/layout.h> +#include <log4cxx/spi/errorhandler.h> +#include <log4cxx/spi/filter.h> +#include <log4cxx/helpers/objectimpl.h> +#include <log4cxx/helpers/mutex.h> +#include <log4cxx/helpers/pool.h> +#include <log4cxx/level.h> + + +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 <code>null</code> + 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' + <code>close</code> 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 <code>AppenderSkeleton</code> 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 <code>0</code> 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 <code>true</code>. + */ + 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. + + <p>In configuration files this option is specified by setting the + value of the <b>Threshold</b> 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/asyncappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/asyncappender.h new file mode 100644 index 0000000000..cbe9b3c754 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/asyncappender.h @@ -0,0 +1,292 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/appenderskeleton.h> +#include <log4cxx/helpers/appenderattachableimpl.h> +#include <deque> +#include <log4cxx/spi/loggingevent.h> +#include <log4cxx/helpers/thread.h> +#include <log4cxx/helpers/mutex.h> +#include <log4cxx/helpers/condition.h> + + +namespace log4cxx +{ + + /** + The AsyncAppender lets users log events asynchronously. It uses a + bounded buffer to store logging events. + + <p>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. + + <p>The AsyncAppender uses a separate thread to serve the events in + its bounded buffer. + + <p><b>Important note:</b> The <code>AsyncAppender</code> 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 <code>AsyncAppender</code> 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 <b>LocationInfo</b> 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 <b>LocationInfo</b> attribute is provided for compatibility + * with log4j and has no effect on the log output. + * @param flag new value. + */ + void setLocationInfo(bool flag); + + /** + * The <b>BufferSize</b> 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 <b>BufferSize</b> 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<LogString, DiscardSummary> 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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/basicconfigurator.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/basicconfigurator.h new file mode 100644 index 0000000000..3785139212 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/basicconfigurator.h @@ -0,0 +1,65 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/objectptr.h> +#include <log4cxx/helpers/objectimpl.h> +#include <log4cxx/logger.h> +#include <log4cxx/logstring.h> +#include <log4cxx/spi/configurator.h> + +namespace log4cxx +{ + class Appender; + typedef helpers::ObjectPtrT<Appender> AppenderPtr; + + /** + Use this class to quickly configure the package. + <p>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 <code>stdout</code> to the root logger.*/ + static void configure(); + + /** + Add <code>appender</code> 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 + <code>Logger::getDefaultHierarchy()->resetConfiguration()</code>. + See Hierarchy#resetConfiguration() for more details. */ + static void resetConfiguration(); + }; // class BasicConfigurator +} // namespace log4cxx + +#endif //_LOG4CXX_BASIC_CONFIGURATOR_H diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/config/Makefile.am b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/config/Makefile.am new file mode 100644 index 0000000000..0d7a6cf9aa --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/config/Makefile.am @@ -0,0 +1,18 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT 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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/config/Makefile.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/config/Makefile.in new file mode 100644 index 0000000000..7e056a435c --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/config/Makefile.in @@ -0,0 +1,446 @@ +# 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: diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/config/propertysetter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/config/propertysetter.h new file mode 100644 index 0000000000..91dc48ce05 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/config/propertysetter.h @@ -0,0 +1,108 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/logstring.h> +#include <log4cxx/helpers/objectptr.h> + +namespace log4cxx +{ + namespace helpers + { + class Object; + typedef ObjectPtrT<Object> 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. + + <p>Usage: + <pre> + PropertySetter ps(anObject); + ps.set("name", "Joe"); + ps.set("age", "32"); + ps.set("isMale", "true"); + </pre> + 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 <code>properties</code> are parsed relative to a + <code>prefix</code>. + + @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 + <code>prefix</code> 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/config_msvc.h.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/config_msvc.h.in new file mode 100644 index 0000000000..a1c25acd64 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/config_msvc.h.in @@ -0,0 +1,69 @@ +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <tchar.h> diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/consoleappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/consoleappender.h new file mode 100644 index 0000000000..f77ac022c6 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/consoleappender.h @@ -0,0 +1,79 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/writerappender.h> + +namespace log4cxx +{ + + /** + * ConsoleAppender appends log events to <code>stdout</code> or + * <code>stderr</code> using a layout specified by the user. The + * default target is <code>stdout</code>. + */ + 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 <b>target</b> 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 <b>target</b> 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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/dailyrollingfileappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/dailyrollingfileappender.h new file mode 100644 index 0000000000..628a9978b6 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/dailyrollingfileappender.h @@ -0,0 +1,203 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/appender.h> +#include <log4cxx/fileappender.h> +#include <log4cxx/spi/optionhandler.h> +#include <log4cxx/rolling/rollingfileappenderskeleton.h> + +namespace log4cxx { + namespace helpers { + class Pool; + } + + namespace spi { + class ErrorHandler; + typedef log4cxx::helpers::ObjectPtrT<ErrorHandler> ErrorHandlerPtr; + } + + +/** + DailyRollingFileAppender extends {@link log4cxx::FileAppender FileAppender} so that the + underlying file is rolled over at a user chosen frequency. + + <p>The rolling schedule is specified by the <b>DatePattern</b> + option. This pattern should follow the + {@link log4cxx::helpers::SimpleDateFormat SimpleDateFormat} + conventions. In particular, you <em>must</em> 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. + + <p>For example, if the <b>File</b> option is set to + <code>/foo/bar.log</code> and the <b>DatePattern</b> set to + <code>'.'yyyy-MM-dd</code>, on 2001-02-16 at midnight, the logging + file <code>/foo/bar.log</code> will be copied to + <code>/foo/bar.log.2001-02-16</code> and logging for 2001-02-17 + will continue in <code>/foo/bar.log</code> until it rolls over + the next day. + + <p>Is is possible to specify monthly, weekly, half-daily, daily, + hourly, or minutely rollover schedules. + + <p><table border="1" cellpadding="2"> + <tr> + <th>DatePattern</th> + <th>Rollover schedule</th> + <th>Example</th> + + <tr> + <td><code>'.'yyyy-MM</code> + <td>Rollover at the beginning of each month</td> + + <td>At midnight of May 31st, 2002 <code>/foo/bar.log</code> will be + copied to <code>/foo/bar.log.2002-05</code>. Logging for the month + of June will be output to <code>/foo/bar.log</code> until it is + also rolled over the next month. + + <tr> + <td><code>'.'yyyy-ww</code> + + <td>Rollover at the first day of each week. The first day of the + week depends on the locale.</td> + + <td>Assuming the first day of the week is Sunday, on Saturday + midnight, June 9th 2002, the file <i>/foo/bar.log</i> will be + copied to <i>/foo/bar.log.2002-23</i>. Logging for the 24th week + of 2002 will be output to <code>/foo/bar.log</code> until it is + rolled over the next week. + + <tr> + <td><code>'.'yyyy-MM-dd</code> + + <td>Rollover at midnight each day.</td> + + <td>At midnight, on March 8th, 2002, <code>/foo/bar.log</code> will + be copied to <code>/foo/bar.log.2002-03-08</code>. Logging for the + 9th day of March will be output to <code>/foo/bar.log</code> until + it is rolled over the next day. + + <tr> + <td><code>'.'yyyy-MM-dd-a</code> + + <td>Rollover at midnight and midday of each day.</td> + + <td>At noon, on March 9th, 2002, <code>/foo/bar.log</code> will be + copied to <code>/foo/bar.log.2002-03-09-AM</code>. Logging for the + afternoon of the 9th will be output to <code>/foo/bar.log</code> + until it is rolled over at midnight. + + <tr> + <td><code>'.'yyyy-MM-dd-HH</code> + + <td>Rollover at the top of every hour.</td> + + <td>At approximately 11:00.000 o'clock on March 9th, 2002, + <code>/foo/bar.log</code> will be copied to + <code>/foo/bar.log.2002-03-09-10</code>. Logging for the 11th hour + of the 9th of March will be output to <code>/foo/bar.log</code> + until it is rolled over at the beginning of the next hour. + + + <tr> + <td><code>'.'yyyy-MM-dd-HH-mm</code> + + <td>Rollover at the beginning of every minute.</td> + + <td>At approximately 11:23,000, on March 9th, 2001, + <code>/foo/bar.log</code> will be copied to + <code>/foo/bar.log.2001-03-09-10-22</code>. Logging for the minute + of 11:23 (9th of March) will be output to + <code>/foo/bar.log</code> until it is rolled over the next minute. + + </table> + + <p>Do not use the colon ":" character in anywhere in the + <b>DatePattern</b> 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 + <code>filename</code>. The opened filename will become the ouput + destination for this appender. + + */ + DailyRollingFileAppender( + const LayoutPtr& layout, + const LogString& filename, + const LogString& datePattern); + + + /** + The <b>DatePattern</b> 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 <b>DatePattern</b> 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/db/Makefile.am b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/db/Makefile.am new file mode 100644 index 0000000000..7f9677ee5d --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/db/Makefile.am @@ -0,0 +1,18 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT 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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/db/Makefile.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/db/Makefile.in new file mode 100644 index 0000000000..853f4cf941 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/db/Makefile.in @@ -0,0 +1,446 @@ +# 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: diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/db/odbcappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/db/odbcappender.h new file mode 100644 index 0000000000..0d278e26a6 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/db/odbcappender.h @@ -0,0 +1,292 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/log4cxx.h> + +#include <log4cxx/helpers/exception.h> +#include <log4cxx/appenderskeleton.h> +#include <log4cxx/spi/loggingevent.h> +#include <list> + +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); + }; + + /** + <p><b>WARNING: This version of ODBCAppender + is very likely to be completely replaced in the future. Moreoever, + it does not log exceptions.</b> </p> + + The ODBCAppender provides for sending log events to a database. + + + <p>Each append call adds to an <code>ArrayList</code> buffer. When + the buffer is filled each log event is placed in a sql statement + (configurable) and executed. + + <b>BufferSize</b>, <b>db URL</b>, <b>User</b>, & <b>Password</b> are + configurable options in the standard log4j ways. + + <p>The <code>setSql(String sql)</code> sets the SQL statement to be + used for logging -- this statement is sent to a + <code>PatternLayout</code> (either created automaticly by the + appender or added by the user). Therefore by default all the + conversion patterns in <code>PatternLayout</code> can be used + inside of the statement. (see the test cases for examples) + + <p>Overriding the {@link #getLogStatement} method allows more + explicit control of the statement used for logging. + + <p>For use as a base class: + + <ul> + + <li>Override getConnection() to pass any connection + you want. Typically this is used to enable application wide + connection pooling. + + <li>Override closeConnection -- if + you override getConnection make sure to implement + <code>closeConnection</code> to handle the connection you + generated. Typically this would return the connection to the + pool it came from. + + <li>Override getLogStatement to + produce specialized or dynamic statements. The default uses the + sql option value. + + </ul> + */ + + 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 <code>getConnection</code> and + * <code>closeConnection</code> 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<spi::LoggingEventPtr> 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/defaultconfigurator.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/defaultconfigurator.h new file mode 100644 index 0000000000..c88d33730c --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/defaultconfigurator.h @@ -0,0 +1,55 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/spi/configurator.h> + +namespace log4cxx +{ + namespace spi { + class LoggerRepository; + typedef helpers::ObjectPtrT<LoggerRepository> 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 <code>stdout</code> 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/defaultloggerfactory.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/defaultloggerfactory.h new file mode 100644 index 0000000000..3f3c6744a5 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/defaultloggerfactory.h @@ -0,0 +1,45 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/spi/loggerfactory.h> +#include <log4cxx/helpers/objectimpl.h> + +namespace log4cxx +{ + class Logger; + typedef helpers::ObjectPtrT<Logger> 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/file.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/file.h new file mode 100644 index 0000000000..a7629499e7 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/file.h @@ -0,0 +1,188 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/logger.h> +#include <log4cxx/logstring.h> + +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<UniChar>& 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<LogString> 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/fileappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/fileappender.h new file mode 100644 index 0000000000..d0491dbe28 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/fileappender.h @@ -0,0 +1,223 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/logger.h> +#include <log4cxx/logstring.h> +#include <log4cxx/writerappender.h> +#include <log4cxx/file.h> +#include <log4cxx/helpers/pool.h> + +namespace log4cxx +{ + namespace helpers { + class Pool; + } + + /** + * FileAppender appends log events to a file. + * + * <p>Support for <code>java.io.Writer</code> 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 <code>true</code>, meaning that by default a + <code>FileAppender</code> will append to an existing file and + not truncate it. + <p>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 <code>FileAppender</code> and open the file + designated by <code>filename</code>. The opened filename will + become the output destination for this appender. + + <p>If the <code>append</code> parameter is true, the file will be + appended to. Otherwise, the file designated by + <code>filename</code> will be truncated before being opened. + + <p>If the <code>bufferedIO</code> parameter is <code>true</code>, + 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 + <code>filename</code>. The opened filename will become the output + destination for this appender. + + <p>If the <code>append</code> parameter is true, the file will be + appended to. Otherwise, the file designated by + <code>filename</code> will be truncated before being opened. + */ + FileAppender(const LayoutPtr& layout, const LogString& filename, bool append); + + /** + Instantiate a FileAppender and open the file designated by + <code>filename</code>. The opened filename will become the output + destination for this appender. + + <p>The file will be appended to. */ + FileAppender(const LayoutPtr& layout, const LogString& filename); + + ~FileAppender(); + + /** + The <b>File</b> property takes a string value which should be the + name of the file to append to. + + <p><b>Note that the special values + "System.out" or "System.err" are no longer honored.</b> + + <p>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 <i>opens</i> the file where the log output will + go. The specified file must be writable. + + <p>If there was already an opened file, then the previous file + is closed first. + + <p><b>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.</b> + + @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 <b>Append</b> option. + */ + inline bool getAppend() const { return fileAppend; } + + /** Returns the value of the <b>File</b> option. */ + inline LogString getFile() const { return fileName; } + + /** + <p>Sets and <i>opens</i> the file where the log output will + go. The specified file must be writable. + + <p>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 <b>BufferedIO</b> option. + + <p>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 <b>Append</b> option takes a boolean value. It is set to + <code>true</code> by default. If true, then <code>File</code> + will be opened in append mode by #setFile (see + above). Otherwise, setFile will open + <code>File</code> in truncate mode. + + <p>Note: Actual opening of the file is made when + #activateOptions is called, not when the options are set. + */ + void setAppend(bool fileAppend1); + + /** + The <b>BufferedIO</b> option takes a boolean value. It is set to + <code>false</code> by default. If true, then <code>File</code> + 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/Makefile.am b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/Makefile.am new file mode 100644 index 0000000000..7dd7d8478d --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/Makefile.am @@ -0,0 +1,18 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT 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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/Makefile.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/Makefile.in new file mode 100644 index 0000000000..2b7653c4da --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/Makefile.in @@ -0,0 +1,446 @@ +# 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: diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/andfilter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/andfilter.h new file mode 100644 index 0000000000..3bc58a0325 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/andfilter.h @@ -0,0 +1,109 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/spi/filter.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/denyallfilter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/denyallfilter.h new file mode 100644 index 0000000000..c370aac523 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/denyallfilter.h @@ -0,0 +1,73 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/spi/filter.h> + +namespace log4cxx +{ + namespace filter + { + /** + This filter drops all logging events. + <p>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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/expressionfilter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/expressionfilter.h new file mode 100644 index 0000000000..dfb6cbf6e2 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/expressionfilter.h @@ -0,0 +1,130 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/spi/filter.h> + +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). + * + * <p>See <code>org.apache.log4j.chainsaw.LoggingEventFieldResolver.java</code> + * for the correct names for logging event fields used when building expressions. + * + * <p>See <code>org.apache.log4j.chainsaw.rule</code> package for a list of available + * rules which can be applied using the expression syntax. + * + * <p>See <code>org.apache.log4j.chainsaw.RuleFactory</code> 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. + * <b> ( MSG LIKE infomsg-4[4,5] ) && ( LEVEL >= WARN ) </b> + * + *Three options are required: + * <b>Expression</b> - the expression to match + * <b>ConvertInFixToPostFix</b> - convert from infix to posfix (default true) + * <b>AcceptOnMatch</b> - true or false (default true) + * + * Meaning of <b>AcceptToMatch</b>: + * 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/levelmatchfilter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/levelmatchfilter.h new file mode 100644 index 0000000000..f357f67121 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/levelmatchfilter.h @@ -0,0 +1,102 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/spi/filter.h> +#include <log4cxx/level.h> + +namespace log4cxx +{ + class Level; + + namespace filter + { + /** + This is a very simple filter based on level matching. + + <p>The filter admits two options <b>LevelToMatch</b> and + <b>AcceptOnMatch</b>. If there is an exact match between the value + of the <b>LevelToMatch</b> option and the level of the {@link + spi::LoggingEvent LoggingEvent}, then the #decide method returns {@link + spi::Filter#ACCEPT ACCEPT} in case the <b>AcceptOnMatch</b> + option value is set to <code>true</code>, if it is <code>false</code> + 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 + <b>LevelToMatch</b> 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 <b>AcceptOnMatch</b> + property is set to <code>true</code>. The returned decision is + {@link spi::Filter#DENY DENY} if the + <b>AcceptOnMatch</b> 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/levelrangefilter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/levelrangefilter.h new file mode 100644 index 0000000000..326d7c90f3 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/levelrangefilter.h @@ -0,0 +1,137 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/spi/filter.h> +#include <log4cxx/level.h> + +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. + + <p>The filter admits three options <b>LevelMin</b>, <b>LevelMax</b> + and <b>AcceptOnMatch</b>. + + <p>If the level of the {@link spi::LoggingEvent LoggingEvent} is not + between Min and Max (inclusive), then {@link spi::Filter#DENY DENY} + is returned. + + <p> If the Logging event level is within the specified range, then if + <b>AcceptOnMatch</b> is true, {@link spi::Filter#ACCEPT ACCEPT} is + returned, and if <b>AcceptOnMatch</b> is false, + {@link spi::Filter#NEUTRAL NEUTRAL} is returned. + + <p>If <code>LevelMin</code>w is not defined, then there is no + minimum acceptable level (ie a level is never rejected for + being too "low"/unimportant). If <code>LevelMax</code> is not + defined, then there is no maximum acceptable level (ie a + level is never rejected for beeing too "high"/important). + + <p>Refer to the {@link + AppenderSkeleton#setThreshold setThreshold} method + available to <code>all</code> 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 + <code>false</code>, 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 <code>LevelMin</code> option. + */ + void setLevelMin(const LevelPtr& levelMin1) + { this->levelMin = levelMin1; } + + /** + Get the value of the <code>LevelMin</code> option. + */ + const LevelPtr& getLevelMin() const + { return levelMin; } + + /** + Set the <code>LevelMax</code> option. + */ + void setLevelMax(const LevelPtr& levelMax1) + { this->levelMax = levelMax1; } + + /** + Get the value of the <code>LevelMax</code> option. + */ + const LevelPtr& getLevelMax() const + { return levelMax; } + + /** + Set the <code>AcceptOnMatch</code> option. + */ + inline void setAcceptOnMatch(bool acceptOnMatch1) + { this->acceptOnMatch = acceptOnMatch1; } + + /** + Get the value of the <code>AcceptOnMatch</code> option. + */ + inline bool getAcceptOnMatch() const + { return acceptOnMatch; } + + /** + Return the decision of this filter. + + Returns {@link spi::Filter#NEUTRAL NEUTRAL} if the + <b>LevelToMatch</b> 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 + <b>AcceptOnMatch</b> property is set to <code>true</code>. The + returned decision is {@link spi::Filter#DENY DENY} if the + <b>AcceptOnMatch</b> 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/locationinfofilter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/locationinfofilter.h new file mode 100644 index 0000000000..81d8b18bb7 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/locationinfofilter.h @@ -0,0 +1,87 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/spi/filter.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/mapfilter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/mapfilter.h new file mode 100644 index 0000000000..e956befeba --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/mapfilter.h @@ -0,0 +1,44 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/spi/filter.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/propertyfilter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/propertyfilter.h new file mode 100644 index 0000000000..4d830e1198 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/propertyfilter.h @@ -0,0 +1,81 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/spi/filter.h> +#include <map> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/stringmatchfilter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/stringmatchfilter.h new file mode 100644 index 0000000000..77a78da61c --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/filter/stringmatchfilter.h @@ -0,0 +1,92 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/spi/filter.h> + +namespace log4cxx +{ + namespace filter + { + /** + This is a very simple filter based on string matching. + + <p>The filter admits two options <b>StringToMatch</b> and + <b>AcceptOnMatch</b>. 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 <b>AcceptOnMatch</b> 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. + + <p>See configuration files <a + href="../xml/doc-files/test6.xml">test6.xml</a>, <a + href="../xml/doc-files/test7.xml">test7.xml</a>, <a + href="../xml/doc-files/test8.xml">test8.xml</a>, <a + href="../xml/doc-files/test9.xml">test9.xml</a>, and <a + href="../xml/doc-files/test10.xml">test10.xml</a> for examples of + seeting up a <code>StringMatchFilter</code>. + */ + + 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/Makefile.am b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/Makefile.am new file mode 100644 index 0000000000..e5e25a5ebb --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/Makefile.am @@ -0,0 +1,18 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT 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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/Makefile.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/Makefile.in new file mode 100644 index 0000000000..0d75bf1898 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/Makefile.in @@ -0,0 +1,446 @@ +# 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: diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/absolutetimedateformat.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/absolutetimedateformat.h new file mode 100644 index 0000000000..a06cfa6429 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/absolutetimedateformat.h @@ -0,0 +1,40 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/simpledateformat.h> + +namespace log4cxx +{ + namespace helpers + { + /** + Formats a date in the format <b>HH:mm:ss,SSS</b> 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/appenderattachableimpl.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/appenderattachableimpl.h new file mode 100644 index 0000000000..d254e346f6 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/appenderattachableimpl.h @@ -0,0 +1,128 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/spi/appenderattachable.h> +#include <log4cxx/helpers/objectimpl.h> +#include <log4cxx/helpers/mutex.h> +#include <log4cxx/helpers/pool.h> + +namespace log4cxx +{ + namespace spi + { + class LoggingEvent; + typedef helpers::ObjectPtrT<LoggingEvent> 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 <code>doAppend</code> 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 <code>true</code> if the specified appender is in the + list of attached appenders, <code>false</code> 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/aprinitializer.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/aprinitializer.h new file mode 100644 index 0000000000..154ecaa8d9 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/aprinitializer.h @@ -0,0 +1,57 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/pool.h> +#include <apr_pools.h> +#include <apr_thread_proc.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bufferedoutputstream.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bufferedoutputstream.h new file mode 100644 index 0000000000..9d4aa18341 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bufferedoutputstream.h @@ -0,0 +1,63 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/outputstream.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bufferedwriter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bufferedwriter.h new file mode 100644 index 0000000000..570da09751 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bufferedwriter.h @@ -0,0 +1,63 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/writer.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bytearrayinputstream.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bytearrayinputstream.h new file mode 100644 index 0000000000..92bcb5959c --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bytearrayinputstream.h @@ -0,0 +1,94 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <vector> +#include <log4cxx/helpers/inputstream.h> + + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bytearrayoutputstream.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bytearrayoutputstream.h new file mode 100644 index 0000000000..34e3d09518 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bytearrayoutputstream.h @@ -0,0 +1,77 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/outputstream.h> +#include <vector> + + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bytebuffer.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bytebuffer.h new file mode 100644 index 0000000000..da235b6a61 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/bytebuffer.h @@ -0,0 +1,69 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/log4cxx.h> +#include <stdio.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/cacheddateformat.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/cacheddateformat.h new file mode 100644 index 0000000000..527ed25670 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/cacheddateformat.h @@ -0,0 +1,220 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/dateformat.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/charsetdecoder.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/charsetdecoder.h new file mode 100644 index 0000000000..cb8320aec5 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/charsetdecoder.h @@ -0,0 +1,113 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/objectimpl.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/charsetencoder.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/charsetencoder.h new file mode 100644 index 0000000000..c815ebca83 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/charsetencoder.h @@ -0,0 +1,135 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/objectimpl.h> +#include <log4cxx/helpers/pool.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/class.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/class.h new file mode 100644 index 0000000000..c7f708b355 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/class.h @@ -0,0 +1,67 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/logstring.h> +#include <log4cxx/helpers/objectptr.h> +#include <map> + +namespace log4cxx +{ + namespace helpers + { + class Object; + typedef ObjectPtrT<Object> 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<LogString, const Class *> ClassMap; + static ClassMap& getRegistry(); + static void registerClasses(); + }; + } // namespace log4cxx +} // namespace helper + +#if defined(_MSC_VER) +#pragma warning (pop) +#endif + + +#endif //_LOG4CXX_HELPERS_CLASS_H diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/classregistration.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/classregistration.h new file mode 100644 index 0000000000..af06319662 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/classregistration.h @@ -0,0 +1,41 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/log4cxx.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/condition.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/condition.h new file mode 100644 index 0000000000..7adb3bc13a --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/condition.h @@ -0,0 +1,73 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/log4cxx.h> +#include <log4cxx/helpers/mutex.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/cyclicbuffer.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/cyclicbuffer.h new file mode 100644 index 0000000000..2cd913dea3 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/cyclicbuffer.h @@ -0,0 +1,92 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/spi/loggingevent.h> + +namespace log4cxx +{ + namespace helpers + { + /** + CyclicBuffer is used by other appenders to hold instances of + {@link log4cxx::spi::LoggingEvent LoggingEvent} for immediate + or deferred display. + <p>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 <code>maxSize</code> + events. + The <code>maxSize</code> argument must a positive integer. + @param maxSize The maximum number of elements in the buffer. + @throws IllegalArgumentException if <code>maxSize</code> + is negative. + */ + CyclicBuffer(int maxSize); + ~CyclicBuffer(); + + /** + Add an <code>event</code> as the last event in the buffer. + */ + void add(const spi::LoggingEventPtr& event); + + /** + Get the <i>i</i>th oldest event currently in the buffer. If + <em>i</em> is outside the range 0 to the number of elements + currently in the buffer, then <code>null</code> 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 <code>maxSize</code> + (inclusive). + */ + int length() const + { return numElems; } + + /** + Resize the cyclic buffer to <code>newSize</code>. + @throws IllegalArgumentException if <code>newSize</code> is negative. + */ + void resize(int newSize); + }; // class CyclicBuffer + } //namespace helpers +} //namespace log4cxx + +#endif //_LOG4CXX_HELPERS_CYCLICBUFFER_H diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datagrampacket.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datagrampacket.h new file mode 100644 index 0000000000..5bdbf48d9a --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datagrampacket.h @@ -0,0 +1,135 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/objectimpl.h> +#include <log4cxx/helpers/objectptr.h> +#include <log4cxx/helpers/inetaddress.h> + +namespace log4cxx +{ + namespace helpers + { + + /** This class represents a datagram packet. + <p>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 + <code>length</code>. */ + DatagramPacket(void * buf, int length); + + /** Constructs a datagram packet for sending packets of length + <code>length</code> 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 + <code>length</code>, specifying an offset into the buffer. */ + DatagramPacket(void * buf, int offset, int length); + + /** Constructs a datagram packet for sending packets of length + <code>length</code> with offset <code>offset</code> 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datagramsocket.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datagramsocket.h new file mode 100644 index 0000000000..5e7db94e65 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datagramsocket.h @@ -0,0 +1,128 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/objectimpl.h> +#include <log4cxx/helpers/objectptr.h> +#include <log4cxx/helpers/inetaddress.h> +#include <log4cxx/helpers/pool.h> +#include <log4cxx/helpers/datagrampacket.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/date.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/date.h new file mode 100644 index 0000000000..6e3dc04f43 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/date.h @@ -0,0 +1,67 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/objectimpl.h> +#include <log4cxx/log4cxx.h> + + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/dateformat.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/dateformat.h new file mode 100644 index 0000000000..86bf1a9e64 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/dateformat.h @@ -0,0 +1,92 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/timezone.h> + + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datelayout.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datelayout.h new file mode 100644 index 0000000000..ca271ca0ea --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datelayout.h @@ -0,0 +1,91 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/layout.h> +#include <log4cxx/helpers/dateformat.h> +#include <log4cxx/helpers/timezone.h> + +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 <b>DateFormat</b> option should be either an + argument to the constructor of helpers::DateFormat or one of + the strings <b>"NULL"</b>, <b>"RELATIVE"</b>, <b>"ABSOLUTE"</b>, + <b>"DATE"</b> or <b>"ISO8601</b>. + */ + inline void setDateFormat(const LogString& dateFormat1) + { this->dateFormatOption.assign(dateFormat1); } + + /** + Returns value of the <b>DateFormat</b> option. + */ + inline const LogString& getDateFormat() const + { return dateFormatOption; } + + /** + The <b>TimeZoneID</b> option is a time zone ID string in the format + expected by the <code>locale</code> C++ standard class. + */ + inline void setTimeZone(const LogString& timeZone) + { this->timeZoneID.assign(timeZone); } + + /** + Returns value of the <b>TimeZone</b> 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datetimedateformat.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datetimedateformat.h new file mode 100644 index 0000000000..1ed89886e4 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datetimedateformat.h @@ -0,0 +1,42 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/simpledateformat.h> + +namespace log4cxx +{ + namespace helpers + { + /** + Formats a date in the format <b>dd MMM yyyy HH:mm:ss,SSS</b> 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/exception.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/exception.h new file mode 100644 index 0000000000..fb1daf5172 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/exception.h @@ -0,0 +1,287 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <exception> +#include <log4cxx/log4cxx.h> +#include <log4cxx/logstring.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/fileinputstream.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/fileinputstream.h new file mode 100644 index 0000000000..fdf658a895 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/fileinputstream.h @@ -0,0 +1,96 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/inputstream.h> +#include <log4cxx/file.h> +#include <log4cxx/helpers/pool.h> + + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/fileoutputstream.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/fileoutputstream.h new file mode 100644 index 0000000000..b9e405a5cd --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/fileoutputstream.h @@ -0,0 +1,67 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/outputstream.h> +#include <log4cxx/file.h> +#include <log4cxx/helpers/pool.h> + + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/filewatchdog.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/filewatchdog.h new file mode 100644 index 0000000000..0b8aa658f9 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/filewatchdog.h @@ -0,0 +1,86 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/logstring.h> +#include <time.h> +#include <log4cxx/helpers/pool.h> +#include <log4cxx/helpers/thread.h> +#include <log4cxx/file.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/inetaddress.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/inetaddress.h new file mode 100644 index 0000000000..155205e133 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/inetaddress.h @@ -0,0 +1,106 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/objectimpl.h> +#include <log4cxx/helpers/objectptr.h> +#include <log4cxx/logstring.h> +#include <vector> +#include <log4cxx/helpers/exception.h> + +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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/inputstream.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/inputstream.h new file mode 100644 index 0000000000..585d4f027e --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/inputstream.h @@ -0,0 +1,72 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/objectimpl.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/inputstreamreader.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/inputstreamreader.h new file mode 100644 index 0000000000..1f186d9f44 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/inputstreamreader.h @@ -0,0 +1,94 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/reader.h> +#include <log4cxx/helpers/inputstream.h> +#include <log4cxx/helpers/charsetdecoder.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/integer.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/integer.h new file mode 100644 index 0000000000..957edb070f --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/integer.h @@ -0,0 +1,50 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/objectimpl.h> + + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/iso8601dateformat.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/iso8601dateformat.h new file mode 100644 index 0000000000..b4e7e6e8d3 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/iso8601dateformat.h @@ -0,0 +1,46 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/simpledateformat.h> + +namespace log4cxx +{ + namespace helpers + { + /** + Formats a date in the format <b>yyyy-MM-dd HH:mm:ss,SSS</b> for example + "1999-11-27 15:49:37,459". + + <p>Refer to the + <a href=http://www.cl.cam.ac.uk/~mgk25/iso-time.html>summary of the + International Standard Date and Time Notation</a> 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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/loader.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/loader.h new file mode 100644 index 0000000000..613b3239ce --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/loader.h @@ -0,0 +1,43 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/objectptr.h> +#include <log4cxx/logstring.h> +#include <log4cxx/helpers/exception.h> +#include <log4cxx/helpers/inputstream.h> + + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/locale.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/locale.h new file mode 100644 index 0000000000..6b0c881ef8 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/locale.h @@ -0,0 +1,49 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/logstring.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/loglog.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/loglog.h new file mode 100644 index 0000000000..3c1f133e78 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/loglog.h @@ -0,0 +1,113 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/logstring.h> +#include <log4cxx/helpers/mutex.h> +#include <exception> + +namespace log4cxx +{ + namespace helpers + { + /** + This class used to output log statements from within the log4cxx package. + + <p>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 + <b>#setInternalDebugging</b> method. + + <p>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 <code>true</code> 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/messagebuffer.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/messagebuffer.h new file mode 100644 index 0000000000..c026dc5d06 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/messagebuffer.h @@ -0,0 +1,828 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/log4cxx.h> +#include <log4cxx/logstring.h> +#include <sstream> + +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<char>& 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<char>&(); + + /** + * Get content of buffer. + * @param os used only to signal that + * the embedded stream was used. + */ + const std::basic_string<char>& str(std::basic_ostream<char>& os); + + /** + * Get content of buffer. + * @param buf used only to signal that + * the embedded stream was not used. + */ + const std::basic_string<char>& 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<char> buf; + /** + * Encapsulated stream, created on demand. + */ + std::basic_ostringstream<char>* stream; + }; + +template<class V> +std::basic_ostream<char>& operator<<(CharMessageBuffer& os, const V& val) { + return ((std::basic_ostream<char>&) 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<UniChar> uostream; + + + /** + * Appends string to buffer. + * @param msg string append. + * @return this buffer. + */ + UniCharMessageBuffer& operator<<(const std::basic_string<UniChar>& 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<UniChar>& str(uostream& os); + + /** + * Get content of buffer. + * @param buf used only to signal that + * the embedded stream was not used. + */ + const std::basic_string<UniChar>& 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<UniChar> buf; + /** + * Encapsulated stream, created on demand. + */ + std::basic_ostringstream<UniChar>* stream; + }; + +template<class V> +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<wchar_t>& 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<wchar_t>& operator<<(ios_base_manip manip); + /** + * Insertion operator for built-in type. + * @param val build in type. + * @return encapsulated STL stream. + */ + std::basic_ostream<wchar_t>& operator<<(bool val); + + /** + * Insertion operator for built-in type. + * @param val build in type. + * @return encapsulated STL stream. + */ + std::basic_ostream<wchar_t>& operator<<(short val); + /** + * Insertion operator for built-in type. + * @param val build in type. + * @return encapsulated STL stream. + */ + std::basic_ostream<wchar_t>& operator<<(int val); + /** + * Insertion operator for built-in type. + * @param val build in type. + * @return encapsulated STL stream. + */ + std::basic_ostream<wchar_t>& operator<<(unsigned int val); + /** + * Insertion operator for built-in type. + * @param val build in type. + * @return encapsulated STL stream. + */ + std::basic_ostream<wchar_t>& operator<<(long val); + /** + * Insertion operator for built-in type. + * @param val build in type. + * @return encapsulated STL stream. + */ + std::basic_ostream<wchar_t>& operator<<(unsigned long val); + /** + * Insertion operator for built-in type. + * @param val build in type. + * @return encapsulated STL stream. + */ + std::basic_ostream<wchar_t>& operator<<(float val); + /** + * Insertion operator for built-in type. + * @param val build in type. + * @return encapsulated STL stream. + */ + std::basic_ostream<wchar_t>& operator<<(double val); + /** + * Insertion operator for built-in type. + * @param val build in type. + * @return encapsulated STL stream. + */ + std::basic_ostream<wchar_t>& operator<<(long double val); + /** + * Insertion operator for built-in type. + * @param val build in type. + * @return encapsulated STL stream. + */ + std::basic_ostream<wchar_t>& operator<<(void* val); + + + /** + * Cast to ostream. + */ + operator std::basic_ostream<wchar_t>&(); + + /** + * Get content of buffer. + * @param os used only to signal that + * the embedded stream was used. + */ + const std::basic_string<wchar_t>& str(std::basic_ostream<wchar_t>& os); + + /** + * Get content of buffer. + * @param buf used only to signal that + * the embedded stream was not used. + */ + const std::basic_string<wchar_t>& 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<wchar_t> buf; + /** + * Encapsulated stream, created on demand. + */ + std::basic_ostringstream<wchar_t>* stream; + }; + +template<class V> +std::basic_ostream<wchar_t>& operator<<(WideMessageBuffer& os, const V& val) { + return ((std::basic_ostream<wchar_t>&) 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<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); + /** + * 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<wchar_t>& 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<UniChar>& 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<UniChar>& 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<class V> +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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/mutex.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/mutex.h new file mode 100644 index 0000000000..d26487bad4 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/mutex.h @@ -0,0 +1,51 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/log4cxx.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/object.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/object.h new file mode 100644 index 0000000000..92d44c55b9 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/object.h @@ -0,0 +1,138 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/logstring.h> +#include <log4cxx/helpers/class.h> +#include <log4cxx/helpers/objectptr.h> +#include <log4cxx/helpers/classregistration.h> + + +#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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/objectimpl.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/objectimpl.h new file mode 100644 index 0000000000..7de941778e --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/objectimpl.h @@ -0,0 +1,49 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/object.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/objectoutputstream.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/objectoutputstream.h new file mode 100644 index 0000000000..92f56fe42e --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/objectoutputstream.h @@ -0,0 +1,95 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/objectimpl.h> +#include <log4cxx/mdc.h> +#include <log4cxx/helpers/outputstream.h> +#include <log4cxx/helpers/charsetencoder.h> + +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<std::string, unsigned int> ClassDescriptionMap; + ClassDescriptionMap* classDescriptions; + }; + + LOG4CXX_PTR_DEF(ObjectOutputStream); + + } // namespace helpers + +} //namespace log4cxx + +#endif //_LOG4CXX_HELPERS_OUTPUTSTREAM_H + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/objectptr.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/objectptr.h new file mode 100644 index 0000000000..4271ba1336 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/objectptr.h @@ -0,0 +1,183 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/log4cxx.h> + +// +// 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<typename T> 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<T*>(p1.cast(T::getStaticClass()))) + if (this->p != 0) { + this->p->addRef(); + } + } + + ObjectPtrT(ObjectPtrBase& p1) + _LOG4CXX_OBJECTPTR_INIT(reinterpret_cast<T*>(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<T*>(p1.cast(T::getStaticClass())); + return operator=(newPtr); + } + + ObjectPtrT& operator=(const ObjectPtrBase& p1) { + T* newPtr = reinterpret_cast<T*>(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<void*>(p->cast(cls)); + } + return 0; + } + T* exchange(const T* newValue) { + return static_cast<T*>(ObjectPtrBase::exchange( + reinterpret_cast<void**>(&p), + const_cast<T*>(newValue))); + } + + }; + + + } +} + +#endif //_LOG4CXX_HELPERS_OBJECT_PTR_H diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/onlyonceerrorhandler.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/onlyonceerrorhandler.h new file mode 100644 index 0000000000..296aa94005 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/onlyonceerrorhandler.h @@ -0,0 +1,103 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/spi/errorhandler.h> +#include <log4cxx/helpers/objectimpl.h> + +namespace log4cxx +{ + namespace helpers + { + /** + The <code>OnlyOnceErrorHandler</code> 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. + + <p>The error message is printed on <code>System.err</code>. + + <p>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 + <code>System.err</code>. */ + void error(const LogString& message, const std::exception& e, + int errorCode) const; + /** + Prints the message and the stack trace of the exception on + <code>System.err</code>. + */ + 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 + <code>System.err</code>. + */ + 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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/optionconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/optionconverter.h new file mode 100644 index 0000000000..6b4561c5fa --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/optionconverter.h @@ -0,0 +1,164 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/logstring.h> +#include <log4cxx/helpers/objectptr.h> + +namespace log4cxx +{ + class Level; + class File; + typedef helpers::ObjectPtrT<Level> LevelPtr; + + namespace spi + { + class LoggerRepository; + typedef helpers::ObjectPtrT<LoggerRepository> LoggerRepositoryPtr; + } + + namespace helpers + { + class Properties; + + class Object; + typedef ObjectPtrT<Object> 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 <code>value</code> is "true", then <code>true</code> is + returned. If <code>value</code> is "false", then + <code>true</code> is returned. Otherwise, <code>default</code> is + returned. + + <p>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 <code>key</code> in + <code>props</code>. Then perform variable substitution on the + found value. + */ + static LogString findAndSubst(const LogString& key, Properties& props); + +/** +Perform variable substitution in string <code>val</code> from the +values of keys found in the system propeties. + +<p>The variable substitution delimeters are <b>${</b> and <b>}</b>. + +<p>For example, if the System properties contains "key=value", then +the call +<pre> +String s = OptionConverter.substituteVars("Value of key is ${key}."); +</pre> + +will set the variable <code>s</code> to "Value of key is value.". + +<p>If no value could be found for the specified key, then the +<code>props</code> parameter is searched, if the value could not +be found there, then substitution defaults to the empty string. + +<p>For example, if system propeties contains no value for the key +"inexistentKey", then the call + +<pre> +String s = OptionConverter.subsVars("Value of inexistentKey is [${inexistentKey}]"); +</pre> +will set <code>s</code> to "Value of inexistentKey is []" + +<p>An IllegalArgumentException is thrown if +<code>val</code> contains a start delimeter "${" which is not +balanced by a stop delimeter "}". </p> + +@param val The string on which variable substitution is performed. +@param props The properties from which variable substitution is performed. +@throws IllegalArgumentException if <code>val</code> 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 + <code>className</code> is a subclass of + <code>superClass</code>. If that test fails or the object could + not be instantiated, then <code>defaultValue</code> 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. + + <p>The configFileName must point to a file which will be + interpreted by a new instance of a log4cxx configurator. + + <p>All configurations steps are taken on the + <code>hierarchy</code> passed as a parameter. + + <p> + @param configFileName The location of the configuration file. + @param clazz The classname, of the log4cxx configurator which + will parse the file <code>configFileName</code>. 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 <code>configFileName</code> 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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/outputstream.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/outputstream.h new file mode 100644 index 0000000000..2c145c8068 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/outputstream.h @@ -0,0 +1,59 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/objectimpl.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/outputstreamwriter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/outputstreamwriter.h new file mode 100644 index 0000000000..bbcd907241 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/outputstreamwriter.h @@ -0,0 +1,65 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/writer.h> +#include <log4cxx/helpers/outputstream.h> +#include <log4cxx/helpers/charsetencoder.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/pool.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/pool.h new file mode 100644 index 0000000000..2c902f6e8d --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/pool.h @@ -0,0 +1,59 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/log4cxx.h> +#include <string> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/properties.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/properties.h new file mode 100644 index 0000000000..c238496f0e --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/properties.h @@ -0,0 +1,186 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/logstring.h> +#include <log4cxx/helpers/objectptr.h> +#include <log4cxx/helpers/objectimpl.h> +#include <log4cxx/helpers/inputstream.h> +#include <map> +#include <vector> +#include <istream> + +namespace log4cxx +{ + namespace helpers + { + class LOG4CXX_EXPORT Properties + { + private: + typedef std::map<LogString, LogString> 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. + + <p>Every property occupies one line of the input stream. + Each line is terminated by a line terminator (<code>\\n</code> or + <code>\\r</code> or <code>\\r\\n</code>). + Lines from the input stream are processed until end of file is reached + on the input stream. + + <p>A line that contains only whitespace or whose first non-whitespace + character is an ASCII <code>#</code> or <code>!</code> is ignored + (thus, <code>#</code> or <code>!</code> indicate comment lines). + + <p>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 <code>=</code>, <code>:</code>, + or whitespace character. All of the + key termination characters may be included in the key by preceding them + with a <code>\\</code>. Any whitespace after the key is skipped; + if the first + non-whitespace character after the key is <code>=</code> or + <code>:</code>, 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 <code>\\t</code>, + <code>\\n</code>, <code>\\r</code>, <code>\\</code>, <code>\\"</code>, + <code>\\'</code>, <code>\\</code> (a backslash and a space), and + <code>\\uxxxx</code> are recognized + and converted to single characters. Moreover, if the last character on + the line is <code>\\</code>, then the next line is treated as a + continuation of the + current line; the <code>\\</code> 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. + + <p>As an example, each of the following four lines specifies the key + "Truth" and the associated element value "Beauty": + + <pre> + Truth = Beauty + Truth:Beauty + Truth :Beauty + </pre> + + As another example, the following three lines specify a single + property: + <pre> + fruits apple, banana, pear, \ + cantaloupe, watermelon, \ + kiwi, mango + </pre> + The key is "<code>fruits</code>" and the associated element is: + <pre> +"apple, banana, pear, cantaloupe, watermelon, kiwi, mango" + </pre> + 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. + + <p>As a third example, the line: + <pre> +cheeses + </pre> + specifies that the key is "<code>cheeses</code>" 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<LogString> propertyNames() const; + }; // class Properties + } // namespace helpers +} // namespace log4cxx + +#if defined(_MSC_VER) +#pragma warning (pop) +#endif + + +#endif //_LOG4CXX_HELPER_PROPERTIES_H diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/propertyresourcebundle.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/propertyresourcebundle.h new file mode 100644 index 0000000000..5032873b45 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/propertyresourcebundle.h @@ -0,0 +1,62 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/resourcebundle.h> +#include <log4cxx/helpers/properties.h> +#include <log4cxx/helpers/inputstream.h> + +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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/reader.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/reader.h new file mode 100644 index 0000000000..f61ca66922 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/reader.h @@ -0,0 +1,72 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/objectimpl.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/relativetimedateformat.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/relativetimedateformat.h new file mode 100644 index 0000000000..b60d62f0dd --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/relativetimedateformat.h @@ -0,0 +1,47 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/dateformat.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/resourcebundle.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/resourcebundle.h new file mode 100644 index 0000000000..44c52e25b4 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/resourcebundle.h @@ -0,0 +1,89 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/objectimpl.h> +#include <log4cxx/helpers/objectptr.h> + +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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/serversocket.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/serversocket.h new file mode 100644 index 0000000000..7f0c90bc60 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/serversocket.h @@ -0,0 +1,64 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/socket.h> +#include <log4cxx/helpers/mutex.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/simpledateformat.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/simpledateformat.h new file mode 100644 index 0000000000..9c27f6859d --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/simpledateformat.h @@ -0,0 +1,96 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/dateformat.h> +#include <vector> +#include <time.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/socket.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/socket.h new file mode 100644 index 0000000000..2f1636b72d --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/socket.h @@ -0,0 +1,90 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/inetaddress.h> +#include <log4cxx/helpers/pool.h> + + +namespace log4cxx +{ + namespace helpers + { + class ByteBuffer; + /** + <p>This class implements client sockets (also called just "sockets"). A socket + is an endpoint for communication between two machines. + <p>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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/socketoutputstream.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/socketoutputstream.h new file mode 100644 index 0000000000..6bca173353 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/socketoutputstream.h @@ -0,0 +1,74 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/logstring.h> +#include <log4cxx/helpers/outputstream.h> +#include <log4cxx/helpers/socket.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/strftimedateformat.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/strftimedateformat.h new file mode 100644 index 0000000000..043205bd1f --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/strftimedateformat.h @@ -0,0 +1,68 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/dateformat.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/strictmath.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/strictmath.h new file mode 100644 index 0000000000..8c4194be1c --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/strictmath.h @@ -0,0 +1,49 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/log4cxx.h> + +namespace log4cxx +{ + namespace helpers + { + /** + The class StrictMath contains methods for performing basic numeric + operations + */ + class StrictMath + { + public: + template<typename _type> static inline const _type& + minimum(const _type& a, const _type& b) + { + return (a < b) ? a : b; + } + + template<typename _type> 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/stringhelper.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/stringhelper.h new file mode 100644 index 0000000000..e8e170d8eb --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/stringhelper.h @@ -0,0 +1,61 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/logstring.h> +#include <vector> + + +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<LogString>& params); + }; + } +} + +#endif //_LOG4CXX_HELPERS_STRING_HELPER_H diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/stringtokenizer.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/stringtokenizer.h new file mode 100644 index 0000000000..18320c4be1 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/stringtokenizer.h @@ -0,0 +1,49 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/logstring.h> +#include <log4cxx/helpers/exception.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/synchronized.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/synchronized.h new file mode 100644 index 0000000000..05476dbaa5 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/synchronized.h @@ -0,0 +1,44 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/log4cxx.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/syslogwriter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/syslogwriter.h new file mode 100644 index 0000000000..bc2378cb1f --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/syslogwriter.h @@ -0,0 +1,48 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/objectptr.h> +#include <log4cxx/helpers/inetaddress.h> +#include <log4cxx/helpers/datagramsocket.h> + + 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/system.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/system.h new file mode 100644 index 0000000000..3885687b55 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/system.h @@ -0,0 +1,53 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/logstring.h> +#include <log4cxx/helpers/exception.h> + + 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/systemerrwriter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/systemerrwriter.h new file mode 100644 index 0000000000..7fda4721b2 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/systemerrwriter.h @@ -0,0 +1,59 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/writer.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/systemoutwriter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/systemoutwriter.h new file mode 100644 index 0000000000..af7c55b242 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/systemoutwriter.h @@ -0,0 +1,58 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/writer.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/tchar.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/tchar.h new file mode 100644 index 0000000000..bf3412c92b --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/tchar.h @@ -0,0 +1,171 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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<wchar_t>. +* +*/ + +#endif //_LOG4CXX_HELPERS_TCHAR_H diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/thread.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/thread.h new file mode 100644 index 0000000000..09a47d6c79 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/thread.h @@ -0,0 +1,184 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/log4cxx.h> +#include <log4cxx/helpers/pool.h> + +#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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/threadlocal.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/threadlocal.h new file mode 100644 index 0000000000..9275811917 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/threadlocal.h @@ -0,0 +1,85 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/log4cxx.h> +#include <log4cxx/helpers/pool.h> + +#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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/threadspecificdata.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/threadspecificdata.h new file mode 100644 index 0000000000..b02cf517a5 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/threadspecificdata.h @@ -0,0 +1,67 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/ndc.h> +#include <log4cxx/mdc.h> + + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/timezone.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/timezone.h new file mode 100644 index 0000000000..67c0626f75 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/timezone.h @@ -0,0 +1,70 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/logstring.h> +#include <log4cxx/helpers/objectimpl.h> +#include <log4cxx/helpers/objectptr.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/transcoder.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/transcoder.h new file mode 100644 index 0000000000..0559ba9ecc --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/transcoder.h @@ -0,0 +1,256 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/logstring.h> + + +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<UniChar>& src, LogString& dst); + static void encode(const LogString& src, std::basic_string<UniChar>& 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<UniChar>& in, + std::basic_string<UniChar>::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<UniChar>& 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<UniChar>& var = src + +#define LOG4CXX_DECODE_UNICHAR(var, src) \ +const log4cxx::LogString& var = src + +#else + +#define LOG4CXX_ENCODE_UNICHAR(var, src) \ +std::basic_string<UniChar> 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/transform.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/transform.h new file mode 100644 index 0000000000..08be797285 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/transform.h @@ -0,0 +1,62 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/logstring.h> + +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 (<![CDATA[) and final CDEnd (]]>) 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/writer.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/writer.h new file mode 100644 index 0000000000..debe834bf0 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/writer.h @@ -0,0 +1,58 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/objectimpl.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/xml.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/xml.h new file mode 100644 index 0000000000..a6b212bf50 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/xml.h @@ -0,0 +1,131 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/logstring.h> +#include <log4cxx/helpers/objectptr.h> +#include <log4cxx/helpers/object.h> +#include <log4cxx/helpers/exception.h> + +namespace log4cxx +{ + class File; + namespace helpers + { + class XMLDOMNode; + typedef helpers::ObjectPtrT<XMLDOMNode> XMLDOMNodePtr; + + class XMLDOMDocument; + typedef helpers::ObjectPtrT<XMLDOMDocument> XMLDOMDocumentPtr; + + class XMLDOMNodeList; + typedef helpers::ObjectPtrT<XMLDOMNodeList> 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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/hierarchy.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/hierarchy.h new file mode 100644 index 0000000000..ff6854d3e5 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/hierarchy.h @@ -0,0 +1,283 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/spi/loggerrepository.h> +#include <log4cxx/spi/loggerfactory.h> +#include <vector> +#include <map> +#include <log4cxx/provisionnode.h> +#include <log4cxx/helpers/objectimpl.h> +#include <log4cxx/spi/hierarchyeventlistener.h> +#include <log4cxx/helpers/pool.h> + +namespace log4cxx +{ + /** + This class is specialized in retrieving loggers by name and also + maintaining the logger hierarchy. + + <p><em>The casual user does not have to deal with this class + directly.</em> + + <p>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. + + <p>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<LogString, LoggerPtr> LoggerMap; + LoggerMap* loggers; + + typedef std::map<LogString, ProvisionNode> 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. + + <p>You should <em>really</em> 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 <code>null</code>. + + @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 <code>l</code> 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 <code>enable</code> + state. + */ + const LevelPtr& getThreshold() const; + + /** + Return a new logger instance named as the first parameter using + the default factory. + + <p>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 + <code>factory</code>. + + <p>If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated by the + <code>factory</code> 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. + + <p>The root logger is <em>not</em> included in the returned + LoggerList. */ + LoggerList getCurrentLoggers() const; + + /** + Get the root of this hierarchy. + */ + LoggerPtr getRootLogger() const; + + /** + This method will return <code>true</code> if this repository is + disabled for <code>level</code> object passed as parameter and + <code>false</code> 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 <code>null</code>, + sets their additivity flag to <code>true</code> and sets the level + of the root logger to DEBUG. Moreover, + message disabling is set its default "off" value. + + <p>Existing categories are not removed. They are just reset. + + <p>This method should be used sparingly and with care as it will + block all logging until it is completed.</p> + */ + void resetConfiguration(); + + /** + Used by subclasses to add a renderer to the hierarchy passed as parameter. + */ + /** + Shutting down a hierarchy will <em>safely</em> close and remove + all appenders in all categories including the root logger. + + <p>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. + + <p>The <code>shutdown</code> 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/htmllayout.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/htmllayout.h new file mode 100644 index 0000000000..8c0c6a7f32 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/htmllayout.h @@ -0,0 +1,133 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/layout.h> +#include <log4cxx/helpers/iso8601dateformat.h> + + + +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 <b>LocationInfo</b> 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. + + <p>If you are embedding this layout within an + {@link net::SMTPAppender SMTPAppender} then make sure + to set the <b>LocationInfo</b> option of that appender as well. + */ + inline void setLocationInfo(bool locationInfoFlag) + { this->locationInfo = locationInfoFlag; } + + /** + Returns the current value of the <b>LocationInfo</b> option. + */ + inline bool getLocationInfo() const + { return locationInfo; } + + /** + The <b>Title</b> option takes a String value. This option sets the + document title of the generated HTML document. + <p>Defaults to 'Log4cxx Log Messages'. + */ + inline void setTitle(const LogString& title1) + { this->title.assign(title1); } + + /** + Returns the current value of the <b>Title</b> 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 <code>false</code>. */ + 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/layout.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/layout.h new file mode 100644 index 0000000000..b07d65049e --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/layout.h @@ -0,0 +1,97 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/objectimpl.h> +#include <log4cxx/helpers/objectptr.h> +#include <log4cxx/spi/optionhandler.h> +#include <log4cxx/spi/loggingevent.h> + + +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 + <code>false</code>. Otherwise, if the layout ignores throwable + object, then the layout should return <code>true</code>. + + <p>The SimpleLayout, TTCCLayout, + PatternLayout all return <code>true</code>. The {@link + xml::XMLLayout XMLLayout} returns <code>false</code>. + */ + virtual bool ignoresThrowable() const = 0; + }; + LOG4CXX_PTR_DEF(Layout); +} + +#if defined(_MSC_VER) +#pragma warning ( pop ) +#endif + +#endif // _LOG4CXX_LAYOUT_H diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/level.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/level.h new file mode 100644 index 0000000000..e675e45e9e --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/level.h @@ -0,0 +1,285 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/logstring.h> +#include <limits.h> +#include <log4cxx/helpers/objectimpl.h> +#include <log4cxx/helpers/objectptr.h> + + +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 + <code>OFF</code>, <code>FATAL</code>, <code>ERROR</code>, + <code>WARN</code>, <code>INFO</code>, <code>DEBUG</code> and + <code>ALL</code>. + <p>The <code>Level</code> 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 + <code>defaultLevel</code>. + * @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 + <code>defaultLevel</code>. + * @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<UniChar>& sArg); + /** + Convert the string passed as argument to a level. If the + conversion fails, then this method returns the value of + <code>defaultLevel</code>. + * @param sArg level name. + * @param defaultLevel level to return if no match. + * @return + */ + static LevelPtr toLevel(const std::basic_string<UniChar>& sArg, + const LevelPtr& defaultLevel); + /** + * Get the name of the level. + * @param name buffer to which name is appended. + */ + void toString(std::basic_string<UniChar>& 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 + <code>defaultLevel</code>. + * @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 + <code>defaultLevel</code>. + * @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 <code>true</code> if this level has a higher or equal + level than the level passed as argument, <code>false</code> + otherwise. + + <p>You should think twice before overriding the default + implementation of <code>isGreaterOrEqual</code> 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/log4cxx.h.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/log4cxx.h.in new file mode 100644 index 0000000000..426063157a --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/log4cxx.h.in @@ -0,0 +1,51 @@ +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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> T##Ptr +#define LOG4CXX_LIST_DEF(N, T) typedef std::vector<T> N + + +#endif diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/log4cxx.hw b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/log4cxx.hw new file mode 100644 index 0000000000..670cd32fe1 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/log4cxx.hw @@ -0,0 +1,99 @@ +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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<T>; \ +typedef log4cxx::helpers::ObjectPtrT<T> T##Ptr +#define LOG4CXX_LIST_DEF(N, T) \ +template class LOG4CXX_EXPORT std::allocator<T>; \ +template class LOG4CXX_EXPORT std::vector<T>; \ +typedef std::vector<T> 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<T>; \ +typedef log4cxx::helpers::ObjectPtrT<T> T##Ptr +#define LOG4CXX_LIST_DEF(N, T) \ +extern template class LOG4CXX_EXPORT std::allocator<T>; \ +extern template class LOG4CXX_EXPORT std::vector<T>; \ +typedef std::vector<T> N +// +// pointer and list definition macros for all other cases +// +#else +#define LOG4CXX_PTR_DEF(T) typedef log4cxx::helpers::ObjectPtrT<T> T##Ptr +#define LOG4CXX_LIST_DEF(N, T) typedef std::vector<T> N +#endif + + +#endif + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/logger.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/logger.h new file mode 100644 index 0000000000..5d82b36b39 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/logger.h @@ -0,0 +1,1924 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/appenderattachableimpl.h> +#include <log4cxx/level.h> +#include <log4cxx/helpers/pool.h> +#include <log4cxx/helpers/mutex.h> +#include <log4cxx/spi/location/locationinfo.h> +#include <log4cxx/helpers/resourcebundle.h> +#include <log4cxx/helpers/messagebuffer.h> + + +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 + <code>level</code> 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 <code>false</code> 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 <code>false</code> too. See + the user manual for more details. */ + bool additive; + + protected: + friend class DefaultLoggerFactory; + + /** + This constructor created a new <code>logger</code> instance and + sets its name. + + <p>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 <code>newAppender</code> to the list of appenders of this + Logger instance. + + <p>If <code>newAppender</code> 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 + <code>this</code>. If no appenders could be found, emit a + warning. + + <p>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. + + <p>This method first checks if this logger is <code>DEBUG</code> + enabled by comparing the level of this logger with the + DEBUG level. If this logger is + <code>DEBUG</code> 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. + + <p>This method first checks if this logger is <code>DEBUG</code> + enabled by comparing the level of this logger with the + DEBUG level. If this logger is + <code>DEBUG</code> 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. + + <p>This method first checks if this logger is <code>DEBUG</code> + enabled by comparing the level of this logger with the + DEBUG level. If this logger is + <code>DEBUG</code> 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. + + <p>This method first checks if this logger is <code>DEBUG</code> + enabled by comparing the level of this logger with the + DEBUG level. If this logger is + <code>DEBUG</code> 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. + + <p>This method first checks if this logger is <code>DEBUG</code> + enabled by comparing the level of this logger with the + DEBUG level. If this logger is + <code>DEBUG</code> 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<UniChar>& msg, const log4cxx::spi::LocationInfo& location) const; + /** + Log a message string with the DEBUG level. + + <p>This method first checks if this logger is <code>DEBUG</code> + enabled by comparing the level of this logger with the + DEBUG level. If this logger is + <code>DEBUG</code> 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<UniChar>& msg) const; +#endif +#if LOG4CXX_CFSTRING_API + /** + Log a message string with the DEBUG level. + + <p>This method first checks if this logger is <code>DEBUG</code> + enabled by comparing the level of this logger with the + DEBUG level. If this logger is + <code>DEBUG</code> 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. + + <p>This method first checks if this logger is <code>DEBUG</code> + enabled by comparing the level of this logger with the + DEBUG level. If this logger is + <code>DEBUG</code> 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. + + <p>This method first checks if this logger is <code>ERROR</code> + enabled by comparing the level of this logger with the + ERROR level. If this logger is + <code>ERROR</code> 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. + + <p>This method first checks if this logger is <code>ERROR</code> + enabled by comparing the level of this logger with the + ERROR level. If this logger is + <code>ERROR</code> 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. + + <p>This method first checks if this logger is <code>ERROR</code> + enabled by comparing the level of this logger with the + ERROR level. If this logger is + <code>ERROR</code> 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. + + <p>This method first checks if this logger is <code>ERROR</code> + enabled by comparing the level of this logger with the + ERROR level. If this logger is + <code>ERROR</code> 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. + + <p>This method first checks if this logger is <code>ERROR</code> + enabled by comparing the level of this logger with the + ERROR level. If this logger is + <code>ERROR</code> 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<UniChar>& msg, const log4cxx::spi::LocationInfo& location) const; + /** + Log a message string with the ERROR level. + + <p>This method first checks if this logger is <code>ERROR</code> + enabled by comparing the level of this logger with the + ERROR level. If this logger is + <code>ERROR</code> 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<UniChar>& msg) const; +#endif +#if LOG4CXX_CFSTRING_API + /** + Log a message string with the ERROR level. + + <p>This method first checks if this logger is <code>ERROR</code> + enabled by comparing the level of this logger with the + ERROR level. If this logger is + <code>ERROR</code> 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. + + <p>This method first checks if this logger is <code>ERROR</code> + enabled by comparing the level of this logger with the + ERROR level. If this logger is + <code>ERROR</code> 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. + + <p>This method first checks if this logger is <code>FATAL</code> + enabled by comparing the level of this logger with the + FATAL level. If this logger is + <code>FATAL</code> 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. + + <p>This method first checks if this logger is <code>ERROR</code> + enabled by comparing the level of this logger with the + ERROR level. If this logger is + <code>ERROR</code> 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. + + <p>This method first checks if this logger is <code>ERROR</code> + enabled by comparing the level of this logger with the + ERROR level. If this logger is + <code>ERROR</code> 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. + + <p>This method first checks if this logger is <code>ERROR</code> + enabled by comparing the level of this logger with the + ERROR level. If this logger is + <code>ERROR</code> 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. + + <p>This method first checks if this logger is <code>ERROR</code> + enabled by comparing the level of this logger with the + ERROR level. If this logger is + <code>ERROR</code> 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<UniChar>& msg, const log4cxx::spi::LocationInfo& location) const; + /** + Log a message string with the ERROR level. + + <p>This method first checks if this logger is <code>ERROR</code> + enabled by comparing the level of this logger with the + ERROR level. If this logger is + <code>ERROR</code> 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<UniChar>& msg) const; +#endif +#if LOG4CXX_CFSTRING_API + /** + Log a message string with the ERROR level. + + <p>This method first checks if this logger is <code>ERROR</code> + enabled by comparing the level of this logger with the + ERROR level. If this logger is + <code>ERROR</code> 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. + + <p>This method first checks if this logger is <code>ERROR</code> + enabled by comparing the level of this logger with the + ERROR level. If this logger is + <code>ERROR</code> 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. + @param timeStamp event time stamp. + @param location location of source of logging request. + @param threadName event thread name. + */ + void forcedLog(const LevelPtr& level, const std::string& message, + log4cxx_time_t timeStamp, + const log4cxx::spi::LocationInfo& location, + const LogString& threadName) 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<UniChar>& 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<UniChar>& 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 <code>name</code>. + <p>Return the appender with that name if in the list. Return + <code>NULL</code> otherwise. */ + AppenderPtr getAppender(const LogString& name) const; + + /** + Starting from this logger, search the logger hierarchy for a + non-null level and return it. + + <p>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 + <code>Logger</code> 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<UniChar>& 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. + + <p>The root logger will return <code>0</code>. + */ + 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<UniChar>& 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 + <code>factory</code> parameter. + + <p>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 + <code>factory</code> parameter. + + <p>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 + <code>factory</code> parameter. + + <p>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 + <code>factory</code> parameter. + + <p>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<UniChar>& 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 + <code>factory</code> parameter. + + <p>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 <em>inherited</em> 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 <code>NULL</code> is returned. + */ + helpers::ResourceBundlePtr getResourceBundle() const; + + protected: + /** + Returns the string resource coresponding to <code>key</code> 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. + + <p>This method first checks if this logger is <code>INFO</code> + enabled by comparing the level of this logger with the + INFO level. If this logger is + <code>INFO</code> 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. + + <p>This method first checks if this logger is <code>INFO</code> + enabled by comparing the level of this logger with the + INFO level. If this logger is + <code>INFO</code> 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. + + <p>This method first checks if this logger is <code>INFO</code> + enabled by comparing the level of this logger with the + INFO level. If this logger is + <code>INFO</code> 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. + + <p>This method first checks if this logger is <code>INFO</code> + enabled by comparing the level of this logger with the + INFO level. If this logger is + <code>INFO</code> 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<UniChar>& msg, const log4cxx::spi::LocationInfo& location) const; + /** + Log a message string with the INFO level. + + <p>This method first checks if this logger is <code>INFO</code> + enabled by comparing the level of this logger with the + INFO level. If this logger is + <code>INFO</code> 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<UniChar>& msg) const; +#endif +#if LOG4CXX_CFSTRING_API + /** + Log a message string with the INFO level. + + <p>This method first checks if this logger is <code>INFO</code> + enabled by comparing the level of this logger with the + INFO level. If this logger is + <code>INFO</code> 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. + + <p>This method first checks if this logger is <code>INFO</code> + enabled by comparing the level of this logger with the + INFO level. If this logger is + <code>INFO</code> 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 <code>DEBUG</code> + * Level. + * + * <p> This function is intended to lessen the computational cost of + * disabled log debug statements. + * + * <p> For some <code>logger</code> Logger object, when you write, + * <pre> + * logger->debug("debug message"); + * </pre> + * + * <p>You incur the cost constructing the message, concatenation in + * this case, regardless of whether the message is logged or not. + * + * <p>If you are worried about speed, then you should write + * <pre> + * if(logger->isDebugEnabled()) { + * logger->debug("debug message"); + * } + * </pre> + * + * <p>This way you will not incur the cost of parameter + * construction if debugging is disabled for <code>logger</code>. On + * the other hand, if the <code>logger</code> is debug enabled, you + * will incur the cost of evaluating whether the logger is debug + * enabled twice. Once in <code>isDebugEnabled</code> and once in + * the <code>debug</code>. This is an insignificant overhead + * since evaluating a logger takes about 1%% of the time it + * takes to actually log. + * + * @return bool - <code>true</code> if this logger is debug + * enabled, <code>false</code> 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 <code>level</code>. + */ + bool isEnabledFor(const LevelPtr& level) const; + + + /** + Check whether this logger is enabled for the info Level. + See also #isDebugEnabled. + + @return bool - <code>true</code> if this logger is enabled + for level info, <code>false</code> otherwise. + */ + bool isInfoEnabled() const; + + /** + Check whether this logger is enabled for the warn Level. + See also #isDebugEnabled. + + @return bool - <code>true</code> if this logger is enabled + for level warn, <code>false</code> otherwise. + */ + bool isWarnEnabled() const; + + /** + Check whether this logger is enabled for the error Level. + See also #isDebugEnabled. + + @return bool - <code>true</code> if this logger is enabled + for level error, <code>false</code> otherwise. + */ + bool isErrorEnabled() const; + + /** + Check whether this logger is enabled for the fatal Level. + See also #isDebugEnabled. + + @return bool - <code>true</code> if this logger is enabled + for level fatal, <code>false</code> otherwise. + */ + bool isFatalEnabled() const; + + /** + Check whether this logger is enabled for the trace level. + See also #isDebugEnabled. + + @return bool - <code>true</code> if this logger is enabled + for level trace, <code>false</code> otherwise. + */ + bool isTraceEnabled() const; + + /** + Log a localized and parameterized message. + + First, the user supplied + <code>key</code> is searched in the resource bundle. Next, the resulting + pattern is formatted using helpers::StringHelper::format method with the user + supplied string array <code>params</code>. + + @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 <code>{0}</code>, + <code>{1}</code> etc. within the pattern. + + @see #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 + <code>key</code> is searched in the resource bundle. Next, the resulting + pattern is formatted using helpers::StringHelper::format method with the user + supplied string array <code>params</code>. + + @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 + <code>key</code> is searched in the resource bundle. Next, the resulting + pattern is formatted using helpers::StringHelper::format method with the user + supplied string array <code>params</code>. + + @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 + <code>key</code> is searched in the resource bundle. Next, the resulting + pattern is formatted using helpers::StringHelper::format method with the user + supplied string array <code>params</code>. + + @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 + <code>key</code> is searched in the resource bundle. Next, the resulting + pattern is formatted using helpers::StringHelper::format method with the user + supplied string array <code>params</code>. + + @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 + <code>key</code> is searched in the resource bundle. Next, the resulting + pattern is formatted using helpers::StringHelper::format method with the user + supplied string array <code>params</code>. + + @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 + <code>key</code> is searched in the resource bundle. Next, the resulting + pattern is formatted using helpers::StringHelper::format method with the user + supplied string array <code>params</code>. + + @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 + <code>key</code> is searched in the resource bundle. Next, the resulting + pattern is formatted using helpers::StringHelper::format method with the user + supplied string array <code>params</code>. + + @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 + <code>key</code> is searched in the resource bundle. Next, the resulting + pattern is formatted using helpers::StringHelper::format method with the user + supplied string array <code>params</code>. + + @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 + <code>key</code> is searched in the resource bundle. Next, the resulting + pattern is formatted using helpers::StringHelper::format method with the user + supplied string array <code>params</code>. + + @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<UniChar>& key, + const log4cxx::spi::LocationInfo& locationInfo) const; + /** + Log a localized and parameterized message. + + First, the user supplied + <code>key</code> is searched in the resource bundle. Next, the resulting + pattern is formatted using helpers::StringHelper::format method with the user + supplied string array <code>params</code>. + + @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<UniChar>& key, + const log4cxx::spi::LocationInfo& locationInfo, + const std::basic_string<UniChar>& val1) const; + /** + Log a localized and parameterized message. + + First, the user supplied + <code>key</code> is searched in the resource bundle. Next, the resulting + pattern is formatted using helpers::StringHelper::format method with the user + supplied string array <code>params</code>. + + @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<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 + <code>key</code> is searched in the resource bundle. Next, the resulting + pattern is formatted using helpers::StringHelper::format method with the user + supplied string array <code>params</code>. + + @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<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; +#endif +#if LOG4CXX_CFSTRING_API + /** + Log a localized and parameterized message. + + First, the user supplied + <code>key</code> is searched in the resource bundle. Next, the resulting + pattern is formatted using helpers::StringHelper::format method with the user + supplied string array <code>params</code>. + + @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 + <code>key</code> is searched in the resource bundle. Next, the resulting + pattern is formatted using helpers::StringHelper::format method with the user + supplied string array <code>params</code>. + + @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 + <code>key</code> is searched in the resource bundle. Next, the resulting + pattern is formatted using helpers::StringHelper::format method with the user + supplied string array <code>params</code>. + + @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 + <code>key</code> is searched in the resource bundle. Next, the resulting + pattern is formatted using helpers::StringHelper::format method with the user + supplied string array <code>params</code>. + + @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 <b>wrapper</b> 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 <b>wrapper</b> 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 <b>wrapper</b> 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 <b>wrapper</b> 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 <b>wrapper</b> 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<UniChar>& message, + const log4cxx::spi::LocationInfo& location) const; + /** + This is the most generic printing method. It is intended to be + invoked by <b>wrapper</b> 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<UniChar>& message) const; +#endif +#if LOG4CXX_CFSTRING_API + /** + This is the most generic printing method. It is intended to be + invoked by <b>wrapper</b> 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 <b>wrapper</b> 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 <b>wrapper</b> 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. + <p>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. + + <p>As in <pre> logger->setLevel(Level::getDebug()); </pre> + + <p>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. + + <p>This method first checks if this logger is <code>WARN</code> + enabled by comparing the level of this logger with the + WARN level. If this logger is + <code>WARN</code> 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. + + <p>This method first checks if this logger is <code>WARN</code> + enabled by comparing the level of this logger with the + WARN level. If this logger is + <code>WARN</code> 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. + + <p>This method first checks if this logger is <code>WARN</code> + enabled by comparing the level of this logger with the + WARN level. If this logger is + <code>WARN</code> 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<UniChar>& msg, const log4cxx::spi::LocationInfo& location) const; + /** + Log a message string with the WARN level. + + <p>This method first checks if this logger is <code>WARN</code> + enabled by comparing the level of this logger with the + WARN level. If this logger is + <code>WARN</code> 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<UniChar>& msg) const; +#endif +#if LOG4CXX_CFSTRING_API + /** + Log a message string with the WARN level. + + <p>This method first checks if this logger is <code>WARN</code> + enabled by comparing the level of this logger with the + WARN level. If this logger is + <code>WARN</code> 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. + + <p>This method first checks if this logger is <code>WARN</code> + enabled by comparing the level of this logger with the + WARN level. If this logger is + <code>WARN</code> 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. + + <p>This method first checks if this logger is <code>WARN</code> + enabled by comparing the level of this logger with the + WARN level. If this logger is + <code>WARN</code> 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. + + <p>This method first checks if this logger is <code>WARN</code> + enabled by comparing the level of this logger with the + WARN level. If this logger is + <code>WARN</code> 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. + + <p>This method first checks if this logger is <code>TRACE</code> + enabled by comparing the level of this logger with the + TRACE level. If this logger is + <code>TRACE</code> 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. + + <p>This method first checks if this logger is <code>TRACE</code> + enabled by comparing the level of this logger with the + TRACE level. If this logger is + <code>TRACE</code> 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. + + <p>This method first checks if this logger is <code>TRACE</code> + enabled by comparing the level of this logger with the + TRACE level. If this logger is + <code>TRACE</code> 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<UniChar>& msg, const log4cxx::spi::LocationInfo& location) const; + /** + Log a message string with the TRACE level. + + <p>This method first checks if this logger is <code>TRACE</code> + enabled by comparing the level of this logger with the + TRACE level. If this logger is + <code>TRACE</code> 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<UniChar>& msg) const; +#endif +#if LOG4CXX_CFSTRING_API + /** + Log a message string with the TRACE level. + + <p>This method first checks if this logger is <code>TRACE</code> + enabled by comparing the level of this logger with the + TRACE level. If this logger is + <code>TRACE</code> 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. + + <p>This method first checks if this logger is <code>TRACE</code> + enabled by comparing the level of this logger with the + TRACE level. If this logger is + <code>TRACE</code> 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. + + <p>This method first checks if this logger is <code>TRACE</code> + enabled by comparing the level of this logger with the + TRACE level. If this logger is + <code>TRACE</code> 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. + + <p>This method first checks if this logger is <code>TRACE</code> + enabled by comparing the level of this logger with the + TRACE level. If this logger is + <code>TRACE</code> 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 <log4cxx/spi/loggerrepository.h> + +#endif //_LOG4CXX_LOGGER_H diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/logmanager.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/logmanager.h new file mode 100644 index 0000000000..b9ec0b6c4b --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/logmanager.h @@ -0,0 +1,212 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/logstring.h> +#include <vector> +#include <log4cxx/spi/repositoryselector.h> + +namespace log4cxx +{ + class Logger; + typedef helpers::ObjectPtrT<Logger> LoggerPtr; + typedef std::vector<LoggerPtr> LoggerList; + + namespace spi { + class LoggerFactory; + typedef helpers::ObjectPtrT<LoggerFactory> LoggerFactoryPtr; + } + + /** + * Use the <code>LogManager</code> class to retreive Logger + * instances or to operate on the current + * {@link log4cxx::spi::LoggerRepository LoggerRepository}. + * When the <code>LogManager</code> 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 <code>LoggerFactory</code> but only if the correct + <em>guard</em> is passed as parameter. + + <p>Initally the guard is null. If the guard is + <code>null</code>, then invoking this method sets the logger + factory and the guard. Following invocations will throw a {@link + helpers::IllegalArgumentException IllegalArgumentException}, + unless the previously set <code>guard</code> is passed as the second + parameter. + + <p>This allows a high-level component to set the {@link + spi::RepositorySelector RepositorySelector} used by the + <code>LogManager</code>. + */ + + 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<UniChar>& name); + /** + Retrieve the appropriate Logger instance. + * @param name logger name. + * @param factory logger factory. + * @return logger. + */ + static LoggerPtr getLogger(const std::basic_string<UniChar>& 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<UniChar>& 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/logstring.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/logstring.h new file mode 100644 index 0000000000..3bbcdf2d2a --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/logstring.h @@ -0,0 +1,90 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <string> +#include <log4cxx/log4cxx.h> + +#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<logchar> 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 <log4cxx/helpers/transcoder.h> +#endif + +#if defined(_MSC_VER) +#pragma warning (pop) +#endif + +#endif //_LOG4CXX_STRING_H diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/mdc.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/mdc.h new file mode 100644 index 0000000000..f9cd8753b1 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/mdc.h @@ -0,0 +1,240 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/log4cxx.h> +#include <log4cxx/logstring.h> +#include <map> + +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 <em>mapped + diagnostic contexts</em>. A <em>Mapped Diagnostic Context</em>, 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. + + <p><b><em>The MDC is managed on a per thread basis</em></b>. A + child thread automatically inherits a <em>copy</em> of the mapped + diagnostic context of its parent. + + */ + class LOG4CXX_EXPORT MDC + { + public: + /** String to string stl map. + */ + typedef std::map<LogString, LogString> 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 <code>o</code> parameter) as identified + * with the <code>key</code> parameter into the current thread's + * context map. + * + * <p>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 <code>o</code> parameter) as identified + * with the <code>key</code> parameter into the current thread's + * context map. + * + * <p>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 <code>key</code> parameter. + * + * <p>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 <code>key</code> 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 <code>key</code> + * 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 <code>o</code> parameter) as identified + * with the <code>key</code> parameter into the current thread's + * context map. + * + * <p>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 <code>key</code> parameter. + * + * <p>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 <code>key</code> + * 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<UniChar>& key, const std::basic_string<UniChar>& value); + /** + * Put a context value (the <code>o</code> parameter) as identified + * with the <code>key</code> parameter into the current thread's + * context map. + * + * <p>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<UniChar>& key, const std::basic_string<UniChar>& value); + /** + * Get the context identified by the <code>key</code> parameter. + * + * <p>This method has no side effects. + * @param key key. + * @return value for key, empty if not set. + * */ + static std::basic_string<UniChar> get(const std::basic_string<UniChar>& key); + /** + * Remove the the context identified by the <code>key</code> + * parameter. + * @param key key. + * @return value if key had been set, empty if not. + */ + static std::basic_string<UniChar> remove(const std::basic_string<UniChar>& 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 <code>o</code> parameter) as identified + * with the <code>key</code> parameter into the current thread's + * context map. + * + * <p>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 <code>key</code> parameter. + * + * <p>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 <code>key</code> + * 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 <code>key</code> + * 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/ndc.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/ndc.h new file mode 100644 index 0000000000..7cf7128c7b --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/ndc.h @@ -0,0 +1,353 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/log4cxx.h> +#include <log4cxx/logstring.h> +#include <stack> + +namespace log4cxx +{ + /** + the ndc class implements <i>nested diagnostic contexts</i> as + defined by neil harrison in the article "patterns for logging + diagnostic messages" part of the book "<i>pattern languages of + program design 3</i>" edited by martin et al. + + <p>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. + + <p>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. + + <p><em><b>note that ndcs are managed on a per thread + basis</b></em>. ndc operations such as #push, + #pop, #clear and #getDepth + affect the ndc of the <em>current</em> thread only. ndcs of other + threads remain unaffected. + + <p>for example, a servlet can build a per client request ndc + consisting the clients host name and other information contained in + the the request. <em>cookies</em> are another source of distinctive + information. to build an ndc one uses the #push + operation. simply put, + + <p><ul> + <li>contexts can be nested. + + <p><li>when entering a context, call <code>ndc.push</code>. as a + side effect, if there is no nested diagnostic context for the + current thread, this method will create it. + + <p><li>when leaving a context, call <code>ndc.pop</code>. + + <p><li><b>when exiting a thread make sure to call #remove + </b>. + </ul> + + <p>there is no penalty for forgetting to match each + <code>push</code> operation with a corresponding <code>pop</code>, + except the obvious mismatch between the real application context + and the context set in the ndc. + + <p>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. + + <p>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<LogString, LogString> DiagnosticContext; + typedef std::stack<DiagnosticContext> 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. + <p>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. + <p>The child thread uses the #inherit method to + inherit the parent's diagnostic context. + <p>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. + <p>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. + <p>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. + <p>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. + <p>The contents of the <code>message</code> 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. + <p>The contents of the <code>message</code> 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. + <p>Each thread that created a diagnostic context by calling + #push should call this method before exiting. Otherwise, + the memory used by the <b>thread</b> cannot be reclaimed by the + VM. + <p>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 <code>remove</code> 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. + <p>The contents of the <code>message</code> 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<UniChar>& message); + /** + Push new diagnostic context information for the current thread. + <p>The contents of the <code>message</code> parameter is + determined solely by the client. + @param message The new diagnostic context information. + */ + static void push(const std::basic_string<UniChar>& 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<UniChar>& 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<UniChar>& 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. + <p>The contents of the <code>message</code> 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/Makefile.am b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/Makefile.am new file mode 100644 index 0000000000..4a54041b1b --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/Makefile.am @@ -0,0 +1,18 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT 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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/Makefile.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/Makefile.in new file mode 100644 index 0000000000..690070bf88 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/Makefile.in @@ -0,0 +1,446 @@ +# 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: diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/smtpappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/smtpappender.h new file mode 100644 index 0000000000..eb1dbb5934 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/smtpappender.h @@ -0,0 +1,283 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/appenderskeleton.h> +#include <log4cxx/helpers/cyclicbuffer.h> +#include <log4cxx/spi/triggeringeventevaluator.h> + +namespace log4cxx +{ + namespace net + { + /** + Send an e-mail when a specific logging event occurs, typically on + errors or fatal errors. + <p>The number of logging events delivered in this e-mail depend on + the value of <b>BufferSize</b> option. The + <code>SMTPAppender</code> keeps only the last + <code>BufferSize</code> 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. + <p>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 <code>false</code> 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 <code>evaluator</code> 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 <b>To</b> option. + */ + LogString getTo() const; + + /** + Returns value of the <b>cc</b> option. + */ + LogString getCc() const; + + /** + Returns value of the <b>bcc</b> option. + */ + LogString getBcc() const; + + + /** + The <code>SMTPAppender</code> 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 <b>EvaluatorClass</b> option. + */ + LogString getEvaluatorClass(); + + /** + Returns value of the <b>From</b> option. + */ + LogString getFrom() const; + + /** + Returns value of the <b>Subject</b> option. + */ + LogString getSubject() const; + + + /** + The <b>From</b> option takes a string value which should be a + e-mail address of the sender. + */ + void setFrom(const LogString& from); + + /** + The <b>Subject</b> option takes a string value which should be a + the subject of the e-mail message. + */ + void setSubject(const LogString& subject); + + /** + The <b>BufferSize</b> option takes a positive integer + representing the maximum number of logging events to collect in a + cyclic buffer. When the <code>BufferSize</code> 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 <b>SMTPHost</b> 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 <b>SMTPHost</b> option. + */ + LogString getSMTPHost() const; + + /** + The <b>SMTPPort</b> 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 <b>SMTPHost</b> option. + */ + int getSMTPPort() const; + + /** + The <b>To</b> 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 <b>Cc</b> 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 <b>Bcc</b> 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 <b>SMTPUsername</b> 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 <b>SMTPUsername</b> option. + */ + LogString getSMTPUsername() const; + + /** + The <b>SMTPPassword</b> option takes a string value which should be a + the password for the SMTP server. + */ + void setSMTPPassword(const LogString& newVal); + + /** + Returns value of the <b>SMTPPassword</b> option. + */ + LogString getSMTPPassword() const; + + /** + Returns value of the <b>BufferSize</b> 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 <b>EvaluatorClass</b> 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 <b>LocationInfo</b> option is provided for compatibility with log4j + and has no effect in log4cxx. + */ + void setLocationInfo(bool locationInfo); + + /** + Returns value of the <b>LocationInfo</b> option. + */ + bool getLocationInfo() const; + }; // class SMTPAppender + + LOG4CXX_PTR_DEF(SMTPAppender); + + } // namespace net +} // namespace log4cxx + +#endif // _LOG4CXX_NET_SMTP_H diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/socketappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/socketappender.h new file mode 100644 index 0000000000..b32ade641d --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/socketappender.h @@ -0,0 +1,143 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/net/socketappenderskeleton.h> +#include <log4cxx/helpers/objectoutputstream.h> + +namespace log4cxx +{ + namespace net + { + + /** + Sends {@link log4cxx::spi::LoggingEvent LoggingEvent} objects to a remote a log server, + usually Apache Chainsaw. + + <p>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 <em>connector</em> + thread which periodically attempts to connect to the server. + + - Logging events are automatically <em>buffered</em> 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 <code>SocketAppender</code> 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 + <code>SocketAppender</code> explicitly. See also next item. + @n @n Long lived applications which create/destroy many + <code>SocketAppender</code> instances should be aware of this + destruction problem. Most other applications can safely + ignore it. + + - If the application hosting the <code>SocketAppender</code> + exits before the <code>SocketAppender</code> 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 <code>SocketAppender</code> 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 <code>address</code> and <code>port</code>. + */ + SocketAppender(helpers::InetAddressPtr& address, int port); + + /** + Connects to remote server at <code>host</code> and <code>port</code>. + */ + 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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/socketappenderskeleton.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/socketappenderskeleton.h new file mode 100644 index 0000000000..3dcb8a9182 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/socketappenderskeleton.h @@ -0,0 +1,179 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/appenderskeleton.h> +#include <log4cxx/helpers/socket.h> +#include <log4cxx/helpers/thread.h> +#include <log4cxx/helpers/objectoutputstream.h> + +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 <code>address</code> and <code>port</code>. + */ + SocketAppenderSkeleton(helpers::InetAddressPtr address, int port, int reconnectionDelay); + + /** + Connects to remote server at <code>host</code> and <code>port</code>. + */ + SocketAppenderSkeleton(const LogString& host, int port, int reconnectionDelay); + + /** + Connect to the specified <b>RemoteHost</b> and <b>Port</b>. + */ + void activateOptions(log4cxx::helpers::Pool& p); + + void close(); + + + /** + * This appender does not use a layout. Hence, this method + * returns <code>false</code>. + * + */ + bool requiresLayout() const + { return false; } + + /** + * The <b>RemoteHost</b> 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 <b>RemoteHost</b> option. + */ + inline const LogString& getRemoteHost() const + { return remoteHost; } + + /** + The <b>Port</b> 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 <b>Port</b> option. + */ + int getPort() const + { return port; } + + /** + The <b>LocationInfo</b> 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 <b>LocationInfo</b> option. + */ + bool getLocationInfo() const + { return locationInfo; } + + /** + The <b>ReconnectionDelay</b> 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. + + <p>Setting this option to zero turns off reconnection + capability. + */ + void setReconnectionDelay(int reconnectionDelay1) + { this->reconnectionDelay = reconnectionDelay1; } + + /** + Returns value of the <b>ReconnectionDelay</b> 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 + <code>reconnectionDelay</code> milliseconds. + + <p>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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/sockethubappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/sockethubappender.h new file mode 100644 index 0000000000..8994833456 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/sockethubappender.h @@ -0,0 +1,197 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/appenderskeleton.h> +#include <vector> +#include <log4cxx/helpers/thread.h> +#include <log4cxx/helpers/objectoutputstream.h> + + +namespace log4cxx +{ + namespace helpers { + class ObjectOutputStream; + typedef ObjectPtrT<ObjectOutputStream> ObjectOutputStreamPtr; + } + namespace net + { + /** + Sends {@link log4cxx::spi::LoggingEvent LoggingEvent} objects to a set of remote log + servers, usually a SocketNode. + + <p>Acts just like SocketAppender except that instead of + connecting to a given remote log server, + <code>SocketHubAppender</code> 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 <code>SocketHubAppender</code> is running on. + + <p>The <code>SocketHubAppender</code> 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. + + <p>This implementation borrows heavily from the SocketAppender. + + <p>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. + + - <code>SocketHubAppender</code> does not use a layout. It + ships a serialized spi::LoggingEvent object to the remote side. + + - <code>SocketHubAppender</code> 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 <em>buffered</em> 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 <code>SocketHubAppender</code> + exits before the <code>SocketHubAppender</code> 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 <code>SocketHubAppender</code> 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 <code>address</code> and <code>port</code>. + */ + 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 + <code>false</code>. */ + virtual bool requiresLayout() const + { return false; } + + /** + The <b>Port</b> 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 <b>Port</b> option. */ + inline int getPort() const + { return port; } + + /** + The <b>LocationInfo</b> 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 <b>LocationInfo</b> 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/syslogappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/syslogappender.h new file mode 100644 index 0000000000..27f737b089 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/syslogappender.h @@ -0,0 +1,141 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/appenderskeleton.h> +#include <log4cxx/helpers/syslogwriter.h> + +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 + <code>true</code>. + */ + virtual bool requiresLayout() const + { return true; } + + /** + The <b>SyslogHost</b> option is the name of the the syslog host + where log output should go. + <b>WARNING</b> If the SyslogHost is not set, then this appender + will fail. + */ + void setSyslogHost(const LogString& syslogHost); + + /** + Returns the value of the <b>SyslogHost</b> option. + */ + inline const LogString& getSyslogHost() const + { return syslogHost; } + + /** + Set the syslog facility. This is the <b>Facility</b> option. + + <p>The <code>facilityName</code> 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 <b>Facility</b> option. + */ + inline LogString getFacility() const + { return getFacilityString(syslogFacility); } + + /** + If the <b>FacilityPrinting</b> option is set to true, the printed + message will include the facility name of the application. It is + <em>false</em> by default. + */ + inline void setFacilityPrinting(bool facilityPrinting1) + { this->facilityPrinting = facilityPrinting1; } + + /** + Returns the value of the <b>FacilityPrinting</b> 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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/telnetappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/telnetappender.h new file mode 100644 index 0000000000..5cbe2b0be1 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/telnetappender.h @@ -0,0 +1,158 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/appenderskeleton.h> +#include <log4cxx/helpers/socket.h> +#include <log4cxx/helpers/serversocket.h> +#include <log4cxx/helpers/thread.h> +#include <vector> +#include <log4cxx/helpers/charsetencoder.h> + +namespace log4cxx +{ + namespace helpers { + class ByteBuffer; + } + namespace net + { +/** +<p>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. + +<p>Here is a list of the available configuration options: + +<table border=1> +<tr> +<td align=center><b>Name</b></td> +<td align=center><b>Requirement</b></td> +<td align=center><b>Description</b></td> +<td align=center><b>Sample Value</b></td> +</tr> + +<tr> +<td>Port</td> +<td>optional</td> +<td>This parameter determines the port to use for announcing log events. The default port is 23 (telnet).</td> +<td>5875</td> +</table> +*/ + 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 <b>Port</b> option. + */ + int getPort() const + { return port; } + + /** + The <b>Port</b> 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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/xmlsocketappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/xmlsocketappender.h new file mode 100644 index 0000000000..d99940fe51 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/net/xmlsocketappender.h @@ -0,0 +1,150 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/net/socketappenderskeleton.h> +#include <log4cxx/helpers/writer.h> + +namespace log4cxx +{ + namespace net + { + + /** + Sends {@link log4cxx::spi::LoggingEvent LoggingEvent} objects in XML format + to a remote a log server, usually a XMLSocketNode. + + <p>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 <em>connector</em> + thread which periodically attempts to connect to the server. + + - Logging events are automatically <em>buffered</em> 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 <code>XMLSocketAppender</code> 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 + <code>XMLSocketAppender</code> explicitly. See also next item. + @n @n Long lived applications which create/destroy many + <code>XMLSocketAppender</code> instances should be aware of this + destruction problem. Most other applications can safely + ignore it. + + - If the application hosting the <code>XMLSocketAppender</code> + exits before the <code>XMLSocketAppender</code> 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 <code>XMLSocketAppender</code> 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 <code>address</code> and <code>port</code>. + */ + XMLSocketAppender(helpers::InetAddressPtr address, int port); + + /** + Connects to remote server at <code>host</code> and <code>port</code>. + */ + 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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/EventLogCategories.mc b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/EventLogCategories.mc new file mode 100644 index 0000000000..e50874600c --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/EventLogCategories.mc @@ -0,0 +1,42 @@ +; +; Licensed to the Apache Software Foundation (ASF) under one +; or more contributor license agreements. See the NOTICE file +; distributed with this work for additional information +; regarding copyright ownership. The ASF licenses this file +; to you under the Apache License, Version 2.0 (the +; "License"); you may not use this file except in compliance +; with the License. You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, +; software distributed under the License is distributed on an +; "AS IS" BASIS, WITHOUT 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 +. diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/Makefile.am b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/Makefile.am new file mode 100644 index 0000000000..c75bbbdf16 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/Makefile.am @@ -0,0 +1,18 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT 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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/Makefile.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/Makefile.in new file mode 100644 index 0000000000..559a4b146c --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/Makefile.in @@ -0,0 +1,445 @@ +# 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: diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/nteventlogappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/nteventlogappender.h new file mode 100644 index 0000000000..4951bcc962 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/nteventlogappender.h @@ -0,0 +1,111 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/appenderskeleton.h> + + +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 <code>false</code>. + * + */ + 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_ diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/outputdebugstringappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/outputdebugstringappender.h new file mode 100644 index 0000000000..b9cc7d9688 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/nt/outputdebugstringappender.h @@ -0,0 +1,48 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/appenderskeleton.h> + +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_ diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/Makefile.am b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/Makefile.am new file mode 100644 index 0000000000..217009648a --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/Makefile.am @@ -0,0 +1,18 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT 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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/Makefile.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/Makefile.in new file mode 100644 index 0000000000..eef1218b1c --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/Makefile.in @@ -0,0 +1,446 @@ +# 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: diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/classnamepatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/classnamepatternconverter.h new file mode 100644 index 0000000000..dd750b8584 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/classnamepatternconverter.h @@ -0,0 +1,65 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/pattern/namepatternconverter.h> + +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<LogString>& 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<LogString>& options); + + void format(const log4cxx::spi::LoggingEventPtr&event, + LogString& toAppendTo, + log4cxx::helpers::Pool& p) const; +}; + + } +} +#endif diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/datepatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/datepatternconverter.h new file mode 100644 index 0000000000..e556ef3de3 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/datepatternconverter.h @@ -0,0 +1,82 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/pattern/loggingeventpatternconverter.h> +#include <log4cxx/helpers/cacheddateformat.h> +#include <log4cxx/helpers/date.h> +#include <vector> + +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<LogString>& 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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/filedatepatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/filedatepatternconverter.h new file mode 100644 index 0000000000..9e15239421 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/filedatepatternconverter.h @@ -0,0 +1,52 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/pattern/patternconverter.h> + +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<LogString>& options); +}; +} +} +#endif + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/filelocationpatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/filelocationpatternconverter.h new file mode 100644 index 0000000000..9c053b32c6 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/filelocationpatternconverter.h @@ -0,0 +1,62 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/pattern/loggingeventpatternconverter.h> + +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<LogString>& options); + + void format(const log4cxx::spi::LoggingEventPtr& event, + LogString& toAppendTo, + log4cxx::helpers::Pool& p) const; +}; + + } +} +#endif diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/formattinginfo.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/formattinginfo.h new file mode 100644 index 0000000000..c3eac5a887 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/formattinginfo.h @@ -0,0 +1,117 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/objectimpl.h> +#include <log4cxx/logstring.h> + +namespace log4cxx { + namespace pattern { + + +class FormattingInfo; +typedef helpers::ObjectPtrT<FormattingInfo> 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/fulllocationpatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/fulllocationpatternconverter.h new file mode 100644 index 0000000000..bbd7c67856 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/fulllocationpatternconverter.h @@ -0,0 +1,63 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/pattern/loggingeventpatternconverter.h> + +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<LogString>& options); + + void format(const log4cxx::spi::LoggingEventPtr& event, + LogString& toAppendTo, + log4cxx::helpers::Pool& p) const; +}; + +} +} +#endif + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/integerpatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/integerpatternconverter.h new file mode 100644 index 0000000000..0667809b01 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/integerpatternconverter.h @@ -0,0 +1,64 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/pattern/patternconverter.h> + +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<LogString>& options); + + void format(const log4cxx::helpers::ObjectPtr& obj, + LogString& toAppendTo, + log4cxx::helpers::Pool& p) const; +}; + +LOG4CXX_PTR_DEF(IntegerPatternConverter); + +} +} +#endif + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/levelpatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/levelpatternconverter.h new file mode 100644 index 0000000000..f0f0039384 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/levelpatternconverter.h @@ -0,0 +1,62 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/pattern/loggingeventpatternconverter.h> + +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<LogString>& options); + + void format(const log4cxx::spi::LoggingEventPtr& event, + LogString& toAppendTo, + log4cxx::helpers::Pool& p) const; + + LogString getStyleClass(const log4cxx::helpers::ObjectPtr& e) const; +}; +} +} +#endif + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/linelocationpatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/linelocationpatternconverter.h new file mode 100644 index 0000000000..b34d828e0c --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/linelocationpatternconverter.h @@ -0,0 +1,62 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/pattern/loggingeventpatternconverter.h> + +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<LogString>& options); + + void format(const log4cxx::spi::LoggingEventPtr& event, + LogString& toAppendTo, + log4cxx::helpers::Pool& p) const; +}; + +} +} +#endif diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/lineseparatorpatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/lineseparatorpatternconverter.h new file mode 100644 index 0000000000..2d0a519741 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/lineseparatorpatternconverter.h @@ -0,0 +1,69 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/pattern/loggingeventpatternconverter.h> + +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<LogString>& 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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/literalpatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/literalpatternconverter.h new file mode 100644 index 0000000000..cbcba5121c --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/literalpatternconverter.h @@ -0,0 +1,67 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/pattern/loggingeventpatternconverter.h> + +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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/loggerpatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/loggerpatternconverter.h new file mode 100644 index 0000000000..a7d0093d68 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/loggerpatternconverter.h @@ -0,0 +1,67 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/pattern/namepatternconverter.h> + +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<LogString>& 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<LogString>& options); + + void format(const log4cxx::spi::LoggingEventPtr& event, + LogString& toAppendTo, + log4cxx::helpers::Pool& p) const; +}; + + } +} + +#endif + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/loggingeventpatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/loggingeventpatternconverter.h new file mode 100644 index 0000000000..7118808c15 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/loggingeventpatternconverter.h @@ -0,0 +1,84 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/pattern/patternconverter.h> +#include <log4cxx/spi/loggingevent.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/messagepatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/messagepatternconverter.h new file mode 100644 index 0000000000..04cd028073 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/messagepatternconverter.h @@ -0,0 +1,60 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/pattern/loggingeventpatternconverter.h> + +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<LogString>& options); + + void format(const log4cxx::spi::LoggingEventPtr& event, + LogString& toAppendTo, + log4cxx::helpers::Pool& p) const; +}; +} +} +#endif diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/methodlocationpatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/methodlocationpatternconverter.h new file mode 100644 index 0000000000..da710c42f9 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/methodlocationpatternconverter.h @@ -0,0 +1,61 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/pattern/loggingeventpatternconverter.h> + +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<LogString>& options); + + void format(const log4cxx::spi::LoggingEventPtr& event, + LogString& toAppendTo, + log4cxx::helpers::Pool& p) const; +}; +} +} +#endif diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/nameabbreviator.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/nameabbreviator.h new file mode 100644 index 0000000000..8eedaab079 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/nameabbreviator.h @@ -0,0 +1,81 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/logstring.h> +#include <log4cxx/helpers/objectptr.h> +#include <log4cxx/helpers/objectimpl.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/namepatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/namepatternconverter.h new file mode 100644 index 0000000000..68c7e56622 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/namepatternconverter.h @@ -0,0 +1,74 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/pattern/loggingeventpatternconverter.h> +#include <log4cxx/pattern/nameabbreviator.h> + +#include <vector> + +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<LogString>& 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<LogString>& options); +}; + + } +} + +#endif diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/ndcpatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/ndcpatternconverter.h new file mode 100644 index 0000000000..a380a6201b --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/ndcpatternconverter.h @@ -0,0 +1,60 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/pattern/loggingeventpatternconverter.h> + +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<LogString>& options); + + void format(const log4cxx::spi::LoggingEventPtr& event, + LogString& toAppendTo, + log4cxx::helpers::Pool& p) const; +}; +} +} +#endif diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/patternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/patternconverter.h new file mode 100644 index 0000000000..f5ad14208b --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/patternconverter.h @@ -0,0 +1,124 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/objectimpl.h> +#include <log4cxx/logstring.h> +#include <vector> + +#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<LogString> OptionsList; + +/** + + <p>PatternConverter is an abstract class that provides the + formatting functionality that derived classes need. + + <p>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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/patternparser.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/patternparser.h new file mode 100644 index 0000000000..2a5113a5c4 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/patternparser.h @@ -0,0 +1,171 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <map> +#include <vector> +#include <log4cxx/helpers/class.h> +#include <log4cxx/pattern/patternconverter.h> +#include <log4cxx/pattern/formattinginfo.h> + +namespace log4cxx { + namespace pattern { + +typedef PatternConverterPtr (*PatternConstructor)(const std::vector<LogString>& options); +typedef std::map<LogString, PatternConstructor> PatternMap; + + +// Contributors: Nelson Minar <(nelson@monkey.org> +// Igor E. Poteryaev <jah@mail.ru> +// Reinhard Deschler <reinhard.deschler@web.de> + +/** + * Most of the work of the {@link log4cxx::PatternLayout PatternLayout} class + * is delegated to the PatternParser class. + * <p>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<LogString>& 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<PatternConverterPtr>& patternConverters, + std::vector<FormattingInfoPtr>& 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<LogString>& 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<PatternConverterPtr>& patternConverters, + std::vector<FormattingInfoPtr>& formattingInfos); + + static bool isUnicodeIdentifierStart(logchar c); + static bool isUnicodeIdentifierPart(logchar c); + + +}; + +} +} + + +#if defined(_MSC_VER) +#pragma warning (pop) +#endif + + +#endif diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/propertiespatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/propertiespatternconverter.h new file mode 100644 index 0000000000..bbe81c1cee --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/propertiespatternconverter.h @@ -0,0 +1,71 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/pattern/loggingeventpatternconverter.h> + +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<LogString>& options); + void format(const log4cxx::spi::LoggingEventPtr& event, + LogString& toAppendTo, + log4cxx::helpers::Pool& p) const; +}; +} +} +#endif + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/relativetimepatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/relativetimepatternconverter.h new file mode 100644 index 0000000000..326b501ae4 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/relativetimepatternconverter.h @@ -0,0 +1,59 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/pattern/loggingeventpatternconverter.h> + +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<LogString>& options); + + void format(const log4cxx::spi::LoggingEventPtr& event, + LogString& toAppendTo, + log4cxx::helpers::Pool& p) const; +}; +} +} +#endif diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/threadpatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/threadpatternconverter.h new file mode 100644 index 0000000000..f0baff9e1a --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/threadpatternconverter.h @@ -0,0 +1,60 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/pattern/loggingeventpatternconverter.h> + +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<LogString>& options); + + void format(const log4cxx::spi::LoggingEventPtr& event, + LogString& toAppendTo, + log4cxx::helpers::Pool& p) const; +}; +} +} +#endif + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/throwableinformationpatternconverter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/throwableinformationpatternconverter.h new file mode 100644 index 0000000000..aa8e5238ea --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/pattern/throwableinformationpatternconverter.h @@ -0,0 +1,74 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/pattern/loggingeventpatternconverter.h> + +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<LogString>& 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/patternlayout.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/patternlayout.h new file mode 100644 index 0000000000..55d6eb5b91 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/patternlayout.h @@ -0,0 +1,409 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/layout.h> +#include <log4cxx/pattern/loggingeventpatternconverter.h> +#include <log4cxx/pattern/formattinginfo.h> +#include <log4cxx/pattern/patternparser.h> + +namespace log4cxx +{ + + /** + + A flexible layout configurable with pattern string. + + <p>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 <em>conversion pattern</em>. + + <p>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 + <em>conversion specifiers</em>. + + <p><i>You are free to insert any literal text within the conversion + pattern.</i> + + <p>Each conversion specifier starts with a percent sign (\%) and is + followed by optional <em>format modifiers</em> and a <em>conversion + character</em>. 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. + + <p>Let the conversion pattern be <b>"\%-5p [\%t]: \%m\%n"</b> and assume + that the log4cxx environment was set to use a PatternLayout. Then the + statements + <pre> + LoggerPtr root = Logger::getRoot(); + root->debug("Message 1"); + root->warn("Message 2"); + </pre> + would yield the output + <pre> + DEBUG [main]: Message 1 + WARN [main]: Message 2 + </pre> + + <p>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 + <b>\%-5p</b> means the level of the logging event should be left + justified to a width of five characters. + + The recognized conversion characters are + + <p> + <table border="1" CELLPADDING="8"> + <tr> + <td align=center><b>Conversion Character</b></td> + <td align=center><b>Effect</b></td> + </tr> + + <tr> + <td align=center><b>c</b></td> + + <td>Used to output the logger of the logging event. The + logger conversion specifier can be optionally followed by + <em>precision specifier</em>, that is a decimal constant in + brackets. + + <p>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. + + <p>For example, for the logger name "a.b.c" the pattern + <b>\%c{2}</b> will output "b.c". + + </td> + </tr> + + <tr> <td align=center><b>d</b></td> <td>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, + <em>ABSOLUTE</em>, <em>DATE</em> or <em>ISO8601</em>. + For example, <b>%d{HH:mm:ss,SSS}</b>, + <b>%d{dd MMM yyyy HH:mm:ss,SSS}</b> or + <b>%d{DATE}</b>. If no date format specifier is given then + ISO8601 format is assumed. + </td> + </tr> + + <tr> + <td align=center><b>F</b></td> + + <td>Used to output the file name where the logging request was + issued. + + </tr> + + <tr> + <td align=center><b>l</b></td> + + <td>Used to output location information of the caller which generated + the logging event. + + </td> + </tr> + + <tr> + <td align=center><b>L</b></td> + + <td>Used to output the line number from where the logging request + was issued. + </tr> + + + <tr> + <td align=center><b>m</b></td> + <td>Used to output the application supplied message associated with + the logging event.</td> + </tr> + + <tr> + <td align=center><b>n</b></td> + + <td>Outputs the platform dependent line separator character or + characters. + + <p>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. + + + </tr> + + <tr> + <td align=center><b>p</b></td> + <td>Used to output the level of the logging event.</td> + </tr> + + <tr> + + <td align=center><b>r</b></td> + + <td>Used to output the number of milliseconds elapsed since the start + of the application until the creation of the logging event.</td> + </tr> + + + <tr> + <td align=center><b>t</b></td> + + <td>Used to output the name of the thread that generated the + logging event.</td> + + </tr> + + <tr> + + <td align=center><b>x</b></td> + + <td>Used to output the NDC (nested diagnostic context) associated + with the thread that generated the logging event. + </td> + </tr> + + + <tr> + <td align=center><b>X</b></td> + + <td> + + <p>Used to output the MDC (mapped diagnostic context) associated + with the thread that generated the logging event. The <b>X</b> + conversion character <em>must</em> be followed by the key for the + map placed between braces, as in <b>\%X{clientNumber}</b> where + <code>clientNumber</code> is the key. The value in the MDC + corresponding to the key will be output.</p> + + <p>See MDC class for more details. + </p> + + </td> + </tr> + + <tr> + + <td align=center><b>\%</b></td> + + <td>The sequence \%\% outputs a single percent sign. + </td> + </tr> + + </table> + + <p>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. + + <p>The optional format modifier is placed between the percent sign + and the conversion character. + + <p>The first optional format modifier is the <em>left justification + flag</em> which is just the minus (-) character. Then comes the + optional <em>minimum field width</em> 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. + + <p>This behavior can be changed using the <em>maximum field + width</em> 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 + <em>beginning</em> 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. + + <p>Below are various format modifier examples for the logger + conversion specifier. + + <p> + <TABLE BORDER=1 CELLPADDING=8> + <tr> + <td align=center><b>Format modifier</b></td> + <td align=center><b>left justify</b></td> + <td align=center><b>minimum width</b></td> + <td align=center><b>maximum width</b></td> + <td align=center><b>comment</b></td> + </tr> + + <tr> + <td align=center>\%20c</td> + <td align=center>false</td> + <td align=center>20</td> + <td align=center>none</td> + + <td>Left pad with spaces if the logger name is less than 20 + characters long. + + <tr> <td align=center>\%-20c</td> <td align=center>true</td> <td + align=center>20</td> <td align=center>none</td> <td>Right pad with + spaces if the logger name is less than 20 characters long. + + <tr> + <td align=center>\%.30c</td> + <td align=center>NA</td> + <td align=center>none</td> + <td align=center>30</td> + + <td>Truncate from the beginning if the logger name is longer than 30 + characters. + + <tr> + <td align=center>\%20.30c</td> + <td align=center>false</td> + <td align=center>20</td> + <td align=center>30</td> + + <td>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. + + <tr> + <td align=center>\%-20.30c</td> + <td align=center>true</td> + <td align=center>20</td> + <td align=center>30</td> + + <td>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. + + </table> + + <p>Below are some examples of conversion patterns. + + <p><b>\%r [\%t] \%-5p \%c \%x - \%m\n</b> + <p>This is essentially the TTCC layout. + + <p><b>\%-6r [\%15.15t] \%-5p \%30.30c \%x - \%m\n</b> + + <p>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. + + <p>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 <b>ConversionPattern</b> 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 <b>ConversionPattern</b> 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 + <code>true</code>. + */ + 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/portability.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/portability.h new file mode 100644 index 0000000000..ea24f5d153 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/portability.h @@ -0,0 +1,25 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/private/Makefile.am b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/private/Makefile.am new file mode 100644 index 0000000000..3a896ea3e6 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/private/Makefile.am @@ -0,0 +1,23 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT 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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/private/Makefile.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/private/Makefile.in new file mode 100644 index 0000000000..153e4d923c --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/private/Makefile.in @@ -0,0 +1,457 @@ +# 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: diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/private/log4cxx_private.h.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/private/log4cxx_private.h.in new file mode 100644 index 0000000000..e21f4d807d --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/private/log4cxx_private.h.in @@ -0,0 +1,56 @@ +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/log4cxx.h> + +#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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/private/log4cxx_private.hw b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/private/log4cxx_private.hw new file mode 100644 index 0000000000..e7c84174c4 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/private/log4cxx_private.hw @@ -0,0 +1,84 @@ +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/log4cxx.h> + +#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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/propertyconfigurator.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/propertyconfigurator.h new file mode 100644 index 0000000000..0271e2d826 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/propertyconfigurator.h @@ -0,0 +1,395 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/objectptr.h> +#include <log4cxx/helpers/objectimpl.h> +#include <log4cxx/logstring.h> +#include <log4cxx/spi/configurator.h> +#include <map> + +#include <log4cxx/file.h> + +namespace log4cxx +{ + class Logger; + typedef helpers::ObjectPtrT<Logger> LoggerPtr; + + class Appender; + typedef helpers::ObjectPtrT<Appender> AppenderPtr; + + namespace helpers + { + class Properties; + } + + + namespace spi { + class LoggerFactory; + } + +/** +Allows the configuration of log4cxx from an external file. See +<b>{@link #doConfigure(const File&, log4cxx::spi::LoggerRepositoryPtr&)}</b> +for the expected format. + +<p>It is sometimes useful to see how log4cxx is reading configuration +files. You can enable log4cxx internal logging by defining the +<b>log4j.debug</b> variable. + +<P>At class initialization time class, +the file <b>log4j.properties</b> 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. + +<p>The <code>PropertyConfigurator</code> 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. + +<p>All option <em>values</em> admit variable substitution. The +syntax of variable substitution is similar to that of Unix +shells. The string between an opening <b>"${"</b> and +closing <b>"}"</b> 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 <code>java.home</code> system property is set to +<code>/home/xyz</code>, then every occurrence of the sequence +<code>${java.home}</code> will be interpreted as +<code>/home/xyz</code>. +*/ + class LOG4CXX_EXPORT PropertyConfigurator : + virtual public spi::Configurator, + virtual public helpers::ObjectImpl + { + protected: + + /** + Used internally to keep track of configured appenders. + */ + std::map<LogString, AppenderPtr>* registry; + + /** + Used to create new instances of logger + */ + helpers::ObjectPtrT<spi::LoggerFactory> 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. <b>The existing configuration is +not cleared nor reset.</b> If you require a different behavior, +then call {@link LogManager#resetConfiguration +resetConfiguration} method before calling +<code>doConfigure</code>. + +<p>The configuration file consists of statements in the format +<code>key=value</code>. The syntax of different configuration +elements are discussed below. + +<h3>Repository-wide threshold</h3> + +<p>The repository-wide threshold filters logging requests by level +regardless of logger. The syntax is: + +<pre> +log4j.threshold=[level] +</pre> + +<p>The level value can consist of the string values OFF, FATAL, +ERROR, WARN, INFO, DEBUG, ALL or a <em>custom level</em> 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 <code>ALL</code>. +</p> + + +<h3>Appender configuration</h3> + +<p>Appender configuration syntax is: +<pre> +# For appender named <i>appenderName</i>, 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 +</pre> + +For each named appender you can configure its {@link Layout Layout}. The +syntax for configuring an appender's layout is: +<pre> +log4j.appender.appenderName.layout=fully.qualified.name.of.layout.class +log4j.appender.appenderName.layout.option1=value1 +.... +log4j.appender.appenderName.layout.optionN=valueN +</pre> + +<h3>Configuring loggers</h3> + +<p>The syntax for configuring the root logger is: +<pre> +log4j.rootLogger=[level], appenderName, appenderName, ... +</pre> + +<p>This syntax means that an optional <em>level</em> can be +supplied followed by appender names separated by commas. + +<p>The level value can consist of the string values OFF, FATAL, +ERROR, WARN, INFO, DEBUG, ALL or a <em>custom level</em> value. A +custom level value can be specified in the form +<code>level#classname</code>. + +<p>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. + +<p>The root logger can be assigned multiple appenders. + +<p>Each <i>appenderName</i> (separated by commas) will be added to +the root logger. The named appender is defined using the +appender syntax defined above. + +<p>For non-root categories the syntax is almost the same: +<pre> +log4j.logger.logger_name=[level|INHERITED|NULL], appenderName, appenderName, +... +</pre> + +<p>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. + +<p>If no level value is supplied, then the level of the +named logger remains untouched. + +<p>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. + +<p>Similar to the root logger syntax, each <i>appenderName</i> +(separated by commas) will be attached to the named logger. + +<p>See the <a href="Introduction.html#additivity">appender +additivity rule</a> in the user manual for the meaning of the +<code>additivity</code> flag. + +<h3>Logger Factories</h3> + +The usage of custom logger factories is discouraged and no longer +documented. + +<h3>Example</h3> + +<p>An example configuration is given below. Other configuration +file examples are given in the <code>examples</code> folder. + +<pre> + +# 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 +# <b>%r %-5p %c{2} %M.%L %x - %m\n</b>. 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 +</pre> + +<p>Refer to the <b>setOption</b> method in each Appender and +Layout for class specific options. + +<p>Use the <code>#</code> or <code>!</code> characters at the +beginning of a line for comments. + +<p> +@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 <code>configFilename</code>. + */ + 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 <code>configFilename</code> if it + exists. Moreover, a thread will be created that will periodically + check if <code>configFilename</code> has been created or + modified. The period is determined by the <code>delay</code> + argument. If a change or file creation is detected, then + <code>configFilename</code> 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 <code>properties</code>. + See #doConfigure(const File&, log4cxx::spi::LoggerRepositoryPtr&) + for the expected format. + */ + static void configure(helpers::Properties& properties); + + /** + Read configuration options from <code>properties</code>. + 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 <code>Properties</code> 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/provisionnode.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/provisionnode.h new file mode 100644 index 0000000000..5d1c31f7be --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/provisionnode.h @@ -0,0 +1,35 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <vector> +#include <log4cxx/helpers/objectptr.h> +#include <log4cxx/logger.h> + +namespace log4cxx +{ + class Logger; + typedef helpers::ObjectPtrT<Logger> LoggerPtr; + + + typedef std::vector<LoggerPtr> ProvisionNode; + +} // namespace log4cxx + +#endif //_LOG4CXX_PROVISION_NODE_H diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/Makefile.am b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/Makefile.am new file mode 100644 index 0000000000..8b10b189b5 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/Makefile.am @@ -0,0 +1,18 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT 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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/Makefile.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/Makefile.in new file mode 100644 index 0000000000..554d6ccdd3 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/Makefile.in @@ -0,0 +1,446 @@ +# 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: diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/action.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/action.h new file mode 100644 index 0000000000..00595ff47f --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/action.h @@ -0,0 +1,87 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/portability.h> +#include <log4cxx/helpers/objectimpl.h> +#include <log4cxx/helpers/mutex.h> +#include <log4cxx/helpers/pool.h> + +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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/filerenameaction.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/filerenameaction.h new file mode 100644 index 0000000000..46a284a27d --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/filerenameaction.h @@ -0,0 +1,59 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/rolling/action.h> +#include <log4cxx/file.h> + +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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/filterbasedtriggeringpolicy.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/filterbasedtriggeringpolicy.h new file mode 100644 index 0000000000..efe58258b0 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/filterbasedtriggeringpolicy.h @@ -0,0 +1,118 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/rolling/triggeringpolicy.h> +#include <log4cxx/spi/filter.h> + + 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 <code>null</code> 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/fixedwindowrollingpolicy.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/fixedwindowrollingpolicy.h new file mode 100644 index 0000000000..1cb6b484c9 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/fixedwindowrollingpolicy.h @@ -0,0 +1,141 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/rolling/rollingpolicybase.h> + + + + +namespace log4cxx { + + namespace helpers { + class Pool; + } + + namespace rolling { + + +/** + * When rolling over, <code>FixedWindowRollingPolicy</code> renames files + * according to a fixed window algorithm as described below. + * + * <p>The <b>ActiveFileName</b> property, which is required, represents the name + * of the file where current logging output will be written. + * The <b>FileNamePattern</b> option represents the file name pattern for the + * archived (rolled over) log files. If present, the <b>FileNamePattern</b> + * option must include an integer token, that is the string "%i" somwhere + * within the pattern. + * + * <p>Let <em>max</em> and <em>min</em> represent the values of respectively + * the <b>MaxIndex</b> and <b>MinIndex</b> options. Let "foo.log" be the value + * of the <b>ActiveFile</b> option and "foo.%i.log" the value of + * <b>FileNamePattern</b>. Then, when rolling over, the file + * <code>foo.<em>max</em>.log</code> will be deleted, the file + * <code>foo.<em>max-1</em>.log</code> will be renamed as + * <code>foo.<em>max</em>.log</code>, the file <code>foo.<em>max-2</em>.log</code> + * renamed as <code>foo.<em>max-1</em>.log</code>, and so on, + * the file <code>foo.<em>min+1</em>.log</code> renamed as + * <code>foo.<em>min+2</em>.log</code>. Lastly, the active file <code>foo.log</code> + * will be renamed as <code>foo.<em>min</em>.log</code> and a new active file name + * <code>foo.log</code> will be created. + * + * <p>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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/gzcompressaction.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/gzcompressaction.h new file mode 100644 index 0000000000..d94d4e8fb6 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/gzcompressaction.h @@ -0,0 +1,73 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/rolling/action.h> +#include <log4cxx/file.h> + +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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/manualtriggeringpolicy.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/manualtriggeringpolicy.h new file mode 100644 index 0000000000..5461183ca5 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/manualtriggeringpolicy.h @@ -0,0 +1,72 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/rolling/triggeringpolicy.h> + +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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingfileappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingfileappender.h new file mode 100644 index 0000000000..ec044fb20f --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingfileappender.h @@ -0,0 +1,105 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/rolling/rollingfileappenderskeleton.h> + + +namespace log4cxx { + namespace rolling { + + + /** + * <code>RollingFileAppender</code> extends {@link log4cxx::FileAppender} to backup the log files + * depending on {@link log4cxx::rolling::RollingPolicy RollingPolicy} and {@link log4cxx::rolling::TriggeringPolicy TriggeringPolicy}. + * <p> + * To be of any use, a <code>RollingFileAppender</code> instance must have both + * a <code>RollingPolicy</code> and a <code>TriggeringPolicy</code> set up. + * However, if its <code>RollingPolicy</code> also implements the + * <code>TriggeringPolicy</code> interface, then only the former needs to be + * set up. For example, {@link log4cxx::rolling::TimeBasedRollingPolicy TimeBasedRollingPolicy} acts both as a + * <code>RollingPolicy</code> and a <code>TriggeringPolicy</code>. + * + * <p><code>RollingFileAppender</code> can be configured programattically or + * using {@link log4cxx::xml::DOMConfigurator}. Here is a sample + * configration file: + + <pre><?xml version="1.0" encoding="UTF-8" ?> + <!DOCTYPE log4j:configuration> + + <log4j:configuration debug="true"> + + <appender name="ROLL" class="org.apache.log4j.rolling.RollingFileAppender"> + <b><rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy"> + <param name="FileNamePattern" value="/wombat/foo.%d{yyyy-MM}.gz"/> + </rollingPolicy></b> + + <layout class="org.apache.log4j.PatternLayout"> + <param name="ConversionPattern" value="%c{1} - %m%n"/> + </layout> + </appender> + + <root"> + <appender-ref ref="ROLL"/> + </root> + + </log4j:configuration> + </pre> + + *<p>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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingfileappenderskeleton.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingfileappenderskeleton.h new file mode 100644 index 0000000000..f1b73b4122 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingfileappenderskeleton.h @@ -0,0 +1,152 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/portability.h> +#include <log4cxx/spi/optionhandler.h> +#include <log4cxx/fileappender.h> +#include <log4cxx/rolling/triggeringpolicy.h> +#include <log4cxx/rolling/rollingpolicy.h> +#include <log4cxx/rolling/action.h> + +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. + + <p>If <code>MaxBackupIndex</code> is positive, then files + {<code>File.1</code>, ..., <code>File.MaxBackupIndex -1</code>} + are renamed to {<code>File.2</code>, ..., + <code>File.MaxBackupIndex</code>}. Moreover, <code>File</code> is + renamed <code>File.1</code> and closed. A new <code>File</code> is + created to receive further log output. + + <p>If <code>MaxBackupIndex</code> is equal to zero, then the + <code>File</code> 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 + <code>encoding</code> 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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingpolicy.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingpolicy.h new file mode 100644 index 0000000000..4598d940b9 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingpolicy.h @@ -0,0 +1,82 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/portability.h> +#include <log4cxx/spi/optionhandler.h> +#include <log4cxx/rolling/rolloverdescription.h> +#include <log4cxx/file.h> + +namespace log4cxx { + namespace rolling { + + + /** + * A <code>RollingPolicy</code> is responsible for performing the + * rolling over of the active log file. The <code>RollingPolicy</code> + * is also responsible for providing the <em>active log file</em>, + * 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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingpolicybase.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingpolicybase.h new file mode 100644 index 0000000000..154b17d99b --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rollingpolicybase.h @@ -0,0 +1,128 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/object.h> +#include <log4cxx/logger.h> +#include <log4cxx/logmanager.h> +#include <log4cxx/rolling/rollingpolicy.h> +#include <log4cxx/pattern/patternconverter.h> +#include <log4cxx/pattern/formattinginfo.h> +#include <log4cxx/pattern/patternparser.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rolloverdescription.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rolloverdescription.h new file mode 100644 index 0000000000..4e01fca33d --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/rolloverdescription.h @@ -0,0 +1,101 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/portability.h> +#include <log4cxx/rolling/action.h> + +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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/sizebasedtriggeringpolicy.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/sizebasedtriggeringpolicy.h new file mode 100644 index 0000000000..87ddffbac7 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/sizebasedtriggeringpolicy.h @@ -0,0 +1,82 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/rolling/triggeringpolicy.h> + +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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/timebasedrollingpolicy.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/timebasedrollingpolicy.h new file mode 100644 index 0000000000..d20745e508 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/timebasedrollingpolicy.h @@ -0,0 +1,227 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/portability.h> +#include <log4cxx/rolling/rollingpolicybase.h> +#include <log4cxx/rolling/triggeringpolicy.h> + +namespace log4cxx { + + namespace rolling { + + + + /** + * <code>TimeBasedRollingPolicy</code> is both easy to configure and quite + * powerful. + * + * <p>In order to use <code>TimeBasedRollingPolicy</code>, the + * <b>FileNamePattern</b> option must be set. It basically specifies the name of the + * rolled log files. The value <code>FileNamePattern</code> should consist of + * the name of the file, plus a suitably placed <code>%d</code> conversion + * specifier. The <code>%d</code> 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. + * + * <p> + * <table cellspacing="5px" border="1"> + * <tr> + * <th><code>FileNamePattern</code> value</th> + * <th>Rollover schedule</th> + * <th>Example</th> + * </tr> + * <tr> + * <td nowrap="true"><code>/wombat/folder/foo.%d</code></td> + * <td>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. + * </td> + * <td>During November 23rd, 2004, logging output will go to + * the file <code>/wombat/foo.2004-11-23</code>. At midnight and for + * the rest of the 24th, logging output will be directed to + * <code>/wombat/foo.2004-11-24</code>. + * </td> + * </tr> + * <tr> + * <td nowrap="true"><code>/wombat/foo.%d{yyyy-MM}.log</code></td> + * <td>Rollover at the beginning of each month.</td> + * <td>During the month of October 2004, logging output will go to + * <code>/wombat/foo.2004-10.log</code>. After midnight of October 31st + * and for the rest of November, logging output will be directed to + * <code>/wombat/foo.2004-11.log</code>. + * </td> + * </tr> + * </table> + * <h2>Automatic file compression</h2> + * <code>TimeBasedRollingPolicy</code> supports automatic file compression. + * This feature is enabled if the value of the <b>FileNamePattern</b> option + * ends with <code>.gz</code> or <code>.zip</code>. + * <p> + * <table cellspacing="5px" border="1"> + * <tr> + * <th><code>FileNamePattern</code> value</th> + * <th>Rollover schedule</th> + * <th>Example</th> + * </tr> + * <tr> + * <td nowrap="true"><code>/wombat/foo.%d.gz</code></td> + * <td>Daily rollover (at midnight) with automatic GZIP compression of the + * arcived files.</td> + * <td>During November 23rd, 2004, logging output will go to + * the file <code>/wombat/foo.2004-11-23</code>. However, at midnight that + * file will be compressed to become <code>/wombat/foo.2004-11-23.gz</code>. + * For the 24th of November, logging output will be directed to + * <code>/wombat/folder/foo.2004-11-24</code> until its rolled over at the + * beginning of the next day. + * </td> + * </tr> + * </table> + * + * <h2>Decoupling the location of the active log file and the archived log files</h2> + * <p>The <em>active file</em> is defined as the log file for the current period + * whereas <em>archived files</em> are thos files which have been rolled over + * in previous periods. + * + * <p>By setting the <b>ActiveFileName</b> option you can decouple the location + * of the active log file and the location of the archived log files. + * <p> + * <table cellspacing="5px" border="1"> + * <tr> + * <th><code>FileNamePattern</code> value</th> + * <th>ActiveFileName</th> + * <th>Rollover schedule</th> + * <th>Example</th> + * </tr> + * <tr> + * <td nowrap="true"><code>/wombat/foo.log.%d</code></td> + * <td nowrap="true"><code>/wombat/foo.log</code></td> + * <td>Daily rollover.</td> + * + * <td>During November 23rd, 2004, logging output will go to + * the file <code>/wombat/foo.log</code>. However, at midnight that file + * will archived as <code>/wombat/foo.log.2004-11-23</code>. For the 24th + * of November, logging output will be directed to + * <code>/wombat/folder/foo.log</code> until its archived as + * <code>/wombat/foo.log.2004-11-24</code> at the beginning of the next + * day. + * </td> + * </tr> + * </table> + * <p> + * If configuring programatically, do not forget to call {@link #activateOptions} + * method before using this policy. Moreover, {@link #activateOptions} of + * <code> TimeBasedRollingPolicy</code> must be called <em>before</em> calling + * the {@link #activateOptions} method of the owning + * <code>RollingFileAppender</code>. + * + * + * + */ + 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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/triggeringpolicy.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/triggeringpolicy.h new file mode 100644 index 0000000000..6a71632da4 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/triggeringpolicy.h @@ -0,0 +1,80 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/spi/optionhandler.h> +#include <log4cxx/helpers/objectimpl.h> +#include <log4cxx/spi/loggingevent.h> +#include <log4cxx/appender.h> + +namespace log4cxx { + class File; + + namespace rolling { + + /** + * A <code>TriggeringPolicy</code> 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/zipcompressaction.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/zipcompressaction.h new file mode 100644 index 0000000000..66a19c6288 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rolling/zipcompressaction.h @@ -0,0 +1,74 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/rolling/action.h> +#include <log4cxx/file.h> + +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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rollingfileappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rollingfileappender.h new file mode 100644 index 0000000000..f8d519fb3e --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/rollingfileappender.h @@ -0,0 +1,116 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/rolling/rollingfileappenderskeleton.h> + +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 + <code>filename</code>. The opened filename will become the ouput destination for this appender. + + <p>If the <code>append</code> parameter is true, the file will be appended to. Otherwise, the file desginated by + <code>filename</code> will be truncated before being opened. + */ + RollingFileAppender( const LayoutPtr & layout, const LogString & fileName, bool append ); + + /** + Instantiate a FileAppender and open the file designated by + <code>filename</code>. The opened filename will become the output destination for this appender. + <p>The file will be appended to. + */ + RollingFileAppender( const LayoutPtr & layout, const LogString & fileName ); + + virtual ~RollingFileAppender(); + + /** Returns the value of the <b>MaxBackupIndex</b> 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. + + <p>The <b>MaxBackupIndex</b> 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 <code>MaxFileSize</code>. + */ + void setMaxBackupIndex( int maxBackupIndex ); + + /** + Set the maximum size that the output file is allowed to reach before being rolled over to backup files. + + <p>In configuration files, the <b>MaxFileSize</b> 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/simplelayout.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/simplelayout.h new file mode 100644 index 0000000000..2dae784060 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/simplelayout.h @@ -0,0 +1,83 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/layout.h> + +namespace log4cxx +{ + /** + SimpleLayout consists of the level of the log statement, + followed by " - " and then the log message itself. For example, + + <pre> + DEBUG - Hello world + </pre> + + <p> + + <p>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 + <code>level</code>, followed by " - " and then the + <code>message</code>. For example, <pre> INFO - "A message" + </pre> + + @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 + <code>true</code>. + */ + 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/Makefile.am b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/Makefile.am new file mode 100644 index 0000000000..4e547ca994 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/Makefile.am @@ -0,0 +1,19 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT 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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/Makefile.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/Makefile.in new file mode 100644 index 0000000000..2d7b190323 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/Makefile.in @@ -0,0 +1,558 @@ +# 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: diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/appenderattachable.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/appenderattachable.h new file mode 100644 index 0000000000..7fa06fabd6 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/appenderattachable.h @@ -0,0 +1,98 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/logstring.h> +#include <vector> +#include <log4cxx/helpers/objectptr.h> +#include <log4cxx/helpers/object.h> +#include <log4cxx/appender.h> + +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 <code>true</code> if the specified appender is in list of + attached attached, <code>false</code> 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_ diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/configurator.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/configurator.h new file mode 100644 index 0000000000..7ded840975 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/configurator.h @@ -0,0 +1,61 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/spi/loggerrepository.h> + +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 <code>hierarchy</code> + 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/defaultrepositoryselector.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/defaultrepositoryselector.h new file mode 100644 index 0000000000..9f09908b33 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/defaultrepositoryselector.h @@ -0,0 +1,50 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/spi/repositoryselector.h> +#include <log4cxx/helpers/objectimpl.h> +#include <log4cxx/spi/loggerrepository.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/errorhandler.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/errorhandler.h new file mode 100644 index 0000000000..54e82626ea --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/errorhandler.h @@ -0,0 +1,127 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/spi/optionhandler.h> +#include <log4cxx/helpers/exception.h> +#include <log4cxx/appender.h> +#include <log4cxx/spi/loggingevent.h> + +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 + <code>ErrorHandlers</code>. + + <p>Error handling is a particularly tedious to get right because by + definition errors are hard to predict and to reproduce. + + + <p>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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/filter.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/filter.h new file mode 100644 index 0000000000..83c5dc7f01 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/filter.h @@ -0,0 +1,133 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/objectptr.h> +#include <log4cxx/helpers/objectimpl.h> +#include <log4cxx/spi/optionhandler.h> +#include <log4cxx/spi/loggingevent.h> + +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. + + <p>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. + + <p>The {@link #decide decide(LoggingEvent)} method must return one + of the integer constants #DENY, #NEUTRAL or + #ACCEPT. + + <p>If the value #DENY is returned, then the log event is + dropped immediately without consulting with the remaining + filters. + + <p>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. + + <p>If the value #ACCEPT is returned, then the log + event is logged without consulting the remaining filters. + + <p>The philosophy of log4cxx filters is largely inspired from the + Linux ipchains. + + <p>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); + + /** + <p>If the decision is <code>DENY</code>, then the event will be + dropped. If the decision is <code>NEUTRAL</code>, 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/hierarchyeventlistener.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/hierarchyeventlistener.h new file mode 100644 index 0000000000..711239752f --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/hierarchyeventlistener.h @@ -0,0 +1,65 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/object.h> +#include <log4cxx/helpers/objectptr.h> +#include <vector> + +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>& logger, + const log4cxx::helpers::ObjectPtrT<Appender>& appender) = 0; + + virtual void removeAppenderEvent( + const log4cxx::helpers::ObjectPtrT<Logger>& logger, + const log4cxx::helpers::ObjectPtrT<Appender>& 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/location/Makefile.am b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/location/Makefile.am new file mode 100644 index 0000000000..6b780ae5ed --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/location/Makefile.am @@ -0,0 +1,18 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT 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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/location/Makefile.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/location/Makefile.in new file mode 100644 index 0000000000..ede7a96b95 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/location/Makefile.in @@ -0,0 +1,446 @@ +# 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: diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/location/locationinfo.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/location/locationinfo.h new file mode 100644 index 0000000000..fc98121dce --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/location/locationinfo.h @@ -0,0 +1,136 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/log4cxx.h> +#include <string> +#include <log4cxx/helpers/objectoutputstream.h> + +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 + * <code>NA</code> is returned. Current value of this string constant is <b>?</b>. + */ + 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 std::string& 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. */ + std::string fileName; + + /** Caller's method name. */ + std::string 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/loggerfactory.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/loggerfactory.h new file mode 100644 index 0000000000..07f8be91cb --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/loggerfactory.h @@ -0,0 +1,46 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/logger.h> + +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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/loggerrepository.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/loggerrepository.h new file mode 100644 index 0000000000..4fe795771c --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/loggerrepository.h @@ -0,0 +1,116 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/appender.h> +#include <log4cxx/spi/loggerfactory.h> +#include <log4cxx/level.h> +#include <log4cxx/spi/hierarchyeventlistener.h> + +namespace log4cxx +{ + namespace spi + { + + /** + A <code>LoggerRepository</code> is used to create and retrieve + <code>Loggers</code>. The relation between loggers in a repository + depends on the repository but typically loggers are arranged in a + named hierarchy. + + <p>In addition to the creational methods, a + <code>LoggerRepository</code> 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 <code>level</code> + 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 <code>Level::getAll()</code> 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 <code>Level</code>. */ + 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/loggingevent.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/loggingevent.h new file mode 100644 index 0000000000..2c9c353f8b --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/loggingevent.h @@ -0,0 +1,284 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/objectptr.h> +#include <log4cxx/logstring.h> +#include <time.h> +#include <log4cxx/logger.h> +#include <log4cxx/mdc.h> +#include <log4cxx/spi/location/locationinfo.h> +#include <vector> + + +namespace log4cxx +{ + namespace helpers + { + class ObjectOutputStream; + } + + namespace spi + { + + /** + The internal representation of logging events. When an affirmative + decision is made to log then a <code>LoggingEvent</code> instance + is created. This instance is passed around to the different log4cxx + components. + + <p>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. + + <p>Except timeStamp all the other fields of + <code>LoggingEvent</code> are filled when actually needed. + <p> + @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); + + /** + Instantiate a LoggingEvent from the supplied parameters. + + <p>All the fields of + <code>LoggingEvent</code> are filled when actually needed. + <p> + @param logger The logger of this event. + @param level The level of this event. + @param message The message of this event. + @param timeStamp Event time stamp. + @param location location of logging request. + @param threadName Event thread name. + */ + LoggingEvent(const LogString& logger, + const LevelPtr& level, const LogString& message, + log4cxx_time_t timeStamp, + const log4cxx::spi::LocationInfo& location, + const LogString& threadName); + + ~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 current thread name. */ + static const LogString getCurrentThreadName(); + + /** 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 <em>never</em> 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 <code>key</code> 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 + * <code>MDC</code> is used. + * + * <p> + * Note that <em>both</em> the local MDC copy and the current thread's MDC + * are searched. + * </p> + * @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<LogString, LogString> * 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 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/optionhandler.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/optionhandler.h new file mode 100644 index 0000000000..88cd9547cd --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/optionhandler.h @@ -0,0 +1,72 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/logstring.h> +#include <log4cxx/helpers/object.h> +#include <log4cxx/helpers/objectptr.h> + +namespace log4cxx +{ + namespace spi + { + class OptionHandler; + typedef helpers::ObjectPtrT<OptionHandler> 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. + + <p>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. + + <p>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 <code>option</code> to <code>value</code>. + + <p>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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/repositoryselector.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/repositoryselector.h new file mode 100644 index 0000000000..1d1bf0ccb4 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/repositoryselector.h @@ -0,0 +1,54 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/objectptr.h> +#include <log4cxx/helpers/object.h> + +namespace log4cxx +{ + namespace spi + { + class LoggerRepository; + typedef helpers::ObjectPtrT<LoggerRepository> LoggerRepositoryPtr; + + /** + The <code>LogManager</code> uses one (and only one) + <code>RepositorySelector</code> implementation to select the + {@link log4cxx::spi::LoggerRepository LoggerRepository} + for a particular application context. + + <p>It is the responsability of the <code>RepositorySelector</code> + implementation to track the application context. log4cxx makes no + assumptions about the application context or on its management. + + <p>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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/rootlogger.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/rootlogger.h new file mode 100644 index 0000000000..5027385ae8 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/rootlogger.h @@ -0,0 +1,60 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/logger.h> + +namespace log4cxx +{ + namespace spi + { + /** + RootLogger sits at the top of the logger hierachy. It is a + regular logger except that it provides several guarantees. + + <p>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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/triggeringeventevaluator.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/triggeringeventevaluator.h new file mode 100644 index 0000000000..3c6b054a79 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/triggeringeventevaluator.h @@ -0,0 +1,50 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/spi/loggingevent.h> + +namespace log4cxx +{ + namespace spi + { + /** + Implementions of this interface allow certain appenders to decide + when to perform an appender specific action. + + <p>For example the {@link net::SMTPAppender SMTPAppender} sends + an email when the #isTriggeringEvent method returns + <code>true</code> and adds the event to an internal buffer when the + returned result is <code>false</code>. + + */ + 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/stream.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/stream.h new file mode 100644 index 0000000000..8edec0dd9e --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/stream.h @@ -0,0 +1,566 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/logger.h> +#include <sstream> +#include <log4cxx/spi/location/locationinfo.h> + +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<Ch>& 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<Ch>&(); + +#if !(LOG4CXX_USE_GLOBAL_SCOPE_TEMPLATE) + /** + * Template to allow any class with an std::basic_ostream inserter + * to be applied to this class. + */ + template <class V> + inline log4cxx::logstream& operator<<(const V& val) { + if (LOG4CXX_UNLIKELY(isEnabled())) { + ((std::basic_ostream<char>&) *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<Ch>* 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<Ch>& 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<Ch>&(); + +#if !(LOG4CXX_USE_GLOBAL_SCOPE_TEMPLATE) + /** + * Template to allow any class with an std::basic_ostream inserter + * to be applied to this class. + */ + template <class V> + inline log4cxx::wlogstream& operator<<(const V& val) { + if (LOG4CXX_UNLIKELY(isEnabled())) { + ((std::basic_ostream<wchar_t>&) *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<Ch>* 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<Ch>& 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<Ch>&(); + +#if !(LOG4CXX_USE_GLOBAL_SCOPE_TEMPLATE) + /** + * Template to allow any class with an std::basic_ostream inserter + * to be applied to this class. + */ + template <class V> + inline ulogstream& operator<<(const V& val) { + if (LOG4CXX_UNLIKELY(isEnabled())) { + ((std::basic_ostream<Ch>&) *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<Ch>* 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 <class V> +inline log4cxx::logstream& operator<<(log4cxx::logstream& os, const V& val) { + if (LOG4CXX_UNLIKELY(os.isEnabled())) { + ((std::basic_ostream<char>&) 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 <class V> +inline log4cxx::wlogstream& operator<<(log4cxx::wlogstream& os, const V& val) { + if (LOG4CXX_UNLIKELY(os.isEnabled())) { + ((std::basic_ostream<wchar_t>&) 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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/ttcclayout.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/ttcclayout.h new file mode 100644 index 0000000000..8c14d65165 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/ttcclayout.h @@ -0,0 +1,187 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/helpers/datelayout.h> + +namespace log4cxx +{ + + /** + TTCC layout format consists of time, thread, logger name and nested + diagnostic context information, hence the name. + + <p>Each of the four fields can be individually enabled or + disabled. The time format depends on the <code>DateFormat</code> + used. + + <p>Here is an example TTCCLayout output with the + {@link helpers::RelativeTimeDateFormat RelativeTimeDateFormat}. + + <pre> + 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. + </pre> + + <p>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. + + <p>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. + + <p><b>WARNING</b> 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. + + <p>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 <code>dateFormatType</code>. + <p>This constructor just calls the {@link + helpers::DateLayout#setDateFormat DateLayout::setDateFormat} method. + */ + TTCCLayout(const LogString& dateFormatType); + + /** + The <b>ThreadPrinting</b> 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 <b>ThreadPrinting</b> option. + */ + inline bool getThreadPrinting() const + { return threadPrinting; } + + /** + The <b>CategoryPrefixing</b> 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 <b>CategoryPrefixing</b> option. + */ + inline bool getCategoryPrefixing() const + { return categoryPrefixing; } + + /** + The <b>ContextPrinting</b> 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 <b>ContextPrinting</b> option. + */ + inline bool getContextPrinting() const + { return contextPrinting; } + + /** + The <b>FilePrinting</b> 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 <b>ContextPrinting</b> 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. + + <p>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 + <code>true</code>. + */ + virtual bool ignoresThrowable() const { return true; } + }; + LOG4CXX_PTR_DEF(TTCCLayout); +} + + +#if defined(_MSC_VER) +#pragma warning ( pop ) +#endif + +#endif diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/varia/Makefile.am b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/varia/Makefile.am new file mode 100644 index 0000000000..de87f5475e --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/varia/Makefile.am @@ -0,0 +1,18 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT 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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/varia/Makefile.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/varia/Makefile.in new file mode 100644 index 0000000000..21f99361ba --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/varia/Makefile.in @@ -0,0 +1,446 @@ +# 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: diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/varia/fallbackerrorhandler.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/varia/fallbackerrorhandler.h new file mode 100644 index 0000000000..63b6fc8e2d --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/varia/fallbackerrorhandler.h @@ -0,0 +1,116 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/spi/errorhandler.h> +#include <log4cxx/helpers/objectimpl.h> +#include <log4cxx/appender.h> +#include <log4cxx/logger.h> +#include <vector> + +namespace log4cxx +{ + namespace varia + { + /** + The <code>FallbackErrorHandler</code> 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. + + <p>The error message is printed on <code>System.err</code>, 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<LoggerPtr> 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; + + + /** + <em>Adds</em> 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 + <code>System.err</code>. + */ + void error(const LogString& message, const std::exception& e, + int errorCode) const; + + /** + Prints the message and the stack trace of the exception on + <code>System.err</code>. + */ + 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 + <code>System.err</code>. + */ + 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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/writerappender.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/writerappender.h new file mode 100644 index 0000000000..37db9b1cd2 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/writerappender.h @@ -0,0 +1,217 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/appenderskeleton.h> +#include <log4cxx/helpers/outputstreamwriter.h> + +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 <code>immediateFlush</code> is set to + <code>false</code>, 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. + + <p>The <code>immediateFlush</code> variable is set to + <code>true</code> by default. + + */ + bool immediateFlush; + + /** + The encoding to use when opening an input stream. + <p>The <code>encoding</code> variable is set to <code>""</code> 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 <b>ImmediateFlush</b> option is set to + <code>true</code>, the appender will flush at the end of each + write. This is the default behavior. If the option is set to + <code>false</code>, then the underlying stream can defer writing + to physical medium to a later time. + + <p>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 <b>ImmediateFlush</b> option. + */ + bool getImmediateFlush() const { return immediateFlush; } + + /** + This method is called by the AppenderSkeleton#doAppend + method. + + <p>If the output stream exists and is writable then write a log + statement to the output stream. Otherwise, write a single warning + message to <code>stderr</code>. + + <p>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. + + <p>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 <code>false</code> is returned. */ + virtual bool checkEntryConditions() const; + + + public: + /** + Close this appender instance. The underlying stream or writer is + also closed. + + <p>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 + <code>encoding</code> 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); + + /** + <p>Sets the Writer where the log output will go. The + specified Writer must be opened by the user and be + writable. + + <p>The <code>java.io.Writer</code> will be closed when the + appender instance is closed. + + + <p><b>WARNING:</b> Logging to an unopened Writer will fail. + <p> + @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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/Makefile.am b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/Makefile.am new file mode 100644 index 0000000000..b28bb8e791 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/Makefile.am @@ -0,0 +1,18 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT 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 + diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/Makefile.in b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/Makefile.in new file mode 100644 index 0000000000..139639ea78 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/Makefile.in @@ -0,0 +1,446 @@ +# 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: diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/domconfigurator.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/domconfigurator.h new file mode 100644 index 0000000000..6799d54bc3 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/domconfigurator.h @@ -0,0 +1,316 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/logstring.h> +#include <map> +#include <log4cxx/appender.h> +#include <log4cxx/layout.h> +#include <log4cxx/logger.h> +#include <log4cxx/helpers/properties.h> +#include <log4cxx/spi/configurator.h> +#include <log4cxx/helpers/charsetdecoder.h> +#include <log4cxx/spi/filter.h> +#include <log4cxx/rolling/triggeringpolicy.h> +#include <log4cxx/rolling/rollingpolicy.h> +#include <log4cxx/file.h> +#include <log4cxx/config/propertysetter.h> + +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. + + <p>Sometimes it is useful to see how log4cxx is reading configuration + files. You can enable log4cxx internal logging by setting the + <code>debug</code> attribute in the + <code>log4cxx</code> element. As in + <pre> + <log4j:configuration <b>debug="true"</b> xmlns:log4j="http://jakarta.apache.org/log4j/"> + ... + </log4j:configuration> + </pre> + + <p>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<LogString, AppenderPtr> 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<log4cxx::spi::FilterPtr>& 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<UniChar>& 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<UniChar>& configFilename); +#endif +#if LOG4CXX_CFSTRING_API + static void configureAndWatch(const CFStringRef& configFilename); +#endif + /** + Read the configuration file <code>configFilename</code> if it + exists. Moreover, a thread will be created that will periodically + check if <code>configFilename</code> has been created or + modified. The period is determined by the <code>delay</code> + argument. If a change or file creation is detected, then + <code>configFilename</code> 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<UniChar>& configFilename, + long delay); +#endif +#if LOG4CXX_CFSTRING_API + static void configureAndWatch(const CFStringRef& configFilename, + long delay); +#endif + + /** + Interpret the XML file pointed by <code>filename</code> and set up + log4cxx accordingly. + <p>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 diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/xmllayout.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/xmllayout.h new file mode 100644 index 0000000000..a0094ac787 --- /dev/null +++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/xml/xmllayout.h @@ -0,0 +1,138 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <log4cxx/layout.h> + +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 <em>external entity</em> in a separate file to form + a correct XML file. + + <p>For example, if <code>abc</code> is the name of the file where + the XMLLayout ouput goes, then a well-formed XML file would be: + + <code> + <?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> + </code> + + <p>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 <b>LocationInfo</b> 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. + + <p>If you are embedding this layout within a SMTPAppender + then make sure to set the + <b>LocationInfo</b> option of that appender as well. + */ + inline void setLocationInfo(bool locationInfo1) + { this->locationInfo = locationInfo1; } + + /** + Returns the current value of the <b>LocationInfo</b> 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 <code>false</code>. + */ + virtual bool ignoresThrowable() const + { return false; } + + }; // class XMLLayout + LOG4CXX_PTR_DEF(XMLLayout); + } // namespace xml +} // namespace log4cxx + +#endif // _LOG4CXX_XML_LAYOUT_H |