You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ts...@apache.org on 2018/12/14 06:02:25 UTC
[logging-log4cxx] branch master updated: LOGCXX-502: I prefer tabs
over spaces and somewhat strict indentation and the former settings lead to
alignment without honoring the indentation settings. So if line 1 was not
properly indented, all lines below weren't as well.
This is an automated email from the ASF dual-hosted git repository.
tschoening pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git
The following commit(s) were added to refs/heads/master by this push:
new 171e980 LOGCXX-502: I prefer tabs over spaces and somewhat strict indentation and the former settings lead to alignment without honoring the indentation settings. So if line 1 was not properly indented, all lines below weren't as well.
171e980 is described below
commit 171e980fdd31e09e36841cf82adcebfa12bcd6d0
Author: Thorsten Schöning <ts...@am-soft.de>
AuthorDate: Fri Dec 14 07:02:13 2018 +0100
LOGCXX-502: I prefer tabs over spaces and somewhat strict indentation and the former settings lead to alignment without honoring the indentation settings. So if line 1 was not properly indented, all lines below weren't as well.
if (StringHelper::equalsIgnoreCase(option,
LOG4CXX_STR("MININDEX"),
LOG4CXX_STR("minindex")))
vs.
if (StringHelper::equalsIgnoreCase(option,
LOG4CXX_STR("MININDEX"),
LOG4CXX_STR("minindex")))
vs.
if (StringHelper::equalsIgnoreCase( option,
LOG4CXX_STR("MININDEX"),
LOG4CXX_STR("minindex")))
The latter is what I prefer, but can't seem to be configured at all and especially not using tabs.
---
.astylerc | 6 +-
src/main/cpp/action.cpp | 42 +-
src/main/cpp/andfilter.cpp | 56 +-
src/main/cpp/appenderattachableimpl.cpp | 176 +-
src/main/cpp/appenderskeleton.cpp | 196 +-
src/main/cpp/aprinitializer.cpp | 86 +-
src/main/cpp/asyncappender.cpp | 552 ++--
src/main/cpp/asyncappender_nonblocking.cpp | 534 ++--
src/main/cpp/basicconfigurator.cpp | 18 +-
src/main/cpp/bufferedwriter.cpp | 44 +-
src/main/cpp/bytearrayinputstream.cpp | 26 +-
src/main/cpp/bytearrayoutputstream.cpp | 10 +-
src/main/cpp/bytebuffer.cpp | 48 +-
src/main/cpp/cacheddateformat.cpp | 390 +--
src/main/cpp/charsetdecoder.cpp | 780 ++---
src/main/cpp/charsetencoder.cpp | 904 +++---
src/main/cpp/class.cpp | 168 +-
src/main/cpp/classnamepatternconverter.cpp | 34 +-
src/main/cpp/classregistration.cpp | 2 +-
src/main/cpp/condition.cpp | 38 +-
src/main/cpp/consoleappender.cpp | 118 +-
src/main/cpp/cyclicbuffer.cpp | 168 +-
src/main/cpp/dailyrollingfileappender.cpp | 122 +-
src/main/cpp/datagrampacket.cpp | 12 +-
src/main/cpp/datagramsocket.cpp | 254 +-
src/main/cpp/date.cpp | 8 +-
src/main/cpp/dateformat.cpp | 2 +-
src/main/cpp/datelayout.cpp | 140 +-
src/main/cpp/datepatternconverter.cpp | 200 +-
src/main/cpp/defaultconfigurator.cpp | 138 +-
src/main/cpp/defaultloggerfactory.cpp | 6 +-
src/main/cpp/defaultrepositoryselector.cpp | 8 +-
src/main/cpp/domconfigurator.cpp | 1586 +++++-----
src/main/cpp/exception.cpp | 262 +-
src/main/cpp/fallbackerrorhandler.cpp | 72 +-
src/main/cpp/file.cpp | 300 +-
src/main/cpp/fileappender.cpp | 478 +--
src/main/cpp/filedatepatternconverter.cpp | 18 +-
src/main/cpp/fileinputstream.cpp | 100 +-
src/main/cpp/filelocationpatternconverter.cpp | 20 +-
src/main/cpp/fileoutputstream.cpp | 126 +-
src/main/cpp/filerenameaction.cpp | 8 +-
src/main/cpp/filewatchdog.cpp | 110 +-
src/main/cpp/filter.cpp | 8 +-
src/main/cpp/filterbasedtriggeringpolicy.cpp | 86 +-
src/main/cpp/fixedwindowrollingpolicy.cpp | 484 +--
src/main/cpp/formattinginfo.cpp | 46 +-
src/main/cpp/fulllocationpatternconverter.cpp | 30 +-
src/main/cpp/gzcompressaction.cpp | 196 +-
src/main/cpp/hierarchy.cpp | 482 +--
src/main/cpp/htmllayout.cpp | 334 +-
src/main/cpp/inetaddress.cpp | 132 +-
src/main/cpp/inputstreamreader.cpp | 76 +-
src/main/cpp/integerpatternconverter.cpp | 28 +-
src/main/cpp/layout.cpp | 6 +-
src/main/cpp/level.cpp | 224 +-
src/main/cpp/levelmatchfilter.cpp | 60 +-
src/main/cpp/levelpatternconverter.cpp | 66 +-
src/main/cpp/levelrangefilter.cpp | 84 +-
src/main/cpp/linelocationpatternconverter.cpp | 24 +-
src/main/cpp/lineseparatorpatternconverter.cpp | 28 +-
src/main/cpp/literalpatternconverter.cpp | 38 +-
src/main/cpp/loader.cpp | 18 +-
src/main/cpp/locale.cpp | 14 +-
src/main/cpp/locationinfo.cpp | 258 +-
src/main/cpp/logger.cpp | 1020 +++---
src/main/cpp/loggermatchfilter.cpp | 62 +-
src/main/cpp/loggerpatternconverter.cpp | 34 +-
src/main/cpp/loggingevent.cpp | 468 +--
src/main/cpp/loggingeventpatternconverter.cpp | 20 +-
src/main/cpp/loglog.cpp | 100 +-
src/main/cpp/logmanager.cpp | 128 +-
src/main/cpp/logstream.cpp | 554 ++--
src/main/cpp/manualtriggeringpolicy.cpp | 8 +-
src/main/cpp/mdc.cpp | 260 +-
src/main/cpp/messagebuffer.cpp | 614 ++--
src/main/cpp/messagepatternconverter.cpp | 20 +-
src/main/cpp/methodlocationpatternconverter.cpp | 20 +-
src/main/cpp/mutex.cpp | 240 +-
src/main/cpp/nameabbreviator.cpp | 548 ++--
src/main/cpp/namepatternconverter.cpp | 26 +-
src/main/cpp/ndc.cpp | 414 +--
src/main/cpp/ndcpatternconverter.cpp | 26 +-
src/main/cpp/nteventlogappender.cpp | 500 +--
src/main/cpp/objectimpl.cpp | 14 +-
src/main/cpp/objectoutputstream.cpp | 292 +-
src/main/cpp/objectptr.cpp | 20 +-
src/main/cpp/obsoleterollingfileappender.cpp | 148 +-
src/main/cpp/odbcappender.cpp | 502 +--
src/main/cpp/onlyonceerrorhandler.cpp | 34 +-
src/main/cpp/optionconverter.cpp | 622 ++--
src/main/cpp/outputdebugstringappender.cpp | 12 +-
src/main/cpp/outputstream.cpp | 4 +-
src/main/cpp/outputstreamwriter.cpp | 80 +-
src/main/cpp/patternconverter.cpp | 14 +-
src/main/cpp/patternlayout.cpp | 174 +-
src/main/cpp/patternparser.cpp | 648 ++--
src/main/cpp/pool.cpp | 50 +-
src/main/cpp/properties.cpp | 782 ++---
src/main/cpp/propertiespatternconverter.cpp | 80 +-
src/main/cpp/propertyconfigurator.cpp | 642 ++--
src/main/cpp/propertyresourcebundle.cpp | 32 +-
src/main/cpp/propertysetter.cpp | 112 +-
src/main/cpp/relativetimedateformat.cpp | 12 +-
src/main/cpp/relativetimepatternconverter.cpp | 22 +-
src/main/cpp/resourcebundle.cpp | 182 +-
src/main/cpp/rollingfileappender.cpp | 884 +++---
src/main/cpp/rollingpolicybase.cpp | 148 +-
src/main/cpp/rolloverdescription.cpp | 24 +-
src/main/cpp/rootlogger.cpp | 24 +-
src/main/cpp/serversocket.cpp | 196 +-
src/main/cpp/simpledateformat.cpp | 1132 +++----
src/main/cpp/simplelayout.cpp | 12 +-
src/main/cpp/sizebasedtriggeringpolicy.cpp | 26 +-
src/main/cpp/smtpappender.cpp | 976 +++---
src/main/cpp/socket.cpp | 178 +-
src/main/cpp/socketappender.cpp | 100 +-
src/main/cpp/socketappenderskeleton.cpp | 306 +-
src/main/cpp/sockethubappender.cpp | 344 +--
src/main/cpp/socketoutputstream.cpp | 32 +-
src/main/cpp/strftimedateformat.cpp | 36 +-
src/main/cpp/stringhelper.cpp | 214 +-
src/main/cpp/stringmatchfilter.cpp | 70 +-
src/main/cpp/stringtokenizer.cpp | 38 +-
src/main/cpp/synchronized.cpp | 52 +-
src/main/cpp/syslogappender.cpp | 568 ++--
src/main/cpp/syslogwriter.cpp | 56 +-
src/main/cpp/system.cpp | 158 +-
src/main/cpp/systemerrwriter.cpp | 30 +-
src/main/cpp/systemoutwriter.cpp | 30 +-
src/main/cpp/telnetappender.cpp | 430 +--
src/main/cpp/threadcxx.cpp | 422 +--
src/main/cpp/threadlocal.cpp | 38 +-
src/main/cpp/threadpatternconverter.cpp | 20 +-
src/main/cpp/threadspecificdata.cpp | 146 +-
.../cpp/throwableinformationpatternconverter.cpp | 32 +-
src/main/cpp/timebasedrollingpolicy.cpp | 554 ++--
src/main/cpp/timezone.cpp | 402 +--
src/main/cpp/transcoder.cpp | 882 +++---
src/main/cpp/transform.cpp | 178 +-
src/main/cpp/triggeringpolicy.cpp | 4 +-
src/main/cpp/ttcclayout.cpp | 66 +-
src/main/cpp/writer.cpp | 2 +-
src/main/cpp/writerappender.cpp | 346 +--
src/main/cpp/xmllayout.cpp | 226 +-
src/main/cpp/xmlsocketappender.cpp | 98 +-
src/main/cpp/zipcompressaction.cpp | 168 +-
src/main/include/log4cxx/appender.h | 164 +-
src/main/include/log4cxx/appenderskeleton.h | 372 +--
src/main/include/log4cxx/asyncappender.h | 478 +--
src/main/include/log4cxx/basicconfigurator.h | 38 +-
src/main/include/log4cxx/config/propertysetter.h | 82 +-
src/main/include/log4cxx/consoleappender.h | 62 +-
.../include/log4cxx/dailyrollingfileappender.h | 100 +-
src/main/include/log4cxx/db/odbcappender.h | 440 +--
src/main/include/log4cxx/defaultconfigurator.h | 26 +-
src/main/include/log4cxx/defaultloggerfactory.h | 20 +-
src/main/include/log4cxx/file.h | 262 +-
src/main/include/log4cxx/fileappender.h | 380 +--
src/main/include/log4cxx/filter/andfilter.h | 36 +-
src/main/include/log4cxx/filter/denyallfilter.h | 46 +-
src/main/include/log4cxx/filter/expressionfilter.h | 54 +-
src/main/include/log4cxx/filter/levelmatchfilter.h | 98 +-
src/main/include/log4cxx/filter/levelrangefilter.h | 170 +-
.../include/log4cxx/filter/locationinfofilter.h | 54 +-
.../include/log4cxx/filter/loggermatchfilter.h | 98 +-
src/main/include/log4cxx/filter/mapfilter.h | 14 +-
src/main/include/log4cxx/filter/propertyfilter.h | 32 +-
.../include/log4cxx/filter/stringmatchfilter.h | 74 +-
.../log4cxx/helpers/absolutetimedateformat.h | 6 +-
.../log4cxx/helpers/appenderattachableimpl.h | 156 +-
src/main/include/log4cxx/helpers/aprinitializer.h | 54 +-
.../include/log4cxx/helpers/bufferedoutputstream.h | 38 +-
src/main/include/log4cxx/helpers/bufferedwriter.h | 38 +-
.../include/log4cxx/helpers/bytearrayinputstream.h | 86 +-
.../log4cxx/helpers/bytearrayoutputstream.h | 48 +-
src/main/include/log4cxx/helpers/bytebuffer.h | 88 +-
.../include/log4cxx/helpers/cacheddateformat.h | 372 +--
src/main/include/log4cxx/helpers/charsetdecoder.h | 130 +-
src/main/include/log4cxx/helpers/charsetencoder.h | 184 +-
src/main/include/log4cxx/helpers/class.h | 36 +-
.../include/log4cxx/helpers/classregistration.h | 12 +-
src/main/include/log4cxx/helpers/condition.h | 56 +-
src/main/include/log4cxx/helpers/cyclicbuffer.h | 98 +-
src/main/include/log4cxx/helpers/datagrampacket.h | 224 +-
src/main/include/log4cxx/helpers/datagramsocket.h | 200 +-
src/main/include/log4cxx/helpers/date.h | 38 +-
src/main/include/log4cxx/helpers/dateformat.h | 88 +-
src/main/include/log4cxx/helpers/datelayout.h | 100 +-
.../include/log4cxx/helpers/datetimedateformat.h | 10 +-
src/main/include/log4cxx/helpers/exception.h | 238 +-
src/main/include/log4cxx/helpers/fileinputstream.h | 102 +-
.../include/log4cxx/helpers/fileoutputstream.h | 48 +-
src/main/include/log4cxx/helpers/filewatchdog.h | 74 +-
src/main/include/log4cxx/helpers/inetaddress.h | 78 +-
src/main/include/log4cxx/helpers/inputstream.h | 50 +-
.../include/log4cxx/helpers/inputstreamreader.h | 100 +-
src/main/include/log4cxx/helpers/integer.h | 30 +-
.../include/log4cxx/helpers/iso8601dateformat.h | 6 +-
src/main/include/log4cxx/helpers/loader.h | 8 +-
src/main/include/log4cxx/helpers/locale.h | 28 +-
src/main/include/log4cxx/helpers/loglog.h | 118 +-
src/main/include/log4cxx/helpers/messagebuffer.h | 1424 ++++-----
src/main/include/log4cxx/helpers/mutex.h | 82 +-
src/main/include/log4cxx/helpers/object.h | 146 +-
src/main/include/log4cxx/helpers/objectimpl.h | 26 +-
.../include/log4cxx/helpers/objectoutputstream.h | 104 +-
src/main/include/log4cxx/helpers/objectptr.h | 156 +-
.../include/log4cxx/helpers/onlyonceerrorhandler.h | 116 +-
src/main/include/log4cxx/helpers/optionconverter.h | 222 +-
src/main/include/log4cxx/helpers/outputstream.h | 36 +-
.../include/log4cxx/helpers/outputstreamwriter.h | 46 +-
src/main/include/log4cxx/helpers/pool.h | 44 +-
src/main/include/log4cxx/helpers/properties.h | 278 +-
.../log4cxx/helpers/propertyresourcebundle.h | 38 +-
src/main/include/log4cxx/helpers/reader.h | 50 +-
.../log4cxx/helpers/relativetimedateformat.h | 14 +-
src/main/include/log4cxx/helpers/resourcebundle.h | 80 +-
src/main/include/log4cxx/helpers/serversocket.h | 46 +-
.../include/log4cxx/helpers/simpledateformat.h | 74 +-
src/main/include/log4cxx/helpers/socket.h | 58 +-
.../include/log4cxx/helpers/socketoutputstream.h | 48 +-
.../include/log4cxx/helpers/strftimedateformat.h | 44 +-
src/main/include/log4cxx/helpers/strictmath.h | 22 +-
src/main/include/log4cxx/helpers/stringhelper.h | 32 +-
src/main/include/log4cxx/helpers/stringtokenizer.h | 26 +-
src/main/include/log4cxx/helpers/synchronized.h | 52 +-
src/main/include/log4cxx/helpers/syslogwriter.h | 16 +-
src/main/include/log4cxx/helpers/system.h | 18 +-
src/main/include/log4cxx/helpers/systemerrwriter.h | 42 +-
src/main/include/log4cxx/helpers/systemoutwriter.h | 40 +-
src/main/include/log4cxx/helpers/thread.h | 126 +-
src/main/include/log4cxx/helpers/threadlocal.h | 74 +-
.../include/log4cxx/helpers/threadspecificdata.h | 44 +-
src/main/include/log4cxx/helpers/timezone.h | 44 +-
src/main/include/log4cxx/helpers/transcoder.h | 316 +-
src/main/include/log4cxx/helpers/transform.h | 50 +-
src/main/include/log4cxx/helpers/writer.h | 36 +-
src/main/include/log4cxx/helpers/xml.h | 62 +-
src/main/include/log4cxx/hierarchy.h | 326 +-
src/main/include/log4cxx/htmllayout.h | 200 +-
src/main/include/log4cxx/layout.h | 104 +-
src/main/include/log4cxx/level.h | 490 +--
src/main/include/log4cxx/logger.h | 3246 ++++++++++----------
src/main/include/log4cxx/logmanager.h | 298 +-
src/main/include/log4cxx/logstring.h | 44 +-
src/main/include/log4cxx/mdc.h | 352 +--
src/main/include/log4cxx/ndc.h | 488 +--
src/main/include/log4cxx/net/smtpappender.h | 472 +--
src/main/include/log4cxx/net/socketappender.h | 78 +-
.../include/log4cxx/net/socketappenderskeleton.h | 308 +-
src/main/include/log4cxx/net/sockethubappender.h | 180 +-
src/main/include/log4cxx/net/syslogappender.h | 230 +-
src/main/include/log4cxx/net/telnetappender.h | 166 +-
src/main/include/log4cxx/net/xmlsocketappender.h | 78 +-
src/main/include/log4cxx/nt/nteventlogappender.h | 170 +-
.../include/log4cxx/nt/outputdebugstringappender.h | 26 +-
.../log4cxx/pattern/classnamepatternconverter.h | 48 +-
.../include/log4cxx/pattern/datepatternconverter.h | 86 +-
.../log4cxx/pattern/filedatepatternconverter.h | 24 +-
.../log4cxx/pattern/filelocationpatternconverter.h | 44 +-
src/main/include/log4cxx/pattern/formattinginfo.h | 142 +-
.../log4cxx/pattern/fulllocationpatternconverter.h | 44 +-
.../log4cxx/pattern/integerpatternconverter.h | 40 +-
.../log4cxx/pattern/levelpatternconverter.h | 44 +-
.../log4cxx/pattern/linelocationpatternconverter.h | 44 +-
.../pattern/lineseparatorpatternconverter.h | 50 +-
.../log4cxx/pattern/literalpatternconverter.h | 46 +-
.../log4cxx/pattern/loggerpatternconverter.h | 46 +-
.../log4cxx/pattern/loggingeventpatternconverter.h | 72 +-
.../log4cxx/pattern/messagepatternconverter.h | 42 +-
.../pattern/methodlocationpatternconverter.h | 44 +-
src/main/include/log4cxx/pattern/nameabbreviator.h | 68 +-
.../include/log4cxx/pattern/namepatternconverter.h | 58 +-
.../include/log4cxx/pattern/ndcpatternconverter.h | 42 +-
.../include/log4cxx/pattern/patternconverter.h | 134 +-
src/main/include/log4cxx/pattern/patternparser.h | 214 +-
.../log4cxx/pattern/propertiespatternconverter.h | 56 +-
.../log4cxx/pattern/relativetimepatternconverter.h | 42 +-
.../log4cxx/pattern/threadpatternconverter.h | 42 +-
.../pattern/throwableinformationpatternconverter.h | 64 +-
src/main/include/log4cxx/patternlayout.h | 128 +-
src/main/include/log4cxx/propertyconfigurator.h | 592 ++--
src/main/include/log4cxx/rolling/action.h | 88 +-
.../include/log4cxx/rolling/filerenameaction.h | 46 +-
.../log4cxx/rolling/filterbasedtriggeringpolicy.h | 128 +-
.../log4cxx/rolling/fixedwindowrollingpolicy.h | 78 +-
.../include/log4cxx/rolling/gzcompressaction.h | 54 +-
.../log4cxx/rolling/manualtriggeringpolicy.h | 50 +-
.../include/log4cxx/rolling/rollingfileappender.h | 34 +-
.../log4cxx/rolling/rollingfileappenderskeleton.h | 244 +-
src/main/include/log4cxx/rolling/rollingpolicy.h | 70 +-
.../include/log4cxx/rolling/rollingpolicybase.h | 148 +-
.../include/log4cxx/rolling/rolloverdescription.h | 130 +-
.../log4cxx/rolling/sizebasedtriggeringpolicy.h | 58 +-
.../log4cxx/rolling/timebasedrollingpolicy.h | 280 +-
.../include/log4cxx/rolling/triggeringpolicy.h | 54 +-
.../include/log4cxx/rolling/zipcompressaction.h | 54 +-
src/main/include/log4cxx/rollingfileappender.h | 114 +-
src/main/include/log4cxx/simplelayout.h | 62 +-
src/main/include/log4cxx/spi/appenderattachable.h | 76 +-
src/main/include/log4cxx/spi/configurator.h | 32 +-
.../log4cxx/spi/defaultrepositoryselector.h | 26 +-
src/main/include/log4cxx/spi/errorhandler.h | 140 +-
src/main/include/log4cxx/spi/filter.h | 116 +-
.../include/log4cxx/spi/hierarchyeventlistener.h | 24 +-
.../include/log4cxx/spi/location/locationinfo.h | 138 +-
src/main/include/log4cxx/spi/loggerfactory.h | 12 +-
src/main/include/log4cxx/spi/loggerrepository.h | 90 +-
src/main/include/log4cxx/spi/loggingevent.h | 420 +--
src/main/include/log4cxx/spi/optionhandler.h | 46 +-
src/main/include/log4cxx/spi/repositoryselector.h | 8 +-
src/main/include/log4cxx/spi/rootlogger.h | 32 +-
.../include/log4cxx/spi/triggeringeventevaluator.h | 12 +-
src/main/include/log4cxx/stream.h | 844 ++---
src/main/include/log4cxx/ttcclayout.h | 250 +-
.../include/log4cxx/varia/fallbackerrorhandler.h | 142 +-
src/main/include/log4cxx/writerappender.h | 340 +-
src/main/include/log4cxx/xml/domconfigurator.h | 446 +--
src/main/include/log4cxx/xml/xmllayout.h | 170 +-
320 files changed, 27509 insertions(+), 27509 deletions(-)
diff --git a/.astylerc b/.astylerc
index face8a8..5459711 100644
--- a/.astylerc
+++ b/.astylerc
@@ -19,15 +19,15 @@
--break-one-line-headers
--convert-tabs
+--indent-after-parens
--indent-classes
--indent-col1-comments
---indent-continuation=1
--indent-preproc-block
--indent-preproc-define
--indent-switches
---indent=spaces=4
+--indent=force-tab=4
---lineend=windows
+--lineend=linux
--pad-comma
--pad-header
--pad-oper
diff --git a/src/main/cpp/action.cpp b/src/main/cpp/action.cpp
index 5f0f26f..ee347e4 100644
--- a/src/main/cpp/action.cpp
+++ b/src/main/cpp/action.cpp
@@ -25,10 +25,10 @@ using namespace log4cxx::helpers;
IMPLEMENT_LOG4CXX_OBJECT(Action)
Action::Action() :
- complete(false),
- interrupted(false),
- pool(),
- mutex(pool)
+ complete(false),
+ interrupted(false),
+ pool(),
+ mutex(pool)
{
}
@@ -41,22 +41,22 @@ Action::~Action()
*/
void Action::run(log4cxx::helpers::Pool& pool1)
{
- synchronized sync(mutex);
+ synchronized sync(mutex);
- if (!interrupted)
- {
- try
- {
- execute(pool1);
- }
- catch (std::exception& ex)
- {
- reportException(ex);
- }
+ if (!interrupted)
+ {
+ try
+ {
+ execute(pool1);
+ }
+ catch (std::exception& ex)
+ {
+ reportException(ex);
+ }
- complete = true;
- interrupted = true;
- }
+ complete = true;
+ interrupted = true;
+ }
}
/**
@@ -64,8 +64,8 @@ void Action::run(log4cxx::helpers::Pool& pool1)
*/
void Action::close()
{
- synchronized sync(mutex);
- interrupted = true;
+ synchronized sync(mutex);
+ interrupted = true;
}
/**
@@ -74,7 +74,7 @@ void Action::close()
*/
bool Action::isComplete() const
{
- return complete;
+ return complete;
}
/**
diff --git a/src/main/cpp/andfilter.cpp b/src/main/cpp/andfilter.cpp
index a83e7b7..0bf16cd 100644
--- a/src/main/cpp/andfilter.cpp
+++ b/src/main/cpp/andfilter.cpp
@@ -29,51 +29,51 @@ IMPLEMENT_LOG4CXX_OBJECT(AndFilter)
AndFilter::AndFilter()
- : headFilter(), tailFilter(), acceptOnMatch(true)
+ : headFilter(), tailFilter(), acceptOnMatch(true)
{
}
void AndFilter::addFilter(const FilterPtr& filter)
{
- if (headFilter == NULL)
- {
- headFilter = filter;
- tailFilter = filter;
- }
- else
- {
- tailFilter->setNext(filter);
- }
+ if (headFilter == NULL)
+ {
+ headFilter = filter;
+ tailFilter = filter;
+ }
+ else
+ {
+ tailFilter->setNext(filter);
+ }
}
void AndFilter::setAcceptOnMatch(bool newValue)
{
- acceptOnMatch = newValue;
+ acceptOnMatch = newValue;
}
Filter::FilterDecision AndFilter::decide(
- const spi::LoggingEventPtr& event) const
+ const spi::LoggingEventPtr& event) const
{
- bool accepted = true;
- FilterPtr f(headFilter);
+ bool accepted = true;
+ FilterPtr f(headFilter);
- while (f != NULL)
- {
- accepted = accepted && (Filter::ACCEPT == f->decide(event));
- f = f->getNext();
- }
+ while (f != NULL)
+ {
+ accepted = accepted && (Filter::ACCEPT == f->decide(event));
+ f = f->getNext();
+ }
- if (accepted)
- {
- if (acceptOnMatch)
- {
- return Filter::ACCEPT;
- }
+ if (accepted)
+ {
+ if (acceptOnMatch)
+ {
+ return Filter::ACCEPT;
+ }
- return Filter::DENY;
- }
+ return Filter::DENY;
+ }
- return Filter::NEUTRAL;
+ return Filter::NEUTRAL;
}
diff --git a/src/main/cpp/appenderattachableimpl.cpp b/src/main/cpp/appenderattachableimpl.cpp
index 9d2f9e6..92c4fad 100644
--- a/src/main/cpp/appenderattachableimpl.cpp
+++ b/src/main/cpp/appenderattachableimpl.cpp
@@ -29,144 +29,144 @@ IMPLEMENT_LOG4CXX_OBJECT(AppenderAttachableImpl)
AppenderAttachableImpl::AppenderAttachableImpl(Pool& pool)
- : appenderList(),
- mutex(pool)
+ : appenderList(),
+ mutex(pool)
{
}
void AppenderAttachableImpl::addRef() const
{
- ObjectImpl::addRef();
+ ObjectImpl::addRef();
}
void AppenderAttachableImpl::releaseRef() const
{
- ObjectImpl::releaseRef();
+ ObjectImpl::releaseRef();
}
void AppenderAttachableImpl::addAppender(const AppenderPtr& newAppender)
{
- // Null values for newAppender parameter are strictly forbidden.
- if (newAppender == 0)
- {
- return;
- }
-
- AppenderList::iterator it = std::find(
- appenderList.begin(), appenderList.end(), newAppender);
-
- if (it == appenderList.end())
- {
- appenderList.push_back(newAppender);
- }
+ // Null values for newAppender parameter are strictly forbidden.
+ if (newAppender == 0)
+ {
+ return;
+ }
+
+ AppenderList::iterator it = std::find(
+ appenderList.begin(), appenderList.end(), newAppender);
+
+ if (it == appenderList.end())
+ {
+ appenderList.push_back(newAppender);
+ }
}
int AppenderAttachableImpl::appendLoopOnAppenders(
- const spi::LoggingEventPtr& event,
- Pool& p)
+ const spi::LoggingEventPtr& event,
+ Pool& p)
{
- for (AppenderList::iterator it = appenderList.begin();
- it != appenderList.end();
- it++)
- {
- (*it)->doAppend(event, p);
- }
-
- return appenderList.size();
+ for (AppenderList::iterator it = appenderList.begin();
+ it != appenderList.end();
+ it++)
+ {
+ (*it)->doAppend(event, p);
+ }
+
+ return appenderList.size();
}
AppenderList AppenderAttachableImpl::getAllAppenders() const
{
- return appenderList;
+ return appenderList;
}
AppenderPtr AppenderAttachableImpl::getAppender(const LogString& name) const
{
- if (name.empty())
- {
- return 0;
- }
+ if (name.empty())
+ {
+ return 0;
+ }
- AppenderList::const_iterator it, itEnd = appenderList.end();
- AppenderPtr appender;
+ AppenderList::const_iterator it, itEnd = appenderList.end();
+ AppenderPtr appender;
- for (it = appenderList.begin(); it != itEnd; it++)
- {
- appender = *it;
+ for (it = appenderList.begin(); it != itEnd; it++)
+ {
+ appender = *it;
- if (name == appender->getName())
- {
- return appender;
- }
- }
+ if (name == appender->getName())
+ {
+ return appender;
+ }
+ }
- return 0;
+ return 0;
}
bool AppenderAttachableImpl::isAttached(const AppenderPtr& appender) const
{
- if (appender == 0)
- {
- return false;
- }
+ if (appender == 0)
+ {
+ return false;
+ }
- AppenderList::const_iterator it = std::find(
- appenderList.begin(), appenderList.end(), appender);
+ AppenderList::const_iterator it = std::find(
+ appenderList.begin(), appenderList.end(), appender);
- return it != appenderList.end();
+ return it != appenderList.end();
}
void AppenderAttachableImpl::removeAllAppenders()
{
- AppenderList::iterator it, itEnd = appenderList.end();
- AppenderPtr a;
+ AppenderList::iterator it, itEnd = appenderList.end();
+ AppenderPtr a;
- for (it = appenderList.begin(); it != itEnd; it++)
- {
- a = *it;
- a->close();
- }
+ for (it = appenderList.begin(); it != itEnd; it++)
+ {
+ a = *it;
+ a->close();
+ }
- appenderList.clear();
+ appenderList.clear();
}
void AppenderAttachableImpl::removeAppender(const AppenderPtr& appender)
{
- if (appender == 0)
- {
- return;
- }
-
- AppenderList::iterator it = std::find(
- appenderList.begin(), appenderList.end(), appender);
-
- if (it != appenderList.end())
- {
- appenderList.erase(it);
- }
+ if (appender == 0)
+ {
+ return;
+ }
+
+ AppenderList::iterator it = std::find(
+ appenderList.begin(), appenderList.end(), appender);
+
+ if (it != appenderList.end())
+ {
+ appenderList.erase(it);
+ }
}
void AppenderAttachableImpl::removeAppender(const LogString& name)
{
- if (name.empty())
- {
- return;
- }
-
- AppenderList::iterator it, itEnd = appenderList.end();
- AppenderPtr appender;
-
- for (it = appenderList.begin(); it != itEnd; it++)
- {
- appender = *it;
-
- if (name == appender->getName())
- {
- appenderList.erase(it);
- return;
- }
- }
+ if (name.empty())
+ {
+ return;
+ }
+
+ AppenderList::iterator it, itEnd = appenderList.end();
+ AppenderPtr appender;
+
+ for (it = appenderList.begin(); it != itEnd; it++)
+ {
+ appender = *it;
+
+ if (name == appender->getName())
+ {
+ appenderList.erase(it);
+ return;
+ }
+ }
}
diff --git a/src/main/cpp/appenderskeleton.cpp b/src/main/cpp/appenderskeleton.cpp
index 0d68dcc..42c1999 100644
--- a/src/main/cpp/appenderskeleton.cpp
+++ b/src/main/cpp/appenderskeleton.cpp
@@ -33,154 +33,154 @@ IMPLEMENT_LOG4CXX_OBJECT(AppenderSkeleton)
AppenderSkeleton::AppenderSkeleton()
- : layout(),
- name(),
- threshold(Level::getAll()),
- errorHandler(new OnlyOnceErrorHandler()),
- headFilter(),
- tailFilter(),
- pool(),
- SHARED_MUTEX_INIT(mutex, pool)
+ : layout(),
+ name(),
+ threshold(Level::getAll()),
+ errorHandler(new OnlyOnceErrorHandler()),
+ headFilter(),
+ tailFilter(),
+ pool(),
+ SHARED_MUTEX_INIT(mutex, pool)
{
- LOCK_W sync(mutex);
- closed = false;
+ LOCK_W sync(mutex);
+ closed = false;
}
AppenderSkeleton::AppenderSkeleton(const LayoutPtr& layout1)
- : layout(layout1),
- name(),
- threshold(Level::getAll()),
- errorHandler(new OnlyOnceErrorHandler()),
- headFilter(),
- tailFilter(),
- pool(),
- SHARED_MUTEX_INIT(mutex, pool)
+ : layout(layout1),
+ name(),
+ threshold(Level::getAll()),
+ errorHandler(new OnlyOnceErrorHandler()),
+ headFilter(),
+ tailFilter(),
+ pool(),
+ SHARED_MUTEX_INIT(mutex, pool)
{
- LOCK_W sync(mutex);
- closed = false;
+ LOCK_W sync(mutex);
+ closed = false;
}
void AppenderSkeleton::addRef() const
{
- ObjectImpl::addRef();
+ ObjectImpl::addRef();
}
void AppenderSkeleton::releaseRef() const
{
- ObjectImpl::releaseRef();
+ ObjectImpl::releaseRef();
}
void AppenderSkeleton::finalize()
{
- // An appender might be closed then garbage collected. There is no
- // point in closing twice.
- if (closed)
- {
- return;
- }
-
- close();
+ // An appender might be closed then garbage collected. There is no
+ // point in closing twice.
+ if (closed)
+ {
+ return;
+ }
+
+ close();
}
void AppenderSkeleton::addFilter(const spi::FilterPtr& newFilter)
{
- LOCK_W sync(mutex);
-
- if (headFilter == 0)
- {
- headFilter = tailFilter = newFilter;
- }
- else
- {
- tailFilter->setNext(newFilter);
- tailFilter = newFilter;
- }
+ LOCK_W sync(mutex);
+
+ if (headFilter == 0)
+ {
+ headFilter = tailFilter = newFilter;
+ }
+ else
+ {
+ tailFilter->setNext(newFilter);
+ tailFilter = newFilter;
+ }
}
void AppenderSkeleton::clearFilters()
{
- LOCK_W sync(mutex);
- headFilter = tailFilter = 0;
+ LOCK_W sync(mutex);
+ headFilter = tailFilter = 0;
}
bool AppenderSkeleton::isAsSevereAsThreshold(const LevelPtr& level) const
{
- return ((level == 0) || level->isGreaterOrEqual(threshold));
+ return ((level == 0) || level->isGreaterOrEqual(threshold));
}
void AppenderSkeleton::doAppend(const spi::LoggingEventPtr& event, Pool& pool1)
{
- LOCK_W sync(mutex);
+ LOCK_W sync(mutex);
- doAppendImpl(event, pool1);
+ doAppendImpl(event, pool1);
}
void AppenderSkeleton::doAppendImpl(const spi::LoggingEventPtr& event, Pool& pool1)
{
- if (closed)
- {
- LogLog::error(((LogString) LOG4CXX_STR("Attempted to append to closed appender named ["))
- + name + LOG4CXX_STR("]."));
- return;
- }
-
- if (!isAsSevereAsThreshold(event->getLevel()))
- {
- return;
- }
-
- FilterPtr f = headFilter;
-
-
- while (f != 0)
- {
- switch (f->decide(event))
- {
- case Filter::DENY:
- return;
-
- case Filter::ACCEPT:
- f = 0;
- break;
-
- case Filter::NEUTRAL:
- f = f->getNext();
- }
- }
-
- append(event, pool1);
+ if (closed)
+ {
+ LogLog::error(((LogString) LOG4CXX_STR("Attempted to append to closed appender named ["))
+ + name + LOG4CXX_STR("]."));
+ return;
+ }
+
+ if (!isAsSevereAsThreshold(event->getLevel()))
+ {
+ return;
+ }
+
+ FilterPtr f = headFilter;
+
+
+ while (f != 0)
+ {
+ switch (f->decide(event))
+ {
+ case Filter::DENY:
+ return;
+
+ case Filter::ACCEPT:
+ f = 0;
+ break;
+
+ case Filter::NEUTRAL:
+ f = f->getNext();
+ }
+ }
+
+ append(event, pool1);
}
void AppenderSkeleton::setErrorHandler(const spi::ErrorHandlerPtr& errorHandler1)
{
- LOCK_W sync(mutex);
-
- if (errorHandler1 == 0)
- {
- // We do not throw exception here since the cause is probably a
- // bad config file.
- LogLog::warn(LOG4CXX_STR("You have tried to set a null error-handler."));
- }
- else
- {
- this->errorHandler = errorHandler1;
- }
+ LOCK_W sync(mutex);
+
+ if (errorHandler1 == 0)
+ {
+ // We do not throw exception here since the cause is probably a
+ // bad config file.
+ LogLog::warn(LOG4CXX_STR("You have tried to set a null error-handler."));
+ }
+ else
+ {
+ this->errorHandler = errorHandler1;
+ }
}
void AppenderSkeleton::setThreshold(const LevelPtr& threshold1)
{
- LOCK_W sync(mutex);
- this->threshold = threshold1;
+ LOCK_W sync(mutex);
+ this->threshold = threshold1;
}
void AppenderSkeleton::setOption(const LogString& option,
- const LogString& value)
+ const LogString& value)
{
- if (StringHelper::equalsIgnoreCase(option,
- LOG4CXX_STR("THRESHOLD"), LOG4CXX_STR("threshold")))
- {
- setThreshold(Level::toLevelLS(value));
- }
+ if (StringHelper::equalsIgnoreCase(option,
+ LOG4CXX_STR("THRESHOLD"), LOG4CXX_STR("threshold")))
+ {
+ setThreshold(Level::toLevelLS(value));
+ }
}
diff --git a/src/main/cpp/aprinitializer.cpp b/src/main/cpp/aprinitializer.cpp
index 151c056..ccb7241 100644
--- a/src/main/cpp/aprinitializer.cpp
+++ b/src/main/cpp/aprinitializer.cpp
@@ -16,7 +16,7 @@
*/
#include <log4cxx/logstring.h>
#if !defined(LOG4CXX)
- #define LOG4CXX 1
+ #define LOG4CXX 1
#endif
#include <log4cxx/helpers/aprinitializer.h>
#include <apr_pools.h>
@@ -38,94 +38,94 @@ namespace
{
extern "C" void tlsDestruct(void* ptr)
{
- delete ((ThreadSpecificData*) ptr);
+ delete ((ThreadSpecificData*) ptr);
}
}
APRInitializer::APRInitializer() : p(0), mutex(0), startTime(0), tlsKey(0)
{
- apr_initialize();
- apr_pool_create(&p, NULL);
- apr_atomic_init(p);
- startTime = apr_time_now();
+ apr_initialize();
+ apr_pool_create(&p, NULL);
+ apr_atomic_init(p);
+ startTime = apr_time_now();
#if APR_HAS_THREADS
- apr_status_t stat = apr_threadkey_private_create(&tlsKey, tlsDestruct, p);
- assert(stat == APR_SUCCESS);
- stat = apr_thread_mutex_create(&mutex, APR_THREAD_MUTEX_NESTED, p);
- assert(stat == APR_SUCCESS);
+ apr_status_t stat = apr_threadkey_private_create(&tlsKey, tlsDestruct, p);
+ assert(stat == APR_SUCCESS);
+ stat = apr_thread_mutex_create(&mutex, APR_THREAD_MUTEX_NESTED, p);
+ assert(stat == APR_SUCCESS);
#endif
}
APRInitializer::~APRInitializer()
{
- {
+ {
#if APR_HAS_THREADS
- synchronized sync(mutex);
- apr_threadkey_private_delete(tlsKey);
+ synchronized sync(mutex);
+ apr_threadkey_private_delete(tlsKey);
#endif
- for (std::list<FileWatchdog*>::iterator iter = watchdogs.begin();
- iter != watchdogs.end();
- iter++)
- {
- delete *iter;
- }
- }
+ for (std::list<FileWatchdog*>::iterator iter = watchdogs.begin();
+ iter != watchdogs.end();
+ iter++)
+ {
+ delete *iter;
+ }
+ }
- // TODO LOGCXX-322
+ // TODO LOGCXX-322
#ifndef APR_HAS_THREADS
- apr_terminate();
+ apr_terminate();
#endif
- isDestructed = true;
+ isDestructed = true;
}
APRInitializer& APRInitializer::getInstance()
{
- static APRInitializer init;
- return init;
+ static APRInitializer init;
+ return init;
}
log4cxx_time_t APRInitializer::initialize()
{
- return getInstance().startTime;
+ return getInstance().startTime;
}
apr_pool_t* APRInitializer::getRootPool()
{
- return getInstance().p;
+ return getInstance().p;
}
apr_threadkey_t* APRInitializer::getTlsKey()
{
- return getInstance().tlsKey;
+ return getInstance().tlsKey;
}
void APRInitializer::registerCleanup(FileWatchdog* watchdog)
{
- APRInitializer& instance(getInstance());
+ APRInitializer& instance(getInstance());
#if APR_HAS_THREADS
- synchronized sync(instance.mutex);
+ synchronized sync(instance.mutex);
#endif
- instance.watchdogs.push_back(watchdog);
+ instance.watchdogs.push_back(watchdog);
}
void APRInitializer::unregisterCleanup(FileWatchdog* watchdog)
{
- APRInitializer& instance(getInstance());
+ APRInitializer& instance(getInstance());
#if APR_HAS_THREADS
- synchronized sync(instance.mutex);
+ synchronized sync(instance.mutex);
#endif
- for (std::list<FileWatchdog*>::iterator iter = instance.watchdogs.begin();
- iter != instance.watchdogs.end();
- iter++)
- {
- if (*iter == watchdog)
- {
- instance.watchdogs.erase(iter);
- return;
- }
- }
+ for (std::list<FileWatchdog*>::iterator iter = instance.watchdogs.begin();
+ iter != instance.watchdogs.end();
+ iter++)
+ {
+ if (*iter == watchdog)
+ {
+ instance.watchdogs.erase(iter);
+ return;
+ }
+ }
}
diff --git a/src/main/cpp/asyncappender.cpp b/src/main/cpp/asyncappender.cpp
index 0a9930f..603b42c 100644
--- a/src/main/cpp/asyncappender.cpp
+++ b/src/main/cpp/asyncappender.cpp
@@ -16,7 +16,7 @@
*/
#if defined(_MSC_VER)
- #pragma warning ( disable: 4231 4251 4275 4786 )
+ #pragma warning ( disable: 4231 4251 4275 4786 )
#endif
#include <log4cxx/asyncappender.h>
@@ -43,413 +43,413 @@ IMPLEMENT_LOG4CXX_OBJECT(AsyncAppender)
AsyncAppender::AsyncAppender()
- : AppenderSkeleton(),
- buffer(),
- bufferMutex(pool),
- bufferNotFull(pool),
- bufferNotEmpty(pool),
- discardMap(new DiscardMap()),
- bufferSize(DEFAULT_BUFFER_SIZE),
- appenders(new AppenderAttachableImpl(pool)),
- dispatcher(),
- locationInfo(false),
- blocking(true)
+ : AppenderSkeleton(),
+ buffer(),
+ bufferMutex(pool),
+ bufferNotFull(pool),
+ bufferNotEmpty(pool),
+ discardMap(new DiscardMap()),
+ bufferSize(DEFAULT_BUFFER_SIZE),
+ appenders(new AppenderAttachableImpl(pool)),
+ dispatcher(),
+ locationInfo(false),
+ blocking(true)
{
#if APR_HAS_THREADS
- dispatcher.run(dispatch, this);
+ dispatcher.run(dispatch, this);
#endif
}
AsyncAppender::~AsyncAppender()
{
- finalize();
- delete discardMap;
+ finalize();
+ delete discardMap;
}
void AsyncAppender::addRef() const
{
- ObjectImpl::addRef();
+ ObjectImpl::addRef();
}
void AsyncAppender::releaseRef() const
{
- ObjectImpl::releaseRef();
+ ObjectImpl::releaseRef();
}
void AsyncAppender::addAppender(const AppenderPtr& newAppender)
{
- synchronized sync(appenders->getMutex());
- appenders->addAppender(newAppender);
+ synchronized sync(appenders->getMutex());
+ appenders->addAppender(newAppender);
}
void AsyncAppender::setOption(const LogString& option,
- const LogString& value)
+ const LogString& value)
{
- if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("LOCATIONINFO"), LOG4CXX_STR("locationinfo")))
- {
- setLocationInfo(OptionConverter::toBoolean(value, false));
- }
-
- if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("BUFFERSIZE"), LOG4CXX_STR("buffersize")))
- {
- setBufferSize(OptionConverter::toInt(value, DEFAULT_BUFFER_SIZE));
- }
-
- if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("BLOCKING"), LOG4CXX_STR("blocking")))
- {
- setBlocking(OptionConverter::toBoolean(value, true));
- }
- else
- {
- AppenderSkeleton::setOption(option, value);
- }
+ if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("LOCATIONINFO"), LOG4CXX_STR("locationinfo")))
+ {
+ setLocationInfo(OptionConverter::toBoolean(value, false));
+ }
+
+ if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("BUFFERSIZE"), LOG4CXX_STR("buffersize")))
+ {
+ setBufferSize(OptionConverter::toInt(value, DEFAULT_BUFFER_SIZE));
+ }
+
+ if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("BLOCKING"), LOG4CXX_STR("blocking")))
+ {
+ setBlocking(OptionConverter::toBoolean(value, true));
+ }
+ else
+ {
+ AppenderSkeleton::setOption(option, value);
+ }
}
void AsyncAppender::doAppend(const spi::LoggingEventPtr& event, Pool& pool1)
{
- LOCK_R sync(mutex);
+ LOCK_R sync(mutex);
- doAppendImpl(event, pool1);
+ doAppendImpl(event, pool1);
}
void AsyncAppender::append(const spi::LoggingEventPtr& event, Pool& p)
{
#if APR_HAS_THREADS
- //
- // if dispatcher has died then
- // append subsequent events synchronously
- //
- if (!dispatcher.isAlive() || bufferSize <= 0)
- {
- synchronized sync(appenders->getMutex());
- appenders->appendLoopOnAppenders(event, p);
- return;
- }
-
- // Set the NDC and thread name for the calling thread as these
- // LoggingEvent fields were not set at event creation time.
- LogString ndcVal;
- event->getNDC(ndcVal);
- event->getThreadName();
- // Get a copy of this thread's MDC.
- event->getMDCCopy();
-
-
- {
- synchronized sync(bufferMutex);
-
- while (true)
- {
- int previousSize = buffer.size();
-
- if (previousSize < bufferSize)
- {
- buffer.push_back(event);
-
- if (previousSize == 0)
- {
- bufferNotEmpty.signalAll();
- }
-
- break;
- }
-
- //
- // Following code is only reachable if buffer is full
- //
- //
- // if blocking and thread is not already interrupted
- // and not the dispatcher then
- // wait for a buffer notification
- bool discard = true;
-
- if (blocking
- && !Thread::interrupted()
- && !dispatcher.isCurrentThread())
- {
- try
- {
- bufferNotFull.await(bufferMutex);
- discard = false;
- }
- catch (InterruptedException& e)
- {
- //
- // reset interrupt status so
- // calling code can see interrupt on
- // their next wait or sleep.
- Thread::currentThreadInterrupt();
- }
- }
-
- //
- // if blocking is false or thread has been interrupted
- // add event to discard map.
- //
- if (discard)
- {
- LogString loggerName = event->getLoggerName();
- DiscardMap::iterator iter = discardMap->find(loggerName);
-
- if (iter == discardMap->end())
- {
- DiscardSummary summary(event);
- discardMap->insert(DiscardMap::value_type(loggerName, summary));
- }
- else
- {
- (*iter).second.add(event);
- }
-
- break;
- }
- }
- }
+ //
+ // if dispatcher has died then
+ // append subsequent events synchronously
+ //
+ if (!dispatcher.isAlive() || bufferSize <= 0)
+ {
+ synchronized sync(appenders->getMutex());
+ appenders->appendLoopOnAppenders(event, p);
+ return;
+ }
+
+ // Set the NDC and thread name for the calling thread as these
+ // LoggingEvent fields were not set at event creation time.
+ LogString ndcVal;
+ event->getNDC(ndcVal);
+ event->getThreadName();
+ // Get a copy of this thread's MDC.
+ event->getMDCCopy();
+
+
+ {
+ synchronized sync(bufferMutex);
+
+ while (true)
+ {
+ int previousSize = buffer.size();
+
+ if (previousSize < bufferSize)
+ {
+ buffer.push_back(event);
+
+ if (previousSize == 0)
+ {
+ bufferNotEmpty.signalAll();
+ }
+
+ break;
+ }
+
+ //
+ // Following code is only reachable if buffer is full
+ //
+ //
+ // if blocking and thread is not already interrupted
+ // and not the dispatcher then
+ // wait for a buffer notification
+ bool discard = true;
+
+ if (blocking
+ && !Thread::interrupted()
+ && !dispatcher.isCurrentThread())
+ {
+ try
+ {
+ bufferNotFull.await(bufferMutex);
+ discard = false;
+ }
+ catch (InterruptedException& e)
+ {
+ //
+ // reset interrupt status so
+ // calling code can see interrupt on
+ // their next wait or sleep.
+ Thread::currentThreadInterrupt();
+ }
+ }
+
+ //
+ // if blocking is false or thread has been interrupted
+ // add event to discard map.
+ //
+ if (discard)
+ {
+ LogString loggerName = event->getLoggerName();
+ DiscardMap::iterator iter = discardMap->find(loggerName);
+
+ if (iter == discardMap->end())
+ {
+ DiscardSummary summary(event);
+ discardMap->insert(DiscardMap::value_type(loggerName, summary));
+ }
+ else
+ {
+ (*iter).second.add(event);
+ }
+
+ break;
+ }
+ }
+ }
#else
- synchronized sync(appenders->getMutex());
- appenders->appendLoopOnAppenders(event, p);
+ synchronized sync(appenders->getMutex());
+ appenders->appendLoopOnAppenders(event, p);
#endif
}
void AsyncAppender::close()
{
- {
- synchronized sync(bufferMutex);
- closed = true;
- bufferNotEmpty.signalAll();
- bufferNotFull.signalAll();
- }
+ {
+ synchronized sync(bufferMutex);
+ closed = true;
+ bufferNotEmpty.signalAll();
+ bufferNotFull.signalAll();
+ }
#if APR_HAS_THREADS
- try
- {
- dispatcher.join();
- }
- catch (InterruptedException& e)
- {
- Thread::currentThreadInterrupt();
- LogLog::error(LOG4CXX_STR("Got an InterruptedException while waiting for the dispatcher to finish,"), e);
- }
+ try
+ {
+ dispatcher.join();
+ }
+ catch (InterruptedException& e)
+ {
+ Thread::currentThreadInterrupt();
+ LogLog::error(LOG4CXX_STR("Got an InterruptedException while waiting for the dispatcher to finish,"), e);
+ }
#endif
- {
- synchronized sync(appenders->getMutex());
- AppenderList appenderList = appenders->getAllAppenders();
-
- for (AppenderList::iterator iter = appenderList.begin();
- iter != appenderList.end();
- iter++)
- {
- (*iter)->close();
- }
- }
+ {
+ synchronized sync(appenders->getMutex());
+ AppenderList appenderList = appenders->getAllAppenders();
+
+ for (AppenderList::iterator iter = appenderList.begin();
+ iter != appenderList.end();
+ iter++)
+ {
+ (*iter)->close();
+ }
+ }
}
AppenderList AsyncAppender::getAllAppenders() const
{
- synchronized sync(appenders->getMutex());
- return appenders->getAllAppenders();
+ synchronized sync(appenders->getMutex());
+ return appenders->getAllAppenders();
}
AppenderPtr AsyncAppender::getAppender(const LogString& n) const
{
- synchronized sync(appenders->getMutex());
- return appenders->getAppender(n);
+ synchronized sync(appenders->getMutex());
+ return appenders->getAppender(n);
}
bool AsyncAppender::isAttached(const AppenderPtr& appender) const
{
- synchronized sync(appenders->getMutex());
- return appenders->isAttached(appender);
+ synchronized sync(appenders->getMutex());
+ return appenders->isAttached(appender);
}
bool AsyncAppender::requiresLayout() const
{
- return false;
+ return false;
}
void AsyncAppender::removeAllAppenders()
{
- synchronized sync(appenders->getMutex());
- appenders->removeAllAppenders();
+ synchronized sync(appenders->getMutex());
+ appenders->removeAllAppenders();
}
void AsyncAppender::removeAppender(const AppenderPtr& appender)
{
- synchronized sync(appenders->getMutex());
- appenders->removeAppender(appender);
+ synchronized sync(appenders->getMutex());
+ appenders->removeAppender(appender);
}
void AsyncAppender::removeAppender(const LogString& n)
{
- synchronized sync(appenders->getMutex());
- appenders->removeAppender(n);
+ synchronized sync(appenders->getMutex());
+ appenders->removeAppender(n);
}
bool AsyncAppender::getLocationInfo() const
{
- return locationInfo;
+ return locationInfo;
}
void AsyncAppender::setLocationInfo(bool flag)
{
- locationInfo = flag;
+ locationInfo = flag;
}
void AsyncAppender::setBufferSize(int size)
{
- if (size < 0)
- {
- throw IllegalArgumentException(LOG4CXX_STR("size argument must be non-negative"));
- }
-
- synchronized sync(bufferMutex);
- bufferSize = (size < 1) ? 1 : size;
- bufferNotFull.signalAll();
+ if (size < 0)
+ {
+ throw IllegalArgumentException(LOG4CXX_STR("size argument must be non-negative"));
+ }
+
+ synchronized sync(bufferMutex);
+ bufferSize = (size < 1) ? 1 : size;
+ bufferNotFull.signalAll();
}
int AsyncAppender::getBufferSize() const
{
- return bufferSize;
+ return bufferSize;
}
void AsyncAppender::setBlocking(bool value)
{
- synchronized sync(bufferMutex);
- blocking = value;
- bufferNotFull.signalAll();
+ synchronized sync(bufferMutex);
+ blocking = value;
+ bufferNotFull.signalAll();
}
bool AsyncAppender::getBlocking() const
{
- return blocking;
+ return blocking;
}
AsyncAppender::DiscardSummary::DiscardSummary(const LoggingEventPtr& event) :
- maxEvent(event), count(1)
+ maxEvent(event), count(1)
{
}
AsyncAppender::DiscardSummary::DiscardSummary(const DiscardSummary& src) :
- maxEvent(src.maxEvent), count(src.count)
+ maxEvent(src.maxEvent), count(src.count)
{
}
AsyncAppender::DiscardSummary& AsyncAppender::DiscardSummary::operator=(const DiscardSummary& src)
{
- maxEvent = src.maxEvent;
- count = src.count;
- return *this;
+ maxEvent = src.maxEvent;
+ count = src.count;
+ return *this;
}
void AsyncAppender::DiscardSummary::add(const LoggingEventPtr& event)
{
- if (event->getLevel()->toInt() > maxEvent->getLevel()->toInt())
- {
- maxEvent = event;
- }
+ if (event->getLevel()->toInt() > maxEvent->getLevel()->toInt())
+ {
+ maxEvent = event;
+ }
- count++;
+ count++;
}
LoggingEventPtr AsyncAppender::DiscardSummary::createEvent(Pool& p)
{
- LogString msg(LOG4CXX_STR("Discarded "));
- StringHelper::toString(count, p, msg);
- msg.append(LOG4CXX_STR(" messages due to a full event buffer including: "));
- msg.append(maxEvent->getMessage());
- return new LoggingEvent(
- maxEvent->getLoggerName(),
- maxEvent->getLevel(),
- msg,
- LocationInfo::getLocationUnavailable());
+ LogString msg(LOG4CXX_STR("Discarded "));
+ StringHelper::toString(count, p, msg);
+ msg.append(LOG4CXX_STR(" messages due to a full event buffer including: "));
+ msg.append(maxEvent->getMessage());
+ return new LoggingEvent(
+ maxEvent->getLoggerName(),
+ maxEvent->getLevel(),
+ msg,
+ LocationInfo::getLocationUnavailable());
}
::log4cxx::spi::LoggingEventPtr
AsyncAppender::DiscardSummary::createEvent(::log4cxx::helpers::Pool& p,
- size_t discardedCount)
+ size_t discardedCount)
{
- LogString msg(LOG4CXX_STR("Discarded "));
- StringHelper::toString(discardedCount, p, msg);
- msg.append(LOG4CXX_STR(" messages due to a full event buffer"));
-
- return new LoggingEvent(
- LOG4CXX_STR(""),
- log4cxx::Level::getError(),
- msg,
- LocationInfo::getLocationUnavailable());
+ LogString msg(LOG4CXX_STR("Discarded "));
+ StringHelper::toString(discardedCount, p, msg);
+ msg.append(LOG4CXX_STR(" messages due to a full event buffer"));
+
+ return new LoggingEvent(
+ LOG4CXX_STR(""),
+ log4cxx::Level::getError(),
+ msg,
+ LocationInfo::getLocationUnavailable());
}
#if APR_HAS_THREADS
void* LOG4CXX_THREAD_FUNC AsyncAppender::dispatch(apr_thread_t* /*thread*/, void* data)
{
- AsyncAppender* pThis = (AsyncAppender*) data;
- bool isActive = true;
-
- try
- {
- while (isActive)
- {
- //
- // process events after lock on buffer is released.
- //
- Pool p;
- LoggingEventList events;
- {
- synchronized sync(pThis->bufferMutex);
- size_t bufferSize = pThis->buffer.size();
- isActive = !pThis->closed;
-
- while ((bufferSize == 0) && isActive)
- {
- pThis->bufferNotEmpty.await(pThis->bufferMutex);
- bufferSize = pThis->buffer.size();
- isActive = !pThis->closed;
- }
-
- for (LoggingEventList::iterator eventIter = pThis->buffer.begin();
- eventIter != pThis->buffer.end();
- eventIter++)
- {
- events.push_back(*eventIter);
- }
-
- for (DiscardMap::iterator discardIter = pThis->discardMap->begin();
- discardIter != pThis->discardMap->end();
- discardIter++)
- {
- events.push_back(discardIter->second.createEvent(p));
- }
-
- pThis->buffer.clear();
- pThis->discardMap->clear();
- pThis->bufferNotFull.signalAll();
- }
-
- for (LoggingEventList::iterator iter = events.begin();
- iter != events.end();
- iter++)
- {
- synchronized sync(pThis->appenders->getMutex());
- pThis->appenders->appendLoopOnAppenders(*iter, p);
- }
- }
- }
- catch (InterruptedException& ex)
- {
- Thread::currentThreadInterrupt();
- }
- catch (...)
- {
- }
-
- return 0;
+ AsyncAppender* pThis = (AsyncAppender*) data;
+ bool isActive = true;
+
+ try
+ {
+ while (isActive)
+ {
+ //
+ // process events after lock on buffer is released.
+ //
+ Pool p;
+ LoggingEventList events;
+ {
+ synchronized sync(pThis->bufferMutex);
+ size_t bufferSize = pThis->buffer.size();
+ isActive = !pThis->closed;
+
+ while ((bufferSize == 0) && isActive)
+ {
+ pThis->bufferNotEmpty.await(pThis->bufferMutex);
+ bufferSize = pThis->buffer.size();
+ isActive = !pThis->closed;
+ }
+
+ for (LoggingEventList::iterator eventIter = pThis->buffer.begin();
+ eventIter != pThis->buffer.end();
+ eventIter++)
+ {
+ events.push_back(*eventIter);
+ }
+
+ for (DiscardMap::iterator discardIter = pThis->discardMap->begin();
+ discardIter != pThis->discardMap->end();
+ discardIter++)
+ {
+ events.push_back(discardIter->second.createEvent(p));
+ }
+
+ pThis->buffer.clear();
+ pThis->discardMap->clear();
+ pThis->bufferNotFull.signalAll();
+ }
+
+ for (LoggingEventList::iterator iter = events.begin();
+ iter != events.end();
+ iter++)
+ {
+ synchronized sync(pThis->appenders->getMutex());
+ pThis->appenders->appendLoopOnAppenders(*iter, p);
+ }
+ }
+ }
+ catch (InterruptedException& ex)
+ {
+ Thread::currentThreadInterrupt();
+ }
+ catch (...)
+ {
+ }
+
+ return 0;
}
#endif
diff --git a/src/main/cpp/asyncappender_nonblocking.cpp b/src/main/cpp/asyncappender_nonblocking.cpp
index fca89df..6c28756 100644
--- a/src/main/cpp/asyncappender_nonblocking.cpp
+++ b/src/main/cpp/asyncappender_nonblocking.cpp
@@ -16,7 +16,7 @@
*/
#if defined(_MSC_VER)
- #pragma warning ( disable: 4231 4251 4275 4786 )
+ #pragma warning ( disable: 4231 4251 4275 4786 )
#endif
#include <log4cxx/asyncappender.h>
@@ -43,405 +43,405 @@ IMPLEMENT_LOG4CXX_OBJECT(AsyncAppender)
AsyncAppender::AsyncAppender()
- : AppenderSkeleton(),
- buffer(DEFAULT_BUFFER_SIZE),
- SHARED_MUTEX_INIT(bufferMutex, pool),
- bufferNotFull(pool),
- bufferNotEmpty(pool),
- discardMap(new DiscardMap()),
- bufferSize(DEFAULT_BUFFER_SIZE),
- appenders(new AppenderAttachableImpl(pool)),
- dispatcher(),
- locationInfo(false),
- blocking(true)
+ : AppenderSkeleton(),
+ buffer(DEFAULT_BUFFER_SIZE),
+ SHARED_MUTEX_INIT(bufferMutex, pool),
+ bufferNotFull(pool),
+ bufferNotEmpty(pool),
+ discardMap(new DiscardMap()),
+ bufferSize(DEFAULT_BUFFER_SIZE),
+ appenders(new AppenderAttachableImpl(pool)),
+ dispatcher(),
+ locationInfo(false),
+ blocking(true)
{
#if APR_HAS_THREADS
- dispatcher.run(dispatch, this);
+ dispatcher.run(dispatch, this);
#endif
}
AsyncAppender::~AsyncAppender()
{
- finalize();
- delete discardMap;
+ finalize();
+ delete discardMap;
}
void AsyncAppender::addRef() const
{
- ObjectImpl::addRef();
+ ObjectImpl::addRef();
}
void AsyncAppender::releaseRef() const
{
- ObjectImpl::releaseRef();
+ ObjectImpl::releaseRef();
}
void AsyncAppender::addAppender(const AppenderPtr& newAppender)
{
- synchronized sync(appenders->getMutex());
- appenders->addAppender(newAppender);
+ synchronized sync(appenders->getMutex());
+ appenders->addAppender(newAppender);
}
void AsyncAppender::setOption(const LogString& option,
- const LogString& value)
+ const LogString& value)
{
- if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("LOCATIONINFO"), LOG4CXX_STR("locationinfo")))
- {
- setLocationInfo(OptionConverter::toBoolean(value, false));
- }
-
- if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("BUFFERSIZE"), LOG4CXX_STR("buffersize")))
- {
- setBufferSize(OptionConverter::toInt(value, DEFAULT_BUFFER_SIZE));
- }
-
- if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("BLOCKING"), LOG4CXX_STR("blocking")))
- {
- setBlocking(OptionConverter::toBoolean(value, true));
- }
- else
- {
- AppenderSkeleton::setOption(option, value);
- }
+ if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("LOCATIONINFO"), LOG4CXX_STR("locationinfo")))
+ {
+ setLocationInfo(OptionConverter::toBoolean(value, false));
+ }
+
+ if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("BUFFERSIZE"), LOG4CXX_STR("buffersize")))
+ {
+ setBufferSize(OptionConverter::toInt(value, DEFAULT_BUFFER_SIZE));
+ }
+
+ if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("BLOCKING"), LOG4CXX_STR("blocking")))
+ {
+ setBlocking(OptionConverter::toBoolean(value, true));
+ }
+ else
+ {
+ AppenderSkeleton::setOption(option, value);
+ }
}
void AsyncAppender::doAppend(const spi::LoggingEventPtr& event, Pool& pool1)
{
- LOCK_R sync(mutex);
+ LOCK_R sync(mutex);
- doAppendImpl(event, pool1);
+ doAppendImpl(event, pool1);
}
void AsyncAppender::append(const spi::LoggingEventPtr& event, Pool& p)
{
#if APR_HAS_THREADS
- //
- // if dispatcher has died then
- // append subsequent events synchronously
- //
- if (!dispatcher.isAlive() || bufferSize <= 0)
- {
- synchronized sync(appenders->getMutex());
- appenders->appendLoopOnAppenders(event, p);
- return;
- }
-
- // Set the NDC and thread name for the calling thread as these
- // LoggingEvent fields were not set at event creation time.
- LogString ndcVal;
- event->getNDC(ndcVal);
- event->getThreadName();
- // Get a copy of this thread's MDC.
- event->getMDCCopy();
-
-
- {
- LOCK_R sync(bufferMutex);
-
- while (true)
- {
-
- event->addRef();
-
- if (buffer.bounded_push(event))
- {
- bufferNotEmpty.signalAll();
- break;
- }
- else
- {
- event->releaseRef();
- }
-
- //
- // Following code is only reachable if buffer is full
- //
- //
- // if blocking and thread is not already interrupted
- // and not the dispatcher then
- // wait for a buffer notification
- bool discard = true;
-
- if (blocking
- && !Thread::interrupted()
- && !dispatcher.isCurrentThread())
- {
- try
- {
- bufferNotFull.await();
- discard = false;
- }
- catch (InterruptedException& e)
- {
- //
- // reset interrupt status so
- // calling code can see interrupt on
- // their next wait or sleep.
- Thread::currentThreadInterrupt();
- }
- }
-
- //
- // if blocking is false or thread has been interrupted
- // add event to discard map.
- //
- if (discard)
- {
- discardedCount++;
- break;
- }
- }
- }
+ //
+ // if dispatcher has died then
+ // append subsequent events synchronously
+ //
+ if (!dispatcher.isAlive() || bufferSize <= 0)
+ {
+ synchronized sync(appenders->getMutex());
+ appenders->appendLoopOnAppenders(event, p);
+ return;
+ }
+
+ // Set the NDC and thread name for the calling thread as these
+ // LoggingEvent fields were not set at event creation time.
+ LogString ndcVal;
+ event->getNDC(ndcVal);
+ event->getThreadName();
+ // Get a copy of this thread's MDC.
+ event->getMDCCopy();
+
+
+ {
+ LOCK_R sync(bufferMutex);
+
+ while (true)
+ {
+
+ event->addRef();
+
+ if (buffer.bounded_push(event))
+ {
+ bufferNotEmpty.signalAll();
+ break;
+ }
+ else
+ {
+ event->releaseRef();
+ }
+
+ //
+ // Following code is only reachable if buffer is full
+ //
+ //
+ // if blocking and thread is not already interrupted
+ // and not the dispatcher then
+ // wait for a buffer notification
+ bool discard = true;
+
+ if (blocking
+ && !Thread::interrupted()
+ && !dispatcher.isCurrentThread())
+ {
+ try
+ {
+ bufferNotFull.await();
+ discard = false;
+ }
+ catch (InterruptedException& e)
+ {
+ //
+ // reset interrupt status so
+ // calling code can see interrupt on
+ // their next wait or sleep.
+ Thread::currentThreadInterrupt();
+ }
+ }
+
+ //
+ // if blocking is false or thread has been interrupted
+ // add event to discard map.
+ //
+ if (discard)
+ {
+ discardedCount++;
+ break;
+ }
+ }
+ }
#else
- synchronized sync(appenders->getMutex());
- appenders->appendLoopOnAppenders(event, p);
+ synchronized sync(appenders->getMutex());
+ appenders->appendLoopOnAppenders(event, p);
#endif
}
void AsyncAppender::close()
{
- {
- LOCK_W sync(bufferMutex);
- closed = true;
- }
+ {
+ LOCK_W sync(bufferMutex);
+ closed = true;
+ }
- bufferNotEmpty.signalAll();
- bufferNotFull.signalAll();
+ bufferNotEmpty.signalAll();
+ bufferNotFull.signalAll();
#if APR_HAS_THREADS
- try
- {
- dispatcher.join();
- }
- catch (InterruptedException& e)
- {
- Thread::currentThreadInterrupt();
- LogLog::error(LOG4CXX_STR("Got an InterruptedException while waiting for the dispatcher to finish,"), e);
- }
+ try
+ {
+ dispatcher.join();
+ }
+ catch (InterruptedException& e)
+ {
+ Thread::currentThreadInterrupt();
+ LogLog::error(LOG4CXX_STR("Got an InterruptedException while waiting for the dispatcher to finish,"), e);
+ }
#endif
- {
- synchronized sync(appenders->getMutex());
- AppenderList appenderList = appenders->getAllAppenders();
-
- for (AppenderList::iterator iter = appenderList.begin();
- iter != appenderList.end();
- iter++)
- {
- (*iter)->close();
- }
- }
+ {
+ synchronized sync(appenders->getMutex());
+ AppenderList appenderList = appenders->getAllAppenders();
+
+ for (AppenderList::iterator iter = appenderList.begin();
+ iter != appenderList.end();
+ iter++)
+ {
+ (*iter)->close();
+ }
+ }
}
AppenderList AsyncAppender::getAllAppenders() const
{
- synchronized sync(appenders->getMutex());
- return appenders->getAllAppenders();
+ synchronized sync(appenders->getMutex());
+ return appenders->getAllAppenders();
}
AppenderPtr AsyncAppender::getAppender(const LogString& n) const
{
- synchronized sync(appenders->getMutex());
- return appenders->getAppender(n);
+ synchronized sync(appenders->getMutex());
+ return appenders->getAppender(n);
}
bool AsyncAppender::isAttached(const AppenderPtr& appender) const
{
- synchronized sync(appenders->getMutex());
- return appenders->isAttached(appender);
+ synchronized sync(appenders->getMutex());
+ return appenders->isAttached(appender);
}
bool AsyncAppender::requiresLayout() const
{
- return false;
+ return false;
}
void AsyncAppender::removeAllAppenders()
{
- synchronized sync(appenders->getMutex());
- appenders->removeAllAppenders();
+ synchronized sync(appenders->getMutex());
+ appenders->removeAllAppenders();
}
void AsyncAppender::removeAppender(const AppenderPtr& appender)
{
- synchronized sync(appenders->getMutex());
- appenders->removeAppender(appender);
+ synchronized sync(appenders->getMutex());
+ appenders->removeAppender(appender);
}
void AsyncAppender::removeAppender(const LogString& n)
{
- synchronized sync(appenders->getMutex());
- appenders->removeAppender(n);
+ synchronized sync(appenders->getMutex());
+ appenders->removeAppender(n);
}
bool AsyncAppender::getLocationInfo() const
{
- return locationInfo;
+ return locationInfo;
}
void AsyncAppender::setLocationInfo(bool flag)
{
- locationInfo = flag;
+ locationInfo = flag;
}
void AsyncAppender::setBufferSize(int size)
{
- if (size < 0)
- {
- throw IllegalArgumentException(LOG4CXX_STR("size argument must be non-negative"));
- }
-
- {
- LOCK_W sync(bufferMutex);
- bufferSize = (size < 1) ? 1 : size;
- buffer.reserve_unsafe(bufferSize);
- }
-
- bufferNotFull.signalAll();
+ if (size < 0)
+ {
+ throw IllegalArgumentException(LOG4CXX_STR("size argument must be non-negative"));
+ }
+
+ {
+ LOCK_W sync(bufferMutex);
+ bufferSize = (size < 1) ? 1 : size;
+ buffer.reserve_unsafe(bufferSize);
+ }
+
+ bufferNotFull.signalAll();
}
int AsyncAppender::getBufferSize() const
{
- return bufferSize;
+ return bufferSize;
}
void AsyncAppender::setBlocking(bool value)
{
- {
- LOCK_W sync(bufferMutex);
- blocking = value;
- }
- bufferNotFull.signalAll();
+ {
+ LOCK_W sync(bufferMutex);
+ blocking = value;
+ }
+ bufferNotFull.signalAll();
}
bool AsyncAppender::getBlocking() const
{
- return blocking;
+ return blocking;
}
AsyncAppender::DiscardSummary::DiscardSummary(const LoggingEventPtr& event) :
- maxEvent(event), count(1)
+ maxEvent(event), count(1)
{
}
AsyncAppender::DiscardSummary::DiscardSummary(const DiscardSummary& src) :
- maxEvent(src.maxEvent), count(src.count)
+ maxEvent(src.maxEvent), count(src.count)
{
}
AsyncAppender::DiscardSummary& AsyncAppender::DiscardSummary::operator=(const DiscardSummary& src)
{
- maxEvent = src.maxEvent;
- count = src.count;
- return *this;
+ maxEvent = src.maxEvent;
+ count = src.count;
+ return *this;
}
void AsyncAppender::DiscardSummary::add(const LoggingEventPtr& event)
{
- if (event->getLevel()->toInt() > maxEvent->getLevel()->toInt())
- {
- maxEvent = event;
- }
+ if (event->getLevel()->toInt() > maxEvent->getLevel()->toInt())
+ {
+ maxEvent = event;
+ }
- count++;
+ count++;
}
LoggingEventPtr AsyncAppender::DiscardSummary::createEvent(Pool& p)
{
- LogString msg(LOG4CXX_STR("Discarded "));
- StringHelper::toString(count, p, msg);
- msg.append(LOG4CXX_STR(" messages due to a full event buffer including: "));
- msg.append(maxEvent->getMessage());
- return new LoggingEvent(
- maxEvent->getLoggerName(),
- maxEvent->getLevel(),
- msg,
- LocationInfo::getLocationUnavailable());
+ LogString msg(LOG4CXX_STR("Discarded "));
+ StringHelper::toString(count, p, msg);
+ msg.append(LOG4CXX_STR(" messages due to a full event buffer including: "));
+ msg.append(maxEvent->getMessage());
+ return new LoggingEvent(
+ maxEvent->getLoggerName(),
+ maxEvent->getLevel(),
+ msg,
+ LocationInfo::getLocationUnavailable());
}
::log4cxx::spi::LoggingEventPtr
AsyncAppender::DiscardSummary::createEvent(::log4cxx::helpers::Pool& p,
- size_t discardedCount)
+ size_t discardedCount)
{
- LogString msg(LOG4CXX_STR("Discarded "));
- StringHelper::toString(discardedCount, p, msg);
- msg.append(LOG4CXX_STR(" messages due to a full event buffer"));
-
- return new LoggingEvent(
- LOG4CXX_STR(""),
- log4cxx::Level::getError(),
- msg,
- LocationInfo::getLocationUnavailable());
+ LogString msg(LOG4CXX_STR("Discarded "));
+ StringHelper::toString(discardedCount, p, msg);
+ msg.append(LOG4CXX_STR(" messages due to a full event buffer"));
+
+ return new LoggingEvent(
+ LOG4CXX_STR(""),
+ log4cxx::Level::getError(),
+ msg,
+ LocationInfo::getLocationUnavailable());
}
#if APR_HAS_THREADS
void* LOG4CXX_THREAD_FUNC AsyncAppender::dispatch(apr_thread_t* /*thread*/, void* data)
{
- AsyncAppender* pThis = (AsyncAppender*) data;
-
- try
- {
- while (!pThis->closed || !pThis->buffer.empty())
- {
-
- pThis->bufferNotEmpty.await();
-
- //
- // process events after lock on buffer is released.
- //
- Pool p;
- LoggingEventList events;
- {
- LOCK_R sync(pThis->bufferMutex);
-
- unsigned count = 0;
- log4cxx::spi::LoggingEvent* logPtr = nullptr;
-
- while (pThis->buffer.pop(logPtr))
- {
- log4cxx::spi::LoggingEventPtr ptr(logPtr);
- events.push_back(ptr);
- logPtr->releaseRef();
- count++;
- }
-
- if (pThis->blocking)
- {
- pThis->bufferNotFull.signalAll();
- }
-
- size_t discarded = pThis->discardedCount.exchange(0);
-
- if (discarded != 0)
- {
- events.push_back(AsyncAppender::DiscardSummary::createEvent(p, discarded));
- }
- }
-
- for (LoggingEventList::iterator iter = events.begin();
- iter != events.end();
- iter++)
- {
- synchronized sync(pThis->appenders->getMutex());
- pThis->appenders->appendLoopOnAppenders(*iter, p);
- }
- }
- }
- catch (InterruptedException& ex)
- {
- Thread::currentThreadInterrupt();
- }
- catch (...)
- {
- }
-
- return 0;
+ AsyncAppender* pThis = (AsyncAppender*) data;
+
+ try
+ {
+ while (!pThis->closed || !pThis->buffer.empty())
+ {
+
+ pThis->bufferNotEmpty.await();
+
+ //
+ // process events after lock on buffer is released.
+ //
+ Pool p;
+ LoggingEventList events;
+ {
+ LOCK_R sync(pThis->bufferMutex);
+
+ unsigned count = 0;
+ log4cxx::spi::LoggingEvent* logPtr = nullptr;
+
+ while (pThis->buffer.pop(logPtr))
+ {
+ log4cxx::spi::LoggingEventPtr ptr(logPtr);
+ events.push_back(ptr);
+ logPtr->releaseRef();
+ count++;
+ }
+
+ if (pThis->blocking)
+ {
+ pThis->bufferNotFull.signalAll();
+ }
+
+ size_t discarded = pThis->discardedCount.exchange(0);
+
+ if (discarded != 0)
+ {
+ events.push_back(AsyncAppender::DiscardSummary::createEvent(p, discarded));
+ }
+ }
+
+ for (LoggingEventList::iterator iter = events.begin();
+ iter != events.end();
+ iter++)
+ {
+ synchronized sync(pThis->appenders->getMutex());
+ pThis->appenders->appendLoopOnAppenders(*iter, p);
+ }
+ }
+ }
+ catch (InterruptedException& ex)
+ {
+ Thread::currentThreadInterrupt();
+ }
+ catch (...)
+ {
+ }
+
+ return 0;
}
#endif
diff --git a/src/main/cpp/basicconfigurator.cpp b/src/main/cpp/basicconfigurator.cpp
index 24a46d6..39db14b 100644
--- a/src/main/cpp/basicconfigurator.cpp
+++ b/src/main/cpp/basicconfigurator.cpp
@@ -25,21 +25,21 @@ using namespace log4cxx;
void BasicConfigurator::configure()
{
- LogManager::getLoggerRepository()->setConfigured(true);
- LoggerPtr root = Logger::getRootLogger();
- static const LogString TTCC_CONVERSION_PATTERN(LOG4CXX_STR("%r [%t] %p %c %x - %m%n"));
- LayoutPtr layout(new PatternLayout(TTCC_CONVERSION_PATTERN));
- AppenderPtr appender(new ConsoleAppender(layout));
- root->addAppender(appender);
+ LogManager::getLoggerRepository()->setConfigured(true);
+ LoggerPtr root = Logger::getRootLogger();
+ static const LogString TTCC_CONVERSION_PATTERN(LOG4CXX_STR("%r [%t] %p %c %x - %m%n"));
+ LayoutPtr layout(new PatternLayout(TTCC_CONVERSION_PATTERN));
+ AppenderPtr appender(new ConsoleAppender(layout));
+ root->addAppender(appender);
}
void BasicConfigurator::configure(const AppenderPtr& appender)
{
- LoggerPtr root = Logger::getRootLogger();
- root->addAppender(appender);
+ LoggerPtr root = Logger::getRootLogger();
+ root->addAppender(appender);
}
void BasicConfigurator::resetConfiguration()
{
- LogManager::resetConfiguration();
+ LogManager::resetConfiguration();
}
diff --git a/src/main/cpp/bufferedwriter.cpp b/src/main/cpp/bufferedwriter.cpp
index 6898d09..5d21a9b 100644
--- a/src/main/cpp/bufferedwriter.cpp
+++ b/src/main/cpp/bufferedwriter.cpp
@@ -24,12 +24,12 @@ using namespace log4cxx::helpers;
IMPLEMENT_LOG4CXX_OBJECT(BufferedWriter)
BufferedWriter::BufferedWriter(WriterPtr& out1)
- : out(out1), sz(1024)
+ : out(out1), sz(1024)
{
}
BufferedWriter::BufferedWriter(WriterPtr& out1, size_t sz1)
- : out(out1), sz(sz1)
+ : out(out1), sz(sz1)
{
}
@@ -39,34 +39,34 @@ BufferedWriter::~BufferedWriter()
void BufferedWriter::close(Pool& p)
{
- flush(p);
- out->close(p);
+ flush(p);
+ out->close(p);
}
void BufferedWriter::flush(Pool& p)
{
- if (buf.length() > 0)
- {
- out->write(buf, p);
- buf.erase(buf.begin(), buf.end());
- }
+ if (buf.length() > 0)
+ {
+ out->write(buf, p);
+ buf.erase(buf.begin(), buf.end());
+ }
}
void BufferedWriter::write(const LogString& str, Pool& p)
{
- if (buf.length() + str.length() > sz)
- {
- out->write(buf, p);
- buf.erase(buf.begin(), buf.end());
- }
+ if (buf.length() + str.length() > sz)
+ {
+ out->write(buf, p);
+ buf.erase(buf.begin(), buf.end());
+ }
- if (str.length() > sz)
- {
- out->write(str, p);
- }
- else
- {
- buf.append(str);
- }
+ if (str.length() > sz)
+ {
+ out->write(str, p);
+ }
+ else
+ {
+ buf.append(str);
+ }
}
diff --git a/src/main/cpp/bytearrayinputstream.cpp b/src/main/cpp/bytearrayinputstream.cpp
index 20f90f2..ee89744 100644
--- a/src/main/cpp/bytearrayinputstream.cpp
+++ b/src/main/cpp/bytearrayinputstream.cpp
@@ -29,7 +29,7 @@ using namespace std;
IMPLEMENT_LOG4CXX_OBJECT(ByteArrayInputStream)
ByteArrayInputStream::ByteArrayInputStream(const std::vector<unsigned char>& bytes) :
- buf(bytes), pos(0)
+ buf(bytes), pos(0)
{
}
@@ -47,16 +47,16 @@ void ByteArrayInputStream::close()
int ByteArrayInputStream::read(ByteBuffer& dst)
{
- if (pos >= buf.size())
- {
- return -1;
- }
- else
- {
- size_t bytesCopied = min(dst.remaining(), buf.size() - pos);
- memcpy(dst.current(), &buf[pos], bytesCopied);
- pos += bytesCopied;
- dst.position(dst.position() + bytesCopied);
- return bytesCopied;
- }
+ if (pos >= buf.size())
+ {
+ return -1;
+ }
+ else
+ {
+ size_t bytesCopied = min(dst.remaining(), buf.size() - pos);
+ memcpy(dst.current(), &buf[pos], bytesCopied);
+ pos += bytesCopied;
+ dst.position(dst.position() + bytesCopied);
+ return bytesCopied;
+ }
}
diff --git a/src/main/cpp/bytearrayoutputstream.cpp b/src/main/cpp/bytearrayoutputstream.cpp
index 52786c9..4918add 100644
--- a/src/main/cpp/bytearrayoutputstream.cpp
+++ b/src/main/cpp/bytearrayoutputstream.cpp
@@ -44,15 +44,15 @@ void ByteArrayOutputStream::flush(Pool& /* p */)
void ByteArrayOutputStream::write(ByteBuffer& buf, Pool& /* p */ )
{
- size_t sz = array.size();
- array.resize(sz + buf.remaining());
- memcpy(&array[sz], buf.current(), buf.remaining());
- buf.position(buf.limit());
+ size_t sz = array.size();
+ array.resize(sz + buf.remaining());
+ memcpy(&array[sz], buf.current(), buf.remaining());
+ buf.position(buf.limit());
}
std::vector<unsigned char> ByteArrayOutputStream::toByteArray() const
{
- return array;
+ return array;
}
diff --git a/src/main/cpp/bytebuffer.cpp b/src/main/cpp/bytebuffer.cpp
index e4f2e36..fce185f 100644
--- a/src/main/cpp/bytebuffer.cpp
+++ b/src/main/cpp/bytebuffer.cpp
@@ -24,7 +24,7 @@ using namespace log4cxx;
using namespace log4cxx::helpers;
ByteBuffer::ByteBuffer(char* data1, size_t capacity)
- : base(data1), pos(0), lim(capacity), cap(capacity)
+ : base(data1), pos(0), lim(capacity), cap(capacity)
{
}
@@ -34,46 +34,46 @@ ByteBuffer::~ByteBuffer()
void ByteBuffer::clear()
{
- lim = cap;
- pos = 0;
+ lim = cap;
+ pos = 0;
}
void ByteBuffer::flip()
{
- lim = pos;
- pos = 0;
+ lim = pos;
+ pos = 0;
}
void ByteBuffer::position(size_t newPosition)
{
- if (newPosition < lim)
- {
- pos = newPosition;
- }
- else
- {
- pos = lim;
- }
+ if (newPosition < lim)
+ {
+ pos = newPosition;
+ }
+ else
+ {
+ pos = lim;
+ }
}
void ByteBuffer::limit(size_t newLimit)
{
- if (newLimit > cap)
- {
- throw IllegalArgumentException(LOG4CXX_STR("newLimit"));
- }
+ if (newLimit > cap)
+ {
+ throw IllegalArgumentException(LOG4CXX_STR("newLimit"));
+ }
- lim = newLimit;
+ lim = newLimit;
}
bool ByteBuffer::put(char byte)
{
- if (pos < lim)
- {
- base[pos++] = byte;
- return true;
- }
+ if (pos < lim)
+ {
+ base[pos++] = byte;
+ return true;
+ }
- return false;
+ return false;
}
diff --git a/src/main/cpp/cacheddateformat.cpp b/src/main/cpp/cacheddateformat.cpp
index 90672fe..b6084ee 100644
--- a/src/main/cpp/cacheddateformat.cpp
+++ b/src/main/cpp/cacheddateformat.cpp
@@ -67,23 +67,23 @@ const logchar CachedDateFormat::zeroString[] = { 0x30, 0x30, 0x30, 0 };
* caching or 1 to only use cache for duplicate requests.
*/
CachedDateFormat::CachedDateFormat(const DateFormatPtr& dateFormat,
- int expiration1) :
- formatter(dateFormat),
- millisecondStart(0),
- slotBegin(std::numeric_limits<log4cxx_time_t>::min()),
- cache(50, 0x20),
- expiration(expiration1),
- previousTime(std::numeric_limits<log4cxx_time_t>::min())
+ int expiration1) :
+ formatter(dateFormat),
+ millisecondStart(0),
+ slotBegin(std::numeric_limits<log4cxx_time_t>::min()),
+ cache(50, 0x20),
+ expiration(expiration1),
+ previousTime(std::numeric_limits<log4cxx_time_t>::min())
{
- if (dateFormat == NULL)
- {
- throw IllegalArgumentException(LOG4CXX_STR("dateFormat cannot be null"));
- }
-
- if (expiration1 < 0)
- {
- throw IllegalArgumentException(LOG4CXX_STR("expiration must be non-negative"));
- }
+ if (dateFormat == NULL)
+ {
+ throw IllegalArgumentException(LOG4CXX_STR("dateFormat cannot be null"));
+ }
+
+ if (expiration1 < 0)
+ {
+ throw IllegalArgumentException(LOG4CXX_STR("expiration must be non-negative"));
+ }
}
@@ -97,86 +97,86 @@ CachedDateFormat::CachedDateFormat(const DateFormatPtr& dateFormat,
* field (likely RelativeTimeDateFormat)
*/
int CachedDateFormat::findMillisecondStart(
- log4cxx_time_t time, const LogString& formatted,
- const DateFormatPtr& formatter,
- Pool& pool)
+ log4cxx_time_t time, const LogString& formatted,
+ const DateFormatPtr& formatter,
+ Pool& pool)
{
- apr_time_t slotBegin = (time / 1000000) * 1000000;
-
- if (slotBegin > time)
- {
- slotBegin -= 1000000;
- }
-
- int millis = (int) (time - slotBegin) / 1000;
-
- int magic = magic1;
- LogString magicString(magicString1);
-
- if (millis == magic1)
- {
- magic = magic2;
- magicString = magicString2;
- }
-
- LogString plusMagic;
- formatter->format(plusMagic, slotBegin + magic, pool);
-
- /**
- * If the string lengths differ then
- * we can't use the cache except for duplicate requests.
- */
- if (plusMagic.length() != formatted.length())
- {
- return UNRECOGNIZED_MILLISECONDS;
- }
- else
- {
- // find first difference between values
- for (LogString::size_type i = 0; i < formatted.length(); i++)
- {
- if (formatted[i] != plusMagic[i])
- {
- //
- // determine the expected digits for the base time
- const logchar abc[] = { 0x41, 0x42, 0x43, 0 };
- LogString formattedMillis(abc);
- millisecondFormat(millis, formattedMillis, 0);
-
- LogString plusZero;
- formatter->format(plusZero, slotBegin, pool);
-
- // Test if the next 1..3 characters match the magic string, main problem is that magic
- // available millis in formatted can overlap. Therefore the current i is not always the
- // index of the first millis char, but may be already within the millis. Besides that
- // the millis can occur everywhere in formatted. See LOGCXX-420 and following.
- size_t magicLength = magicString.length();
- size_t overlapping = magicString.find(plusMagic[i]);
- int possibleRetVal = i - overlapping;
-
- if (plusZero.length() == formatted.length()
- && regionMatches(magicString, 0, plusMagic, possibleRetVal, magicLength)
- && regionMatches(formattedMillis, 0, formatted, possibleRetVal, magicLength)
- && regionMatches(zeroString, 0, plusZero, possibleRetVal, magicLength)
- // The following will and should fail for patterns with more than one SSS because
- // we only seem to be able to change one SSS in e.g. format and need to reformat the
- // whole string in other cases.
- && (formatted.length() == possibleRetVal + magicLength
- || plusZero.compare(possibleRetVal + magicLength,
- LogString::npos, plusMagic, possibleRetVal + magicLength, LogString::npos) == 0))
- {
- return possibleRetVal;
- }
- else
- {
- return UNRECOGNIZED_MILLISECONDS;
- }
- }
- }
- }
-
- return NO_MILLISECONDS;
+ apr_time_t slotBegin = (time / 1000000) * 1000000;
+
+ if (slotBegin > time)
+ {
+ slotBegin -= 1000000;
+ }
+
+ int millis = (int) (time - slotBegin) / 1000;
+
+ int magic = magic1;
+ LogString magicString(magicString1);
+
+ if (millis == magic1)
+ {
+ magic = magic2;
+ magicString = magicString2;
+ }
+
+ LogString plusMagic;
+ formatter->format(plusMagic, slotBegin + magic, pool);
+
+ /**
+ * If the string lengths differ then
+ * we can't use the cache except for duplicate requests.
+ */
+ if (plusMagic.length() != formatted.length())
+ {
+ return UNRECOGNIZED_MILLISECONDS;
+ }
+ else
+ {
+ // find first difference between values
+ for (LogString::size_type i = 0; i < formatted.length(); i++)
+ {
+ if (formatted[i] != plusMagic[i])
+ {
+ //
+ // determine the expected digits for the base time
+ const logchar abc[] = { 0x41, 0x42, 0x43, 0 };
+ LogString formattedMillis(abc);
+ millisecondFormat(millis, formattedMillis, 0);
+
+ LogString plusZero;
+ formatter->format(plusZero, slotBegin, pool);
+
+ // Test if the next 1..3 characters match the magic string, main problem is that magic
+ // available millis in formatted can overlap. Therefore the current i is not always the
+ // index of the first millis char, but may be already within the millis. Besides that
+ // the millis can occur everywhere in formatted. See LOGCXX-420 and following.
+ size_t magicLength = magicString.length();
+ size_t overlapping = magicString.find(plusMagic[i]);
+ int possibleRetVal = i - overlapping;
+
+ if (plusZero.length() == formatted.length()
+ && regionMatches(magicString, 0, plusMagic, possibleRetVal, magicLength)
+ && regionMatches(formattedMillis, 0, formatted, possibleRetVal, magicLength)
+ && regionMatches(zeroString, 0, plusZero, possibleRetVal, magicLength)
+ // The following will and should fail for patterns with more than one SSS because
+ // we only seem to be able to change one SSS in e.g. format and need to reformat the
+ // whole string in other cases.
+ && (formatted.length() == possibleRetVal + magicLength
+ || plusZero.compare(possibleRetVal + magicLength,
+ LogString::npos, plusMagic, possibleRetVal + magicLength, LogString::npos) == 0))
+ {
+ return possibleRetVal;
+ }
+ else
+ {
+ return UNRECOGNIZED_MILLISECONDS;
+ }
+ }
+ }
+ }
+
+ return NO_MILLISECONDS;
}
@@ -189,69 +189,69 @@ int CachedDateFormat::findMillisecondStart(
void CachedDateFormat::format(LogString& buf, log4cxx_time_t now, Pool& p) const
{
- //
- // If the current requested time is identical to the previously
- // requested time, then append the cache contents.
- //
- if (now == previousTime)
- {
- buf.append(cache);
- return;
- }
-
- //
- // If millisecond pattern was not unrecognized
- // (that is if it was found or milliseconds did not appear)
- //
- if (millisecondStart != UNRECOGNIZED_MILLISECONDS)
- {
- // Check if the cache is still valid.
- // If the requested time is within the same integral second
- // as the last request and a shorter expiration was not requested.
- if (now < slotBegin + expiration
- && now >= slotBegin
- && now < slotBegin + 1000000L)
- {
- //
- // if there was a millisecond field then update it
- //
- if (millisecondStart >= 0)
- {
- millisecondFormat((int) ((now - slotBegin) / 1000), cache, millisecondStart);
- }
-
- //
- // update the previously requested time
- // (the slot begin should be unchanged)
- previousTime = now;
- buf.append(cache);
-
- return;
- }
- }
-
- //
- // could not use previous value.
- // Call underlying formatter to format date.
- cache.erase(cache.begin(), cache.end());
- formatter->format(cache, now, p);
- buf.append(cache);
- previousTime = now;
- slotBegin = (previousTime / 1000000) * 1000000;
-
- if (slotBegin > previousTime)
- {
- slotBegin -= 1000000;
- }
-
- //
- // if the milliseconds field was previous found
- // then reevaluate in case it moved.
- //
- if (millisecondStart >= 0)
- {
- millisecondStart = findMillisecondStart(now, cache, formatter, p);
- }
+ //
+ // If the current requested time is identical to the previously
+ // requested time, then append the cache contents.
+ //
+ if (now == previousTime)
+ {
+ buf.append(cache);
+ return;
+ }
+
+ //
+ // If millisecond pattern was not unrecognized
+ // (that is if it was found or milliseconds did not appear)
+ //
+ if (millisecondStart != UNRECOGNIZED_MILLISECONDS)
+ {
+ // Check if the cache is still valid.
+ // If the requested time is within the same integral second
+ // as the last request and a shorter expiration was not requested.
+ if (now < slotBegin + expiration
+ && now >= slotBegin
+ && now < slotBegin + 1000000L)
+ {
+ //
+ // if there was a millisecond field then update it
+ //
+ if (millisecondStart >= 0)
+ {
+ millisecondFormat((int) ((now - slotBegin) / 1000), cache, millisecondStart);
+ }
+
+ //
+ // update the previously requested time
+ // (the slot begin should be unchanged)
+ previousTime = now;
+ buf.append(cache);
+
+ return;
+ }
+ }
+
+ //
+ // could not use previous value.
+ // Call underlying formatter to format date.
+ cache.erase(cache.begin(), cache.end());
+ formatter->format(cache, now, p);
+ buf.append(cache);
+ previousTime = now;
+ slotBegin = (previousTime / 1000000) * 1000000;
+
+ if (slotBegin > previousTime)
+ {
+ slotBegin -= 1000000;
+ }
+
+ //
+ // if the milliseconds field was previous found
+ // then reevaluate in case it moved.
+ //
+ if (millisecondStart >= 0)
+ {
+ millisecondStart = findMillisecondStart(now, cache, formatter, p);
+ }
}
/**
@@ -262,12 +262,12 @@ void CachedDateFormat::format(LogString& buf, log4cxx_time_t now, Pool& p) const
* buffer must be at least offset + 3.
*/
void CachedDateFormat::millisecondFormat(int millis,
- LogString& buf,
- int offset)
+ LogString& buf,
+ int offset)
{
- buf[offset] = digits[millis / 100];
- buf[offset + 1] = digits[(millis / 10) % 10];
- buf[offset + 2] = digits[millis % 10];
+ buf[offset] = digits[millis / 100];
+ buf[offset + 1] = digits[(millis / 10) % 10];
+ buf[offset + 2] = digits[millis % 10];
}
/**
@@ -279,16 +279,16 @@ void CachedDateFormat::millisecondFormat(int millis,
*/
void CachedDateFormat::setTimeZone(const TimeZonePtr& timeZone)
{
- formatter->setTimeZone(timeZone);
- previousTime = std::numeric_limits<log4cxx_time_t>::min();
- slotBegin = std::numeric_limits<log4cxx_time_t>::min();
+ formatter->setTimeZone(timeZone);
+ previousTime = std::numeric_limits<log4cxx_time_t>::min();
+ slotBegin = std::numeric_limits<log4cxx_time_t>::min();
}
void CachedDateFormat::numberFormat(LogString& s, int n, Pool& p) const
{
- formatter->numberFormat(s, n, p);
+ formatter->numberFormat(s, n, p);
}
@@ -301,29 +301,29 @@ void CachedDateFormat::numberFormat(LogString& s, int n, Pool& p) const
*/
int CachedDateFormat::getMaximumCacheValidity(const LogString& pattern)
{
- //
- // If there are more "S" in the pattern than just one "SSS" then
- // (for example, "HH:mm:ss,SSS SSS"), then set the expiration to
- // one millisecond which should only perform duplicate request caching.
- //
- const logchar S = 0x53;
- const logchar SSS[] = { 0x53, 0x53, 0x53, 0 };
- size_t firstS = pattern.find(S);
- size_t len = pattern.length();
-
- //
- // if there are no S's or
- // three that start with the first S and no fourth S in the string
- //
- if (firstS == LogString::npos ||
- (len >= firstS + 3 && pattern.compare(firstS, 3, SSS) == 0
- && (len == firstS + 3 ||
- pattern.find(S, firstS + 3) == LogString::npos)))
- {
- return 1000000;
- }
-
- return 1000;
+ //
+ // If there are more "S" in the pattern than just one "SSS" then
+ // (for example, "HH:mm:ss,SSS SSS"), then set the expiration to
+ // one millisecond which should only perform duplicate request caching.
+ //
+ const logchar S = 0x53;
+ const logchar SSS[] = { 0x53, 0x53, 0x53, 0 };
+ size_t firstS = pattern.find(S);
+ size_t len = pattern.length();
+
+ //
+ // if there are no S's or
+ // three that start with the first S and no fourth S in the string
+ //
+ if (firstS == LogString::npos ||
+ (len >= firstS + 3 && pattern.compare(firstS, 3, SSS) == 0
+ && (len == firstS + 3 ||
+ pattern.find(S, firstS + 3) == LogString::npos)))
+ {
+ return 1000000;
+ }
+
+ return 1000;
}
@@ -337,12 +337,12 @@ int CachedDateFormat::getMaximumCacheValidity(const LogString& pattern)
* @return true if regions are equal.
*/
bool CachedDateFormat::regionMatches(
- const LogString& target,
- size_t toffset,
- const LogString& other,
- size_t ooffset,
- size_t len)
+ const LogString& target,
+ size_t toffset,
+ const LogString& other,
+ size_t ooffset,
+ size_t len)
{
- return target.compare(toffset, len, other, ooffset, len) == 0;
+ return target.compare(toffset, len, other, ooffset, len) == 0;
}
diff --git a/src/main/cpp/charsetdecoder.cpp b/src/main/cpp/charsetdecoder.cpp
index 4598c03..1736414 100644
--- a/src/main/cpp/charsetdecoder.cpp
+++ b/src/main/cpp/charsetdecoder.cpp
@@ -23,7 +23,7 @@
#include <log4cxx/helpers/pool.h>
#include <apr_xlate.h>
#if !defined(LOG4CXX)
- #define LOG4CXX 1
+ #define LOG4CXX 1
#endif
#include <log4cxx/private/log4cxx_private.h>
#include <locale.h>
@@ -50,89 +50,89 @@ namespace helpers
*/
class APRCharsetDecoder : public CharsetDecoder
{
- public:
- /**
- * Creates a new instance.
- * @param frompage name of source encoding.
- */
- APRCharsetDecoder(const LogString& frompage) : pool(), mutex(pool)
- {
+ public:
+ /**
+ * Creates a new instance.
+ * @param frompage name of source encoding.
+ */
+ APRCharsetDecoder(const LogString& frompage) : pool(), mutex(pool)
+ {
#if LOG4CXX_LOGCHAR_IS_WCHAR
- const char* topage = "WCHAR_T";
+ const char* topage = "WCHAR_T";
#endif
#if LOG4CXX_LOGCHAR_IS_UTF8
- const char* topage = "UTF-8";
+ const char* topage = "UTF-8";
#endif
#if LOG4CXX_LOGCHAR_IS_UNICHAR
- const char* topage = "UTF-16";
+ const char* topage = "UTF-16";
#endif
- std::string fpage(Transcoder::encodeCharsetName(frompage));
- apr_status_t stat = apr_xlate_open(&convset,
- topage,
- fpage.c_str(),
- pool.getAPRPool());
-
- if (stat != APR_SUCCESS)
- {
- throw IllegalArgumentException(frompage);
- }
- }
-
- /**
- * Destructor.
- */
- virtual ~APRCharsetDecoder()
- {
- }
-
- virtual log4cxx_status_t decode(ByteBuffer& in,
- LogString& out)
- {
- enum { BUFSIZE = 256 };
- logchar buf[BUFSIZE];
- const apr_size_t initial_outbytes_left = BUFSIZE * sizeof(logchar);
- apr_status_t stat = APR_SUCCESS;
-
- if (in.remaining() == 0)
- {
- size_t outbytes_left = initial_outbytes_left;
- {
- synchronized sync(mutex);
- stat = apr_xlate_conv_buffer((apr_xlate_t*) convset,
- NULL, NULL, (char*) buf, &outbytes_left);
- }
- out.append(buf, (initial_outbytes_left - outbytes_left) / sizeof(logchar));
- }
- else
- {
- while (in.remaining() > 0 && stat == APR_SUCCESS)
- {
- size_t inbytes_left = in.remaining();
- size_t initial_inbytes_left = inbytes_left;
- size_t pos = in.position();
- apr_size_t outbytes_left = initial_outbytes_left;
- {
- synchronized sync(mutex);
- stat = apr_xlate_conv_buffer((apr_xlate_t*) convset,
- in.data() + pos,
- &inbytes_left,
- (char*) buf,
- &outbytes_left);
- }
- out.append(buf, (initial_outbytes_left - outbytes_left) / sizeof(logchar));
- in.position(pos + (initial_inbytes_left - inbytes_left));
- }
- }
-
- return stat;
- }
-
- private:
- APRCharsetDecoder(const APRCharsetDecoder&);
- APRCharsetDecoder& operator=(const APRCharsetDecoder&);
- log4cxx::helpers::Pool pool;
- Mutex mutex;
- apr_xlate_t* convset;
+ std::string fpage(Transcoder::encodeCharsetName(frompage));
+ apr_status_t stat = apr_xlate_open(&convset,
+ topage,
+ fpage.c_str(),
+ pool.getAPRPool());
+
+ if (stat != APR_SUCCESS)
+ {
+ throw IllegalArgumentException(frompage);
+ }
+ }
+
+ /**
+ * Destructor.
+ */
+ virtual ~APRCharsetDecoder()
+ {
+ }
+
+ virtual log4cxx_status_t decode(ByteBuffer& in,
+ LogString& out)
+ {
+ enum { BUFSIZE = 256 };
+ logchar buf[BUFSIZE];
+ const apr_size_t initial_outbytes_left = BUFSIZE * sizeof(logchar);
+ apr_status_t stat = APR_SUCCESS;
+
+ if (in.remaining() == 0)
+ {
+ size_t outbytes_left = initial_outbytes_left;
+ {
+ synchronized sync(mutex);
+ stat = apr_xlate_conv_buffer((apr_xlate_t*) convset,
+ NULL, NULL, (char*) buf, &outbytes_left);
+ }
+ out.append(buf, (initial_outbytes_left - outbytes_left) / sizeof(logchar));
+ }
+ else
+ {
+ while (in.remaining() > 0 && stat == APR_SUCCESS)
+ {
+ size_t inbytes_left = in.remaining();
+ size_t initial_inbytes_left = inbytes_left;
+ size_t pos = in.position();
+ apr_size_t outbytes_left = initial_outbytes_left;
+ {
+ synchronized sync(mutex);
+ stat = apr_xlate_conv_buffer((apr_xlate_t*) convset,
+ in.data() + pos,
+ &inbytes_left,
+ (char*) buf,
+ &outbytes_left);
+ }
+ out.append(buf, (initial_outbytes_left - outbytes_left) / sizeof(logchar));
+ in.position(pos + (initial_inbytes_left - inbytes_left));
+ }
+ }
+
+ return stat;
+ }
+
+ private:
+ APRCharsetDecoder(const APRCharsetDecoder&);
+ APRCharsetDecoder& operator=(const APRCharsetDecoder&);
+ log4cxx::helpers::Pool pool;
+ Mutex mutex;
+ apr_xlate_t* convset;
};
#endif
@@ -145,78 +145,78 @@ class APRCharsetDecoder : public CharsetDecoder
*/
class MbstowcsCharsetDecoder : public CharsetDecoder
{
- public:
- MbstowcsCharsetDecoder()
- {
- }
-
- virtual ~MbstowcsCharsetDecoder()
- {
- }
-
- private:
- inline log4cxx_status_t append(LogString& out, const wchar_t* buf)
- {
- out.append(buf);
- return APR_SUCCESS;
- }
-
- virtual log4cxx_status_t decode(ByteBuffer& in,
- LogString& out)
- {
- log4cxx_status_t stat = APR_SUCCESS;
- enum { BUFSIZE = 256 };
- wchar_t buf[BUFSIZE];
-
- mbstate_t mbstate;
- memset(&mbstate, 0, sizeof(mbstate));
-
- while (in.remaining() > 0)
- {
- size_t requested = in.remaining();
-
- if (requested > BUFSIZE - 1)
- {
- requested = BUFSIZE - 1;
- }
-
- memset(buf, 0, BUFSIZE * sizeof(wchar_t));
- const char* src = in.current();
-
- if (*src == 0)
- {
- out.append(1, (logchar) 0);
- in.position(in.position() + 1);
- }
- else
- {
- size_t converted = mbsrtowcs(buf,
- &src,
- requested,
- &mbstate);
-
- if (converted == (size_t) -1)
- {
- stat = APR_BADARG;
- in.position(src - in.data());
- break;
- }
- else
- {
- stat = append(out, buf);
- in.position(in.position() + requested);
- }
- }
- }
-
- return stat;
- }
-
-
-
- private:
- MbstowcsCharsetDecoder(const MbstowcsCharsetDecoder&);
- MbstowcsCharsetDecoder& operator=(const MbstowcsCharsetDecoder&);
+ public:
+ MbstowcsCharsetDecoder()
+ {
+ }
+
+ virtual ~MbstowcsCharsetDecoder()
+ {
+ }
+
+ private:
+ inline log4cxx_status_t append(LogString& out, const wchar_t* buf)
+ {
+ out.append(buf);
+ return APR_SUCCESS;
+ }
+
+ virtual log4cxx_status_t decode(ByteBuffer& in,
+ LogString& out)
+ {
+ log4cxx_status_t stat = APR_SUCCESS;
+ enum { BUFSIZE = 256 };
+ wchar_t buf[BUFSIZE];
+
+ mbstate_t mbstate;
+ memset(&mbstate, 0, sizeof(mbstate));
+
+ while (in.remaining() > 0)
+ {
+ size_t requested = in.remaining();
+
+ if (requested > BUFSIZE - 1)
+ {
+ requested = BUFSIZE - 1;
+ }
+
+ memset(buf, 0, BUFSIZE * sizeof(wchar_t));
+ const char* src = in.current();
+
+ if (*src == 0)
+ {
+ out.append(1, (logchar) 0);
+ in.position(in.position() + 1);
+ }
+ else
+ {
+ size_t converted = mbsrtowcs(buf,
+ &src,
+ requested,
+ &mbstate);
+
+ if (converted == (size_t) -1)
+ {
+ stat = APR_BADARG;
+ in.position(src - in.data());
+ break;
+ }
+ else
+ {
+ stat = append(out, buf);
+ in.position(in.position() + requested);
+ }
+ }
+ }
+
+ return stat;
+ }
+
+
+
+ private:
+ MbstowcsCharsetDecoder(const MbstowcsCharsetDecoder&);
+ MbstowcsCharsetDecoder& operator=(const MbstowcsCharsetDecoder&);
};
#endif
@@ -228,36 +228,36 @@ class MbstowcsCharsetDecoder : public CharsetDecoder
*/
class TrivialCharsetDecoder : public CharsetDecoder
{
- public:
- TrivialCharsetDecoder()
- {
- }
+ public:
+ TrivialCharsetDecoder()
+ {
+ }
- virtual ~TrivialCharsetDecoder()
- {
- }
+ virtual ~TrivialCharsetDecoder()
+ {
+ }
- virtual log4cxx_status_t decode(ByteBuffer& in,
- LogString& out)
- {
- size_t remaining = in.remaining();
+ virtual log4cxx_status_t decode(ByteBuffer& in,
+ LogString& out)
+ {
+ size_t remaining = in.remaining();
- if ( remaining > 0)
- {
- const logchar* src = (const logchar*) (in.data() + in.position());
- size_t count = remaining / sizeof(logchar);
- out.append(src, count);
- in.position(in.position() + remaining);
- }
+ if ( remaining > 0)
+ {
+ const logchar* src = (const logchar*) (in.data() + in.position());
+ size_t count = remaining / sizeof(logchar);
+ out.append(src, count);
+ in.position(in.position() + remaining);
+ }
- return APR_SUCCESS;
- }
+ return APR_SUCCESS;
+ }
- private:
- TrivialCharsetDecoder(const TrivialCharsetDecoder&);
- TrivialCharsetDecoder& operator=(const TrivialCharsetDecoder&);
+ private:
+ TrivialCharsetDecoder(const TrivialCharsetDecoder&);
+ TrivialCharsetDecoder& operator=(const TrivialCharsetDecoder&);
};
@@ -270,49 +270,49 @@ typedef TrivialCharsetDecoder UTF8CharsetDecoder;
*/
class UTF8CharsetDecoder : public CharsetDecoder
{
- public:
- UTF8CharsetDecoder()
- {
- }
-
- virtual ~UTF8CharsetDecoder()
- {
- }
-
- private:
- virtual log4cxx_status_t decode(ByteBuffer& in,
- LogString& out)
- {
- if (in.remaining() > 0)
- {
- std::string tmp(in.current(), in.remaining());
- std::string::const_iterator iter = tmp.begin();
-
- while (iter != tmp.end())
- {
- unsigned int sv = Transcoder::decode(tmp, iter);
-
- if (sv == 0xFFFF)
- {
- size_t offset = iter - tmp.begin();
- in.position(in.position() + offset);
- return APR_BADARG;
- }
- else
- {
- Transcoder::encode(sv, out);
- }
- }
-
- in.position(in.limit());
- }
-
- return APR_SUCCESS;
- }
-
- private:
- UTF8CharsetDecoder(const UTF8CharsetDecoder&);
- UTF8CharsetDecoder& operator=(const UTF8CharsetDecoder&);
+ public:
+ UTF8CharsetDecoder()
+ {
+ }
+
+ virtual ~UTF8CharsetDecoder()
+ {
+ }
+
+ private:
+ virtual log4cxx_status_t decode(ByteBuffer& in,
+ LogString& out)
+ {
+ if (in.remaining() > 0)
+ {
+ std::string tmp(in.current(), in.remaining());
+ std::string::const_iterator iter = tmp.begin();
+
+ while (iter != tmp.end())
+ {
+ unsigned int sv = Transcoder::decode(tmp, iter);
+
+ if (sv == 0xFFFF)
+ {
+ size_t offset = iter - tmp.begin();
+ in.position(in.position() + offset);
+ return APR_BADARG;
+ }
+ else
+ {
+ Transcoder::encode(sv, out);
+ }
+ }
+
+ in.position(in.limit());
+ }
+
+ return APR_SUCCESS;
+ }
+
+ private:
+ UTF8CharsetDecoder(const UTF8CharsetDecoder&);
+ UTF8CharsetDecoder& operator=(const UTF8CharsetDecoder&);
};
#endif
@@ -322,42 +322,42 @@ class UTF8CharsetDecoder : public CharsetDecoder
*/
class ISOLatinCharsetDecoder : public CharsetDecoder
{
- public:
- ISOLatinCharsetDecoder()
- {
- }
+ public:
+ ISOLatinCharsetDecoder()
+ {
+ }
- virtual ~ISOLatinCharsetDecoder()
- {
- }
+ virtual ~ISOLatinCharsetDecoder()
+ {
+ }
- private:
- virtual log4cxx_status_t decode(ByteBuffer& in,
- LogString& out)
- {
- if (in.remaining() > 0)
- {
+ private:
+ virtual log4cxx_status_t decode(ByteBuffer& in,
+ LogString& out)
+ {
+ if (in.remaining() > 0)
+ {
- const unsigned char* src = (unsigned char*) in.current();
- const unsigned char* srcEnd = src + in.remaining();
+ const unsigned char* src = (unsigned char*) in.current();
+ const unsigned char* srcEnd = src + in.remaining();
- while (src < srcEnd)
- {
- unsigned int sv = *(src++);
- Transcoder::encode(sv, out);
- }
+ while (src < srcEnd)
+ {
+ unsigned int sv = *(src++);
+ Transcoder::encode(sv, out);
+ }
- in.position(in.limit());
- }
+ in.position(in.limit());
+ }
- return APR_SUCCESS;
- }
+ return APR_SUCCESS;
+ }
- private:
- ISOLatinCharsetDecoder(const ISOLatinCharsetDecoder&);
- ISOLatinCharsetDecoder& operator=(const ISOLatinCharsetDecoder&);
+ private:
+ ISOLatinCharsetDecoder(const ISOLatinCharsetDecoder&);
+ ISOLatinCharsetDecoder& operator=(const ISOLatinCharsetDecoder&);
};
@@ -367,55 +367,55 @@ class ISOLatinCharsetDecoder : public CharsetDecoder
*/
class USASCIICharsetDecoder : public CharsetDecoder
{
- public:
- USASCIICharsetDecoder()
- {
- }
+ public:
+ USASCIICharsetDecoder()
+ {
+ }
- virtual ~USASCIICharsetDecoder()
- {
- }
+ virtual ~USASCIICharsetDecoder()
+ {
+ }
- private:
+ private:
- virtual log4cxx_status_t decode(ByteBuffer& in,
- LogString& out)
- {
- log4cxx_status_t stat = APR_SUCCESS;
+ virtual log4cxx_status_t decode(ByteBuffer& in,
+ LogString& out)
+ {
+ log4cxx_status_t stat = APR_SUCCESS;
- if (in.remaining() > 0)
- {
+ if (in.remaining() > 0)
+ {
- const unsigned char* src = (unsigned char*) in.current();
- const unsigned char* srcEnd = src + in.remaining();
+ const unsigned char* src = (unsigned char*) in.current();
+ const unsigned char* srcEnd = src + in.remaining();
- while (src < srcEnd)
- {
- unsigned char sv = *src;
+ while (src < srcEnd)
+ {
+ unsigned char sv = *src;
- if (sv < 0x80)
- {
- src++;
- Transcoder::encode(sv, out);
- }
- else
- {
- stat = APR_BADARG;
- break;
- }
- }
+ if (sv < 0x80)
+ {
+ src++;
+ Transcoder::encode(sv, out);
+ }
+ else
+ {
+ stat = APR_BADARG;
+ break;
+ }
+ }
- in.position(src - (const unsigned char*) in.data());
- }
+ in.position(src - (const unsigned char*) in.data());
+ }
- return stat;
- }
+ return stat;
+ }
- private:
- USASCIICharsetDecoder(const USASCIICharsetDecoder&);
- USASCIICharsetDecoder& operator=(const USASCIICharsetDecoder&);
+ private:
+ USASCIICharsetDecoder(const USASCIICharsetDecoder&);
+ USASCIICharsetDecoder& operator=(const USASCIICharsetDecoder&);
};
/**
@@ -424,69 +424,69 @@ class USASCIICharsetDecoder : public CharsetDecoder
*/
class LocaleCharsetDecoder : public CharsetDecoder
{
- public:
- LocaleCharsetDecoder() : pool(), mutex(pool), decoder(), encoding()
- {
- }
- virtual ~LocaleCharsetDecoder()
- {
- }
- virtual log4cxx_status_t decode(ByteBuffer& in,
- LogString& out)
- {
- const char* p = in.current();
- size_t i = in.position();
+ public:
+ LocaleCharsetDecoder() : pool(), mutex(pool), decoder(), encoding()
+ {
+ }
+ virtual ~LocaleCharsetDecoder()
+ {
+ }
+ virtual log4cxx_status_t decode(ByteBuffer& in,
+ LogString& out)
+ {
+ const char* p = in.current();
+ size_t i = in.position();
#if !LOG4CXX_CHARSET_EBCDIC
- for (; i < in.limit() && ((unsigned int) *p) < 0x80; i++, p++)
- {
- out.append(1, *p);
- }
+ for (; i < in.limit() && ((unsigned int) *p) < 0x80; i++, p++)
+ {
+ out.append(1, *p);
+ }
- in.position(i);
+ in.position(i);
#endif
- if (i < in.limit())
- {
- Pool subpool;
- const char* enc = apr_os_locale_encoding(subpool.getAPRPool());
- {
- synchronized sync(mutex);
-
- if (enc == 0)
- {
- if (decoder == 0)
- {
- encoding = "C";
- decoder = new USASCIICharsetDecoder();
- }
- }
- else if (encoding != enc)
- {
- encoding = enc;
-
- try
- {
- LogString e;
- Transcoder::decode(encoding, e);
- decoder = getDecoder(e);
- }
- catch (IllegalArgumentException& ex)
- {
- decoder = new USASCIICharsetDecoder();
- }
- }
- }
- return decoder->decode(in, out);
- }
-
- return APR_SUCCESS;
- }
- private:
- Pool pool;
- Mutex mutex;
- CharsetDecoderPtr decoder;
- std::string encoding;
+ if (i < in.limit())
+ {
+ Pool subpool;
+ const char* enc = apr_os_locale_encoding(subpool.getAPRPool());
+ {
+ synchronized sync(mutex);
+
+ if (enc == 0)
+ {
+ if (decoder == 0)
+ {
+ encoding = "C";
+ decoder = new USASCIICharsetDecoder();
+ }
+ }
+ else if (encoding != enc)
+ {
+ encoding = enc;
+
+ try
+ {
+ LogString e;
+ Transcoder::decode(encoding, e);
+ decoder = getDecoder(e);
+ }
+ catch (IllegalArgumentException& ex)
+ {
+ decoder = new USASCIICharsetDecoder();
+ }
+ }
+ }
+ return decoder->decode(in, out);
+ }
+
+ return APR_SUCCESS;
+ }
+ private:
+ Pool pool;
+ Mutex mutex;
+ CharsetDecoderPtr decoder;
+ std::string encoding;
};
@@ -508,83 +508,83 @@ CharsetDecoder::~CharsetDecoder()
CharsetDecoder* CharsetDecoder::createDefaultDecoder()
{
#if LOG4CXX_CHARSET_UTF8
- return new UTF8CharsetDecoder();
+ return new UTF8CharsetDecoder();
#elif LOG4CXX_CHARSET_ISO88591 || defined(_WIN32_WCE)
- return new ISOLatinCharsetDecoder();
+ return new ISOLatinCharsetDecoder();
#elif LOG4CXX_CHARSET_USASCII
- return new USASCIICharsetDecoder();
+ return new USASCIICharsetDecoder();
#elif LOG4CXX_LOGCHAR_IS_WCHAR && LOG4CXX_HAS_MBSRTOWCS
- return new MbstowcsCharsetDecoder();
+ return new MbstowcsCharsetDecoder();
#else
- return new LocaleCharsetDecoder();
+ return new LocaleCharsetDecoder();
#endif
}
CharsetDecoderPtr CharsetDecoder::getDefaultDecoder()
{
- static CharsetDecoderPtr decoder(createDefaultDecoder());
-
- //
- // if invoked after static variable destruction
- // (if logging is called in the destructor of a static object)
- // then create a new decoder.
- //
- if (decoder == 0)
- {
- return createDefaultDecoder();
- }
-
- return decoder;
+ static CharsetDecoderPtr decoder(createDefaultDecoder());
+
+ //
+ // if invoked after static variable destruction
+ // (if logging is called in the destructor of a static object)
+ // then create a new decoder.
+ //
+ if (decoder == 0)
+ {
+ return createDefaultDecoder();
+ }
+
+ return decoder;
}
CharsetDecoderPtr CharsetDecoder::getUTF8Decoder()
{
- static CharsetDecoderPtr decoder(new UTF8CharsetDecoder());
-
- //
- // if invoked after static variable destruction
- // (if logging is called in the destructor of a static object)
- // then create a new decoder.
- //
- if (decoder == 0)
- {
- return new UTF8CharsetDecoder();
- }
-
- return decoder;
+ static CharsetDecoderPtr decoder(new UTF8CharsetDecoder());
+
+ //
+ // if invoked after static variable destruction
+ // (if logging is called in the destructor of a static object)
+ // then create a new decoder.
+ //
+ if (decoder == 0)
+ {
+ return new UTF8CharsetDecoder();
+ }
+
+ return decoder;
}
CharsetDecoderPtr CharsetDecoder::getISOLatinDecoder()
{
- return new ISOLatinCharsetDecoder();
+ return new ISOLatinCharsetDecoder();
}
CharsetDecoderPtr CharsetDecoder::getDecoder(const LogString& charset)
{
- if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF-8"), LOG4CXX_STR("utf-8")) ||
- StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF8"), LOG4CXX_STR("utf8")))
- {
- return new UTF8CharsetDecoder();
- }
- else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("C"), LOG4CXX_STR("c")) ||
- charset == LOG4CXX_STR("646") ||
- StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("US-ASCII"), LOG4CXX_STR("us-ascii")) ||
- StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO646-US"), LOG4CXX_STR("iso646-US")) ||
- StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ANSI_X3.4-1968"), LOG4CXX_STR("ansi_x3.4-1968")))
- {
- return new USASCIICharsetDecoder();
- }
- else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO-8859-1"), LOG4CXX_STR("iso-8859-1")) ||
- StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO-LATIN-1"), LOG4CXX_STR("iso-latin-1")))
- {
- return new ISOLatinCharsetDecoder();
- }
+ if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF-8"), LOG4CXX_STR("utf-8")) ||
+ StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF8"), LOG4CXX_STR("utf8")))
+ {
+ return new UTF8CharsetDecoder();
+ }
+ else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("C"), LOG4CXX_STR("c")) ||
+ charset == LOG4CXX_STR("646") ||
+ StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("US-ASCII"), LOG4CXX_STR("us-ascii")) ||
+ StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO646-US"), LOG4CXX_STR("iso646-US")) ||
+ StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ANSI_X3.4-1968"), LOG4CXX_STR("ansi_x3.4-1968")))
+ {
+ return new USASCIICharsetDecoder();
+ }
+ else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO-8859-1"), LOG4CXX_STR("iso-8859-1")) ||
+ StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO-LATIN-1"), LOG4CXX_STR("iso-latin-1")))
+ {
+ return new ISOLatinCharsetDecoder();
+ }
#if APR_HAS_XLATE
- return new APRCharsetDecoder(charset);
+ return new APRCharsetDecoder(charset);
#else
- throw IllegalArgumentException(charset);
+ throw IllegalArgumentException(charset);
#endif
}
diff --git a/src/main/cpp/charsetencoder.cpp b/src/main/cpp/charsetencoder.cpp
index 6fb7ab9..6d6e309 100644
--- a/src/main/cpp/charsetencoder.cpp
+++ b/src/main/cpp/charsetencoder.cpp
@@ -23,7 +23,7 @@
#include <log4cxx/helpers/transcoder.h>
#if !defined(LOG4CXX)
- #define LOG4CXX 1
+ #define LOG4CXX 1
#endif
#include <log4cxx/private/log4cxx_private.h>
@@ -32,7 +32,7 @@
#include <log4cxx/helpers/synchronized.h>
#ifdef LOG4CXX_HAS_WCSTOMBS
- #include <stdlib.h>
+ #include <stdlib.h>
#endif
using namespace log4cxx;
@@ -52,76 +52,76 @@ namespace helpers
*/
class APRCharsetEncoder : public CharsetEncoder
{
- public:
- APRCharsetEncoder(const LogString& topage) : pool(), mutex(pool)
- {
+ public:
+ APRCharsetEncoder(const LogString& topage) : pool(), mutex(pool)
+ {
#if LOG4CXX_LOGCHAR_IS_WCHAR
- const char* frompage = "WCHAR_T";
+ const char* frompage = "WCHAR_T";
#endif
#if LOG4CXX_LOGCHAR_IS_UTF8
- const char* frompage = "UTF-8";
+ const char* frompage = "UTF-8";
#endif
#if LOG4CXX_LOGCHAR_IS_UNICHAR
- const char* frompage = "UTF-16";
+ const char* frompage = "UTF-16";
#endif
- std::string tpage(Transcoder::encodeCharsetName(topage));
- apr_status_t stat = apr_xlate_open(&convset,
- tpage.c_str(),
- frompage,
- pool.getAPRPool());
-
- if (stat != APR_SUCCESS)
- {
- throw IllegalArgumentException(topage);
- }
- }
-
- virtual ~APRCharsetEncoder()
- {
- }
-
- virtual log4cxx_status_t encode(const LogString& in,
- LogString::const_iterator& iter,
- ByteBuffer& out)
- {
- apr_status_t stat;
- size_t outbytes_left = out.remaining();
- size_t initial_outbytes_left = outbytes_left;
- size_t position = out.position();
-
- if (iter == in.end())
- {
- synchronized sync(mutex);
- stat = apr_xlate_conv_buffer(convset, NULL, NULL,
- out.data() + position, &outbytes_left);
- }
- else
- {
- LogString::size_type inOffset = (iter - in.begin());
- apr_size_t inbytes_left =
- (in.size() - inOffset) * sizeof(LogString::value_type);
- apr_size_t initial_inbytes_left = inbytes_left;
- {
- synchronized sync(mutex);
- stat = apr_xlate_conv_buffer(convset,
- (const char*) (in.data() + inOffset),
- &inbytes_left,
- out.data() + position,
- &outbytes_left);
- }
- iter += ((initial_inbytes_left - inbytes_left) / sizeof(LogString::value_type));
- }
-
- out.position(out.position() + (initial_outbytes_left - outbytes_left));
- return stat;
- }
-
- private:
- APRCharsetEncoder(const APRCharsetEncoder&);
- APRCharsetEncoder& operator=(const APRCharsetEncoder&);
- Pool pool;
- Mutex mutex;
- apr_xlate_t* convset;
+ std::string tpage(Transcoder::encodeCharsetName(topage));
+ apr_status_t stat = apr_xlate_open(&convset,
+ tpage.c_str(),
+ frompage,
+ pool.getAPRPool());
+
+ if (stat != APR_SUCCESS)
+ {
+ throw IllegalArgumentException(topage);
+ }
+ }
+
+ virtual ~APRCharsetEncoder()
+ {
+ }
+
+ virtual log4cxx_status_t encode(const LogString& in,
+ LogString::const_iterator& iter,
+ ByteBuffer& out)
+ {
+ apr_status_t stat;
+ size_t outbytes_left = out.remaining();
+ size_t initial_outbytes_left = outbytes_left;
+ size_t position = out.position();
+
+ if (iter == in.end())
+ {
+ synchronized sync(mutex);
+ stat = apr_xlate_conv_buffer(convset, NULL, NULL,
+ out.data() + position, &outbytes_left);
+ }
+ else
+ {
+ LogString::size_type inOffset = (iter - in.begin());
+ apr_size_t inbytes_left =
+ (in.size() - inOffset) * sizeof(LogString::value_type);
+ apr_size_t initial_inbytes_left = inbytes_left;
+ {
+ synchronized sync(mutex);
+ stat = apr_xlate_conv_buffer(convset,
+ (const char*) (in.data() + inOffset),
+ &inbytes_left,
+ out.data() + position,
+ &outbytes_left);
+ }
+ iter += ((initial_inbytes_left - inbytes_left) / sizeof(LogString::value_type));
+ }
+
+ out.position(out.position() + (initial_outbytes_left - outbytes_left));
+ return stat;
+ }
+
+ private:
+ APRCharsetEncoder(const APRCharsetEncoder&);
+ APRCharsetEncoder& operator=(const APRCharsetEncoder&);
+ Pool pool;
+ Mutex mutex;
+ apr_xlate_t* convset;
};
#endif
@@ -131,83 +131,83 @@ class APRCharsetEncoder : public CharsetEncoder
*/
class WcstombsCharsetEncoder : public CharsetEncoder
{
- public:
- WcstombsCharsetEncoder()
- {
- }
-
- /**
- * Converts a wchar_t to the default external multibyte encoding.
- */
- log4cxx_status_t encode(const LogString& in,
- LogString::const_iterator& iter,
- ByteBuffer& out)
- {
- log4cxx_status_t stat = APR_SUCCESS;
-
- if (iter != in.end())
- {
- size_t outbytes_left = out.remaining();
- size_t position = out.position();
- std::wstring::size_type inOffset = (iter - in.begin());
- enum { BUFSIZE = 256 };
- wchar_t buf[BUFSIZE];
- size_t chunkSize = BUFSIZE - 1;
-
- if (chunkSize * MB_LEN_MAX > outbytes_left)
- {
- chunkSize = outbytes_left / MB_LEN_MAX;
- }
-
- if (chunkSize > in.length() - inOffset)
- {
- chunkSize = in.length() - inOffset;
- }
-
- memset(buf, 0, BUFSIZE * sizeof(wchar_t));
- memcpy(buf,
- in.data() + inOffset,
- chunkSize * sizeof(wchar_t));
- size_t converted = wcstombs(out.data() + position, buf, outbytes_left);
-
- if (converted == (size_t) -1)
- {
- stat = APR_BADARG;
-
- //
- // if unconvertable character was encountered
- // repeatedly halve source to get fragment that
- // can be converted
- for (chunkSize /= 2;
- chunkSize > 0;
- chunkSize /= 2)
- {
- buf[chunkSize] = 0;
- converted = wcstombs(out.data() + position, buf, outbytes_left);
-
- if (converted != (size_t) -1)
- {
- iter += chunkSize;
- out.position(out.position() + converted);
- break;
- }
- }
- }
- else
- {
- iter += chunkSize;
- out.position(out.position() + converted);
- }
- }
-
- return stat;
- }
-
-
-
- private:
- WcstombsCharsetEncoder(const WcstombsCharsetEncoder&);
- WcstombsCharsetEncoder& operator=(const WcstombsCharsetEncoder&);
+ public:
+ WcstombsCharsetEncoder()
+ {
+ }
+
+ /**
+ * Converts a wchar_t to the default external multibyte encoding.
+ */
+ log4cxx_status_t encode(const LogString& in,
+ LogString::const_iterator& iter,
+ ByteBuffer& out)
+ {
+ log4cxx_status_t stat = APR_SUCCESS;
+
+ if (iter != in.end())
+ {
+ size_t outbytes_left = out.remaining();
+ size_t position = out.position();
+ std::wstring::size_type inOffset = (iter - in.begin());
+ enum { BUFSIZE = 256 };
+ wchar_t buf[BUFSIZE];
+ size_t chunkSize = BUFSIZE - 1;
+
+ if (chunkSize * MB_LEN_MAX > outbytes_left)
+ {
+ chunkSize = outbytes_left / MB_LEN_MAX;
+ }
+
+ if (chunkSize > in.length() - inOffset)
+ {
+ chunkSize = in.length() - inOffset;
+ }
+
+ memset(buf, 0, BUFSIZE * sizeof(wchar_t));
+ memcpy(buf,
+ in.data() + inOffset,
+ chunkSize * sizeof(wchar_t));
+ size_t converted = wcstombs(out.data() + position, buf, outbytes_left);
+
+ if (converted == (size_t) -1)
+ {
+ stat = APR_BADARG;
+
+ //
+ // if unconvertable character was encountered
+ // repeatedly halve source to get fragment that
+ // can be converted
+ for (chunkSize /= 2;
+ chunkSize > 0;
+ chunkSize /= 2)
+ {
+ buf[chunkSize] = 0;
+ converted = wcstombs(out.data() + position, buf, outbytes_left);
+
+ if (converted != (size_t) -1)
+ {
+ iter += chunkSize;
+ out.position(out.position() + converted);
+ break;
+ }
+ }
+ }
+ else
+ {
+ iter += chunkSize;
+ out.position(out.position() + converted);
+ }
+ }
+
+ return stat;
+ }
+
+
+
+ private:
+ WcstombsCharsetEncoder(const WcstombsCharsetEncoder&);
+ WcstombsCharsetEncoder& operator=(const WcstombsCharsetEncoder&);
};
#endif
@@ -217,43 +217,43 @@ class WcstombsCharsetEncoder : public CharsetEncoder
*/
class USASCIICharsetEncoder : public CharsetEncoder
{
- public:
- USASCIICharsetEncoder()
- {
- }
-
- virtual log4cxx_status_t encode(const LogString& in,
- LogString::const_iterator& iter,
- ByteBuffer& out)
- {
- log4cxx_status_t stat = APR_SUCCESS;
-
- if (iter != in.end())
- {
- while (out.remaining() > 0 && iter != in.end())
- {
- LogString::const_iterator prev(iter);
- unsigned int sv = Transcoder::decode(in, iter);
-
- if (sv <= 0x7F)
- {
- out.put((char) sv);
- }
- else
- {
- iter = prev;
- stat = APR_BADARG;
- break;
- }
- }
- }
-
- return stat;
- }
-
- private:
- USASCIICharsetEncoder(const USASCIICharsetEncoder&);
- USASCIICharsetEncoder& operator=(const USASCIICharsetEncoder&);
+ public:
+ USASCIICharsetEncoder()
+ {
+ }
+
+ virtual log4cxx_status_t encode(const LogString& in,
+ LogString::const_iterator& iter,
+ ByteBuffer& out)
+ {
+ log4cxx_status_t stat = APR_SUCCESS;
+
+ if (iter != in.end())
+ {
+ while (out.remaining() > 0 && iter != in.end())
+ {
+ LogString::const_iterator prev(iter);
+ unsigned int sv = Transcoder::decode(in, iter);
+
+ if (sv <= 0x7F)
+ {
+ out.put((char) sv);
+ }
+ else
+ {
+ iter = prev;
+ stat = APR_BADARG;
+ break;
+ }
+ }
+ }
+
+ return stat;
+ }
+
+ private:
+ USASCIICharsetEncoder(const USASCIICharsetEncoder&);
+ USASCIICharsetEncoder& operator=(const USASCIICharsetEncoder&);
};
/**
@@ -261,43 +261,43 @@ class USASCIICharsetEncoder : public CharsetEncoder
*/
class ISOLatinCharsetEncoder : public CharsetEncoder
{
- public:
- ISOLatinCharsetEncoder()
- {
- }
-
- virtual log4cxx_status_t encode(const LogString& in,
- LogString::const_iterator& iter,
- ByteBuffer& out)
- {
- log4cxx_status_t stat = APR_SUCCESS;
-
- if (iter != in.end())
- {
- while (out.remaining() > 0 && iter != in.end())
- {
- LogString::const_iterator prev(iter);
- unsigned int sv = Transcoder::decode(in, iter);
-
- if (sv <= 0xFF)
- {
- out.put((char) sv);
- }
- else
- {
- iter = prev;
- stat = APR_BADARG;
- break;
- }
- }
- }
-
- return stat;
- }
-
- private:
- ISOLatinCharsetEncoder(const ISOLatinCharsetEncoder&);
- ISOLatinCharsetEncoder& operator=(const ISOLatinCharsetEncoder&);
+ public:
+ ISOLatinCharsetEncoder()
+ {
+ }
+
+ virtual log4cxx_status_t encode(const LogString& in,
+ LogString::const_iterator& iter,
+ ByteBuffer& out)
+ {
+ log4cxx_status_t stat = APR_SUCCESS;
+
+ if (iter != in.end())
+ {
+ while (out.remaining() > 0 && iter != in.end())
+ {
+ LogString::const_iterator prev(iter);
+ unsigned int sv = Transcoder::decode(in, iter);
+
+ if (sv <= 0xFF)
+ {
+ out.put((char) sv);
+ }
+ else
+ {
+ iter = prev;
+ stat = APR_BADARG;
+ break;
+ }
+ }
+ }
+
+ return stat;
+ }
+
+ private:
+ ISOLatinCharsetEncoder(const ISOLatinCharsetEncoder&);
+ ISOLatinCharsetEncoder& operator=(const ISOLatinCharsetEncoder&);
};
/**
@@ -305,38 +305,38 @@ class ISOLatinCharsetEncoder : public CharsetEncoder
*/
class TrivialCharsetEncoder : public CharsetEncoder
{
- public:
- TrivialCharsetEncoder()
- {
- }
-
-
- virtual log4cxx_status_t encode(const LogString& in,
- LogString::const_iterator& iter,
- ByteBuffer& out)
- {
- if (iter != in.end())
- {
- size_t requested = in.length() - (iter - in.begin());
-
- if (requested > out.remaining() / sizeof(logchar))
- {
- requested = out.remaining() / sizeof(logchar);
- }
-
- memcpy(out.current(),
- (const char*) in.data() + (iter - in.begin()),
- requested * sizeof(logchar));
- iter += requested;
- out.position(out.position() + requested * sizeof(logchar));
- }
-
- return APR_SUCCESS;
- }
-
- private:
- TrivialCharsetEncoder(const TrivialCharsetEncoder&);
- TrivialCharsetEncoder& operator=(const TrivialCharsetEncoder&);
+ public:
+ TrivialCharsetEncoder()
+ {
+ }
+
+
+ virtual log4cxx_status_t encode(const LogString& in,
+ LogString::const_iterator& iter,
+ ByteBuffer& out)
+ {
+ if (iter != in.end())
+ {
+ size_t requested = in.length() - (iter - in.begin());
+
+ if (requested > out.remaining() / sizeof(logchar))
+ {
+ requested = out.remaining() / sizeof(logchar);
+ }
+
+ memcpy(out.current(),
+ (const char*) in.data() + (iter - in.begin()),
+ requested * sizeof(logchar));
+ iter += requested;
+ out.position(out.position() + requested * sizeof(logchar));
+ }
+
+ return APR_SUCCESS;
+ }
+
+ private:
+ TrivialCharsetEncoder(const TrivialCharsetEncoder&);
+ TrivialCharsetEncoder& operator=(const TrivialCharsetEncoder&);
};
#if LOG4CXX_LOGCHAR_IS_UTF8
@@ -347,33 +347,33 @@ typedef TrivialCharsetEncoder UTF8CharsetEncoder;
*/
class UTF8CharsetEncoder : public CharsetEncoder
{
- public:
- UTF8CharsetEncoder()
- {
- }
-
- virtual log4cxx_status_t encode(const LogString& in,
- LogString::const_iterator& iter,
- ByteBuffer& out)
- {
- while (iter != in.end() && out.remaining() >= 8)
- {
- unsigned int sv = Transcoder::decode(in, iter);
-
- if (sv == 0xFFFF)
- {
- return APR_BADARG;
- }
-
- Transcoder::encodeUTF8(sv, out);
- }
-
- return APR_SUCCESS;
- }
-
- private:
- UTF8CharsetEncoder(const UTF8CharsetEncoder&);
- UTF8CharsetEncoder& operator=(const UTF8CharsetEncoder&);
+ public:
+ UTF8CharsetEncoder()
+ {
+ }
+
+ virtual log4cxx_status_t encode(const LogString& in,
+ LogString::const_iterator& iter,
+ ByteBuffer& out)
+ {
+ while (iter != in.end() && out.remaining() >= 8)
+ {
+ unsigned int sv = Transcoder::decode(in, iter);
+
+ if (sv == 0xFFFF)
+ {
+ return APR_BADARG;
+ }
+
+ Transcoder::encodeUTF8(sv, out);
+ }
+
+ return APR_SUCCESS;
+ }
+
+ private:
+ UTF8CharsetEncoder(const UTF8CharsetEncoder&);
+ UTF8CharsetEncoder& operator=(const UTF8CharsetEncoder&);
};
#endif
@@ -382,33 +382,33 @@ class UTF8CharsetEncoder : public CharsetEncoder
*/
class UTF16BECharsetEncoder : public CharsetEncoder
{
- public:
- UTF16BECharsetEncoder()
- {
- }
-
- virtual log4cxx_status_t encode(const LogString& in,
- LogString::const_iterator& iter,
- ByteBuffer& out)
- {
- while (iter != in.end() && out.remaining() >= 4)
- {
- unsigned int sv = Transcoder::decode(in, iter);
-
- if (sv == 0xFFFF)
- {
- return APR_BADARG;
- }
-
- Transcoder::encodeUTF16BE(sv, out);
- }
-
- return APR_SUCCESS;
- }
-
- private:
- UTF16BECharsetEncoder(const UTF16BECharsetEncoder&);
- UTF16BECharsetEncoder& operator=(const UTF16BECharsetEncoder&);
+ public:
+ UTF16BECharsetEncoder()
+ {
+ }
+
+ virtual log4cxx_status_t encode(const LogString& in,
+ LogString::const_iterator& iter,
+ ByteBuffer& out)
+ {
+ while (iter != in.end() && out.remaining() >= 4)
+ {
+ unsigned int sv = Transcoder::decode(in, iter);
+
+ if (sv == 0xFFFF)
+ {
+ return APR_BADARG;
+ }
+
+ Transcoder::encodeUTF16BE(sv, out);
+ }
+
+ return APR_SUCCESS;
+ }
+
+ private:
+ UTF16BECharsetEncoder(const UTF16BECharsetEncoder&);
+ UTF16BECharsetEncoder& operator=(const UTF16BECharsetEncoder&);
};
/**
@@ -416,33 +416,33 @@ class UTF16BECharsetEncoder : public CharsetEncoder
*/
class UTF16LECharsetEncoder : public CharsetEncoder
{
- public:
- UTF16LECharsetEncoder()
- {
- }
-
-
- virtual log4cxx_status_t encode(const LogString& in,
- LogString::const_iterator& iter,
- ByteBuffer& out)
- {
- while (iter != in.end() && out.remaining() >= 4)
- {
- unsigned int sv = Transcoder::decode(in, iter);
-
- if (sv == 0xFFFF)
- {
- return APR_BADARG;
- }
-
- Transcoder::encodeUTF16LE(sv, out);
- }
-
- return APR_SUCCESS;
- }
- private:
- UTF16LECharsetEncoder(const UTF16LECharsetEncoder&);
- UTF16LECharsetEncoder& operator=(const UTF16LECharsetEncoder&);
+ public:
+ UTF16LECharsetEncoder()
+ {
+ }
+
+
+ virtual log4cxx_status_t encode(const LogString& in,
+ LogString::const_iterator& iter,
+ ByteBuffer& out)
+ {
+ while (iter != in.end() && out.remaining() >= 4)
+ {
+ unsigned int sv = Transcoder::decode(in, iter);
+
+ if (sv == 0xFFFF)
+ {
+ return APR_BADARG;
+ }
+
+ Transcoder::encodeUTF16LE(sv, out);
+ }
+
+ return APR_SUCCESS;
+ }
+ private:
+ UTF16LECharsetEncoder(const UTF16LECharsetEncoder&);
+ UTF16LECharsetEncoder& operator=(const UTF16LECharsetEncoder&);
};
/**
@@ -451,75 +451,75 @@ class UTF16LECharsetEncoder : public CharsetEncoder
*/
class LocaleCharsetEncoder : public CharsetEncoder
{
- public:
- LocaleCharsetEncoder() : pool(), mutex(pool), encoder(), encoding()
- {
- }
- virtual ~LocaleCharsetEncoder()
- {
- }
- virtual log4cxx_status_t encode(const LogString& in,
- LogString::const_iterator& iter,
- ByteBuffer& out)
- {
+ public:
+ LocaleCharsetEncoder() : pool(), mutex(pool), encoder(), encoding()
+ {
+ }
+ virtual ~LocaleCharsetEncoder()
+ {
+ }
+ virtual log4cxx_status_t encode(const LogString& in,
+ LogString::const_iterator& iter,
+ ByteBuffer& out)
+ {
#if !LOG4CXX_CHARSET_EBCDIC
- char* current = out.current();
- size_t remain = out.remaining();
+ char* current = out.current();
+ size_t remain = out.remaining();
- for (;
- iter != in.end() && ((unsigned int) *iter) < 0x80 && remain > 0;
- iter++, remain--, current++)
- {
- *current = *iter;
- }
+ for (;
+ iter != in.end() && ((unsigned int) *iter) < 0x80 && remain > 0;
+ iter++, remain--, current++)
+ {
+ *current = *iter;
+ }
- out.position(current - out.data());
+ out.position(current - out.data());
#endif
- if (iter != in.end() && out.remaining() > 0)
- {
- Pool subpool;
- const char* enc = apr_os_locale_encoding(subpool.getAPRPool());
- {
- synchronized sync(mutex);
-
- if (enc == 0)
- {
- if (encoder == 0)
- {
- encoding = "C";
- encoder = new USASCIICharsetEncoder();
- }
- }
- else if (encoding != enc)
- {
- encoding = enc;
- LogString ename;
- Transcoder::decode(encoding, ename);
-
- try
- {
- encoder = CharsetEncoder::getEncoder(ename);
- }
- catch (IllegalArgumentException& ex)
- {
- encoder = new USASCIICharsetEncoder();
- }
- }
- }
- return encoder->encode(in, iter, out);
- }
-
- return APR_SUCCESS;
- }
-
- private:
- LocaleCharsetEncoder(const LocaleCharsetEncoder&);
- LocaleCharsetEncoder& operator=(const LocaleCharsetEncoder&);
- Pool pool;
- Mutex mutex;
- CharsetEncoderPtr encoder;
- std::string encoding;
+ if (iter != in.end() && out.remaining() > 0)
+ {
+ Pool subpool;
+ const char* enc = apr_os_locale_encoding(subpool.getAPRPool());
+ {
+ synchronized sync(mutex);
+
+ if (enc == 0)
+ {
+ if (encoder == 0)
+ {
+ encoding = "C";
+ encoder = new USASCIICharsetEncoder();
+ }
+ }
+ else if (encoding != enc)
+ {
+ encoding = enc;
+ LogString ename;
+ Transcoder::decode(encoding, ename);
+
+ try
+ {
+ encoder = CharsetEncoder::getEncoder(ename);
+ }
+ catch (IllegalArgumentException& ex)
+ {
+ encoder = new USASCIICharsetEncoder();
+ }
+ }
+ }
+ return encoder->encode(in, iter, out);
+ }
+
+ return APR_SUCCESS;
+ }
+
+ private:
+ LocaleCharsetEncoder(const LocaleCharsetEncoder&);
+ LocaleCharsetEncoder& operator=(const LocaleCharsetEncoder&);
+ Pool pool;
+ Mutex mutex;
+ CharsetEncoderPtr encoder;
+ std::string encoding;
};
@@ -539,77 +539,77 @@ CharsetEncoder::~CharsetEncoder()
CharsetEncoderPtr CharsetEncoder::getDefaultEncoder()
{
- static CharsetEncoderPtr encoder(createDefaultEncoder());
-
- //
- // if invoked after static variable destruction
- // (if logging is called in the destructor of a static object)
- // then create a new decoder.
- //
- if (encoder == 0)
- {
- return createDefaultEncoder();
- }
-
- return encoder;
+ static CharsetEncoderPtr encoder(createDefaultEncoder());
+
+ //
+ // if invoked after static variable destruction
+ // (if logging is called in the destructor of a static object)
+ // then create a new decoder.
+ //
+ if (encoder == 0)
+ {
+ return createDefaultEncoder();
+ }
+
+ return encoder;
}
CharsetEncoder* CharsetEncoder::createDefaultEncoder()
{
#if LOG4CXX_CHARSET_UTF8
- return new UTF8CharsetEncoder();
+ return new UTF8CharsetEncoder();
#elif LOG4CXX_CHARSET_ISO88591
- return new ISOLatinCharsetEncoder();
+ return new ISOLatinCharsetEncoder();
#elif LOG4CXX_CHARSET_USASCII
- return new USASCIICharsetEncoder();
+ return new USASCIICharsetEncoder();
#elif LOG4CXX_LOGCHAR_IS_WCHAR && LOG4CXX_HAS_WCSTOMBS
- return new WcstombsCharsetEncoder();
+ return new WcstombsCharsetEncoder();
#else
- return new LocaleCharsetEncoder();
+ return new LocaleCharsetEncoder();
#endif
}
CharsetEncoderPtr CharsetEncoder::getUTF8Encoder()
{
- return new UTF8CharsetEncoder();
+ return new UTF8CharsetEncoder();
}
CharsetEncoderPtr CharsetEncoder::getEncoder(const LogString& charset)
{
- if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF-8"), LOG4CXX_STR("utf-8")))
- {
- return new UTF8CharsetEncoder();
- }
- else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("C"), LOG4CXX_STR("c")) ||
- charset == LOG4CXX_STR("646") ||
- StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("US-ASCII"), LOG4CXX_STR("us-ascii")) ||
- StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO646-US"), LOG4CXX_STR("iso646-US")) ||
- StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ANSI_X3.4-1968"), LOG4CXX_STR("ansi_x3.4-1968")))
- {
- return new USASCIICharsetEncoder();
- }
- else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO-8859-1"), LOG4CXX_STR("iso-8859-1")) ||
- StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO-LATIN-1"), LOG4CXX_STR("iso-latin-1")))
- {
- return new ISOLatinCharsetEncoder();
- }
- else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF-16BE"), LOG4CXX_STR("utf-16be"))
- || StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF-16"), LOG4CXX_STR("utf-16")))
- {
- return new UTF16BECharsetEncoder();
- }
- else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF-16LE"), LOG4CXX_STR("utf-16le")))
- {
- return new UTF16LECharsetEncoder();
- }
+ if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF-8"), LOG4CXX_STR("utf-8")))
+ {
+ return new UTF8CharsetEncoder();
+ }
+ else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("C"), LOG4CXX_STR("c")) ||
+ charset == LOG4CXX_STR("646") ||
+ StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("US-ASCII"), LOG4CXX_STR("us-ascii")) ||
+ StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO646-US"), LOG4CXX_STR("iso646-US")) ||
+ StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ANSI_X3.4-1968"), LOG4CXX_STR("ansi_x3.4-1968")))
+ {
+ return new USASCIICharsetEncoder();
+ }
+ else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO-8859-1"), LOG4CXX_STR("iso-8859-1")) ||
+ StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("ISO-LATIN-1"), LOG4CXX_STR("iso-latin-1")))
+ {
+ return new ISOLatinCharsetEncoder();
+ }
+ else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF-16BE"), LOG4CXX_STR("utf-16be"))
+ || StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF-16"), LOG4CXX_STR("utf-16")))
+ {
+ return new UTF16BECharsetEncoder();
+ }
+ else if (StringHelper::equalsIgnoreCase(charset, LOG4CXX_STR("UTF-16LE"), LOG4CXX_STR("utf-16le")))
+ {
+ return new UTF16LECharsetEncoder();
+ }
#if APR_HAS_XLATE
- return new APRCharsetEncoder(charset);
+ return new APRCharsetEncoder(charset);
#else
- throw IllegalArgumentException(charset);
+ throw IllegalArgumentException(charset);
#endif
}
@@ -624,24 +624,24 @@ void CharsetEncoder::flush(ByteBuffer& /* out */ )
void CharsetEncoder::encode(CharsetEncoderPtr& enc,
- const LogString& src,
- LogString::const_iterator& iter,
- ByteBuffer& dst)
+ const LogString& src,
+ LogString::const_iterator& iter,
+ ByteBuffer& dst)
{
- log4cxx_status_t stat = enc->encode(src, iter, dst);
+ log4cxx_status_t stat = enc->encode(src, iter, dst);
- if (stat != APR_SUCCESS && iter != src.end())
- {
+ if (stat != APR_SUCCESS && iter != src.end())
+ {
#if LOG4CXX_LOGCHAR_IS_WCHAR || LOG4CXX_LOGCHAR_IS_UNICHAR
- iter++;
+ iter++;
#elif LOG4CXX_LOGCHAR_IS_UTF8
- // advance past this character and all continuation characters
- while ((*(++iter) & 0xC0) == 0x80);
+ // advance past this character and all continuation characters
+ while ((*(++iter) & 0xC0) == 0x80);
#else
#error logchar is unrecognized
#endif
- dst.put(Transcoder::LOSSCHAR);
- }
+ dst.put(Transcoder::LOSSCHAR);
+ }
}
diff --git a/src/main/cpp/class.cpp b/src/main/cpp/class.cpp
index 149c150..860ae50 100644
--- a/src/main/cpp/class.cpp
+++ b/src/main/cpp/class.cpp
@@ -16,7 +16,7 @@
*/
#if defined(_MSC_VER)
- #pragma warning ( disable: 4231 4251 4275 4786 )
+ #pragma warning ( disable: 4231 4251 4275 4786 )
#endif
#include <log4cxx/logstring.h>
@@ -27,7 +27,7 @@
#include <log4cxx/helpers/stringhelper.h>
#include <log4cxx/log4cxx.h>
#if !defined(LOG4CXX)
- #define LOG4CXX 1
+ #define LOG4CXX 1
#endif
#include <log4cxx/private/log4cxx_private.h>
#include <log4cxx/rollingfileappender.h>
@@ -39,10 +39,10 @@
#include <log4cxx/fileappender.h>
#include <log4cxx/db/odbcappender.h>
#if defined(WIN32) || defined(_WIN32)
- #if !defined(_WIN32_WCE)
- #include <log4cxx/nt/nteventlogappender.h>
- #endif
- #include <log4cxx/nt/outputdebugstringappender.h>
+ #if !defined(_WIN32_WCE)
+ #include <log4cxx/nt/nteventlogappender.h>
+ #endif
+ #include <log4cxx/nt/outputdebugstringappender.h>
#endif
#include <log4cxx/net/smtpappender.h>
#include <log4cxx/net/socketappender.h>
@@ -91,14 +91,14 @@ Class::~Class()
LogString Class::toString() const
{
- return getName();
+ return getName();
}
ObjectPtr Class::newInstance() const
{
- throw InstantiationException(LOG4CXX_STR("Cannot create new instances of Class."));
+ throw InstantiationException(LOG4CXX_STR("Cannot create new instances of Class."));
#if LOG4CXX_RETURN_AFTER_THROW
- return 0;
+ return 0;
#endif
}
@@ -106,102 +106,102 @@ ObjectPtr Class::newInstance() const
Class::ClassMap& Class::getRegistry()
{
- static ClassMap registry;
- return registry;
+ static ClassMap registry;
+ return registry;
}
const Class& Class::forName(const LogString& className)
{
- LogString lowerName(StringHelper::toLowerCase(className));
- //
- // check registry using full class name
- //
- const Class* clazz = getRegistry()[lowerName];
-
- if (clazz == 0)
- {
- LogString::size_type pos = className.find_last_of(LOG4CXX_STR(".$"));
-
- if (pos != LogString::npos)
- {
- LogString terminalName(lowerName, pos + 1, LogString::npos);
- clazz = getRegistry()[terminalName];
-
- if (clazz == 0)
- {
- registerClasses();
- clazz = getRegistry()[lowerName];
-
- if (clazz == 0)
- {
- clazz = getRegistry()[terminalName];
- }
- }
- }
- else
- {
- registerClasses();
- clazz = getRegistry()[lowerName];
- }
- }
-
- if (clazz == 0)
- {
- throw ClassNotFoundException(className);
- }
-
- return *clazz;
+ LogString lowerName(StringHelper::toLowerCase(className));
+ //
+ // check registry using full class name
+ //
+ const Class* clazz = getRegistry()[lowerName];
+
+ if (clazz == 0)
+ {
+ LogString::size_type pos = className.find_last_of(LOG4CXX_STR(".$"));
+
+ if (pos != LogString::npos)
+ {
+ LogString terminalName(lowerName, pos + 1, LogString::npos);
+ clazz = getRegistry()[terminalName];
+
+ if (clazz == 0)
+ {
+ registerClasses();
+ clazz = getRegistry()[lowerName];
+
+ if (clazz == 0)
+ {
+ clazz = getRegistry()[terminalName];
+ }
+ }
+ }
+ else
+ {
+ registerClasses();
+ clazz = getRegistry()[lowerName];
+ }
+ }
+
+ if (clazz == 0)
+ {
+ throw ClassNotFoundException(className);
+ }
+
+ return *clazz;
}
bool Class::registerClass(const Class& newClass)
{
- getRegistry()[StringHelper::toLowerCase(newClass.getName())] = &newClass;
- return true;
+ getRegistry()[StringHelper::toLowerCase(newClass.getName())] = &newClass;
+ return true;
}
void Class::registerClasses()
{
#if APR_HAS_THREADS
- AsyncAppender::registerClass();
+ AsyncAppender::registerClass();
#endif
- ConsoleAppender::registerClass();
- FileAppender::registerClass();
- log4cxx::db::ODBCAppender::registerClass();
+ ConsoleAppender::registerClass();
+ FileAppender::registerClass();
+ log4cxx::db::ODBCAppender::registerClass();
#if (defined(WIN32) || defined(_WIN32))
#if !defined(_WIN32_WCE)
- log4cxx::nt::NTEventLogAppender::registerClass();
+ log4cxx::nt::NTEventLogAppender::registerClass();
#endif
- log4cxx::nt::OutputDebugStringAppender::registerClass();
+ log4cxx::nt::OutputDebugStringAppender::registerClass();
#endif
- log4cxx::RollingFileAppender::registerClass();
- SMTPAppender::registerClass();
- SocketAppender::registerClass();
+ log4cxx::RollingFileAppender::registerClass();
+ SMTPAppender::registerClass();
+ SocketAppender::registerClass();
#if APR_HAS_THREADS
- SocketHubAppender::registerClass();
+ SocketHubAppender::registerClass();
#endif
- SyslogAppender::registerClass();
+ SyslogAppender::registerClass();
#if APR_HAS_THREADS
- TelnetAppender::registerClass();
+ TelnetAppender::registerClass();
#endif
- XMLSocketAppender::registerClass();
- DateLayout::registerClass();
- HTMLLayout::registerClass();
- PatternLayout::registerClass();
- SimpleLayout::registerClass();
- TTCCLayout::registerClass();
- XMLLayout::registerClass();
- LevelMatchFilter::registerClass();
- LevelRangeFilter::registerClass();
- StringMatchFilter::registerClass();
- log4cxx::RollingFileAppender::registerClass();
- log4cxx::rolling::RollingFileAppender::registerClass();
- DailyRollingFileAppender::registerClass();
- log4cxx::rolling::SizeBasedTriggeringPolicy::registerClass();
- log4cxx::rolling::TimeBasedRollingPolicy::registerClass();
- log4cxx::rolling::ManualTriggeringPolicy::registerClass();
- log4cxx::rolling::FixedWindowRollingPolicy::registerClass();
- log4cxx::rolling::FilterBasedTriggeringPolicy::registerClass();
- log4cxx::xml::DOMConfigurator::registerClass();
- log4cxx::PropertyConfigurator::registerClass();
+ XMLSocketAppender::registerClass();
+ DateLayout::registerClass();
+ HTMLLayout::registerClass();
+ PatternLayout::registerClass();
+ SimpleLayout::registerClass();
+ TTCCLayout::registerClass();
+ XMLLayout::registerClass();
+ LevelMatchFilter::registerClass();
+ LevelRangeFilter::registerClass();
+ StringMatchFilter::registerClass();
+ log4cxx::RollingFileAppender::registerClass();
+ log4cxx::rolling::RollingFileAppender::registerClass();
+ DailyRollingFileAppender::registerClass();
+ log4cxx::rolling::SizeBasedTriggeringPolicy::registerClass();
+ log4cxx::rolling::TimeBasedRollingPolicy::registerClass();
+ log4cxx::rolling::ManualTriggeringPolicy::registerClass();
+ log4cxx::rolling::FixedWindowRollingPolicy::registerClass();
+ log4cxx::rolling::FilterBasedTriggeringPolicy::registerClass();
+ log4cxx::xml::DOMConfigurator::registerClass();
+ log4cxx::PropertyConfigurator::registerClass();
}
diff --git a/src/main/cpp/classnamepatternconverter.cpp b/src/main/cpp/classnamepatternconverter.cpp
index 75a1730..7d9c72e 100644
--- a/src/main/cpp/classnamepatternconverter.cpp
+++ b/src/main/cpp/classnamepatternconverter.cpp
@@ -16,7 +16,7 @@
*/
#if defined(_MSC_VER)
- #pragma warning ( disable: 4231 4251 4275 4786 )
+ #pragma warning ( disable: 4231 4251 4275 4786 )
#endif
#include <log4cxx/logstring.h>
@@ -32,30 +32,30 @@ using namespace log4cxx::helpers;
IMPLEMENT_LOG4CXX_OBJECT(ClassNamePatternConverter)
ClassNamePatternConverter::ClassNamePatternConverter(
- const std::vector<LogString>& options) :
- NamePatternConverter(LOG4CXX_STR("Class Name"),
- LOG4CXX_STR("class name"), options)
+ const std::vector<LogString>& options) :
+ NamePatternConverter(LOG4CXX_STR("Class Name"),
+ LOG4CXX_STR("class name"), options)
{
}
PatternConverterPtr ClassNamePatternConverter::newInstance(
- const std::vector<LogString>& options)
+ const std::vector<LogString>& options)
{
- if (options.size() == 0)
- {
- static PatternConverterPtr def(new ClassNamePatternConverter(options));
- return def;
- }
+ if (options.size() == 0)
+ {
+ static PatternConverterPtr def(new ClassNamePatternConverter(options));
+ return def;
+ }
- return new ClassNamePatternConverter(options);
+ return new ClassNamePatternConverter(options);
}
void ClassNamePatternConverter::format(
- const LoggingEventPtr& event,
- LogString& toAppendTo,
- Pool& /* p */) const
+ const LoggingEventPtr& event,
+ LogString& toAppendTo,
+ Pool& /* p */) const
{
- int initialLength = toAppendTo.length();
- append(toAppendTo, event->getLocationInformation().getClassName());
- abbreviate(initialLength, toAppendTo);
+ int initialLength = toAppendTo.length();
+ append(toAppendTo, event->getLocationInformation().getClassName());
+ abbreviate(initialLength, toAppendTo);
}
diff --git a/src/main/cpp/classregistration.cpp b/src/main/cpp/classregistration.cpp
index b5678d9..975474e 100644
--- a/src/main/cpp/classregistration.cpp
+++ b/src/main/cpp/classregistration.cpp
@@ -23,7 +23,7 @@ using namespace log4cxx::helpers;
ClassRegistration::ClassRegistration(ClassAccessor accessor)
{
- Class::registerClass((*accessor)());
+ Class::registerClass((*accessor)());
}
diff --git a/src/main/cpp/condition.cpp b/src/main/cpp/condition.cpp
index b8b5ec1..9970f27 100644
--- a/src/main/cpp/condition.cpp
+++ b/src/main/cpp/condition.cpp
@@ -30,12 +30,12 @@ using namespace log4cxx;
Condition::Condition(Pool& p)
{
#if APR_HAS_THREADS
- apr_status_t stat = apr_thread_cond_create(&condition, p.getAPRPool());
+ apr_status_t stat = apr_thread_cond_create(&condition, p.getAPRPool());
- if (stat != APR_SUCCESS)
- {
- throw RuntimeException(stat);
- }
+ if (stat != APR_SUCCESS)
+ {
+ throw RuntimeException(stat);
+ }
#endif
}
@@ -43,16 +43,16 @@ Condition::Condition(Pool& p)
Condition::~Condition()
{
#if APR_HAS_THREADS
- apr_thread_cond_destroy(condition);
+ apr_thread_cond_destroy(condition);
#endif
}
log4cxx_status_t Condition::signalAll()
{
#if APR_HAS_THREADS
- return apr_thread_cond_broadcast(condition);
+ return apr_thread_cond_broadcast(condition);
#else
- return APR_SUCCESS;
+ return APR_SUCCESS;
#endif
}
@@ -60,19 +60,19 @@ void Condition::await(Mutex& mutex)
{
#if APR_HAS_THREADS
- if (Thread::interrupted())
- {
- throw InterruptedException();
- }
+ if (Thread::interrupted())
+ {
+ throw InterruptedException();
+ }
- apr_status_t stat = apr_thread_cond_wait(
- condition,
- mutex.getAPRMutex());
+ apr_status_t stat = apr_thread_cond_wait(
+ condition,
+ mutex.getAPRMutex());
- if (stat != APR_SUCCESS)
- {
- throw InterruptedException(stat);
- }
+ if (stat != APR_SUCCESS)
+ {
+ throw InterruptedException(stat);
+ }
#endif
}
diff --git a/src/main/cpp/consoleappender.cpp b/src/main/cpp/consoleappender.cpp
index 3fdc79e..c81661d 100644
--- a/src/main/cpp/consoleappender.cpp
+++ b/src/main/cpp/consoleappender.cpp
@@ -28,106 +28,106 @@ using namespace log4cxx::helpers;
IMPLEMENT_LOG4CXX_OBJECT(ConsoleAppender)
ConsoleAppender::ConsoleAppender()
- : target(getSystemOut())
+ : target(getSystemOut())
{
}
ConsoleAppender::ConsoleAppender(const LayoutPtr& layout1)
- : target(getSystemOut())
+ : target(getSystemOut())
{
- setLayout(layout1);
- Pool p;
- WriterPtr writer1(new SystemOutWriter());
- setWriter(writer1);
- WriterAppender::activateOptions(p);
+ setLayout(layout1);
+ Pool p;
+ WriterPtr writer1(new SystemOutWriter());
+ setWriter(writer1);
+ WriterAppender::activateOptions(p);
}
ConsoleAppender::ConsoleAppender(const LayoutPtr& layout1, const LogString& target1)
- : target(target1)
+ : target(target1)
{
- setLayout(layout1);
- Pool p;
- ConsoleAppender::activateOptions(p);
+ setLayout(layout1);
+ Pool p;
+ ConsoleAppender::activateOptions(p);
}
ConsoleAppender::~ConsoleAppender()
{
- finalize();
+ finalize();
}
const LogString& ConsoleAppender::getSystemOut()
{
- static const LogString name(LOG4CXX_STR("System.out"));
- return name;
+ static const LogString name(LOG4CXX_STR("System.out"));
+ return name;
}
const LogString& ConsoleAppender::getSystemErr()
{
- static const LogString name(LOG4CXX_STR("System.err"));
- return name;
+ static const LogString name(LOG4CXX_STR("System.err"));
+ return name;
}
void ConsoleAppender::setTarget(const LogString& value)
{
- LogString v = StringHelper::trim(value);
-
- if (StringHelper::equalsIgnoreCase(v,
- LOG4CXX_STR("SYSTEM.OUT"), LOG4CXX_STR("system.out")))
- {
- target = getSystemOut();
- }
- else if (StringHelper::equalsIgnoreCase(v,
- LOG4CXX_STR("SYSTEM.ERR"), LOG4CXX_STR("system.err")))
- {
- target = getSystemErr();
- }
- else
- {
- targetWarn(value);
- }
+ LogString v = StringHelper::trim(value);
+
+ if (StringHelper::equalsIgnoreCase(v,
+ LOG4CXX_STR("SYSTEM.OUT"), LOG4CXX_STR("system.out")))
+ {
+ target = getSystemOut();
+ }
+ else if (StringHelper::equalsIgnoreCase(v,
+ LOG4CXX_STR("SYSTEM.ERR"), LOG4CXX_STR("system.err")))
+ {
+ target = getSystemErr();
+ }
+ else
+ {
+ targetWarn(value);
+ }
}
LogString ConsoleAppender::getTarget() const
{
- return target;
+ return target;
}
void ConsoleAppender::targetWarn(const LogString& val)
{
- LogLog::warn(((LogString) LOG4CXX_STR("["))
- + val + LOG4CXX_STR("] should be system.out or system.err."));
- LogLog::warn(LOG4CXX_STR("Using previously set target, System.out by default."));
+ LogLog::warn(((LogString) LOG4CXX_STR("["))
+ + val + LOG4CXX_STR("] should be system.out or system.err."));
+ LogLog::warn(LOG4CXX_STR("Using previously set target, System.out by default."));
}
void ConsoleAppender::activateOptions(Pool& p)
{
- if (StringHelper::equalsIgnoreCase(target,
- LOG4CXX_STR("SYSTEM.OUT"), LOG4CXX_STR("system.out")))
- {
- WriterPtr writer1(new SystemOutWriter());
- setWriter(writer1);
- }
- else if (StringHelper::equalsIgnoreCase(target,
- LOG4CXX_STR("SYSTEM.ERR"), LOG4CXX_STR("system.err")))
- {
- WriterPtr writer1(new SystemErrWriter());
- setWriter(writer1);
- }
-
- WriterAppender::activateOptions(p);
+ if (StringHelper::equalsIgnoreCase(target,
+ LOG4CXX_STR("SYSTEM.OUT"), LOG4CXX_STR("system.out")))
+ {
+ WriterPtr writer1(new SystemOutWriter());
+ setWriter(writer1);
+ }
+ else if (StringHelper::equalsIgnoreCase(target,
+ LOG4CXX_STR("SYSTEM.ERR"), LOG4CXX_STR("system.err")))
+ {
+ WriterPtr writer1(new SystemErrWriter());
+ setWriter(writer1);
+ }
+
+ WriterAppender::activateOptions(p);
}
void ConsoleAppender::setOption(const LogString& option, const LogString& value)
{
- if (StringHelper::equalsIgnoreCase(option,
- LOG4CXX_STR("TARGET"), LOG4CXX_STR("target")))
- {
- setTarget(value);
- }
- else
- {
- WriterAppender::setOption(option, value);
- }
+ if (StringHelper::equalsIgnoreCase(option,
+ LOG4CXX_STR("TARGET"), LOG4CXX_STR("target")))
+ {
+ setTarget(value);
+ }
+ else
+ {
+ WriterAppender::setOption(option, value);
+ }
}
diff --git a/src/main/cpp/cyclicbuffer.cpp b/src/main/cpp/cyclicbuffer.cpp
index 0be9cdd..9f4a9a0 100644
--- a/src/main/cpp/cyclicbuffer.cpp
+++ b/src/main/cpp/cyclicbuffer.cpp
@@ -32,16 +32,16 @@ The <code>maxSize</code> argument must a positive integer.
@param maxSize The maximum number of elements in the buffer.
*/
CyclicBuffer::CyclicBuffer(int maxSize1)
- : ea(maxSize1), first(0), last(0), numElems(0), maxSize(maxSize1)
+ : ea(maxSize1), first(0), last(0), numElems(0), maxSize(maxSize1)
{
- if (maxSize1 < 1)
- {
- LogString msg(LOG4CXX_STR("The maxSize argument ("));
- Pool p;
- StringHelper::toString(maxSize1, p, msg);
- msg.append(LOG4CXX_STR(") is not a positive integer."));
- throw IllegalArgumentException(msg);
- }
+ if (maxSize1 < 1)
+ {
+ LogString msg(LOG4CXX_STR("The maxSize argument ("));
+ Pool p;
+ StringHelper::toString(maxSize1, p, msg);
+ msg.append(LOG4CXX_STR(") is not a positive integer."));
+ throw IllegalArgumentException(msg);
+ }
}
CyclicBuffer::~CyclicBuffer()
@@ -53,21 +53,21 @@ Add an <code>event</code> as the last event in the buffer.
*/
void CyclicBuffer::add(const spi::LoggingEventPtr& event)
{
- ea[last] = event;
-
- if (++last == maxSize)
- {
- last = 0;
- }
-
- if (numElems < maxSize)
- {
- numElems++;
- }
- else if (++first == maxSize)
- {
- first = 0;
- }
+ ea[last] = event;
+
+ if (++last == maxSize)
+ {
+ last = 0;
+ }
+
+ if (numElems < maxSize)
+ {
+ numElems++;
+ }
+ else if (++first == maxSize)
+ {
+ first = 0;
+ }
}
@@ -78,12 +78,12 @@ currently in the buffer, then <code>null</code> is returned.
*/
spi::LoggingEventPtr CyclicBuffer::get(int i)
{
- if (i < 0 || i >= numElems)
- {
- return 0;
- }
+ if (i < 0 || i >= numElems)
+ {
+ return 0;
+ }
- return ea[(first + i) % maxSize];
+ return ea[(first + i) % maxSize];
}
/**
@@ -92,21 +92,21 @@ is removed from the buffer.
*/
spi::LoggingEventPtr CyclicBuffer::get()
{
- LoggingEventPtr r;
+ LoggingEventPtr r;
- if (numElems > 0)
- {
- numElems--;
- r = ea[first];
- ea[first] = 0;
+ if (numElems > 0)
+ {
+ numElems--;
+ r = ea[first];
+ ea[first] = 0;
- if (++first == maxSize)
- {
- first = 0;
- }
- }
+ if (++first == maxSize)
+ {
+ first = 0;
+ }
+ }
- return r;
+ return r;
}
/**
@@ -115,47 +115,47 @@ Resize the cyclic buffer to <code>newSize</code>.
*/
void CyclicBuffer::resize(int newSize)
{
- if (newSize < 0)
- {
- LogString msg(LOG4CXX_STR("Negative array size ["));
- Pool p;
- StringHelper::toString(newSize, p, msg);
- msg.append(LOG4CXX_STR("] not allowed."));
- throw IllegalArgumentException(msg);
- }
-
- if (newSize == numElems)
- {
- return; // nothing to do
- }
-
- LoggingEventList temp(newSize);
-
- int loopLen = newSize < numElems ? newSize : numElems;
- int i;
-
- for (i = 0; i < loopLen; i++)
- {
- temp[i] = ea[first];
- ea[first] = 0;
-
- if (++first == numElems)
- {
- first = 0;
- }
- }
-
- ea = temp;
- first = 0;
- numElems = loopLen;
- maxSize = newSize;
-
- if (loopLen == newSize)
- {
- last = 0;
- }
- else
- {
- last = loopLen;
- }
+ if (newSize < 0)
+ {
+ LogString msg(LOG4CXX_STR("Negative array size ["));
+ Pool p;
+ StringHelper::toString(newSize, p, msg);
+ msg.append(LOG4CXX_STR("] not allowed."));
+ throw IllegalArgumentException(msg);
+ }
+
+ if (newSize == numElems)
+ {
+ return; // nothing to do
+ }
+
+ LoggingEventList temp(newSize);
+
+ int loopLen = newSize < numElems ? newSize : numElems;
+ int i;
+
+ for (i = 0; i < loopLen; i++)
+ {
+ temp[i] = ea[first];
+ ea[first] = 0;
+
+ if (++first == numElems)
+ {
+ first = 0;
+ }
+ }
+
+ ea = temp;
+ first = 0;
+ numElems = loopLen;
+ maxSize = newSize;
+
+ if (loopLen == newSize)
+ {
+ last = 0;
+ }
+ else
+ {
+ last = loopLen;
+ }
}
diff --git a/src/main/cpp/dailyrollingfileappender.cpp b/src/main/cpp/dailyrollingfileappender.cpp
index 390271c..6f57cc3 100644
--- a/src/main/cpp/dailyrollingfileappender.cpp
+++ b/src/main/cpp/dailyrollingfileappender.cpp
@@ -37,85 +37,85 @@ DailyRollingFileAppender::DailyRollingFileAppender()
DailyRollingFileAppender::DailyRollingFileAppender(
- const LayoutPtr& l,
- const LogString& filename,
- const LogString& datePattern1)
- : datePattern(datePattern1)
+ const LayoutPtr& l,
+ const LogString& filename,
+ const LogString& datePattern1)
+ : datePattern(datePattern1)
{
- setLayout(l);
- setFile(filename);
- Pool p;
- activateOptions(p);
+ setLayout(l);
+ setFile(filename);
+ Pool p;
+ activateOptions(p);
}
void DailyRollingFileAppender::setDatePattern(const LogString& newPattern)
{
- datePattern = newPattern;
+ datePattern = newPattern;
}
LogString DailyRollingFileAppender::getDatePattern()
{
- return datePattern;
+ return datePattern;
}
void DailyRollingFileAppender::activateOptions(log4cxx::helpers::Pool& p)
{
- TimeBasedRollingPolicyPtr policy = new TimeBasedRollingPolicy();
- LogString pattern(getFile());
- bool inLiteral = false;
- bool inPattern = false;
-
- for (size_t i = 0; i < datePattern.length(); i++)
- {
- if (datePattern[i] == 0x27 /* '\'' */)
- {
- inLiteral = !inLiteral;
-
- if (inLiteral && inPattern)
- {
- pattern.append(1, (logchar) 0x7D /* '}' */);
- inPattern = false;
- }
- }
- else
- {
- if (!inLiteral && !inPattern)
- {
- const logchar dbrace[] = { 0x25, 0x64, 0x7B, 0 }; // "%d{"
- pattern.append(dbrace);
- inPattern = true;
- }
-
- pattern.append(1, datePattern[i]);
- }
- }
-
- if (inPattern)
- {
- pattern.append(1, (logchar) 0x7D /* '}' */);
- }
-
- policy->setFileNamePattern(pattern);
- policy->activateOptions(p);
- setTriggeringPolicy(policy);
- setRollingPolicy(policy);
-
- RollingFileAppenderSkeleton::activateOptions(p);
+ TimeBasedRollingPolicyPtr policy = new TimeBasedRollingPolicy();
+ LogString pattern(getFile());
+ bool inLiteral = false;
+ bool inPattern = false;
+
+ for (size_t i = 0; i < datePattern.length(); i++)
+ {
+ if (datePattern[i] == 0x27 /* '\'' */)
+ {
+ inLiteral = !inLiteral;
+
+ if (inLiteral && inPattern)
+ {
+ pattern.append(1, (logchar) 0x7D /* '}' */);
+ inPattern = false;
+ }
+ }
+ else
+ {
+ if (!inLiteral && !inPattern)
+ {
+ const logchar dbrace[] = { 0x25, 0x64, 0x7B, 0 }; // "%d{"
+ pattern.append(dbrace);
+ inPattern = true;
+ }
+
+ pattern.append(1, datePattern[i]);
+ }
+ }
+
+ if (inPattern)
+ {
+ pattern.append(1, (logchar) 0x7D /* '}' */);
+ }
+
+ policy->setFileNamePattern(pattern);
+ policy->activateOptions(p);
+ setTriggeringPolicy(policy);
+ setRollingPolicy(policy);
+
+ RollingFileAppenderSkeleton::activateOptions(p);
}
void DailyRollingFileAppender::setOption(const LogString& option,
- const LogString& value)
+ const LogString& value)
{
- if (StringHelper::equalsIgnoreCase(option,
- LOG4CXX_STR("DATEPATTERN"), LOG4CXX_STR("datepattern")))
- {
- setDatePattern(value);
- }
- else
- {
- RollingFileAppenderSkeleton::setOption(option, value);
- }
+ if (StringHelper::equalsIgnoreCase(option,
+ LOG4CXX_STR("DATEPATTERN"), LOG4CXX_STR("datepattern")))
+ {
+ setDatePattern(value);
+ }
+ else
+ {
+ RollingFileAppenderSkeleton::setOption(option, value);
+ }
}
diff --git a/src/main/cpp/datagrampacket.cpp b/src/main/cpp/datagrampacket.cpp
index 0b6710b..a9577ec 100644
--- a/src/main/cpp/datagrampacket.cpp
+++ b/src/main/cpp/datagrampacket.cpp
@@ -25,7 +25,7 @@ IMPLEMENT_LOG4CXX_OBJECT(DatagramPacket)
/** Constructs a DatagramPacket for receiving packets of length
<code>length</code>. */
DatagramPacket::DatagramPacket(void* buf1, int length1)
- : buf(buf1), offset(0), length(length1), address(), port(0)
+ : buf(buf1), offset(0), length(length1), address(), port(0)
{
}
@@ -33,23 +33,23 @@ DatagramPacket::DatagramPacket(void* buf1, int length1)
<code>length/<code> to the specified port number on the specified
host. */
DatagramPacket::DatagramPacket(void* buf1, int length1, InetAddressPtr address1,
- int port1)
- : buf(buf1), offset(0), length(length1), address(address1), port(port1)
+ int port1)
+ : buf(buf1), offset(0), length(length1), address(address1), port(port1)
{
}
/** Constructs a DatagramPacket for receiving packets of length
<code>length</code>, specifying an offset into the buffer. */
DatagramPacket::DatagramPacket(void* buf1, int offset1, int length1)
- : buf(buf1), offset(offset1), length(length1), address(), port(0)
+ : buf(buf1), offset(offset1), length(length1), address(), port(0)
{
}
/** 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::DatagramPacket(void* buf1, int offset1, int length1,
- InetAddressPtr address1, int port1)
- : buf(buf1), offset(offset1), length(length1), address(address1), port(port1)
+ InetAddressPtr address1, int port1)
+ : buf(buf1), offset(offset1), length(length1), address(address1), port(port1)
{
}
diff --git a/src/main/cpp/datagramsocket.cpp b/src/main/cpp/datagramsocket.cpp
index 14636fe..4b2a1f8 100644
--- a/src/main/cpp/datagramsocket.cpp
+++ b/src/main/cpp/datagramsocket.cpp
@@ -28,180 +28,180 @@ using namespace log4cxx::helpers;
IMPLEMENT_LOG4CXX_OBJECT(DatagramSocket)
DatagramSocket::DatagramSocket()
- : socket(0), address(), localAddress(), port(0), localPort(0)
+ : socket(0), address(), localAddress(), port(0), localPort(0)
{
- create();
+ create();
}
DatagramSocket::DatagramSocket(int localPort1)
- : socket(0), address(), localAddress(), port(0), localPort(0)
+ : socket(0), address(), localAddress(), port(0), localPort(0)
{
- InetAddressPtr bindAddr = InetAddress::anyAddress();
+ InetAddressPtr bindAddr = InetAddress::anyAddress();
- create();
- bind(localPort1, bindAddr);
+ create();
+ bind(localPort1, bindAddr);
}
DatagramSocket::DatagramSocket(int localPort1, InetAddressPtr localAddress1)
- : socket(0), address(), localAddress(), port(0), localPort(0)
+ : socket(0), address(), localAddress(), port(0), localPort(0)
{
- create();
- bind(localPort1, localAddress1);
+ create();
+ bind(localPort1, localAddress1);
}
DatagramSocket::~DatagramSocket()
{
- try
- {
- close();
- }
- catch (SocketException&)
- {
- }
+ try
+ {
+ close();
+ }
+ catch (SocketException&)
+ {
+ }
}
/** Binds a datagram socket to a local port and address.*/
void DatagramSocket::bind(int localPort1, InetAddressPtr localAddress1)
{
- Pool addrPool;
-
- // Create server socket address (including port number)
- LOG4CXX_ENCODE_CHAR(hostAddr, localAddress1->getHostAddress());
- apr_sockaddr_t* server_addr;
- apr_status_t status =
- apr_sockaddr_info_get(&server_addr, hostAddr.c_str(), APR_INET,
- localPort1, 0, addrPool.getAPRPool());
-
- if (status != APR_SUCCESS)
- {
- throw BindException(status);
- }
-
- // bind the socket to the address
- status = apr_socket_bind(socket, server_addr);
-
- if (status != APR_SUCCESS)
- {
- throw BindException(status);
- }
-
- this->localPort = localPort1;
- this->localAddress = localAddress1;
+ Pool addrPool;
+
+ // Create server socket address (including port number)
+ LOG4CXX_ENCODE_CHAR(hostAddr, localAddress1->getHostAddress());
+ apr_sockaddr_t* server_addr;
+ apr_status_t status =
+ apr_sockaddr_info_get(&server_addr, hostAddr.c_str(), APR_INET,
+ localPort1, 0, addrPool.getAPRPool());
+
+ if (status != APR_SUCCESS)
+ {
+ throw BindException(status);
+ }
+
+ // bind the socket to the address
+ status = apr_socket_bind(socket, server_addr);
+
+ if (status != APR_SUCCESS)
+ {
+ throw BindException(status);
+ }
+
+ this->localPort = localPort1;
+ this->localAddress = localAddress1;
}
/** Close the socket.*/
void DatagramSocket::close()
{
- if (socket != 0)
- {
- apr_status_t status = apr_socket_close(socket);
-
- if (status != APR_SUCCESS)
- {
- throw SocketException(status);
- }
-
- socket = 0;
- localPort = 0;
- }
+ if (socket != 0)
+ {
+ apr_status_t status = apr_socket_close(socket);
+
+ if (status != APR_SUCCESS)
+ {
+ throw SocketException(status);
+ }
+
+ socket = 0;
+ localPort = 0;
+ }
}
void DatagramSocket::connect(InetAddressPtr address1, int port1)
{
- this->address = address1;
- this->port = port1;
+ this->address = address1;
+ this->port = port1;
- Pool addrPool;
+ Pool addrPool;
- // create socket address
- LOG4CXX_ENCODE_CHAR(hostAddr, address1->getHostAddress());
- apr_sockaddr_t* client_addr;
- apr_status_t status =
- apr_sockaddr_info_get(&client_addr, hostAddr.c_str(), APR_INET,
- port, 0, addrPool.getAPRPool());
+ // create socket address
+ LOG4CXX_ENCODE_CHAR(hostAddr, address1->getHostAddress());
+ apr_sockaddr_t* client_addr;
+ apr_status_t status =
+ apr_sockaddr_info_get(&client_addr, hostAddr.c_str(), APR_INET,
+ port, 0, addrPool.getAPRPool());
- if (status != APR_SUCCESS)
- {
- throw ConnectException(status);
- }
+ if (status != APR_SUCCESS)
+ {
+ throw ConnectException(status);
+ }
- // connect the socket
- status = apr_socket_connect(socket, client_addr);
+ // connect the socket
+ status = apr_socket_connect(socket, client_addr);
- if (status != APR_SUCCESS)
- {
- throw ConnectException(status);
- }
+ if (status != APR_SUCCESS)
+ {
+ throw ConnectException(status);
+ }
}
/** Creates a datagram socket.*/
void DatagramSocket::create()
{
- apr_socket_t* newSocket;
- apr_status_t status =
- apr_socket_create(&newSocket, APR_INET, SOCK_DGRAM,
- APR_PROTO_UDP, socketPool.getAPRPool());
- socket = newSocket;
-
- if (status != APR_SUCCESS)
- {
- throw SocketException(status);
- }
+ apr_socket_t* newSocket;
+ apr_status_t status =
+ apr_socket_create(&newSocket, APR_INET, SOCK_DGRAM,
+ APR_PROTO_UDP, socketPool.getAPRPool());
+ socket = newSocket;
+
+ if (status != APR_SUCCESS)
+ {
+ throw SocketException(status);
+ }
}
/** Receive the datagram packet.*/
void DatagramSocket::receive(DatagramPacketPtr& p)
{
- Pool addrPool;
-
- // Create the address from which to receive the datagram packet
- LOG4CXX_ENCODE_CHAR(hostAddr, p->getAddress()->getHostAddress());
- apr_sockaddr_t* addr;
- apr_status_t status =
- apr_sockaddr_info_get(&addr, hostAddr.c_str(), APR_INET,
- p->getPort(), 0, addrPool.getAPRPool());
-
- if (status != APR_SUCCESS)
- {
- throw SocketException(status);
- }
-
- // receive the datagram packet
- apr_size_t len = p->getLength();
- status = apr_socket_recvfrom(addr, socket, 0,
- (char*)p->getData(), &len);
-
- if (status != APR_SUCCESS)
- {
- throw IOException(status);
- }
+ Pool addrPool;
+
+ // Create the address from which to receive the datagram packet
+ LOG4CXX_ENCODE_CHAR(hostAddr, p->getAddress()->getHostAddress());
+ apr_sockaddr_t* addr;
+ apr_status_t status =
+ apr_sockaddr_info_get(&addr, hostAddr.c_str(), APR_INET,
+ p->getPort(), 0, addrPool.getAPRPool());
+
+ if (status != APR_SUCCESS)
+ {
+ throw SocketException(status);
+ }
+
+ // receive the datagram packet
+ apr_size_t len = p->getLength();
+ status = apr_socket_recvfrom(addr, socket, 0,
+ (char*)p->getData(), &len);
+
+ if (status != APR_SUCCESS)
+ {
+ throw IOException(status);
+ }
}
/** Sends a datagram packet.*/
void DatagramSocket::send(DatagramPacketPtr& p)
{
- Pool addrPool;
-
- // create the adress to which to send the datagram packet
- LOG4CXX_ENCODE_CHAR(hostAddr, p->getAddress()->getHostAddress());
- apr_sockaddr_t* addr;
- apr_status_t status =
- apr_sockaddr_info_get(&addr, hostAddr.c_str(), APR_INET, p->getPort(),
- 0, addrPool.getAPRPool());
-
- if (status != APR_SUCCESS)
- {
- throw SocketException(status);
- }
-
- // send the datagram packet
- apr_size_t len = p->getLength();
- status = apr_socket_sendto(socket, addr, 0,
- (char*)p->getData(), &len);
-
- if (status != APR_SUCCESS)
- {
- throw IOException(status);
- }
+ Pool addrPool;
+
+ // create the adress to which to send the datagram packet
+ LOG4CXX_ENCODE_CHAR(hostAddr, p->getAddress()->getHostAddress());
+ apr_sockaddr_t* addr;
+ apr_status_t status =
+ apr_sockaddr_info_get(&addr, hostAddr.c_str(), APR_INET, p->getPort(),
+ 0, addrPool.getAPRPool());
+
+ if (status != APR_SUCCESS)
+ {
+ throw SocketException(status);
+ }
+
+ // send the datagram packet
+ apr_size_t len = p->getLength();
+ status = apr_socket_sendto(socket, addr, 0,
+ (char*)p->getData(), &len);
+
+ if (status != APR_SUCCESS)
+ {
+ throw IOException(status);
+ }
}
diff --git a/src/main/cpp/date.cpp b/src/main/cpp/date.cpp
index 1beddc2..a1ea7ce 100644
--- a/src/main/cpp/date.cpp
+++ b/src/main/cpp/date.cpp
@@ -19,7 +19,7 @@
#include <apr_time.h>
#ifndef INT64_C
- #define INT64_C(x) x ## LL
+ #define INT64_C(x) x ## LL
#endif
using namespace log4cxx;
@@ -41,16 +41,16 @@ Date::~Date()
log4cxx_time_t Date::getMicrosecondsPerDay()
{
- return APR_INT64_C(86400000000);
+ return APR_INT64_C(86400000000);
}
log4cxx_time_t Date::getMicrosecondsPerSecond()
{
- return APR_USEC_PER_SEC;
+ return APR_USEC_PER_SEC;
}
log4cxx_time_t Date::getNextSecond() const
{
- return ((time / APR_USEC_PER_SEC) + 1) * APR_USEC_PER_SEC;
+ return ((time / APR_USEC_PER_SEC) + 1) * APR_USEC_PER_SEC;
}
diff --git a/src/main/cpp/dateformat.cpp b/src/main/cpp/dateformat.cpp
index ac1f338..83b3624 100644
--- a/src/main/cpp/dateformat.cpp
+++ b/src/main/cpp/dateformat.cpp
@@ -31,7 +31,7 @@ void DateFormat::setTimeZone(const TimeZonePtr&) {}
void DateFormat::numberFormat(LogString& s, int n, Pool& p) const
{
- StringHelper::toString(n, p, s);
+ StringHelper::toString(n, p, s);
}
DateFormat::DateFormat() {}
diff --git a/src/main/cpp/datelayout.cpp b/src/main/cpp/datelayout.cpp
index 5e3fc4c..e8366bb 100644
--- a/src/main/cpp/datelayout.cpp
+++ b/src/main/cpp/datelayout.cpp
@@ -30,7 +30,7 @@ using namespace log4cxx::helpers;
using namespace log4cxx::spi;
DateLayout::DateLayout(const LogString& dateFormatOption1) :
- timeZoneID(), dateFormatOption(dateFormatOption1), dateFormat(0)
+ timeZoneID(), dateFormatOption(dateFormatOption1), dateFormat(0)
{
}
@@ -42,86 +42,86 @@ DateLayout::~DateLayout()
void DateLayout::setOption(const LogString& option, const LogString& value)
{
- if (StringHelper::equalsIgnoreCase(option,
- LOG4CXX_STR("DATEFORMAT"), LOG4CXX_STR("dateformat")))
- {
- dateFormatOption = value;
- }
- else if (StringHelper::equalsIgnoreCase(option,
- LOG4CXX_STR("TIMEZONE"), LOG4CXX_STR("timezone")))
- {
- timeZoneID = value;
- }
+ if (StringHelper::equalsIgnoreCase(option,
+ LOG4CXX_STR("DATEFORMAT"), LOG4CXX_STR("dateformat")))
+ {
+ dateFormatOption = value;
+ }
+ else if (StringHelper::equalsIgnoreCase(option,
+ LOG4CXX_STR("TIMEZONE"), LOG4CXX_STR("timezone")))
+ {
+ timeZoneID = value;
+ }
}
void DateLayout::activateOptions(Pool&)
{
- if (!dateFormatOption.empty())
- {
+ if (!dateFormatOption.empty())
+ {
- if (dateFormatOption.empty())
- {
- dateFormat = 0;
- }
- else if (StringHelper::equalsIgnoreCase(dateFormatOption,
- LOG4CXX_STR("NULL"), LOG4CXX_STR("null")))
- {
- dateFormat = 0;
- dateFormatOption = LOG4CXX_STR("NULL");
- }
- else if (StringHelper::equalsIgnoreCase(dateFormatOption,
- LOG4CXX_STR("RELATIVE"), LOG4CXX_STR("relative")))
- {
- dateFormat = new RelativeTimeDateFormat();
- dateFormatOption = LOG4CXX_STR("RELATIVE");
- }
- else if (StringHelper::equalsIgnoreCase(dateFormatOption,
- LOG4CXX_STR("ABSOLUTE"), LOG4CXX_STR("absolute")))
- {
- dateFormat = new AbsoluteTimeDateFormat();
- dateFormatOption = LOG4CXX_STR("ABSOLUTE");
- }
- else if (StringHelper::equalsIgnoreCase(dateFormatOption,
- LOG4CXX_STR("DATE"), LOG4CXX_STR("date")))
- {
- dateFormat = new DateTimeDateFormat();
- dateFormatOption = LOG4CXX_STR("DATE");
- }
- else if (StringHelper::equalsIgnoreCase(dateFormatOption,
- LOG4CXX_STR("ISO8601"), LOG4CXX_STR("iso8601")))
- {
- dateFormat = new ISO8601DateFormat();
- dateFormatOption = LOG4CXX_STR("iso8601");
- }
- else
- {
- dateFormat = new SimpleDateFormat(dateFormatOption);
- }
- }
+ if (dateFormatOption.empty())
+ {
+ dateFormat = 0;
+ }
+ else if (StringHelper::equalsIgnoreCase(dateFormatOption,
+ LOG4CXX_STR("NULL"), LOG4CXX_STR("null")))
+ {
+ dateFormat = 0;
+ dateFormatOption = LOG4CXX_STR("NULL");
+ }
+ else if (StringHelper::equalsIgnoreCase(dateFormatOption,
+ LOG4CXX_STR("RELATIVE"), LOG4CXX_STR("relative")))
+ {
+ dateFormat = new RelativeTimeDateFormat();
+ dateFormatOption = LOG4CXX_STR("RELATIVE");
+ }
+ else if (StringHelper::equalsIgnoreCase(dateFormatOption,
+ LOG4CXX_STR("ABSOLUTE"), LOG4CXX_STR("absolute")))
+ {
+ dateFormat = new AbsoluteTimeDateFormat();
+ dateFormatOption = LOG4CXX_STR("ABSOLUTE");
+ }
+ else if (StringHelper::equalsIgnoreCase(dateFormatOption,
+ LOG4CXX_STR("DATE"), LOG4CXX_STR("date")))
+ {
+ dateFormat = new DateTimeDateFormat();
+ dateFormatOption = LOG4CXX_STR("DATE");
+ }
+ else if (StringHelper::equalsIgnoreCase(dateFormatOption,
+ LOG4CXX_STR("ISO8601"), LOG4CXX_STR("iso8601")))
+ {
+ dateFormat = new ISO8601DateFormat();
+ dateFormatOption = LOG4CXX_STR("iso8601");
+ }
+ else
+ {
+ dateFormat = new SimpleDateFormat(dateFormatOption);
+ }
+ }
- if (dateFormat != NULL)
- {
- if (timeZoneID.empty())
- {
- dateFormat->setTimeZone(TimeZone::getDefault());
- }
- else
- {
- dateFormat->setTimeZone(TimeZone::getTimeZone(timeZoneID));
- }
- }
+ if (dateFormat != NULL)
+ {
+ if (timeZoneID.empty())
+ {
+ dateFormat->setTimeZone(TimeZone::getDefault());
+ }
+ else
+ {
+ dateFormat->setTimeZone(TimeZone::getTimeZone(timeZoneID));
+ }
+ }
}
void DateLayout::formatDate(LogString& s,
- const spi::LoggingEventPtr& event,
- Pool& p) const
+ const spi::LoggingEventPtr& event,
+ Pool& p) const
{
- if (dateFormat != 0)
- {
- dateFormat->format(s, event->getTimeStamp(), p);
- s.append(1, (logchar) 0x20 /* ' ' */);
- }
+ if (dateFormat != 0)
+ {
+ dateFormat->format(s, event->getTimeStamp(), p);
+ s.append(1, (logchar) 0x20 /* ' ' */);
+ }
}
diff --git a/src/main/cpp/datepatternconverter.cpp b/src/main/cpp/datepatternconverter.cpp
index 80db01c..25b51ea 100644
--- a/src/main/cpp/datepatternconverter.cpp
+++ b/src/main/cpp/datepatternconverter.cpp
@@ -16,7 +16,7 @@
*/
#if defined(_MSC_VER)
- #pragma warning ( disable: 4231 4251 4275 4786 )
+ #pragma warning ( disable: 4231 4251 4275 4786 )
#endif
#include <log4cxx/logstring.h>
@@ -40,121 +40,121 @@ using namespace log4cxx::helpers;
IMPLEMENT_LOG4CXX_OBJECT(DatePatternConverter)
DatePatternConverter::DatePatternConverter(
- const std::vector<LogString>& options) :
- LoggingEventPatternConverter(LOG4CXX_STR("Class Name"),
- LOG4CXX_STR("class name")), df(getDateFormat(options))
+ const std::vector<LogString>& options) :
+ LoggingEventPatternConverter(LOG4CXX_STR("Class Name"),
+ LOG4CXX_STR("class name")), df(getDateFormat(options))
{
}
DateFormatPtr DatePatternConverter::getDateFormat(const OptionsList& options)
{
- DateFormatPtr df;
- int maximumCacheValidity = 1000000;
-
- if (options.size() == 0)
- {
- df = new ISO8601DateFormat();
- }
- else
- {
- LogString dateFormatStr(options[0]);
-
- if (dateFormatStr.empty() ||
- StringHelper::equalsIgnoreCase(dateFormatStr,
- LOG4CXX_STR("ISO8601"), LOG4CXX_STR("iso8601")))
- {
- df = new ISO8601DateFormat();
- }
- else if (StringHelper::equalsIgnoreCase(dateFormatStr,
- LOG4CXX_STR("ABSOLUTE"), LOG4CXX_STR("absolute")))
- {
- df = new AbsoluteTimeDateFormat();
- }
- else if (StringHelper::equalsIgnoreCase(dateFormatStr,
- LOG4CXX_STR("DATE"), LOG4CXX_STR("date")))
- {
- df = new DateTimeDateFormat();
- }
- else
- {
- if (dateFormatStr.find(0x25 /*'%'*/) == std::string::npos)
- {
- try
- {
- df = new SimpleDateFormat(dateFormatStr);
- maximumCacheValidity =
- CachedDateFormat::getMaximumCacheValidity(dateFormatStr);
- }
- catch (IllegalArgumentException& e)
- {
- df = new ISO8601DateFormat();
- LogLog::warn(((LogString)
- LOG4CXX_STR("Could not instantiate SimpleDateFormat with pattern "))
- + dateFormatStr, e);
- }
- }
- else
- {
- df = new StrftimeDateFormat(dateFormatStr);
- }
- }
-
- if (options.size() >= 2)
- {
- TimeZonePtr tz(TimeZone::getTimeZone(options[1]));
-
- if (tz != NULL)
- {
- df->setTimeZone(tz);
- }
- }
- }
-
- if (maximumCacheValidity > 0)
- {
- df = new CachedDateFormat(df, maximumCacheValidity);
- }
-
- return df;
+ DateFormatPtr df;
+ int maximumCacheValidity = 1000000;
+
+ if (options.size() == 0)
+ {
+ df = new ISO8601DateFormat();
+ }
+ else
+ {
+ LogString dateFormatStr(options[0]);
+
+ if (dateFormatStr.empty() ||
+ StringHelper::equalsIgnoreCase(dateFormatStr,
+ LOG4CXX_STR("ISO8601"), LOG4CXX_STR("iso8601")))
+ {
+ df = new ISO8601DateFormat();
+ }
+ else if (StringHelper::equalsIgnoreCase(dateFormatStr,
+ LOG4CXX_STR("ABSOLUTE"), LOG4CXX_STR("absolute")))
+ {
+ df = new AbsoluteTimeDateFormat();
+ }
+ else if (StringHelper::equalsIgnoreCase(dateFormatStr,
+ LOG4CXX_STR("DATE"), LOG4CXX_STR("date")))
+ {
+ df = new DateTimeDateFormat();
+ }
+ else
+ {
+ if (dateFormatStr.find(0x25 /*'%'*/) == std::string::npos)
+ {
+ try
+ {
+ df = new SimpleDateFormat(dateFormatStr);
+ maximumCacheValidity =
+ CachedDateFormat::getMaximumCacheValidity(dateFormatStr);
+ }
+ catch (IllegalArgumentException& e)
+ {
+ df = new ISO8601DateFormat();
+ LogLog::warn(((LogString)
+ LOG4CXX_STR("Could not instantiate SimpleDateFormat with pattern "))
+ + dateFormatStr, e);
+ }
+ }
+ else
+ {
+ df = new StrftimeDateFormat(dateFormatStr);
+ }
+ }
+
+ if (options.size() >= 2)
+ {
+ TimeZonePtr tz(TimeZone::getTimeZone(options[1]));
+
+ if (tz != NULL)
+ {
+ df->setTimeZone(tz);
+ }
+ }
+ }
+
+ if (maximumCacheValidity > 0)
+ {
+ df = new CachedDateFormat(df, maximumCacheValidity);
+ }
+
+ return df;
}
PatternConverterPtr DatePatternConverter::newInstance(
- const std::vector<LogString>& options)
+ const std::vector<LogString>& options)
{
- return new DatePatternConverter(options);
+ return new DatePatternConverter(options);
}
void DatePatternConverter::format(
- const LoggingEventPtr& event,
- LogString& toAppendTo,
- Pool& p) const
+ const LoggingEventPtr& event,
+ LogString& toAppendTo,
+ Pool& p) const
{
- df->format(toAppendTo, event->getTimeStamp(), p);
+ df->format(toAppendTo, event->getTimeStamp(), p);
}
/**
* {@inheritDoc}
*/
void DatePatternConverter::format(
- const ObjectPtr& obj,
- LogString& toAppendTo,
- Pool& p) const
+ const ObjectPtr& obj,
+ LogString& toAppendTo,
+ Pool& p) const
{
- DatePtr date(obj);
-
- if (date != NULL)
- {
- format(date, toAppendTo, p);
- }
- else
- {
- LoggingEventPtr event(obj);
-
- if (event != NULL)
- {
- format(event, toAppendTo, p);
- }
- }
+ DatePtr date(obj);
+
+ if (date != NULL)
+ {
+ format(date, toAppendTo, p);
+ }
+ else
+ {
+ LoggingEventPtr event(obj);
+
+ if (event != NULL)
+ {
+ format(event, toAppendTo, p);
+ }
+ }
}
/**
@@ -163,9 +163,9 @@ void DatePatternConverter::format(
* @param toAppendTo buffer to which formatted date is appended.
*/
void DatePatternConverter::format(
- const DatePtr& date,
- LogString& toAppendTo,
- Pool& p) const
+ const DatePtr& date,
+ LogString& toAppendTo,
+ Pool& p) const
{
- df->format(toAppendTo, date->getTime(), p);
+ df->format(toAppendTo, date->getTime(), p);
}
diff --git a/src/main/cpp/defaultconfigurator.cpp b/src/main/cpp/defaultconfigurator.cpp
index b592242..b304084 100644
--- a/src/main/cpp/defaultconfigurator.cpp
+++ b/src/main/cpp/defaultconfigurator.cpp
@@ -29,60 +29,60 @@ using namespace log4cxx::helpers;
void DefaultConfigurator::configure(LoggerRepository* repository)
{
- repository->setConfigured(true);
- const LogString configuratorClassName(getConfiguratorClass());
-
- LogString configurationOptionStr(getConfigurationFileName());
- Pool pool;
- File configuration;
-
- if (configurationOptionStr.empty())
- {
- const char* names[] = { "log4cxx.xml", "log4cxx.properties", "log4j.xml", "log4j.properties", 0 };
-
- for (int i = 0; names[i] != 0; i++)
- {
- File candidate(names[i]);
-
- if (candidate.exists(pool))
- {
- configuration = candidate;
- break;
- }
- }
- }
- else
- {
- configuration.setPath(configurationOptionStr);
- }
-
- if (configuration.exists(pool))
- {
- LogString msg(LOG4CXX_STR("Using configuration file ["));
- msg += configuration.getPath();
- msg += LOG4CXX_STR("] for automatic log4cxx configuration");
- LogLog::debug(msg);
-
- LoggerRepositoryPtr repo(repository);
- OptionConverter::selectAndConfigure(
- configuration,
- configuratorClassName,
- repo);
- }
- else
- {
- if (configurationOptionStr.empty())
- {
- LogLog::debug(LOG4CXX_STR("Could not find default configuration file."));
- }
- else
- {
- LogString msg(LOG4CXX_STR("Could not find configuration file: ["));
- msg += configurationOptionStr;
- msg += LOG4CXX_STR("].");
- LogLog::debug(msg);
- }
- }
+ repository->setConfigured(true);
+ const LogString configuratorClassName(getConfiguratorClass());
+
+ LogString configurationOptionStr(getConfigurationFileName());
+ Pool pool;
+ File configuration;
+
+ if (configurationOptionStr.empty())
+ {
+ const char* names[] = { "log4cxx.xml", "log4cxx.properties", "log4j.xml", "log4j.properties", 0 };
+
+ for (int i = 0; names[i] != 0; i++)
+ {
+ File candidate(names[i]);
+
+ if (candidate.exists(pool))
+ {
+ configuration = candidate;
+ break;
+ }
+ }
+ }
+ else
+ {
+ configuration.setPath(configurationOptionStr);
+ }
+
+ if (configuration.exists(pool))
+ {
+ LogString msg(LOG4CXX_STR("Using configuration file ["));
+ msg += configuration.getPath();
+ msg += LOG4CXX_STR("] for automatic log4cxx configuration");
+ LogLog::debug(msg);
+
+ LoggerRepositoryPtr repo(repository);
+ OptionConverter::selectAndConfigure(
+ configuration,
+ configuratorClassName,
+ repo);
+ }
+ else
+ {
+ if (configurationOptionStr.empty())
+ {
+ LogLog::debug(LOG4CXX_STR("Could not find default configuration file."));
+ }
+ else
+ {
+ LogString msg(LOG4CXX_STR("Could not find configuration file: ["));
+ msg += configurationOptionStr;
+ msg += LOG4CXX_STR("].");
+ LogLog::debug(msg);
+ }
+ }
}
@@ -90,26 +90,26 @@ void DefaultConfigurator::configure(LoggerRepository* repository)
const LogString DefaultConfigurator::getConfiguratorClass()
{
- // Use automatic configration to configure the default hierarchy
- const LogString log4jConfiguratorClassName(
- OptionConverter::getSystemProperty(LOG4CXX_STR("log4j.configuratorClass"), LOG4CXX_STR("")));
- const LogString configuratorClassName(
- OptionConverter::getSystemProperty(LOG4CXX_STR("LOG4CXX_CONFIGURATOR_CLASS"),
- log4jConfiguratorClassName));
- return configuratorClassName;
+ // Use automatic configration to configure the default hierarchy
+ const LogString log4jConfiguratorClassName(
+ OptionConverter::getSystemProperty(LOG4CXX_STR("log4j.configuratorClass"), LOG4CXX_STR("")));
+ const LogString configuratorClassName(
+ OptionConverter::getSystemProperty(LOG4CXX_STR("LOG4CXX_CONFIGURATOR_CLASS"),
+ log4jConfiguratorClassName));
+ return configuratorClassName;
}
const LogString DefaultConfigurator::getConfigurationFileName()
{
- static const LogString LOG4CXX_DEFAULT_CONFIGURATION_KEY(LOG4CXX_STR("LOG4CXX_CONFIGURATION"));
- static const LogString LOG4J_DEFAULT_CONFIGURATION_KEY(LOG4CXX_STR("log4j.configuration"));
- const LogString log4jConfigurationOptionStr(
- OptionConverter::getSystemProperty(LOG4J_DEFAULT_CONFIGURATION_KEY, LOG4CXX_STR("")));
- const LogString configurationOptionStr(
- OptionConverter::getSystemProperty(LOG4CXX_DEFAULT_CONFIGURATION_KEY,
- log4jConfigurationOptionStr));
- return configurationOptionStr;
+ static const LogString LOG4CXX_DEFAULT_CONFIGURATION_KEY(LOG4CXX_STR("LOG4CXX_CONFIGURATION"));
+ static const LogString LOG4J_DEFAULT_CONFIGURATION_KEY(LOG4CXX_STR("log4j.configuration"));
+ const LogString log4jConfigurationOptionStr(
+ OptionConverter::getSystemProperty(LOG4J_DEFAULT_CONFIGURATION_KEY, LOG4CXX_STR("")));
+ const LogString configurationOptionStr(
+ OptionConverter::getSystemProperty(LOG4CXX_DEFAULT_CONFIGURATION_KEY,
+ log4jConfigurationOptionStr));
+ return configurationOptionStr;
}
diff --git a/src/main/cpp/defaultloggerfactory.cpp b/src/main/cpp/defaultloggerfactory.cpp
index 64c1124..8f81a77 100644
--- a/src/main/cpp/defaultloggerfactory.cpp
+++ b/src/main/cpp/defaultloggerfactory.cpp
@@ -23,8 +23,8 @@ using namespace log4cxx;
IMPLEMENT_LOG4CXX_OBJECT(DefaultLoggerFactory)
LoggerPtr DefaultLoggerFactory::makeNewLoggerInstance(
- log4cxx::helpers::Pool& pool,
- const LogString& name) const
+ log4cxx::helpers::Pool& pool,
+ const LogString& name) const
{
- return new Logger(pool, name);
+ return new Logger(pool, name);
}
diff --git a/src/main/cpp/defaultrepositoryselector.cpp b/src/main/cpp/defaultrepositoryselector.cpp
index 0afb650..6313f29 100644
--- a/src/main/cpp/defaultrepositoryselector.cpp
+++ b/src/main/cpp/defaultrepositoryselector.cpp
@@ -23,22 +23,22 @@ using namespace log4cxx::helpers;
DefaultRepositorySelector::DefaultRepositorySelector(const LoggerRepositoryPtr& repository1)
- : repository(repository1)
+ : repository(repository1)
{
}
void DefaultRepositorySelector::addRef() const
{
- ObjectImpl::addRef();
+ ObjectImpl::addRef();
}
void DefaultRepositorySelector::releaseRef() const
{
- ObjectImpl::releaseRef();
+ ObjectImpl::releaseRef();
}
LoggerRepositoryPtr& DefaultRepositorySelector::getLoggerRepository()
{
- return repository;
+ return repository;
}
diff --git a/src/main/cpp/domconfigurator.cpp b/src/main/cpp/domconfigurator.cpp
index bf997b8..c5770bf 100644
--- a/src/main/cpp/domconfigurator.cpp
+++ b/src/main/cpp/domconfigurator.cpp
@@ -64,20 +64,20 @@ namespace xml
{
class XMLWatchdog : public FileWatchdog
{
- public:
- XMLWatchdog(const File& filename) : FileWatchdog(filename)
- {
- }
-
- /**
- Call DOMConfigurator#doConfigure with the
- <code>filename</code> to reconfigure log4cxx.
- */
- void doOnChange()
- {
- DOMConfigurator().doConfigure(file,
- LogManager::getLoggerRepository());
- }
+ public:
+ XMLWatchdog(const File& filename) : FileWatchdog(filename)
+ {
+ }
+
+ /**
+ Call DOMConfigurator#doConfigure with the
+ <code>filename</code> to reconfigure log4cxx.
+ */
+ void doOnChange()
+ {
+ DOMConfigurator().doConfigure(file,
+ LogManager::getLoggerRepository());
+ }
};
}
}
@@ -116,579 +116,579 @@ IMPLEMENT_LOG4CXX_OBJECT(DOMConfigurator)
#define INTERNAL_DEBUG_ATTR "debug"
DOMConfigurator::DOMConfigurator()
- : props(), repository()
+ : props(), repository()
{
}
void DOMConfigurator::addRef() const
{
- ObjectImpl::addRef();
+ ObjectImpl::addRef();
}
void DOMConfigurator::releaseRef() const
{
- ObjectImpl::releaseRef();
+ ObjectImpl::releaseRef();
}
/**
Used internally to parse appenders by IDREF name.
*/
AppenderPtr DOMConfigurator::findAppenderByName(log4cxx::helpers::Pool& p,
- log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
- apr_xml_elem* element,
- apr_xml_doc* doc,
- const LogString& appenderName,
- AppenderMap& appenders)
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* element,
+ apr_xml_doc* doc,
+ const LogString& appenderName,
+ AppenderMap& appenders)
{
- AppenderPtr appender;
- std::string tagName(element->name);
-
- if (tagName == APPENDER_TAG)
- {
- if (appenderName == getAttribute(utf8Decoder, element, NAME_ATTR))
- {
- appender = parseAppender(p, utf8Decoder, element, doc, appenders);
- }
- }
-
- if (element->first_child && !appender)
- {
- appender = findAppenderByName(p, utf8Decoder, element->first_child, doc, appenderName, appenders);
- }
-
- if (element->next && !appender)
- {
- appender = findAppenderByName(p, utf8Decoder, element->next, doc, appenderName, appenders);
- }
-
- return appender;
+ AppenderPtr appender;
+ std::string tagName(element->name);
+
+ if (tagName == APPENDER_TAG)
+ {
+ if (appenderName == getAttribute(utf8Decoder, element, NAME_ATTR))
+ {
+ appender = parseAppender(p, utf8Decoder, element, doc, appenders);
+ }
+ }
+
+ if (element->first_child && !appender)
+ {
+ appender = findAppenderByName(p, utf8Decoder, element->first_child, doc, appenderName, appenders);
+ }
+
+ if (element->next && !appender)
+ {
+ appender = findAppenderByName(p, utf8Decoder, element->next, doc, appenderName, appenders);
+ }
+
+ return appender;
}
/**
Used internally to parse appenders by IDREF element.
*/
AppenderPtr DOMConfigurator::findAppenderByReference(
- log4cxx::helpers::Pool& p,
- log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
- apr_xml_elem* appenderRef,
- apr_xml_doc* doc,
- AppenderMap& appenders)
+ log4cxx::helpers::Pool& p,
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* appenderRef,
+ apr_xml_doc* doc,
+ AppenderMap& appenders)
{
- LogString appenderName(subst(getAttribute(utf8Decoder, appenderRef, REF_ATTR)));
- AppenderMap::const_iterator match = appenders.find(appenderName);
- AppenderPtr appender;
-
- if (match != appenders.end())
- {
- appender = match->second;
- }
- else if (doc)
- {
- appender = findAppenderByName(p, utf8Decoder, doc->root, doc, appenderName, appenders);
-
- if (appender)
- {
- appenders.insert(AppenderMap::value_type(appenderName, appender));
- }
- }
-
- if (!appender)
- {
- LogLog::error(LOG4CXX_STR("No appender named [") +
- appenderName + LOG4CXX_STR("] could be found."));
- }
-
- return appender;
+ LogString appenderName(subst(getAttribute(utf8Decoder, appenderRef, REF_ATTR)));
+ AppenderMap::const_iterator match = appenders.find(appenderName);
+ AppenderPtr appender;
+
+ if (match != appenders.end())
+ {
+ appender = match->second;
+ }
+ else if (doc)
+ {
+ appender = findAppenderByName(p, utf8Decoder, doc->root, doc, appenderName, appenders);
+
+ if (appender)
+ {
+ appenders.insert(AppenderMap::value_type(appenderName, appender));
+ }
+ }
+
+ if (!appender)
+ {
+ LogLog::error(LOG4CXX_STR("No appender named [") +
+ appenderName + LOG4CXX_STR("] could be found."));
+ }
+
+ return appender;
}
/**
Used internally to parse an appender element.
*/
AppenderPtr DOMConfigurator::parseAppender(Pool& p,
- log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
- apr_xml_elem* appenderElement,
- apr_xml_doc* doc,
- AppenderMap& appenders)
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* appenderElement,
+ apr_xml_doc* doc,
+ AppenderMap& appenders)
{
- LogString className(subst(getAttribute(utf8Decoder, appenderElement, CLASS_ATTR)));
- LogLog::debug(LOG4CXX_STR("Class name: [") + className + LOG4CXX_STR("]"));
-
- try
- {
- ObjectPtr instance = Loader::loadClass(className).newInstance();
- AppenderPtr appender = instance;
- PropertySetter propSetter(appender);
-
- appender->setName(subst(getAttribute(utf8Decoder, appenderElement, NAME_ATTR)));
-
- for (apr_xml_elem* currentElement = appenderElement->first_child;
- currentElement;
- currentElement = currentElement->next)
- {
-
- std::string tagName(currentElement->name);
-
- // Parse appender parameters
- if (tagName == PARAM_TAG)
- {
- setParameter(p, utf8Decoder, currentElement, propSetter);
- }
- // Set appender layout
- else if (tagName == LAYOUT_TAG)
- {
- appender->setLayout(parseLayout(p, utf8Decoder, currentElement));
- }
- // Add filters
- else if (tagName == FILTER_TAG)
- {
- std::vector<log4cxx::spi::FilterPtr> filters;
- parseFilters(p, utf8Decoder, currentElement, filters);
-
- for (std::vector<log4cxx::spi::FilterPtr>::iterator iter = filters.begin();
- iter != filters.end();
- iter++)
- {
- appender->addFilter(*iter);
- }
- }
- else if (tagName == ERROR_HANDLER_TAG)
- {
- parseErrorHandler(p, utf8Decoder, currentElement, appender, doc, appenders);
- }
- else if (tagName == ROLLING_POLICY_TAG)
- {
- RollingPolicyPtr rollPolicy(parseRollingPolicy(p, utf8Decoder, currentElement));
- RollingFileAppenderPtr rfa(appender);
-
- if (rfa != NULL)
- {
- rfa->setRollingPolicy(rollPolicy);
- }
- }
- else if (tagName == TRIGGERING_POLICY_TAG)
- {
- ObjectPtr policy(parseTriggeringPolicy(p, utf8Decoder, currentElement));
- RollingFileAppenderPtr rfa(appender);
-
- if (rfa != NULL)
- {
- rfa->setTriggeringPolicy(policy);
- }
- else
- {
- log4cxx::net::SMTPAppenderPtr smtpa(appender);
-
- if (smtpa != NULL)
- {
- log4cxx::spi::TriggeringEventEvaluatorPtr evaluator(policy);
- smtpa->setEvaluator(evaluator);
- }
- }
- }
- else if (tagName == APPENDER_REF_TAG)
- {
- LogString refName = subst(getAttribute(utf8Decoder, currentElement, REF_ATTR));
-
- if (appender->instanceof(AppenderAttachable::getStaticClass()))
- {
- AppenderAttachablePtr aa(appender);
- LogLog::debug(LOG4CXX_STR("Attaching appender named [") +
- refName + LOG4CXX_STR("] to appender named [") +
- appender->getName() + LOG4CXX_STR("]."));
- aa->addAppender(findAppenderByReference(p, utf8Decoder, currentElement, doc, appenders));
- }
- else
- {
- LogLog::error(LOG4CXX_STR("Requesting attachment of appender named [") +
- refName + LOG4CXX_STR("] to appender named [") + appender->getName() +
- LOG4CXX_STR("] which does not implement AppenderAttachable."));
- }
- }
- }
-
- propSetter.activate(p);
- return appender;
- }
- /* Yes, it's ugly. But all of these exceptions point to the same
- problem: we can't create an Appender */
- catch (Exception& oops)
- {
- LogLog::error(LOG4CXX_STR("Could not create an Appender. Reported error follows."),
- oops);
- return 0;
- }
+ LogString className(subst(getAttribute(utf8Decoder, appenderElement, CLASS_ATTR)));
+ LogLog::debug(LOG4CXX_STR("Class name: [") + className + LOG4CXX_STR("]"));
+
+ try
+ {
+ ObjectPtr instance = Loader::loadClass(className).newInstance();
+ AppenderPtr appender = instance;
+ PropertySetter propSetter(appender);
+
+ appender->setName(subst(getAttribute(utf8Decoder, appenderElement, NAME_ATTR)));
+
+ for (apr_xml_elem* currentElement = appenderElement->first_child;
+ currentElement;
+ currentElement = currentElement->next)
+ {
+
+ std::string tagName(currentElement->name);
+
+ // Parse appender parameters
+ if (tagName == PARAM_TAG)
+ {
+ setParameter(p, utf8Decoder, currentElement, propSetter);
+ }
+ // Set appender layout
+ else if (tagName == LAYOUT_TAG)
+ {
+ appender->setLayout(parseLayout(p, utf8Decoder, currentElement));
+ }
+ // Add filters
+ else if (tagName == FILTER_TAG)
+ {
+ std::vector<log4cxx::spi::FilterPtr> filters;
+ parseFilters(p, utf8Decoder, currentElement, filters);
+
+ for (std::vector<log4cxx::spi::FilterPtr>::iterator iter = filters.begin();
+ iter != filters.end();
+ iter++)
+ {
+ appender->addFilter(*iter);
+ }
+ }
+ else if (tagName == ERROR_HANDLER_TAG)
+ {
+ parseErrorHandler(p, utf8Decoder, currentElement, appender, doc, appenders);
+ }
+ else if (tagName == ROLLING_POLICY_TAG)
+ {
+ RollingPolicyPtr rollPolicy(parseRollingPolicy(p, utf8Decoder, currentElement));
+ RollingFileAppenderPtr rfa(appender);
+
+ if (rfa != NULL)
+ {
+ rfa->setRollingPolicy(rollPolicy);
+ }
+ }
+ else if (tagName == TRIGGERING_POLICY_TAG)
+ {
+ ObjectPtr policy(parseTriggeringPolicy(p, utf8Decoder, currentElement));
+ RollingFileAppenderPtr rfa(appender);
+
+ if (rfa != NULL)
+ {
+ rfa->setTriggeringPolicy(policy);
+ }
+ else
+ {
+ log4cxx::net::SMTPAppenderPtr smtpa(appender);
+
+ if (smtpa != NULL)
+ {
+ log4cxx::spi::TriggeringEventEvaluatorPtr evaluator(policy);
+ smtpa->setEvaluator(evaluator);
+ }
+ }
+ }
+ else if (tagName == APPENDER_REF_TAG)
+ {
+ LogString refName = subst(getAttribute(utf8Decoder, currentElement, REF_ATTR));
+
+ if (appender->instanceof(AppenderAttachable::getStaticClass()))
+ {
+ AppenderAttachablePtr aa(appender);
+ LogLog::debug(LOG4CXX_STR("Attaching appender named [") +
+ refName + LOG4CXX_STR("] to appender named [") +
+ appender->getName() + LOG4CXX_STR("]."));
+ aa->addAppender(findAppenderByReference(p, utf8Decoder, currentElement, doc, appenders));
+ }
+ else
+ {
+ LogLog::error(LOG4CXX_STR("Requesting attachment of appender named [") +
+ refName + LOG4CXX_STR("] to appender named [") + appender->getName() +
+ LOG4CXX_STR("] which does not implement AppenderAttachable."));
+ }
+ }
+ }
+
+ propSetter.activate(p);
+ return appender;
+ }
+ /* Yes, it's ugly. But all of these exceptions point to the same
+ problem: we can't create an Appender */
+ catch (Exception& oops)
+ {
+ LogLog::error(LOG4CXX_STR("Could not create an Appender. Reported error follows."),
+ oops);
+ return 0;
+ }
}
/**
Used internally to parse an {@link ErrorHandler} element.
*/
void DOMConfigurator::parseErrorHandler(Pool& p,
- log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
- apr_xml_elem* element,
- AppenderPtr& appender,
- apr_xml_doc* doc,
- AppenderMap& appenders)
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* element,
+ AppenderPtr& appender,
+ apr_xml_doc* doc,
+ AppenderMap& appenders)
{
- ErrorHandlerPtr eh = OptionConverter::instantiateByClassName(
- subst(getAttribute(utf8Decoder, element, CLASS_ATTR)),
- ErrorHandler::getStaticClass(),
- 0);
-
- if (eh != 0)
- {
- eh->setAppender(appender);
-
- PropertySetter propSetter(eh);
-
- for (apr_xml_elem* currentElement = element->first_child;
- currentElement;
- currentElement = currentElement->next)
- {
- std::string tagName(currentElement->name);
-
- if (tagName == PARAM_TAG)
- {
- setParameter(p, utf8Decoder, currentElement, propSetter);
- }
- else if (tagName == APPENDER_REF_TAG)
- {
- eh->setBackupAppender(findAppenderByReference(p, utf8Decoder, currentElement, doc, appenders));
- }
- else if (tagName == LOGGER_REF)
- {
- LogString loggerName(getAttribute(utf8Decoder, currentElement, REF_ATTR));
- LoggerPtr logger = repository->getLogger(loggerName, loggerFactory);
- eh->setLogger(logger);
- }
- else if (tagName == ROOT_REF)
- {
- LoggerPtr root = repository->getRootLogger();
- eh->setLogger(root);
- }
- }
-
- propSetter.activate(p);
- ObjectPtrT<AppenderSkeleton> appSkeleton(appender);
-
- if (appSkeleton != 0)
- {
- appSkeleton->setErrorHandler(eh);
- }
- }
+ ErrorHandlerPtr eh = OptionConverter::instantiateByClassName(
+ subst(getAttribute(utf8Decoder, element, CLASS_ATTR)),
+ ErrorHandler::getStaticClass(),
+ 0);
+
+ if (eh != 0)
+ {
+ eh->setAppender(appender);
+
+ PropertySetter propSetter(eh);
+
+ for (apr_xml_elem* currentElement = element->first_child;
+ currentElement;
+ currentElement = currentElement->next)
+ {
+ std::string tagName(currentElement->name);
+
+ if (tagName == PARAM_TAG)
+ {
+ setParameter(p, utf8Decoder, currentElement, propSetter);
+ }
+ else if (tagName == APPENDER_REF_TAG)
+ {
+ eh->setBackupAppender(findAppenderByReference(p, utf8Decoder, currentElement, doc, appenders));
+ }
+ else if (tagName == LOGGER_REF)
+ {
+ LogString loggerName(getAttribute(utf8Decoder, currentElement, REF_ATTR));
+ LoggerPtr logger = repository->getLogger(loggerName, loggerFactory);
+ eh->setLogger(logger);
+ }
+ else if (tagName == ROOT_REF)
+ {
+ LoggerPtr root = repository->getRootLogger();
+ eh->setLogger(root);
+ }
+ }
+
+ propSetter.activate(p);
+ ObjectPtrT<AppenderSkeleton> appSkeleton(appender);
+
+ if (appSkeleton != 0)
+ {
+ appSkeleton->setErrorHandler(eh);
+ }
+ }
}
/**
Used internally to parse a filter element.
*/
void DOMConfigurator::parseFilters(Pool& p,
- log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
- apr_xml_elem* element,
- std::vector<log4cxx::spi::FilterPtr>& filters)
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* element,
+ std::vector<log4cxx::spi::FilterPtr>& filters)
{
- LogString clazz = subst(getAttribute(utf8Decoder, element, CLASS_ATTR));
- FilterPtr filter = OptionConverter::instantiateByClassName(clazz,
- Filter::getStaticClass(), 0);
-
- if (filter != 0)
- {
- PropertySetter propSetter(filter);
-
- for (apr_xml_elem* currentElement = element->first_child;
- currentElement;
- currentElement = currentElement->next)
- {
- std::string tagName(currentElement->name);
-
- if (tagName == PARAM_TAG)
- {
- setParameter(p, utf8Decoder, currentElement, propSetter);
- }
- }
-
- propSetter.activate(p);
- filters.push_back(filter);
- }
+ LogString clazz = subst(getAttribute(utf8Decoder, element, CLASS_ATTR));
+ FilterPtr filter = OptionConverter::instantiateByClassName(clazz,
+ Filter::getStaticClass(), 0);
+
+ if (filter != 0)
+ {
+ PropertySetter propSetter(filter);
+
+ for (apr_xml_elem* currentElement = element->first_child;
+ currentElement;
+ currentElement = currentElement->next)
+ {
+ std::string tagName(currentElement->name);
+
+ if (tagName == PARAM_TAG)
+ {
+ setParameter(p, utf8Decoder, currentElement, propSetter);
+ }
+ }
+
+ propSetter.activate(p);
+ filters.push_back(filter);
+ }
}
/**
Used internally to parse an category or logger element.
*/
void DOMConfigurator::parseLogger(
- log4cxx::helpers::Pool& p,
- log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
- apr_xml_elem* loggerElement,
- apr_xml_doc* doc,
- AppenderMap& appenders)
+ log4cxx::helpers::Pool& p,
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* loggerElement,
+ apr_xml_doc* doc,
+ AppenderMap& appenders)
{
- // Create a new Logger object from the <category> element.
- LogString loggerName = subst(getAttribute(utf8Decoder, loggerElement, NAME_ATTR));
-
- LogLog::debug(LOG4CXX_STR("Retreiving an instance of Logger."));
- LoggerPtr logger = repository->getLogger(loggerName, loggerFactory);
-
- // Setting up a logger needs to be an atomic operation, in order
- // to protect potential log operations while logger
- // configuration is in progress.
- LOCK_W sync(logger->getMutex());
- bool additivity = OptionConverter::toBoolean(
- subst(getAttribute(utf8Decoder, loggerElement, ADDITIVITY_ATTR)),
- true);
-
- LogLog::debug(LOG4CXX_STR("Setting [") + logger->getName() + LOG4CXX_STR("] additivity to [") +
- (additivity ? LogString(LOG4CXX_STR("true")) : LogString(LOG4CXX_STR("false"))) + LOG4CXX_STR("]."));
- logger->setAdditivity(additivity);
- parseChildrenOfLoggerElement(p, utf8Decoder, loggerElement, logger, false, doc, appenders);
+ // Create a new Logger object from the <category> element.
+ LogString loggerName = subst(getAttribute(utf8Decoder, loggerElement, NAME_ATTR));
+
+ LogLog::debug(LOG4CXX_STR("Retreiving an instance of Logger."));
+ LoggerPtr logger = repository->getLogger(loggerName, loggerFactory);
+
+ // Setting up a logger needs to be an atomic operation, in order
+ // to protect potential log operations while logger
+ // configuration is in progress.
+ LOCK_W sync(logger->getMutex());
+ bool additivity = OptionConverter::toBoolean(
+ subst(getAttribute(utf8Decoder, loggerElement, ADDITIVITY_ATTR)),
+ true);
+
+ LogLog::debug(LOG4CXX_STR("Setting [") + logger->getName() + LOG4CXX_STR("] additivity to [") +
+ (additivity ? LogString(LOG4CXX_STR("true")) : LogString(LOG4CXX_STR("false"))) + LOG4CXX_STR("]."));
+ logger->setAdditivity(additivity);
+ parseChildrenOfLoggerElement(p, utf8Decoder, loggerElement, logger, false, doc, appenders);
}
/**
Used internally to parse the logger factory element.
*/
void DOMConfigurator::parseLoggerFactory(
- log4cxx::helpers::Pool& p,
- log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
- apr_xml_elem* factoryElement)
+ log4cxx::helpers::Pool& p,
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* factoryElement)
{
- LogString className(subst(getAttribute(utf8Decoder, factoryElement, CLASS_ATTR)));
-
- if (className.empty())
- {
- LogLog::error(LOG4CXX_STR("Logger Factory tag class attribute not found."));
- LogLog::debug(LOG4CXX_STR("No Logger Factory configured."));
- }
- else
- {
- LogLog::debug(LOG4CXX_STR("Desired logger factory: [") + className + LOG4CXX_STR("]"));
- loggerFactory = OptionConverter::instantiateByClassName(
- className,
- LoggerFactory::getStaticClass(),
- 0);
- PropertySetter propSetter(loggerFactory);
-
- for (apr_xml_elem* currentElement = factoryElement->first_child;
- currentElement;
- currentElement = currentElement->next)
- {
- std::string tagName(currentElement->name);
-
- if (tagName == PARAM_TAG)
- {
- setParameter(p, utf8Decoder, currentElement, propSetter);
- }
- }
- }
+ LogString className(subst(getAttribute(utf8Decoder, factoryElement, CLASS_ATTR)));
+
+ if (className.empty())
+ {
+ LogLog::error(LOG4CXX_STR("Logger Factory tag class attribute not found."));
+ LogLog::debug(LOG4CXX_STR("No Logger Factory configured."));
+ }
+ else
+ {
+ LogLog::debug(LOG4CXX_STR("Desired logger factory: [") + className + LOG4CXX_STR("]"));
+ loggerFactory = OptionConverter::instantiateByClassName(
+ className,
+ LoggerFactory::getStaticClass(),
+ 0);
+ PropertySetter propSetter(loggerFactory);
+
+ for (apr_xml_elem* currentElement = factoryElement->first_child;
+ currentElement;
+ currentElement = currentElement->next)
+ {
+ std::string tagName(currentElement->name);
+
+ if (tagName == PARAM_TAG)
+ {
+ setParameter(p, utf8Decoder, currentElement, propSetter);
+ }
+ }
+ }
}
/**
Used internally to parse the root logger element.
*/
void DOMConfigurator::parseRoot(
- log4cxx::helpers::Pool& p,
- log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
- apr_xml_elem* rootElement,
- apr_xml_doc* doc,
- AppenderMap& appenders)
+ log4cxx::helpers::Pool& p,
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* rootElement,
+ apr_xml_doc* doc,
+ AppenderMap& appenders)
{
- LoggerPtr root = repository->getRootLogger();
- // logger configuration needs to be atomic
- LOCK_W sync(root->getMutex());
- parseChildrenOfLoggerElement(p, utf8Decoder, rootElement, root, true, doc, appenders);
+ LoggerPtr root = repository->getRootLogger();
+ // logger configuration needs to be atomic
+ LOCK_W sync(root->getMutex());
+ parseChildrenOfLoggerElement(p, utf8Decoder, rootElement, root, true, doc, appenders);
}
/**
Used internally to parse the children of a logger element.
*/
void DOMConfigurator::parseChildrenOfLoggerElement(
- log4cxx::helpers::Pool& p,
- log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
- apr_xml_elem* loggerElement, LoggerPtr logger, bool isRoot,
- apr_xml_doc* doc,
- AppenderMap& appenders)
+ log4cxx::helpers::Pool& p,
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* loggerElement, LoggerPtr logger, bool isRoot,
+ apr_xml_doc* doc,
+ AppenderMap& appenders)
{
- PropertySetter propSetter(logger);
-
- // Remove all existing appenders from logger. They will be
- // reconstructed if need be.
- logger->removeAllAppenders();
-
-
- for (apr_xml_elem* currentElement = loggerElement->first_child;
- currentElement;
- currentElement = currentElement->next)
- {
- std::string tagName(currentElement->name);
-
- if (tagName == APPENDER_REF_TAG)
- {
- AppenderPtr appender = findAppenderByReference(p, utf8Decoder, currentElement, doc, appenders);
- LogString refName = subst(getAttribute(utf8Decoder, currentElement, REF_ATTR));
-
- if (appender != 0)
- {
- LogLog::debug(LOG4CXX_STR("Adding appender named [") + refName +
- LOG4CXX_STR("] to logger [") + logger->getName() + LOG4CXX_STR("]."));
- }
- else
- {
- LogLog::debug(LOG4CXX_STR("Appender named [") + refName +
- LOG4CXX_STR("] not found."));
- }
-
- logger->addAppender(appender);
-
- }
- else if (tagName == LEVEL_TAG)
- {
- parseLevel(p, utf8Decoder, currentElement, logger, isRoot);
- }
- else if (tagName == PRIORITY_TAG)
- {
- parseLevel(p, utf8Decoder, currentElement, logger, isRoot);
- }
- else if (tagName == PARAM_TAG)
- {
- setParameter(p, utf8Decoder, currentElement, propSetter);
- }
- }
-
- propSetter.activate(p);
+ PropertySetter propSetter(logger);
+
+ // Remove all existing appenders from logger. They will be
+ // reconstructed if need be.
+ logger->removeAllAppenders();
+
+
+ for (apr_xml_elem* currentElement = loggerElement->first_child;
+ currentElement;
+ currentElement = currentElement->next)
+ {
+ std::string tagName(currentElement->name);
+
+ if (tagName == APPENDER_REF_TAG)
+ {
+ AppenderPtr appender = findAppenderByReference(p, utf8Decoder, currentElement, doc, appenders);
+ LogString refName = subst(getAttribute(utf8Decoder, currentElement, REF_ATTR));
+
+ if (appender != 0)
+ {
+ LogLog::debug(LOG4CXX_STR("Adding appender named [") + refName +
+ LOG4CXX_STR("] to logger [") + logger->getName() + LOG4CXX_STR("]."));
+ }
+ else
+ {
+ LogLog::debug(LOG4CXX_STR("Appender named [") + refName +
+ LOG4CXX_STR("] not found."));
+ }
+
+ logger->addAppender(appender);
+
+ }
+ else if (tagName == LEVEL_TAG)
+ {
+ parseLevel(p, utf8Decoder, currentElement, logger, isRoot);
+ }
+ else if (tagName == PRIORITY_TAG)
+ {
+ parseLevel(p, utf8Decoder, currentElement, logger, isRoot);
+ }
+ else if (tagName == PARAM_TAG)
+ {
+ setParameter(p, utf8Decoder, currentElement, propSetter);
+ }
+ }
+
+ propSetter.activate(p);
}
/**
Used internally to parse a layout element.
*/
LayoutPtr DOMConfigurator::parseLayout (
- log4cxx::helpers::Pool& p,
- log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
- apr_xml_elem* layout_element)
+ log4cxx::helpers::Pool& p,
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* layout_element)
{
- LogString className(subst(getAttribute(utf8Decoder, layout_element, CLASS_ATTR)));
- LogLog::debug(LOG4CXX_STR("Parsing layout of class: \"") + className + LOG4CXX_STR("\""));
-
- try
- {
- ObjectPtr instance = Loader::loadClass(className).newInstance();
- LayoutPtr layout = instance;
- PropertySetter propSetter(layout);
-
- for (apr_xml_elem* currentElement = layout_element->first_child;
- currentElement;
- currentElement = currentElement->next)
- {
- std::string tagName(currentElement->name);
-
- if (tagName == PARAM_TAG)
- {
- setParameter(p, utf8Decoder, currentElement, propSetter);
- }
- }
-
- propSetter.activate(p);
- return layout;
- }
- catch (Exception& oops)
- {
- LogLog::error(LOG4CXX_STR("Could not create the Layout. Reported error follows."),
- oops);
- return 0;
- }
+ LogString className(subst(getAttribute(utf8Decoder, layout_element, CLASS_ATTR)));
+ LogLog::debug(LOG4CXX_STR("Parsing layout of class: \"") + className + LOG4CXX_STR("\""));
+
+ try
+ {
+ ObjectPtr instance = Loader::loadClass(className).newInstance();
+ LayoutPtr layout = instance;
+ PropertySetter propSetter(layout);
+
+ for (apr_xml_elem* currentElement = layout_element->first_child;
+ currentElement;
+ currentElement = currentElement->next)
+ {
+ std::string tagName(currentElement->name);
+
+ if (tagName == PARAM_TAG)
+ {
+ setParameter(p, utf8Decoder, currentElement, propSetter);
+ }
+ }
+
+ propSetter.activate(p);
+ return layout;
+ }
+ catch (Exception& oops)
+ {
+ LogLog::error(LOG4CXX_STR("Could not create the Layout. Reported error follows."),
+ oops);
+ return 0;
+ }
}
/**
Used internally to parse a triggering policy
*/
ObjectPtr DOMConfigurator::parseTriggeringPolicy (
- log4cxx::helpers::Pool& p,
- log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
- apr_xml_elem* layout_element)
+ log4cxx::helpers::Pool& p,
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* layout_element)
{
- LogString className = subst(getAttribute(utf8Decoder, layout_element, CLASS_ATTR));
- LogLog::debug(LOG4CXX_STR("Parsing triggering policy of class: \"") + className + LOG4CXX_STR("\""));
-
- try
- {
- ObjectPtr instance = Loader::loadClass(className).newInstance();
- PropertySetter propSetter(instance);
-
- for (apr_xml_elem* currentElement = layout_element->first_child;
- currentElement;
- currentElement = currentElement->next)
- {
- std::string tagName(currentElement->name);
-
- if (tagName == PARAM_TAG)
- {
- setParameter(p, utf8Decoder, currentElement, propSetter);
- }
- else if (tagName == FILTER_TAG)
- {
- std::vector<log4cxx::spi::FilterPtr> filters;
- parseFilters(p, utf8Decoder, currentElement, filters);
- FilterBasedTriggeringPolicyPtr fbtp(instance);
-
- if (fbtp != NULL)
- {
- for (std::vector<log4cxx::spi::FilterPtr>::iterator iter = filters.begin();
- iter != filters.end();
- iter++)
- {
- fbtp->addFilter(*iter);
- }
- }
- }
- }
-
- propSetter.activate(p);
- return instance;
- }
- catch (Exception& oops)
- {
- LogLog::error(LOG4CXX_STR("Could not create the TriggeringPolicy. Reported error follows."),
- oops);
- return 0;
- }
+ LogString className = subst(getAttribute(utf8Decoder, layout_element, CLASS_ATTR));
+ LogLog::debug(LOG4CXX_STR("Parsing triggering policy of class: \"") + className + LOG4CXX_STR("\""));
+
+ try
+ {
+ ObjectPtr instance = Loader::loadClass(className).newInstance();
+ PropertySetter propSetter(instance);
+
+ for (apr_xml_elem* currentElement = layout_element->first_child;
+ currentElement;
+ currentElement = currentElement->next)
+ {
+ std::string tagName(currentElement->name);
+
+ if (tagName == PARAM_TAG)
+ {
+ setParameter(p, utf8Decoder, currentElement, propSetter);
+ }
+ else if (tagName == FILTER_TAG)
+ {
+ std::vector<log4cxx::spi::FilterPtr> filters;
+ parseFilters(p, utf8Decoder, currentElement, filters);
+ FilterBasedTriggeringPolicyPtr fbtp(instance);
+
+ if (fbtp != NULL)
+ {
+ for (std::vector<log4cxx::spi::FilterPtr>::iterator iter = filters.begin();
+ iter != filters.end();
+ iter++)
+ {
+ fbtp->addFilter(*iter);
+ }
+ }
+ }
+ }
+
+ propSetter.activate(p);
+ return instance;
+ }
+ catch (Exception& oops)
+ {
+ LogLog::error(LOG4CXX_STR("Could not create the TriggeringPolicy. Reported error follows."),
+ oops);
+ return 0;
+ }
}
/**
Used internally to parse a triggering policy
*/
RollingPolicyPtr DOMConfigurator::parseRollingPolicy (
- log4cxx::helpers::Pool& p,
- log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
- apr_xml_elem* layout_element)
+ log4cxx::helpers::Pool& p,
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* layout_element)
{
- LogString className = subst(getAttribute(utf8Decoder, layout_element, CLASS_ATTR));
- LogLog::debug(LOG4CXX_STR("Parsing rolling policy of class: \"") + className + LOG4CXX_STR("\""));
-
- try
- {
- ObjectPtr instance = Loader::loadClass(className).newInstance();
- RollingPolicyPtr layout = instance;
- PropertySetter propSetter(layout);
-
- for (apr_xml_elem* currentElement = layout_element->first_child;
- currentElement;
- currentElement = currentElement->next)
- {
- std::string tagName(currentElement->name);
-
- if (tagName == PARAM_TAG)
- {
- setParameter(p, utf8Decoder, currentElement, propSetter);
- }
- }
-
- propSetter.activate(p);
- return layout;
- }
- catch (Exception& oops)
- {
- LogLog::error(LOG4CXX_STR("Could not create the RollingPolicy. Reported error follows."),
- oops);
- return 0;
- }
+ LogString className = subst(getAttribute(utf8Decoder, layout_element, CLASS_ATTR));
+ LogLog::debug(LOG4CXX_STR("Parsing rolling policy of class: \"") + className + LOG4CXX_STR("\""));
+
+ try
+ {
+ ObjectPtr instance = Loader::loadClass(className).newInstance();
+ RollingPolicyPtr layout = instance;
+ PropertySetter propSetter(layout);
+
+ for (apr_xml_elem* currentElement = layout_element->first_child;
+ currentElement;
+ currentElement = currentElement->next)
+ {
+ std::string tagName(currentElement->name);
+
+ if (tagName == PARAM_TAG)
+ {
+ setParameter(p, utf8Decoder, currentElement, propSetter);
+ }
+ }
+
+ propSetter.activate(p);
+ return layout;
+ }
+ catch (Exception& oops)
+ {
+ LogLog::error(LOG4CXX_STR("Could not create the RollingPolicy. Reported error follows."),
+ oops);
+ return 0;
+ }
}
@@ -697,238 +697,238 @@ RollingPolicyPtr DOMConfigurator::parseRollingPolicy (
Used internally to parse a level element.
*/
void DOMConfigurator::parseLevel(
- log4cxx::helpers::Pool& p,
- log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
- apr_xml_elem* element, LoggerPtr logger, bool isRoot)
+ log4cxx::helpers::Pool& p,
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* element, LoggerPtr logger, bool isRoot)
{
- LogString loggerName = logger->getName();
-
- if (isRoot)
- {
- loggerName = LOG4CXX_STR("root");
- }
-
- LogString levelStr(subst(getAttribute(utf8Decoder, element, VALUE_ATTR)));
- LogLog::debug(LOG4CXX_STR("Level value for ") + loggerName + LOG4CXX_STR(" is [") + levelStr + LOG4CXX_STR("]."));
-
- if (StringHelper::equalsIgnoreCase(levelStr, LOG4CXX_STR("INHERITED"), LOG4CXX_STR("inherited"))
- || StringHelper::equalsIgnoreCase(levelStr, LOG4CXX_STR("NULL"), LOG4CXX_STR("null")))
- {
- if (isRoot)
- {
- LogLog::error(LOG4CXX_STR("Root level cannot be inherited. Ignoring directive."));
- }
- else
- {
- logger->setLevel(0);
- }
- }
- else
- {
- LogString className(subst(getAttribute(utf8Decoder, element, CLASS_ATTR)));
-
- if (className.empty())
- {
- logger->setLevel(OptionConverter::toLevel(levelStr, Level::getDebug()));
- }
- else
- {
- LogLog::debug(LOG4CXX_STR("Desired Level sub-class: [") + className + LOG4CXX_STR("]"));
-
- try
- {
- Level::LevelClass& levelClass =
- (Level::LevelClass&)Loader::loadClass(className);
- LevelPtr level = levelClass.toLevel(levelStr);
- logger->setLevel(level);
- }
- catch (Exception& oops)
- {
- LogLog::error(
- LOG4CXX_STR("Could not create level [") + levelStr +
- LOG4CXX_STR("]. Reported error follows."),
- oops);
-
- return;
- }
- catch (...)
- {
- LogLog::error(
- LOG4CXX_STR("Could not create level [") + levelStr);
-
- return;
- }
- }
- }
-
- LogLog::debug(loggerName + LOG4CXX_STR(" level set to ") +
- logger->getEffectiveLevel()->toString());
+ LogString loggerName = logger->getName();
+
+ if (isRoot)
+ {
+ loggerName = LOG4CXX_STR("root");
+ }
+
+ LogString levelStr(subst(getAttribute(utf8Decoder, element, VALUE_ATTR)));
+ LogLog::debug(LOG4CXX_STR("Level value for ") + loggerName + LOG4CXX_STR(" is [") + levelStr + LOG4CXX_STR("]."));
+
+ if (StringHelper::equalsIgnoreCase(levelStr, LOG4CXX_STR("INHERITED"), LOG4CXX_STR("inherited"))
+ || StringHelper::equalsIgnoreCase(levelStr, LOG4CXX_STR("NULL"), LOG4CXX_STR("null")))
+ {
+ if (isRoot)
+ {
+ LogLog::error(LOG4CXX_STR("Root level cannot be inherited. Ignoring directive."));
+ }
+ else
+ {
+ logger->setLevel(0);
+ }
+ }
+ else
+ {
+ LogString className(subst(getAttribute(utf8Decoder, element, CLASS_ATTR)));
+
+ if (className.empty())
+ {
+ logger->setLevel(OptionConverter::toLevel(levelStr, Level::getDebug()));
+ }
+ else
+ {
+ LogLog::debug(LOG4CXX_STR("Desired Level sub-class: [") + className + LOG4CXX_STR("]"));
+
+ try
+ {
+ Level::LevelClass& levelClass =
+ (Level::LevelClass&)Loader::loadClass(className);
+ LevelPtr level = levelClass.toLevel(levelStr);
+ logger->setLevel(level);
+ }
+ catch (Exception& oops)
+ {
+ LogLog::error(
+ LOG4CXX_STR("Could not create level [") + levelStr +
+ LOG4CXX_STR("]. Reported error follows."),
+ oops);
+
+ return;
+ }
+ catch (...)
+ {
+ LogLog::error(
+ LOG4CXX_STR("Could not create level [") + levelStr);
+
+ return;
+ }
+ }
+ }
+
+ LogLog::debug(loggerName + LOG4CXX_STR(" level set to ") +
+ logger->getEffectiveLevel()->toString());
}
void DOMConfigurator::setParameter(log4cxx::helpers::Pool& p,
- log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
- apr_xml_elem* elem,
- PropertySetter& propSetter)
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* elem,
+ PropertySetter& propSetter)
{
- LogString name(subst(getAttribute(utf8Decoder, elem, NAME_ATTR)));
- LogString value(subst(getAttribute(utf8Decoder, elem, VALUE_ATTR)));
- value = subst(value);
- propSetter.setProperty(name, value, p);
+ LogString name(subst(getAttribute(utf8Decoder, elem, NAME_ATTR)));
+ LogString value(subst(getAttribute(utf8Decoder, elem, VALUE_ATTR)));
+ value = subst(value);
+ propSetter.setProperty(name, value, p);
}
void DOMConfigurator::doConfigure(const File& filename, spi::LoggerRepositoryPtr& repository1)
{
- repository1->setConfigured(true);
- this->repository = repository1;
- LogString msg(LOG4CXX_STR("DOMConfigurator configuring file "));
- msg.append(filename.getPath());
- msg.append(LOG4CXX_STR("..."));
- LogLog::debug(msg);
-
- loggerFactory = new DefaultLoggerFactory();
-
- Pool p;
- apr_file_t* fd;
-
- log4cxx_status_t rv = filename.open(&fd, APR_READ, APR_OS_DEFAULT, p);
-
- if (rv != APR_SUCCESS)
- {
- LogString msg2(LOG4CXX_STR("Could not open file ["));
- msg2.append(filename.getPath());
- msg2.append(LOG4CXX_STR("]."));
- LogLog::error(msg2);
- }
- else
- {
- apr_xml_parser* parser = NULL;
- apr_xml_doc* doc = NULL;
- rv = apr_xml_parse_file(p.getAPRPool(), &parser, &doc, fd, 2000);
-
- if (rv != APR_SUCCESS)
- {
- char errbuf[2000];
- char errbufXML[2000];
- LogString msg2(LOG4CXX_STR("Error parsing file ["));
- msg2.append(filename.getPath());
- msg2.append(LOG4CXX_STR("], "));
- apr_strerror(rv, errbuf, sizeof(errbuf));
- LOG4CXX_DECODE_CHAR(lerrbuf, std::string(errbuf));
- msg2.append(lerrbuf);
-
- if (parser)
- {
- apr_xml_parser_geterror(parser, errbufXML, sizeof(errbufXML));
- LOG4CXX_DECODE_CHAR(lerrbufXML, std::string(errbufXML));
- msg2.append(lerrbufXML);
- }
-
- LogLog::error(msg2);
- }
- else
- {
- AppenderMap appenders;
- CharsetDecoderPtr utf8Decoder(CharsetDecoder::getUTF8Decoder());
- parse(p, utf8Decoder, doc->root, doc, appenders);
- }
- }
+ repository1->setConfigured(true);
+ this->repository = repository1;
+ LogString msg(LOG4CXX_STR("DOMConfigurator configuring file "));
+ msg.append(filename.getPath());
+ msg.append(LOG4CXX_STR("..."));
+ LogLog::debug(msg);
+
+ loggerFactory = new DefaultLoggerFactory();
+
+ Pool p;
+ apr_file_t* fd;
+
+ log4cxx_status_t rv = filename.open(&fd, APR_READ, APR_OS_DEFAULT, p);
+
+ if (rv != APR_SUCCESS)
+ {
+ LogString msg2(LOG4CXX_STR("Could not open file ["));
+ msg2.append(filename.getPath());
+ msg2.append(LOG4CXX_STR("]."));
+ LogLog::error(msg2);
+ }
+ else
+ {
+ apr_xml_parser* parser = NULL;
+ apr_xml_doc* doc = NULL;
+ rv = apr_xml_parse_file(p.getAPRPool(), &parser, &doc, fd, 2000);
+
+ if (rv != APR_SUCCESS)
+ {
+ char errbuf[2000];
+ char errbufXML[2000];
+ LogString msg2(LOG4CXX_STR("Error parsing file ["));
+ msg2.append(filename.getPath());
+ msg2.append(LOG4CXX_STR("], "));
+ apr_strerror(rv, errbuf, sizeof(errbuf));
+ LOG4CXX_DECODE_CHAR(lerrbuf, std::string(errbuf));
+ msg2.append(lerrbuf);
+
+ if (parser)
+ {
+ apr_xml_parser_geterror(parser, errbufXML, sizeof(errbufXML));
+ LOG4CXX_DECODE_CHAR(lerrbufXML, std::string(errbufXML));
+ msg2.append(lerrbufXML);
+ }
+
+ LogLog::error(msg2);
+ }
+ else
+ {
+ AppenderMap appenders;
+ CharsetDecoderPtr utf8Decoder(CharsetDecoder::getUTF8Decoder());
+ parse(p, utf8Decoder, doc->root, doc, appenders);
+ }
+ }
}
void DOMConfigurator::configure(const std::string& filename)
{
- File file(filename);
- DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
+ File file(filename);
+ DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
}
#if LOG4CXX_WCHAR_T_API
void DOMConfigurator::configure(const std::wstring& filename)
{
- File file(filename);
- DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
+ File file(filename);
+ DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
}
#endif
#if LOG4CXX_UNICHAR_API
void DOMConfigurator::configure(const std::basic_string<UniChar>& filename)
{
- File file(filename);
- DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
+ File file(filename);
+ DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
}
#endif
#if LOG4CXX_CFSTRING_API
void DOMConfigurator::configure(const CFStringRef& filename)
{
- File file(filename);
- DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
+ File file(filename);
+ DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
}
#endif
void DOMConfigurator::configureAndWatch(const std::string& filename)
{
- configureAndWatch(filename, FileWatchdog::DEFAULT_DELAY);
+ configureAndWatch(filename, FileWatchdog::DEFAULT_DELAY);
}
#if LOG4CXX_WCHAR_T_API
void DOMConfigurator::configureAndWatch(const std::wstring& filename)
{
- configureAndWatch(filename, FileWatchdog::DEFAULT_DELAY);
+ configureAndWatch(filename, FileWatchdog::DEFAULT_DELAY);
}
#endif
#if LOG4CXX_UNICHAR_API
void DOMConfigurator::configureAndWatch(const std::basic_string<UniChar>& filename)
{
- configureAndWatch(filename, FileWatchdog::DEFAULT_DELAY);
+ configureAndWatch(filename, FileWatchdog::DEFAULT_DELAY);
}
#endif
#if LOG4CXX_CFSTRING_API
void DOMConfigurator::configureAndWatch(const CFStringRef& filename)
{
- configureAndWatch(filename, FileWatchdog::DEFAULT_DELAY);
+ configureAndWatch(filename, FileWatchdog::DEFAULT_DELAY);
}
#endif
void DOMConfigurator::configureAndWatch(const std::string& filename, long delay)
{
- File file(filename);
+ File file(filename);
#if APR_HAS_THREADS
- if ( xdog )
- {
- APRInitializer::unregisterCleanup(xdog);
- delete xdog;
- }
+ if ( xdog )
+ {
+ APRInitializer::unregisterCleanup(xdog);
+ delete xdog;
+ }
- xdog = new XMLWatchdog(file);
- APRInitializer::registerCleanup(xdog);
- xdog->setDelay(delay);
- xdog->start();
+ xdog = new XMLWatchdog(file);
+ APRInitializer::registerCleanup(xdog);
+ xdog->setDelay(delay);
+ xdog->start();
#else
- DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
+ DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
#endif
}
#if LOG4CXX_WCHAR_T_API
void DOMConfigurator::configureAndWatch(const std::wstring& filename, long delay)
{
- File file(filename);
+ File file(filename);
#if APR_HAS_THREADS
- if ( xdog )
- {
- APRInitializer::unregisterCleanup(xdog);
- delete xdog;
- }
+ if ( xdog )
+ {
+ APRInitializer::unregisterCleanup(xdog);
+ delete xdog;
+ }
- xdog = new XMLWatchdog(file);
- APRInitializer::registerCleanup(xdog);
- xdog->setDelay(delay);
- xdog->start();
+ xdog = new XMLWatchdog(file);
+ APRInitializer::registerCleanup(xdog);
+ xdog->setDelay(delay);
+ xdog->start();
#else
- DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
+ DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
#endif
}
#endif
@@ -936,21 +936,21 @@ void DOMConfigurator::configureAndWatch(const std::wstring& filename, long delay
#if LOG4CXX_UNICHAR_API
void DOMConfigurator::configureAndWatch(const std::basic_string<UniChar>& filename, long delay)
{
- File file(filename);
+ File file(filename);
#if APR_HAS_THREADS
- if ( xdog )
- {
- APRInitializer::unregisterCleanup(xdog);
- delete xdog;
- }
+ if ( xdog )
+ {
+ APRInitializer::unregisterCleanup(xdog);
+ delete xdog;
+ }
- xdog = new XMLWatchdog(file);
- APRInitializer::registerCleanup(xdog);
- xdog->setDelay(delay);
- xdog->start();
+ xdog = new XMLWatchdog(file);
+ APRInitializer::registerCleanup(xdog);
+ xdog->setDelay(delay);
+ xdog->start();
#else
- DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
+ DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
#endif
}
#endif
@@ -958,154 +958,154 @@ void DOMConfigurator::configureAndWatch(const std::basic_string<UniChar>& filena
#if LOG4CXX_CFSTRING_API
void DOMConfigurator::configureAndWatch(const CFStringRef& filename, long delay)
{
- File file(filename);
+ File file(filename);
#if APR_HAS_THREADS
- if ( xdog )
- {
- APRInitializer::unregisterCleanup(xdog);
- delete xdog;
- }
+ if ( xdog )
+ {
+ APRInitializer::unregisterCleanup(xdog);
+ delete xdog;
+ }
- xdog = new XMLWatchdog(file);
- APRInitializer::registerCleanup(xdog);
- xdog->setDelay(delay);
- xdog->start();
+ xdog = new XMLWatchdog(file);
+ APRInitializer::registerCleanup(xdog);
+ xdog->setDelay(delay);
+ xdog->start();
#else
- DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
+ DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
#endif
}
#endif
void DOMConfigurator::parse(
- Pool& p,
- log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
- apr_xml_elem* element,
- apr_xml_doc* doc,
- AppenderMap& appenders)
+ Pool& p,
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* element,
+ apr_xml_doc* doc,
+ AppenderMap& appenders)
{
- std::string rootElementName(element->name);
-
- if (rootElementName != CONFIGURATION_TAG)
- {
- if (rootElementName == OLD_CONFIGURATION_TAG)
- {
- //LogLog::warn(LOG4CXX_STR("The <")+String(OLD_CONFIGURATION_TAG)+
- // LOG4CXX_STR("> element has been deprecated."));
- //LogLog::warn(LOG4CXX_STR("Use the <")+String(CONFIGURATION_TAG)+
- // LOG4CXX_STR("> element instead."));
- }
- else
- {
- LogLog::error(LOG4CXX_STR("DOM element is - not a <configuration> element."));
- return;
- }
- }
-
- LogString debugAttrib = subst(getAttribute(utf8Decoder, element, INTERNAL_DEBUG_ATTR));
-
- static const LogString NuLL(LOG4CXX_STR("NULL"));
- LogLog::debug(LOG4CXX_STR("debug attribute= \"") + debugAttrib + LOG4CXX_STR("\"."));
-
- // if the log4j.dtd is not specified in the XML file, then the
- // "debug" attribute is returned as the empty string.
- if (!debugAttrib.empty() && debugAttrib != NuLL)
- {
- LogLog::setInternalDebugging(OptionConverter::toBoolean(debugAttrib, true));
- }
- else
- {
- LogLog::debug(LOG4CXX_STR("Ignoring internalDebug attribute."));
- }
-
-
- LogString confDebug = subst(getAttribute(utf8Decoder, element, CONFIG_DEBUG_ATTR));
-
- if (!confDebug.empty() && confDebug != NuLL)
- {
- LogLog::warn(LOG4CXX_STR("The \"configDebug\" attribute is deprecated."));
- LogLog::warn(LOG4CXX_STR("Use the \"internalDebug\" attribute instead."));
- LogLog::setInternalDebugging(OptionConverter::toBoolean(confDebug, true));
- }
-
- LogString thresholdStr = subst(getAttribute(utf8Decoder, element, THRESHOLD_ATTR));
- LogLog::debug(LOG4CXX_STR("Threshold =\"") + thresholdStr + LOG4CXX_STR("\"."));
-
- if (!thresholdStr.empty() && thresholdStr != NuLL)
- {
- repository->setThreshold(thresholdStr);
- }
-
- LogString strstrValue = subst(getAttribute(utf8Decoder, element, STRINGSTREAM_ATTR));
- LogLog::debug(LOG4CXX_STR("Stringstream =\"") + strstrValue + LOG4CXX_STR("\"."));
-
- if (!strstrValue.empty() && strstrValue != NuLL)
- {
- MessageBufferUseStaticStream();
- }
-
- apr_xml_elem* currentElement;
-
- for (currentElement = element->first_child;
- currentElement;
- currentElement = currentElement->next)
- {
- std::string tagName(currentElement->name);
-
- if (tagName == CATEGORY_FACTORY_TAG)
- {
- parseLoggerFactory(p, utf8Decoder, currentElement);
- }
- }
-
- for (currentElement = element->first_child;
- currentElement;
- currentElement = currentElement->next)
- {
- std::string tagName(currentElement->name);
-
- if (tagName == CATEGORY || tagName == LOGGER)
- {
- parseLogger(p, utf8Decoder, currentElement, doc, appenders);
- }
- else if (tagName == ROOT_TAG)
- {
- parseRoot(p, utf8Decoder, currentElement, doc, appenders);
- }
- }
+ std::string rootElementName(element->name);
+
+ if (rootElementName != CONFIGURATION_TAG)
+ {
+ if (rootElementName == OLD_CONFIGURATION_TAG)
+ {
+ //LogLog::warn(LOG4CXX_STR("The <")+String(OLD_CONFIGURATION_TAG)+
+ // LOG4CXX_STR("> element has been deprecated."));
+ //LogLog::warn(LOG4CXX_STR("Use the <")+String(CONFIGURATION_TAG)+
+ // LOG4CXX_STR("> element instead."));
+ }
+ else
+ {
+ LogLog::error(LOG4CXX_STR("DOM element is - not a <configuration> element."));
+ return;
+ }
+ }
+
+ LogString debugAttrib = subst(getAttribute(utf8Decoder, element, INTERNAL_DEBUG_ATTR));
+
+ static const LogString NuLL(LOG4CXX_STR("NULL"));
+ LogLog::debug(LOG4CXX_STR("debug attribute= \"") + debugAttrib + LOG4CXX_STR("\"."));
+
+ // if the log4j.dtd is not specified in the XML file, then the
+ // "debug" attribute is returned as the empty string.
+ if (!debugAttrib.empty() && debugAttrib != NuLL)
+ {
+ LogLog::setInternalDebugging(OptionConverter::toBoolean(debugAttrib, true));
+ }
+ else
+ {
+ LogLog::debug(LOG4CXX_STR("Ignoring internalDebug attribute."));
+ }
+
+
+ LogString confDebug = subst(getAttribute(utf8Decoder, element, CONFIG_DEBUG_ATTR));
+
+ if (!confDebug.empty() && confDebug != NuLL)
+ {
+ LogLog::warn(LOG4CXX_STR("The \"configDebug\" attribute is deprecated."));
+ LogLog::warn(LOG4CXX_STR("Use the \"internalDebug\" attribute instead."));
+ LogLog::setInternalDebugging(OptionConverter::toBoolean(confDebug, true));
+ }
+
+ LogString thresholdStr = subst(getAttribute(utf8Decoder, element, THRESHOLD_ATTR));
+ LogLog::debug(LOG4CXX_STR("Threshold =\"") + thresholdStr + LOG4CXX_STR("\"."));
+
+ if (!thresholdStr.empty() && thresholdStr != NuLL)
+ {
+ repository->setThreshold(thresholdStr);
+ }
+
+ LogString strstrValue = subst(getAttribute(utf8Decoder, element, STRINGSTREAM_ATTR));
+ LogLog::debug(LOG4CXX_STR("Stringstream =\"") + strstrValue + LOG4CXX_STR("\"."));
+
+ if (!strstrValue.empty() && strstrValue != NuLL)
+ {
+ MessageBufferUseStaticStream();
+ }
+
+ apr_xml_elem* currentElement;
+
+ for (currentElement = element->first_child;
+ currentElement;
+ currentElement = currentElement->next)
+ {
+ std::string tagName(currentElement->name);
+
+ if (tagName == CATEGORY_FACTORY_TAG)
+ {
+ parseLoggerFactory(p, utf8Decoder, currentElement);
+ }
+ }
+
+ for (currentElement = element->first_child;
+ currentElement;
+ currentElement = currentElement->next)
+ {
+ std::string tagName(currentElement->name);
+
+ if (tagName == CATEGORY || tagName == LOGGER)
+ {
+ parseLogger(p, utf8Decoder, currentElement, doc, appenders);
+ }
+ else if (tagName == ROOT_TAG)
+ {
+ parseRoot(p, utf8Decoder, currentElement, doc, appenders);
+ }
+ }
}
LogString DOMConfigurator::subst(const LogString& value)
{
- try
- {
- return OptionConverter::substVars(value, props);
- }
- catch (IllegalArgumentException& e)
- {
- LogLog::warn(LOG4CXX_STR("Could not perform variable substitution."), e);
- return value;
- }
+ try
+ {
+ return OptionConverter::substVars(value, props);
+ }
+ catch (IllegalArgumentException& e)
+ {
+ LogLog::warn(LOG4CXX_STR("Could not perform variable substitution."), e);
+ return value;
+ }
}
LogString DOMConfigurator::getAttribute(
- log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
- apr_xml_elem* element,
- const std::string& attrName)
+ log4cxx::helpers::CharsetDecoderPtr& utf8Decoder,
+ apr_xml_elem* element,
+ const std::string& attrName)
{
- LogString attrValue;
-
- for (apr_xml_attr* attr = element->attr;
- attr;
- attr = attr->next)
- {
- if (attrName == attr->name)
- {
- ByteBuffer buf((char*) attr->value, strlen(attr->value));
- utf8Decoder->decode(buf, attrValue);
- }
- }
-
- return attrValue;
+ LogString attrValue;
+
+ for (apr_xml_attr* attr = element->attr;
+ attr;
+ attr = attr->next)
+ {
+ if (attrName == attr->name)
+ {
+ ByteBuffer buf((char*) attr->value, strlen(attr->value));
+ utf8Decoder->decode(buf, attrValue);
+ }
+ }
+
+ return attrValue;
}
diff --git a/src/main/cpp/exception.cpp b/src/main/cpp/exception.cpp
index f8bdd0f..0023a9a 100644
--- a/src/main/cpp/exception.cpp
+++ b/src/main/cpp/exception.cpp
@@ -28,246 +28,246 @@ using namespace log4cxx::helpers;
Exception::Exception(const LogString& msg1)
{
- std::string m;
- Transcoder::encode(msg1, m);
- size_t len = m.size();
+ std::string m;
+ Transcoder::encode(msg1, m);
+ size_t len = m.size();
- if (len > MSG_SIZE)
- {
- len = MSG_SIZE;
- }
+ if (len > MSG_SIZE)
+ {
+ len = MSG_SIZE;
+ }
#if defined(__STDC_LIB_EXT1__) || defined(__STDC_SECURE_LIB__)
- memcpy_s(msg, sizeof msg, m.data(), len);
+ memcpy_s(msg, sizeof msg, m.data(), len);
#else
- memcpy(msg, m.data(), len);
+ memcpy(msg, m.data(), len);
#endif
- msg[len] = 0;
+ msg[len] = 0;
}
Exception::Exception(const char* m)
{
#if defined(__STDC_LIB_EXT1__) || defined(__STDC_SECURE_LIB__)
- strncpy_s(msg, sizeof msg, m, MSG_SIZE);
+ strncpy_s(msg, sizeof msg, m, MSG_SIZE);
#else
- strncpy(msg, m, MSG_SIZE);
+ strncpy(msg, m, MSG_SIZE);
#endif
- msg[MSG_SIZE] = 0;
+ msg[MSG_SIZE] = 0;
}
Exception::Exception(const Exception& src) : std::exception()
{
#if defined(__STDC_LIB_EXT1__) || defined(__STDC_SECURE_LIB__)
- strcpy_s(msg, sizeof msg, src.msg);
+ strcpy_s(msg, sizeof msg, src.msg);
#else
- strcpy(msg, src.msg);
+ strcpy(msg, src.msg);
#endif
}
Exception& Exception::operator=(const Exception& src)
{
#if defined(__STDC_LIB_EXT1__) || defined(__STDC_SECURE_LIB__)
- strcpy_s(msg, sizeof msg, src.msg);
+ strcpy_s(msg, sizeof msg, src.msg);
#else
- strcpy(msg, src.msg);
+ strcpy(msg, src.msg);
#endif
- return *this;
+ return *this;
}
const char* Exception::what() const throw()
{
- return msg;
+ return msg;
}
RuntimeException::RuntimeException(log4cxx_status_t stat)
- : Exception(formatMessage(stat))
+ : Exception(formatMessage(stat))
{
}
RuntimeException::RuntimeException(const LogString& msg1)
- : Exception(msg1)
+ : Exception(msg1)
{
}
RuntimeException::RuntimeException(const RuntimeException& src)
- : Exception(src)
+ : Exception(src)
{
}
RuntimeException& RuntimeException::operator=(const RuntimeException& src)
{
- Exception::operator=(src);
- return *this;
+ Exception::operator=(src);
+ return *this;
}
LogString RuntimeException::formatMessage(log4cxx_status_t stat)
{
- LogString s(LOG4CXX_STR("RuntimeException: return code = "));
- Pool p;
- StringHelper::toString(stat, p, s);
- return s;
+ LogString s(LOG4CXX_STR("RuntimeException: return code = "));
+ Pool p;
+ StringHelper::toString(stat, p, s);
+ return s;
}
NullPointerException::NullPointerException(const LogString& msg1)
- : RuntimeException(msg1)
+ : RuntimeException(msg1)
{
}
NullPointerException::NullPointerException(const NullPointerException& src)
- : RuntimeException(src)
+ : RuntimeException(src)
{
}
NullPointerException& NullPointerException::operator=(const NullPointerException& src)
{
- RuntimeException::operator=(src);
- return *this;
+ RuntimeException::operator=(src);
+ return *this;
}
IllegalArgumentException::IllegalArgumentException(const LogString& msg1)
- : RuntimeException(msg1)
+ : RuntimeException(msg1)
{
}
IllegalArgumentException::IllegalArgumentException(const IllegalArgumentException& src)
- : RuntimeException(src)
+ : RuntimeException(src)
{
}
IllegalArgumentException& IllegalArgumentException::operator=(const IllegalArgumentException& src)
{
- RuntimeException::operator=(src);
- return *this;
+ RuntimeException::operator=(src);
+ return *this;
}
IOException::IOException()
- : Exception(LOG4CXX_STR("IO exception"))
+ : Exception(LOG4CXX_STR("IO exception"))
{
}
IOException::IOException(log4cxx_status_t stat)
- : Exception(formatMessage(stat))
+ : Exception(formatMessage(stat))
{
}
IOException::IOException(const LogString& msg1)
- : Exception(msg1)
+ : Exception(msg1)
{
}
IOException::IOException(const IOException& src)
- : Exception(src)
+ : Exception(src)
{
}
IOException& IOException::operator=(const IOException& src)
{
- Exception::operator=(src);
- return *this;
+ Exception::operator=(src);
+ return *this;
}
LogString IOException::formatMessage(log4cxx_status_t stat)
{
- LogString s(LOG4CXX_STR("IO Exception : status code = "));
- Pool p;
- StringHelper::toString(stat, p, s);
- return s;
+ LogString s(LOG4CXX_STR("IO Exception : status code = "));
+ Pool p;
+ StringHelper::toString(stat, p, s);
+ return s;
}
MissingResourceException::MissingResourceException(const LogString& key)
- : Exception(formatMessage(key))
+ : Exception(formatMessage(key))
{
}
MissingResourceException::MissingResourceException(const MissingResourceException& src)
- : Exception(src)
+ : Exception(src)
{
}
MissingResourceException& MissingResourceException::operator=(const MissingResourceException& src)
{
- Exception::operator=(src);
- return *this;
+ Exception::operator=(src);
+ return *this;
}
LogString MissingResourceException::formatMessage(const LogString& key)
{
- LogString s(LOG4CXX_STR("MissingResourceException: resource key = \""));
- s.append(key);
- s.append(LOG4CXX_STR("\"."));
- return s;
+ LogString s(LOG4CXX_STR("MissingResourceException: resource key = \""));
+ s.append(key);
+ s.append(LOG4CXX_STR("\"."));
+ return s;
}
PoolException::PoolException(log4cxx_status_t stat)
- : Exception(formatMessage(stat))
+ : Exception(formatMessage(stat))
{
}
PoolException::PoolException(const PoolException& src)
- : Exception(src)
+ : Exception(src)
{
}
PoolException& PoolException::operator=(const PoolException& src)
{
- Exception::operator=(src);
- return *this;
+ Exception::operator=(src);
+ return *this;
}
LogString PoolException::formatMessage(log4cxx_status_t)
{
- return LOG4CXX_STR("Pool exception");
+ return LOG4CXX_STR("Pool exception");
}
TranscoderException::TranscoderException(log4cxx_status_t stat)
- : Exception(formatMessage(stat))
+ : Exception(formatMessage(stat))
{
}
TranscoderException::TranscoderException(const TranscoderException& src)
- : Exception(src)
+ : Exception(src)
{
}
TranscoderException& TranscoderException::operator=(const TranscoderException& src)
{
- Exception::operator=(src);
- return *this;
+ Exception::operator=(src);
+ return *this;
}
LogString TranscoderException::formatMessage(log4cxx_status_t)
{
- return LOG4CXX_STR("Transcoder exception");
+ return LOG4CXX_STR("Transcoder exception");
}
MutexException::MutexException(log4cxx_status_t stat)
- : Exception(formatMessage(stat))
+ : Exception(formatMessage(stat))
{
}
MutexException::MutexException(const MutexException& src)
- : Exception(src)
+ : Exception(src)
{
}
MutexException& MutexException::operator=(const MutexException& src)
{
- Exception::operator=(src);
- return *this;
+ Exception::operator=(src);
+ return *this;
}
LogString MutexException::formatMessage(log4cxx_status_t stat)
{
- LogString s(LOG4CXX_STR("Mutex exception: stat = "));
- Pool p;
- StringHelper::toString(stat, p, s);
- return s;
+ LogString s(LOG4CXX_STR("Mutex exception: stat = "));
+ Pool p;
+ StringHelper::toString(stat, p, s);
+ return s;
}
InterruptedException::InterruptedException() : Exception(LOG4CXX_STR("Thread was interrupted"))
@@ -275,146 +275,146 @@ InterruptedException::InterruptedException() : Exception(LOG4CXX_STR("Thread was
}
InterruptedException::InterruptedException(log4cxx_status_t stat)
- : Exception(formatMessage(stat))
+ : Exception(formatMessage(stat))
{
}
InterruptedException::InterruptedException(const InterruptedException& src)
- : Exception(src)
+ : Exception(src)
{
}
InterruptedException& InterruptedException::operator=(const InterruptedException& src)
{
- Exception::operator=(src);
- return *this;
+ Exception::operator=(src);
+ return *this;
}
LogString InterruptedException::formatMessage(log4cxx_status_t stat)
{
- LogString s(LOG4CXX_STR("InterruptedException: stat = "));
- Pool p;
- StringHelper::toString(stat, p, s);
- return s;
+ LogString s(LOG4CXX_STR("InterruptedException: stat = "));
+ Pool p;
+ StringHelper::toString(stat, p, s);
+ return s;
}
ThreadException::ThreadException(log4cxx_status_t stat)
- : Exception(formatMessage(stat))
+ : Exception(formatMessage(stat))
{
}
ThreadException::ThreadException(const LogString& msg)
- : Exception(msg)
+ : Exception(msg)
{
}
ThreadException::ThreadException(const ThreadException& src)
- : Exception(src)
+ : Exception(src)
{
}
ThreadException& ThreadException::operator=(const ThreadException& src)
{
- Exception::operator=(src);
- return *this;
+ Exception::operator=(src);
+ return *this;
}
LogString ThreadException::formatMessage(log4cxx_status_t stat)
{
- LogString s(LOG4CXX_STR("Thread exception: stat = "));
- Pool p;
- StringHelper::toString(stat, p, s);
- return s;
+ LogString s(LOG4CXX_STR("Thread exception: stat = "));
+ Pool p;
+ StringHelper::toString(stat, p, s);
+ return s;
}
IllegalMonitorStateException::IllegalMonitorStateException(const LogString& msg1)
- : Exception(msg1)
+ : Exception(msg1)
{
}
IllegalMonitorStateException::IllegalMonitorStateException(const IllegalMonitorStateException& src)
- : Exception(src)
+ : Exception(src)
{
}
IllegalMonitorStateException& IllegalMonitorStateException::operator=(const IllegalMonitorStateException& src)
{
- Exception::operator=(src);
- return *this;
+ Exception::operator=(src);
+ return *this;
}
InstantiationException::InstantiationException(const LogString& msg1)
- : Exception(msg1)
+ : Exception(msg1)
{
}
InstantiationException::InstantiationException(const InstantiationException& src)
- : Exception(src)
+ : Exception(src)
{
}
InstantiationException& InstantiationException::operator=(const InstantiationException& src)
{
- Exception::operator=(src);
- return *this;
+ Exception::operator=(src);
+ return *this;
}
ClassNotFoundException::ClassNotFoundException(const LogString& className)
- : Exception(formatMessage(className))
+ : Exception(formatMessage(className))
{
}
ClassNotFoundException::ClassNotFoundException(const ClassNotFoundException& src)
- : Exception(src)
+ : Exception(src)
{
}
ClassNotFoundException& ClassNotFoundException::operator=(const ClassNotFoundException& src)
{
- Exception::operator=(src);
- return *this;
+ Exception::operator=(src);
+ return *this;
}
LogString ClassNotFoundException::formatMessage(const LogString& className)
{
- LogString s(LOG4CXX_STR("Class not found: "));
- s.append(className);
- return s;
+ LogString s(LOG4CXX_STR("Class not found: "));
+ s.append(className);
+ return s;
}
NoSuchElementException::NoSuchElementException()
- : Exception(LOG4CXX_STR("No such element"))
+ : Exception(LOG4CXX_STR("No such element"))
{
}
NoSuchElementException::NoSuchElementException(const NoSuchElementException& src)
- : Exception(src)
+ : Exception(src)
{
}
NoSuchElementException& NoSuchElementException::operator=(const NoSuchElementException& src)
{
- Exception::operator=(src);
- return *this;
+ Exception::operator=(src);
+ return *this;
}
IllegalStateException::IllegalStateException()
- : Exception(LOG4CXX_STR("Illegal state"))
+ : Exception(LOG4CXX_STR("Illegal state"))
{
}
IllegalStateException::IllegalStateException(const IllegalStateException& src)
- : Exception(src)
+ : Exception(src)
{
}
IllegalStateException& IllegalStateException::operator=(const IllegalStateException& src)
{
- Exception::operator=(src);
- return *this;
+ Exception::operator=(src);
+ return *this;
}
SocketException::SocketException(const LogString& msg) : IOException(msg)
@@ -426,14 +426,14 @@ SocketException::SocketException(log4cxx_status_t status) : IOException(status)
}
SocketException::SocketException(const SocketException& src)
- : IOException(src)
+ : IOException(src)
{
}
SocketException& SocketException::operator=(const SocketException& src)
{
- IOException::operator=(src);
- return *this;
+ IOException::operator=(src);
+ return *this;
}
ConnectException::ConnectException(log4cxx_status_t status) : SocketException(status)
@@ -441,14 +441,14 @@ ConnectException::ConnectException(log4cxx_status_t status) : SocketException(st
}
ConnectException::ConnectException(const ConnectException& src)
- : SocketException(src)
+ : SocketException(src)
{
}
ConnectException& ConnectException::operator=(const ConnectException& src)
{
- SocketException::operator=(src);
- return *this;
+ SocketException::operator=(src);
+ return *this;
}
ClosedChannelException::ClosedChannelException() : SocketException(LOG4CXX_STR("Attempt to write to closed socket"))
@@ -456,14 +456,14 @@ ClosedChannelException::ClosedChannelException() : SocketException(LOG4CXX_STR("
}
ClosedChannelException::ClosedChannelException(const ClosedChannelException& src)
- : SocketException(src)
+ : SocketException(src)
{
}
ClosedChannelException& ClosedChannelException::operator=(const ClosedChannelException& src)
{
- SocketException::operator=(src);
- return *this;
+ SocketException::operator=(src);
+ return *this;
}
BindException::BindException(log4cxx_status_t status) : SocketException(status)
@@ -471,14 +471,14 @@ BindException::BindException(log4cxx_status_t status) : SocketException(status)
}
BindException::BindException(const BindException& src)
- : SocketException(src)
+ : SocketException(src)
{
}
BindException& BindException::operator=(const BindException& src)
{
- SocketException::operator=(src);
- return *this;
+ SocketException::operator=(src);
+ return *this;
}
InterruptedIOException::InterruptedIOException(const LogString& msg) : IOException(msg)
@@ -486,28 +486,28 @@ InterruptedIOException::InterruptedIOException(const LogString& msg) : IOExcepti
}
InterruptedIOException::InterruptedIOException(const InterruptedIOException& src)
- : IOException(src)
+ : IOException(src)
{
}
InterruptedIOException& InterruptedIOException::operator=(const InterruptedIOException& src)
{
- IOException::operator=(src);
- return *this;
+ IOException::operator=(src);
+ return *this;
}
SocketTimeoutException::SocketTimeoutException()
- : InterruptedIOException(LOG4CXX_STR("SocketTimeoutException"))
+ : InterruptedIOException(LOG4CXX_STR("SocketTimeoutException"))
{
}
SocketTimeoutException::SocketTimeoutException(const SocketTimeoutException& src)
- : InterruptedIOException(src)
+ : InterruptedIOException(src)
{
}
SocketTimeoutException& SocketTimeoutException::operator=(const SocketTimeoutException& src)
{
- InterruptedIOException::operator=(src);
- return *this;
+ InterruptedIOException::operator=(src);
+ return *this;
}
diff --git a/src/main/cpp/fallbackerrorhandler.cpp b/src/main/cpp/fallbackerrorhandler.cpp
index 36509cc..7e59270 100644
--- a/src/main/cpp/fallbackerrorhandler.cpp
+++ b/src/main/cpp/fallbackerrorhandler.cpp
@@ -31,72 +31,72 @@ using namespace log4cxx::varia;
IMPLEMENT_LOG4CXX_OBJECT(FallbackErrorHandler)
FallbackErrorHandler::FallbackErrorHandler()
- : backup(), primary(), loggers()
+ : backup(), primary(), loggers()
{
}
void FallbackErrorHandler::addRef() const
{
- ObjectImpl::addRef();
+ ObjectImpl::addRef();
}
void FallbackErrorHandler::releaseRef() const
{
- ObjectImpl::releaseRef();
+ ObjectImpl::releaseRef();
}
void FallbackErrorHandler::setLogger(const LoggerPtr& logger)
{
- LogLog::debug(((LogString) LOG4CXX_STR("FB: Adding logger ["))
- + logger->getName() + LOG4CXX_STR("]."));
- loggers.push_back(logger);
+ LogLog::debug(((LogString) LOG4CXX_STR("FB: Adding logger ["))
+ + logger->getName() + LOG4CXX_STR("]."));
+ loggers.push_back(logger);
}
void FallbackErrorHandler::error(const LogString& message,
- const std::exception& e,
- int errorCode) const
+ const std::exception& e,
+ int errorCode) const
{
- error(message, e, errorCode, 0);
+ error(message, e, errorCode, 0);
}
void FallbackErrorHandler::error(const LogString& message,
- const std::exception& e,
- int, const spi::LoggingEventPtr&) const
+ const std::exception& e,
+ int, const spi::LoggingEventPtr&) const
{
- LogLog::debug(((LogString) LOG4CXX_STR("FB: The following error reported: "))
- + message, e);
- LogLog::debug(LOG4CXX_STR("FB: INITIATING FALLBACK PROCEDURE."));
+ LogLog::debug(((LogString) LOG4CXX_STR("FB: The following error reported: "))
+ + message, e);
+ LogLog::debug(LOG4CXX_STR("FB: INITIATING FALLBACK PROCEDURE."));
- for (size_t i = 0; i < loggers.size(); i++)
- {
- LoggerPtr& l = (LoggerPtr&)loggers.at(i);
- LogLog::debug(((LogString) LOG4CXX_STR("FB: Searching for ["))
- + primary->getName() + LOG4CXX_STR("] in logger [")
- + l->getName() + LOG4CXX_STR("]."));
- LogLog::debug(((LogString) LOG4CXX_STR("FB: Replacing ["))
- + primary->getName() + LOG4CXX_STR("] by [")
- + backup->getName() + LOG4CXX_STR("] in logger [")
- + l->getName() + LOG4CXX_STR("]."));
- l->removeAppender(primary);
- LogLog::debug(((LogString) LOG4CXX_STR("FB: Adding appender ["))
- + backup->getName() + LOG4CXX_STR("] to logger ")
- + l->getName());
- l->addAppender(backup);
- }
+ for (size_t i = 0; i < loggers.size(); i++)
+ {
+ LoggerPtr& l = (LoggerPtr&)loggers.at(i);
+ LogLog::debug(((LogString) LOG4CXX_STR("FB: Searching for ["))
+ + primary->getName() + LOG4CXX_STR("] in logger [")
+ + l->getName() + LOG4CXX_STR("]."));
+ LogLog::debug(((LogString) LOG4CXX_STR("FB: Replacing ["))
+ + primary->getName() + LOG4CXX_STR("] by [")
+ + backup->getName() + LOG4CXX_STR("] in logger [")
+ + l->getName() + LOG4CXX_STR("]."));
+ l->removeAppender(primary);
+ LogLog::debug(((LogString) LOG4CXX_STR("FB: Adding appender ["))
+ + backup->getName() + LOG4CXX_STR("] to logger ")
+ + l->getName());
+ l->addAppender(backup);
+ }
}
void FallbackErrorHandler::setAppender(const AppenderPtr& primary1)
{
- LogLog::debug(((LogString) LOG4CXX_STR("FB: Setting primary appender to ["))
- + primary1->getName() + LOG4CXX_STR("]."));
- this->primary = primary1;
+ LogLog::debug(((LogString) LOG4CXX_STR("FB: Setting primary appender to ["))
+ + primary1->getName() + LOG4CXX_STR("]."));
+ this->primary = primary1;
}
void FallbackErrorHandler::setBackupAppender(const AppenderPtr& backup1)
{
- LogLog::debug(((LogString) LOG4CXX_STR("FB: Setting backup appender to ["))
- + backup1->getName() + LOG4CXX_STR("]."));
- this->backup = backup1;
+ LogLog::debug(((LogString) LOG4CXX_STR("FB: Setting backup appender to ["))
+ + backup1->getName() + LOG4CXX_STR("]."));
+ this->backup = backup1;
}
void FallbackErrorHandler::activateOptions(Pool&)
diff --git a/src/main/cpp/file.cpp b/src/main/cpp/file.cpp
index bddea7e..b5d09b8 100644
--- a/src/main/cpp/file.cpp
+++ b/src/main/cpp/file.cpp
@@ -34,81 +34,81 @@ File::File()
template<class S>
static LogString decodeLS(const S* src)
{
- LogString dst;
+ LogString dst;
- if (src != 0)
- {
- Transcoder::decode(src, dst);
- }
+ if (src != 0)
+ {
+ Transcoder::decode(src, dst);
+ }
- return dst;
+ return dst;
}
template<class S>
static LogString decodeLS(const std::basic_string<S>& src)
{
- LogString dst;
- Transcoder::decode(src, dst);
- return dst;
+ LogString dst;
+ Transcoder::decode(src, dst);
+ return dst;
}
File::File(const std::string& name1)
- : path(decodeLS(name1))
+ : path(decodeLS(name1))
{
}
File::File(const char* name1)
- : path(decodeLS(name1))
+ : path(decodeLS(name1))
{
}
#if LOG4CXX_WCHAR_T_API
File::File(const std::wstring& name1)
- : path(decodeLS(name1))
+ : path(decodeLS(name1))
{
}
File::File(const wchar_t* name1)
- : path(decodeLS(name1))
+ : path(decodeLS(name1))
{
}
#endif
#if LOG4CXX_UNICHAR_API
File::File(const std::basic_string<UniChar>& name1)
- : path(decodeLS(name1))
+ : path(decodeLS(name1))
{
}
File::File(const UniChar* name1)
- : path(decodeLS(name1))
+ : path(decodeLS(name1))
{
}
#endif
#if LOG4CXX_CFSTRING_API
File::File(const CFStringRef& name1)
- : path(decodeLS(name1))
+ : path(decodeLS(name1))
{
}
#endif
File::File(const File& src)
- : path(src.path)
+ : path(src.path)
{
}
File& File::operator=(const File& src)
{
- if (this == &src)
- {
- return *this;
- }
+ if (this == &src)
+ {
+ return *this;
+ }
- path.assign(src.path);
+ path.assign(src.path);
- return *this;
+ return *this;
}
@@ -119,194 +119,194 @@ File::~File()
LogString File::getPath() const
{
- return path;
+ return path;
}
File& File::setPath(const LogString& newName)
{
- path.assign(newName);
- return *this;
+ path.assign(newName);
+ return *this;
}
LogString File::getName() const
{
- const logchar slashes[] = { 0x2F, 0x5C, 0 };
- size_t lastSlash = path.find_last_of(slashes);
+ const logchar slashes[] = { 0x2F, 0x5C, 0 };
+ size_t lastSlash = path.find_last_of(slashes);
- if (lastSlash != LogString::npos)
- {
- return path.substr(lastSlash + 1);
- }
+ if (lastSlash != LogString::npos)
+ {
+ return path.substr(lastSlash + 1);
+ }
- return path;
+ return path;
}
char* File::getPath(Pool& p) const
{
- int style = APR_FILEPATH_ENCODING_UNKNOWN;
- apr_filepath_encoding(&style, p.getAPRPool());
- char* retval = NULL;
-
- if (style == APR_FILEPATH_ENCODING_UTF8)
- {
- retval = Transcoder::encodeUTF8(path, p);
- }
- else
- {
- retval = Transcoder::encode(path, p);
- }
-
- return retval;
+ int style = APR_FILEPATH_ENCODING_UNKNOWN;
+ apr_filepath_encoding(&style, p.getAPRPool());
+ char* retval = NULL;
+
+ if (style == APR_FILEPATH_ENCODING_UTF8)
+ {
+ retval = Transcoder::encodeUTF8(path, p);
+ }
+ else
+ {
+ retval = Transcoder::encode(path, p);
+ }
+
+ return retval;
}
log4cxx_status_t File::open(apr_file_t** file, int flags,
- int perm, Pool& p) const
+ int perm, Pool& p) const
{
- return apr_file_open(file, getPath(p), flags, perm, p.getAPRPool());
+ return apr_file_open(file, getPath(p), flags, perm, p.getAPRPool());
}
bool File::exists(Pool& p) const
{
- apr_finfo_t finfo;
- apr_status_t rv = apr_stat(&finfo, getPath(p),
- 0, p.getAPRPool());
- return rv == APR_SUCCESS;
+ apr_finfo_t finfo;
+ apr_status_t rv = apr_stat(&finfo, getPath(p),
+ 0, p.getAPRPool());
+ return rv == APR_SUCCESS;
}
char* File::convertBackSlashes(char* src)
{
- for (char* c = src; *c != 0; c++)
- {
- if (*c == '\\')
- {
- *c = '/';
- }
- }
-
- return src;
+ for (char* c = src; *c != 0; c++)
+ {
+ if (*c == '\\')
+ {
+ *c = '/';
+ }
+ }
+
+ return src;
}
bool File::deleteFile(Pool& p) const
{
- apr_status_t rv = apr_file_remove(convertBackSlashes(getPath(p)),
- p.getAPRPool());
- return rv == APR_SUCCESS;
+ apr_status_t rv = apr_file_remove(convertBackSlashes(getPath(p)),
+ p.getAPRPool());
+ return rv == APR_SUCCESS;
}
bool File::renameTo(const File& dest, Pool& p) const
{
- apr_status_t rv = apr_file_rename(convertBackSlashes(getPath(p)),
- convertBackSlashes(dest.getPath(p)),
- p.getAPRPool());
- return rv == APR_SUCCESS;
+ apr_status_t rv = apr_file_rename(convertBackSlashes(getPath(p)),
+ convertBackSlashes(dest.getPath(p)),
+ p.getAPRPool());
+ return rv == APR_SUCCESS;
}
size_t File::length(Pool& pool) const
{
- apr_finfo_t finfo;
- apr_status_t rv = apr_stat(&finfo, getPath(pool),
- APR_FINFO_SIZE, pool.getAPRPool());
+ apr_finfo_t finfo;
+ apr_status_t rv = apr_stat(&finfo, getPath(pool),
+ APR_FINFO_SIZE, pool.getAPRPool());
- if (rv == APR_SUCCESS)
- {
- return (size_t) finfo.size;
- }
+ if (rv == APR_SUCCESS)
+ {
+ return (size_t) finfo.size;
+ }
- return 0;
+ return 0;
}
log4cxx_time_t File::lastModified(Pool& pool) const
{
- apr_finfo_t finfo;
- apr_status_t rv = apr_stat(&finfo, getPath(pool),
- APR_FINFO_MTIME, pool.getAPRPool());
+ apr_finfo_t finfo;
+ apr_status_t rv = apr_stat(&finfo, getPath(pool),
+ APR_FINFO_MTIME, pool.getAPRPool());
- if (rv == APR_SUCCESS)
- {
- return finfo.mtime;
- }
+ if (rv == APR_SUCCESS)
+ {
+ return finfo.mtime;
+ }
- return 0;
+ return 0;
}
std::vector<LogString> File::list(Pool& p) const
{
- apr_dir_t* dir;
- apr_finfo_t entry;
- std::vector<LogString> filenames;
-
... 58821 lines suppressed ...