You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4cxx-dev@logging.apache.org by ca...@apache.org on 2005/02/22 18:59:50 UTC
cvs commit: logging-log4cxx/src syslogappender.cpp
carnold 2005/02/22 09:59:50
Modified: include/log4cxx portability.h
src syslogappender.cpp
Log:
LOGCXX-66: SyslogAppender unstubbed, syslog() assumed on Unix
Revision Changes Path
1.11 +4 -0 logging-log4cxx/include/log4cxx/portability.h
Index: portability.h
===================================================================
RCS file: /home/cvs/logging-log4cxx/include/log4cxx/portability.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- portability.h 15 Feb 2005 23:48:06 -0000 1.10
+++ portability.h 22 Feb 2005 17:59:50 -0000 1.11
@@ -60,4 +60,8 @@
#define LOG4CXX_HAVE_XML 1
#endif
+#if !defined(_WIN32)
+#define LOG4CXX_HAVE_SYSLOG 1
+#endif
+
#endif //_LOG4CXX_PORTABILITY_H
1.14 +15 -19 logging-log4cxx/src/syslogappender.cpp
Index: syslogappender.cpp
===================================================================
RCS file: /home/cvs/logging-log4cxx/src/syslogappender.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- syslogappender.cpp 15 Feb 2005 23:56:01 -0000 1.13
+++ syslogappender.cpp 22 Feb 2005 17:59:50 -0000 1.14
@@ -1,5 +1,5 @@
/*
- * Copyright 2003,2004 The Apache Software Foundation.
+ * Copyright 2003,2005 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,6 +20,7 @@
#include <log4cxx/helpers/datagramsocket.h>
#include <log4cxx/spi/loggingevent.h>
#include <log4cxx/level.h>
+#include <log4cxx/helpers/transcoder.h>
#ifdef LOG4CXX_HAVE_SYSLOG
#include <syslog.h>
@@ -252,23 +253,20 @@
if (!isAsSevereAsThreshold(event->getLevel()))
return;
-#if 0
-// TODO
+ LogString msg;
+ layout->format(msg, event, p);
// On the local host, we can directly use the system function 'syslog'
// if it is available
#ifdef LOG4CXX_HAVE_SYSLOG
if (sw == 0)
{
- sbuf;
- layout->format(sbuf, event);
- std::string msg;
- log4cxx::helpers::Transcoder::encode(s
- USES_CONVERSION;
+ std::string sbuf;
+ Transcoder::encode(msg, sbuf);
// use of "%s" to avoid a security hole
- ::syslog(syslogFacility | event->getLevel()->getSyslogEquivalent(),
- "%s", T2A(sbuf.str().c_str()));
+ ::syslog(syslogFacility | event->getLevel()->getSyslogEquivalent(),
+ "%s", sbuf.c_str());
return;
}
@@ -282,18 +280,16 @@
return;
}
- LogStringBuffer sbuf;
-
- sbuf << LOG4CXX_STR("<") << (syslogFacility | event->getLevel()->getSyslogEquivalent()) << LOG4CXX_STR(">");
+ LogString sbuf(1, LOG4CXX_STR('<'));
+ StringHelper::toString((syslogFacility | event->getLevel()->getSyslogEquivalent()),
+ p, sbuf);
+ sbuf.append(1, LOG4CXX_STR('>'));
if (facilityPrinting)
{
- sbuf << facilityStr;
+ sbuf.append(facilityStr);
}
- layout->format(sbuf, event);
- //LogLog::debug(sbuf.str());
- sw->write(sbuf.str());
-
-#endif
+ sbuf.append(msg);
+ sw->write(sbuf);
}
void SyslogAppender::activateOptions(Pool& p)