00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef _LOG4CPP_REMOTESYSLOGAPPENDER_HH
00011 #define _LOG4CPP_REMOTESYSLOGAPPENDER_HH
00012
00013 #include <string>
00014 #include <stdarg.h>
00015 #include "log4cpp/Export.hh"
00016 #include "log4cpp/LayoutAppender.hh"
00017 #include "log4cpp/Priority.hh"
00018
00019 #ifdef LOG4CPP_HAVE_SYSLOG
00020 #include <syslog.h>
00021 #else
00022
00023 typedef enum {
00024 LOG_EMERG = 0,
00025 LOG_ALERT = 1,
00026 LOG_CRIT = 2,
00027 LOG_ERR = 3,
00028 LOG_WARNING = 4,
00029 LOG_NOTICE = 5,
00030 LOG_INFO = 6,
00031 LOG_DEBUG = 7,
00032 } SyslogLevel;
00033
00034 typedef enum {
00035 LOG_KERN = (0<<3),
00036 LOG_USER = (1<<3),
00037 LOG_MAIL = (2<<3),
00038 LOG_DAEMON = (3<<3),
00039 LOG_AUTH = (4<<3),
00040 LOG_SYSLOG = (5<<3),
00041 LOG_LPR = (6<<3),
00042 LOG_NEWS = (7<<3),
00043 LOG_UUCP = (8<<3),
00044 LOG_CRON = (9<<3),
00045 LOG_AUTHPRIV = (10<<3),
00046 LOG_FTP = (11<<3),
00047
00048
00049 LOG_LOCAL0 = (16<<3),
00050 LOG_LOCAL1 = (17<<3),
00051 LOG_LOCAL2 = (18<<3),
00052 LOG_LOCAL3 = (19<<3),
00053 LOG_LOCAL4 = (20<<3),
00054 LOG_LOCAL5 = (21<<3),
00055 LOG_LOCAL6 = (22<<3),
00056 LOG_LOCAL7 = (23<<3),
00057 } SyslogFacility;
00058 #endif
00059
00060 namespace log4cpp {
00061
00067 class LOG4CPP_EXPORT RemoteSyslogAppender : public LayoutAppender {
00068 public:
00069
00075 static int toSyslogPriority(Priority::Value priority);
00076
00087 RemoteSyslogAppender(const std::string& name,
00088 const std::string& syslogName,
00089 const std::string& relayer,
00090 int facility = LOG_USER,
00091 int portNumber = 514);
00092 virtual ~RemoteSyslogAppender();
00093
00097 virtual bool reopen();
00098
00102 virtual void close();
00103
00104 protected:
00105
00109 virtual void open();
00110
00115 virtual void _append(const LoggingEvent& event);
00116
00117 const std::string _syslogName;
00118 const std::string _relayer;
00119 int _facility;
00120 int _portNumber;
00121 int _socket;
00122 unsigned long _ipAddr;
00123 private:
00124 int _cludge;
00125 };
00126 }
00127
00128 #endif // _LOG4CPP_REMOTESYSLOGAPPENDER_HH