/usr/include/log4shib/RemoteSyslogAppender.hh is in liblog4shib-dev 1.0.9-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | /*
* SyslogAppender.hh
*
* Copyright 2001, LifeLine Networks BV (www.lifeline.nl). All rights reserved.
* Copyright 2001, Walter Stroebel. All rights reserved.
*
* See the COPYING file for the terms of usage and distribution.
*/
#ifndef _LOG4SHIB_REMOTESYSLOGAPPENDER_HH
#define _LOG4SHIB_REMOTESYSLOGAPPENDER_HH
#include <log4shib/Portability.hh>
#include <string>
#include <stdarg.h>
#include <log4shib/LayoutAppender.hh>
#include <log4shib/Priority.hh>
#ifdef WIN32
#include <winsock2.h>
#else
#include <netinet/in.h>
#endif
#ifdef LOG4SHIB_HAVE_SYSLOG
#include <syslog.h>
#else
/// from syslog.h
typedef enum {
LOG_EMERG = 0, ///< system is unusable
LOG_ALERT = 1, ///< action must be taken immediately
LOG_CRIT = 2, ///< critical conditions
LOG_ERR = 3, ///< error conditions
LOG_WARNING = 4, ///< warning conditions
LOG_NOTICE = 5, ///< normal but significant condition
LOG_INFO = 6, ///< informational
LOG_DEBUG = 7, ///< debug-level messages
} SyslogLevel;
typedef enum {
LOG_KERN = (0<<3), ///< kernel messages
LOG_USER = (1<<3), ///< random user-level messages
LOG_MAIL = (2<<3), ///< mail system
LOG_DAEMON = (3<<3), ///< system daemons
LOG_AUTH = (4<<3), ///< security/authorization messages
LOG_SYSLOG = (5<<3), ///< messages generated internally by syslogd
LOG_LPR = (6<<3), ///< line printer subsystem
LOG_NEWS = (7<<3), ///< network news subsystem
LOG_UUCP = (8<<3), ///< UUCP subsystem
LOG_CRON = (9<<3), ///< clock daemon
LOG_AUTHPRIV = (10<<3), ///< security/authorization messages (private)
LOG_FTP = (11<<3), ///< ftp daemon
/* other codes through 15 reserved for system use */
LOG_LOCAL0 = (16<<3), ///< reserved for local use
LOG_LOCAL1 = (17<<3), ///< reserved for local use
LOG_LOCAL2 = (18<<3), ///< reserved for local use
LOG_LOCAL3 = (19<<3), ///< reserved for local use
LOG_LOCAL4 = (20<<3), ///< reserved for local use
LOG_LOCAL5 = (21<<3), ///< reserved for local use
LOG_LOCAL6 = (22<<3), ///< reserved for local use
LOG_LOCAL7 = (23<<3), ///< reserved for local use
} SyslogFacility;
#endif
namespace log4shib {
/**
* RemoteSyslogAppender sends LoggingEvents to a remote syslog system.
*
* Also see: draft-ietf-syslog-syslog-12.txt
**/
class LOG4SHIB_EXPORT RemoteSyslogAppender : public LayoutAppender {
public:
/**
* Translates a log4shib priority to a syslog priority
* @param priority The log4shib priority.
* @returns the syslog priority.
**/
static int toSyslogPriority(Priority::Value priority);
/**
* Instantiate a RemoteSyslogAppender with given name and name and
* facility for syslog.
* @param name The name of the Appender
* @param syslogName The ident parameter in the openlog(3) call.
* @param relayer The IP address or hostname of a standard syslog host.
* @param facility The syslog facility to log to. Defaults to LOG_USER.
* Value '-1' implies to use the default.
* @param portNumber An alternative port number. Defaults to the
* standard syslog port number (514).
* Value '-1' implies to use the default.
**/
RemoteSyslogAppender(const std::string& name,
const std::string& syslogName,
const std::string& relayer,
int facility = LOG_USER,
int portNumber = 514);
virtual ~RemoteSyslogAppender();
/**
* Closes and reopens the socket.
**/
virtual bool reopen();
/**
* Closes the socket
**/
virtual void close();
protected:
/**
* Just creates the socket.
**/
virtual void open();
/**
* Sends a LoggingEvent to the remote syslog.
* @param event the LoggingEvent to log.
**/
virtual void _append(const LoggingEvent& event);
const std::string _syslogName;
const std::string _relayer;
int _facility;
int _portNumber;
int _socket;
in_addr_t _ipAddr;
private:
int _cludge;
};
}
#endif // _LOG4SHIB_REMOTESYSLOGAPPENDER_HH
|