syslog device(client) library http://mbed.org/users/okini3939/notebook/logger/

Committer:
okini3939
Date:
Sat Apr 16 15:34:45 2011 +0000
Revision:
1:f7e32e99f366
Parent:
0:7d428b9b277e

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okini3939 0:7d428b9b277e 1 /*
okini3939 0:7d428b9b277e 2 * syslog device library
okini3939 0:7d428b9b277e 3 * Copyright (c) 2011 Hiroshi Suga
okini3939 0:7d428b9b277e 4 * Released under the MIT License: http://mbed.org/license/mit
okini3939 0:7d428b9b277e 5 */
okini3939 0:7d428b9b277e 6
okini3939 0:7d428b9b277e 7 /** @file logger.h
okini3939 0:7d428b9b277e 8 * @brief syslog device (sender/client)
okini3939 0:7d428b9b277e 9 */
okini3939 0:7d428b9b277e 10
okini3939 0:7d428b9b277e 11 #ifndef LOGGER_H
okini3939 0:7d428b9b277e 12 #define LOGGER_H
okini3939 0:7d428b9b277e 13
okini3939 0:7d428b9b277e 14 #include "mbed.h"
okini3939 0:7d428b9b277e 15 #include "EthernetNetIf.h"
okini3939 0:7d428b9b277e 16 #include "UDPSocket.h"
okini3939 0:7d428b9b277e 17
okini3939 0:7d428b9b277e 18 #define LOG_LEN 256
okini3939 0:7d428b9b277e 19 #define LOG_UDPPORT 514
okini3939 0:7d428b9b277e 20
okini3939 0:7d428b9b277e 21 /**
okini3939 0:7d428b9b277e 22 * @enum Severity of priority
okini3939 0:7d428b9b277e 23 */
okini3939 0:7d428b9b277e 24 enum LOG_SEVERITY {
okini3939 0:7d428b9b277e 25 LOG_EMERG = 0, /* system is unusable */
okini3939 0:7d428b9b277e 26 LOG_ALERT = 1, /* action must be taken immediately */
okini3939 0:7d428b9b277e 27 LOG_CRIT = 2, /* critical conditions */
okini3939 0:7d428b9b277e 28 LOG_ERR = 3, /* error conditions */
okini3939 0:7d428b9b277e 29 LOG_WARNING = 4, /* warning conditions */
okini3939 0:7d428b9b277e 30 LOG_NOTICE = 5, /* normal but significant condition */
okini3939 0:7d428b9b277e 31 LOG_INFO = 6, /* informational */
okini3939 0:7d428b9b277e 32 LOG_DEBUG = 7, /* debug-level messages */
okini3939 0:7d428b9b277e 33 };
okini3939 0:7d428b9b277e 34
okini3939 0:7d428b9b277e 35 /**
okini3939 0:7d428b9b277e 36 * @enum Facility of priority
okini3939 0:7d428b9b277e 37 */
okini3939 0:7d428b9b277e 38 enum LOG_FACILITY {
okini3939 0:7d428b9b277e 39 LOG_KERN = 0, /* kernel messages */
okini3939 0:7d428b9b277e 40 LOG_USER = 1, /* user-level messages */
okini3939 0:7d428b9b277e 41 LOG_MAIL = 2, /* mail system */
okini3939 0:7d428b9b277e 42 LOG_DAEMON = 3, /* system daemons */
okini3939 0:7d428b9b277e 43 LOG_AUTH = 4, /* authorization messages */
okini3939 0:7d428b9b277e 44 LOG_SYSLOG = 5, /* messages generated internally by syslogd */
okini3939 0:7d428b9b277e 45 LOG_LPR = 6, /* line printer subsystem */
okini3939 0:7d428b9b277e 46 LOG_NEWS = 7, /* network news subsystem */
okini3939 0:7d428b9b277e 47 LOG_UUCP = 8, /* UUCP subsystem */
okini3939 0:7d428b9b277e 48 LOG_CRON = 9, /* clock daemon */
okini3939 0:7d428b9b277e 49 LOG_AUTHPRIV = 10, /* authorization messages = private */
okini3939 0:7d428b9b277e 50 LOG_FTP = 11, /* ftp daemon */
okini3939 0:7d428b9b277e 51 LOG_NTP = 12, /* NTP subsystem */
okini3939 0:7d428b9b277e 52 LOG_SECURITY = 13, /* security subsystems (audit) */
okini3939 0:7d428b9b277e 53 LOG_CONSOLE = 14, /* /dev/console output (alert) */
okini3939 0:7d428b9b277e 54 LOG_CLOCK = 15, /* clock daemon */
okini3939 0:7d428b9b277e 55 LOG_LOCAL0 = 16, /* reserved for local use */
okini3939 0:7d428b9b277e 56 LOG_LOCAL1 = 17, /* reserved for local use */
okini3939 0:7d428b9b277e 57 LOG_LOCAL2 = 18, /* reserved for local use */
okini3939 0:7d428b9b277e 58 LOG_LOCAL3 = 19, /* reserved for local use */
okini3939 0:7d428b9b277e 59 LOG_LOCAL4 = 20, /* reserved for local use */
okini3939 0:7d428b9b277e 60 LOG_LOCAL5 = 21, /* reserved for local use */
okini3939 0:7d428b9b277e 61 LOG_LOCAL6 = 22, /* reserved for local use */
okini3939 0:7d428b9b277e 62 LOG_LOCAL7 = 23, /* reserved for local use */
okini3939 0:7d428b9b277e 63 };
okini3939 0:7d428b9b277e 64
okini3939 1:f7e32e99f366 65 /** brief syslog device (sender/client)
okini3939 0:7d428b9b277e 66 */
okini3939 0:7d428b9b277e 67 class logger {
okini3939 0:7d428b9b277e 68 public:
okini3939 1:f7e32e99f366 69 /** init logger class
okini3939 1:f7e32e99f366 70 * @param p_eth EthernetNetIf class
okini3939 1:f7e32e99f366 71 * @param host syslog collctor (server)
okini3939 1:f7e32e99f366 72 */
okini3939 0:7d428b9b277e 73 logger (EthernetNetIf *, char *);
okini3939 1:f7e32e99f366 74
okini3939 1:f7e32e99f366 75 /** init logger class
okini3939 1:f7e32e99f366 76 * @param p_eth EthernetNetIf class
okini3939 1:f7e32e99f366 77 * @param host syslog collctor (server) hostname or IP address
okini3939 1:f7e32e99f366 78 * @param myname My hostname or IP address
okini3939 1:f7e32e99f366 79 */
okini3939 0:7d428b9b277e 80 logger (EthernetNetIf *, char *, char *);
okini3939 0:7d428b9b277e 81
okini3939 1:f7e32e99f366 82 /** Send the message
okini3939 1:f7e32e99f366 83 * @param tag Process name
okini3939 1:f7e32e99f366 84 * @param content Message
okini3939 1:f7e32e99f366 85 */
okini3939 0:7d428b9b277e 86 void send (LOG_SEVERITY, LOG_FACILITY, char *, char *);
okini3939 1:f7e32e99f366 87
okini3939 1:f7e32e99f366 88 /** Send the message
okini3939 1:f7e32e99f366 89 * @param sev Severity
okini3939 1:f7e32e99f366 90 * @param fac Facility
okini3939 1:f7e32e99f366 91 * @param tag Process name
okini3939 1:f7e32e99f366 92 * @param content Message
okini3939 1:f7e32e99f366 93 */
okini3939 0:7d428b9b277e 94 void send (char *, char *);
okini3939 0:7d428b9b277e 95
okini3939 0:7d428b9b277e 96 private:
okini3939 0:7d428b9b277e 97 EthernetNetIf *eth;
okini3939 0:7d428b9b277e 98 UDPSocket *udpsock;
okini3939 0:7d428b9b277e 99 Host remote;
okini3939 0:7d428b9b277e 100
okini3939 0:7d428b9b277e 101 char ident[32];
okini3939 0:7d428b9b277e 102
okini3939 0:7d428b9b277e 103 };
okini3939 0:7d428b9b277e 104
okini3939 0:7d428b9b277e 105 #endif
okini3939 0:7d428b9b277e 106