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 ch...@apache.org on 2015/01/29 15:25:00 UTC
svn commit: r1655676 - in /incubator/log4cxx/trunk/src/main:
cpp/syslogappender.cpp cpp/syslogwriter.cpp
include/log4cxx/helpers/syslogwriter.h include/log4cxx/net/syslogappender.h
Author: chand
Date: Thu Jan 29 14:25:00 2015
New Revision: 1655676
URL: http://svn.apache.org/r1655676
Log:
LOGCXX-442:Using non standard ports with syslog.Credits to 'Ulrik'.
Modified:
incubator/log4cxx/trunk/src/main/cpp/syslogappender.cpp
incubator/log4cxx/trunk/src/main/cpp/syslogwriter.cpp
incubator/log4cxx/trunk/src/main/include/log4cxx/helpers/syslogwriter.h
incubator/log4cxx/trunk/src/main/include/log4cxx/net/syslogappender.h
Modified: incubator/log4cxx/trunk/src/main/cpp/syslogappender.cpp
URL: http://svn.apache.org/viewvc/incubator/log4cxx/trunk/src/main/cpp/syslogappender.cpp?rev=1655676&r1=1655675&r2=1655676&view=diff
==============================================================================
--- incubator/log4cxx/trunk/src/main/cpp/syslogappender.cpp (original)
+++ incubator/log4cxx/trunk/src/main/cpp/syslogappender.cpp Thu Jan 29 14:25:00 2015
@@ -323,6 +323,17 @@ void SyslogAppender::setSyslogHost(const
delete this->sw;
this->sw = 0;
}
+ LogString slHost = syslogHost1;
+ int slHostPort = -1;
+
+ LogString::size_type colonPos = 0;
+ colonPos = slHost.rfind(':');
+ if (colonPos != LogString::npos)
+ {
+ slHostPort = StringHelper::toInt(slHost.substr(colonPos+1));
+ // Erase the :port part of the host name
+ slHost.erase( colonPos );
+ }
// On the local host, we can directly use the system function 'syslog'
// if it is available (cf. append)
@@ -330,9 +341,11 @@ void SyslogAppender::setSyslogHost(const
if (syslogHost1 != LOG4CXX_STR("localhost") && syslogHost1 != LOG4CXX_STR("127.0.0.1")
&& !syslogHost1.empty())
#endif
- this->sw = new SyslogWriter(syslogHost1);
+ if (slHostPort >= 0) this->sw = new SyslogWriter(slHost, slHostPort);
+ else this->sw = new SyslogWriter(slHost);
- this->syslogHost = syslogHost1;
+ this->syslogHost = slHost;
+ this->syslogHostPort = slHostPort;
}
Modified: incubator/log4cxx/trunk/src/main/cpp/syslogwriter.cpp
URL: http://svn.apache.org/viewvc/incubator/log4cxx/trunk/src/main/cpp/syslogwriter.cpp?rev=1655676&r1=1655675&r2=1655676&view=diff
==============================================================================
--- incubator/log4cxx/trunk/src/main/cpp/syslogwriter.cpp (original)
+++ incubator/log4cxx/trunk/src/main/cpp/syslogwriter.cpp Thu Jan 29 14:25:00 2015
@@ -26,13 +26,11 @@
#include <log4cxx/helpers/datagrampacket.h>
#include <log4cxx/helpers/transcoder.h>
-#define SYSLOG_PORT 514
-
using namespace log4cxx;
using namespace log4cxx::helpers;
-SyslogWriter::SyslogWriter(const LogString& syslogHost1)
-: syslogHost(syslogHost1)
+SyslogWriter::SyslogWriter(const LogString& syslogHost1, int syslogHostPort1)
+: syslogHost(syslogHost1), syslogHostPort(syslogHostPort1)
{
try
{
@@ -61,7 +59,7 @@ void SyslogWriter::write(const LogString
DatagramPacketPtr packet(
new DatagramPacket((void*) data.data(), data.length(),
- address, SYSLOG_PORT));
+ address, syslogHostPort));
ds->send(packet);
}
Modified: incubator/log4cxx/trunk/src/main/include/log4cxx/helpers/syslogwriter.h
URL: http://svn.apache.org/viewvc/incubator/log4cxx/trunk/src/main/include/log4cxx/helpers/syslogwriter.h?rev=1655676&r1=1655675&r2=1655676&view=diff
==============================================================================
--- incubator/log4cxx/trunk/src/main/include/log4cxx/helpers/syslogwriter.h (original)
+++ incubator/log4cxx/trunk/src/main/include/log4cxx/helpers/syslogwriter.h Thu Jan 29 14:25:00 2015
@@ -34,11 +34,13 @@
class LOG4CXX_EXPORT SyslogWriter
{
public:
- SyslogWriter(const LogString& syslogHost);
+ #define SYSLOG_PORT 514
+ SyslogWriter(const LogString& syslogHost, int syslogHostPort = SYSLOG_PORT);
void write(const LogString& string);
private:
LogString syslogHost;
+ int syslogHostPort;
InetAddressPtr address;
DatagramSocketPtr ds;
};
Modified: incubator/log4cxx/trunk/src/main/include/log4cxx/net/syslogappender.h
URL: http://svn.apache.org/viewvc/incubator/log4cxx/trunk/src/main/include/log4cxx/net/syslogappender.h?rev=1655676&r1=1655675&r2=1655676&view=diff
==============================================================================
--- incubator/log4cxx/trunk/src/main/include/log4cxx/net/syslogappender.h (original)
+++ incubator/log4cxx/trunk/src/main/include/log4cxx/net/syslogappender.h Thu Jan 29 14:25:00 2015
@@ -129,6 +129,7 @@ namespace log4cxx
bool facilityPrinting;
helpers::SyslogWriter * sw;
LogString syslogHost;
+ int syslogHostPort;
private:
SyslogAppender(const SyslogAppender&);
SyslogAppender& operator=(const SyslogAppender&);