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&);