Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef _LOG4CPP_REMOTESYSLOGAPPENDER_HH
00011 #define _LOG4CPP_REMOTESYSLOGAPPENDER_HH
00012
00013 #include <log4cpp/Portability.hh>
00014 #include <string>
00015 #include <stdarg.h>
00016 #include <log4cpp/LayoutAppender.hh>
00017 #include <log4cpp/Priority.hh>
00018 #ifdef WIN32
00019 #include <winsock2.h>
00020 #else
00021 #include <netinet/in.h>
00022 #endif
00023
00024 #ifdef LOG4CPP_HAVE_SYSLOG
00025 #include <syslog.h>
00026 #else
00027
00028 typedef enum {
00029 LOG_EMERG = 0,
00030 LOG_ALERT = 1,
00031 LOG_CRIT = 2,
00032 LOG_ERR = 3,
00033 LOG_WARNING = 4,
00034 LOG_NOTICE = 5,
00035 LOG_INFO = 6,
00036 LOG_DEBUG = 7,
00037 } SyslogLevel;
00038
00039 typedef enum {
00040 LOG_KERN = (0<<3),
00041 LOG_USER = (1<<3),
00042 LOG_MAIL = (2<<3),
00043 LOG_DAEMON = (3<<3),
00044 LOG_AUTH = (4<<3),
00045 LOG_SYSLOG = (5<<3),
00046 LOG_LPR = (6<<3),
00047 LOG_NEWS = (7<<3),
00048 LOG_UUCP = (8<<3),
00049 LOG_CRON = (9<<3),
00050 LOG_AUTHPRIV = (10<<3),
00051 LOG_FTP = (11<<3),
00052
00053
00054 LOG_LOCAL0 = (16<<3),
00055 LOG_LOCAL1 = (17<<3),
00056 LOG_LOCAL2 = (18<<3),
00057 LOG_LOCAL3 = (19<<3),
00058 LOG_LOCAL4 = (20<<3),
00059 LOG_LOCAL5 = (21<<3),
00060 LOG_LOCAL6 = (22<<3),
00061 LOG_LOCAL7 = (23<<3),
00062 } SyslogFacility;
00063 #endif
00064
00065 namespace log4cpp {
00066
00072 class LOG4CPP_EXPORT RemoteSyslogAppender : public LayoutAppender {
00073 public:
00074
00080 static int toSyslogPriority(Priority::Value priority);
00081
00094 RemoteSyslogAppender(const std::string& name,
00095 const std::string& syslogName,
00096 const std::string& relayer,
00097 int facility = LOG_USER,
00098 int portNumber = 514);
00099 virtual ~RemoteSyslogAppender();
00100
00104 virtual bool reopen();
00105
00109 virtual void close();
00110
00111 protected:
00112
00116 virtual void open();
00117
00122 virtual void _append(const LoggingEvent& event);
00123
00124 const std::string _syslogName;
00125 const std::string _relayer;
00126 int _facility;
00127 int _portNumber;
00128 #ifdef WIN32
00129 SOCKET _socket;
00130 #else
00131 int _socket;
00132 #endif
00133 in_addr_t _ipAddr;
00134 private:
00135 int _cludge;
00136 };
00137 }
00138
00139 #endif // _LOG4CPP_REMOTESYSLOGAPPENDER_HH