Syslog client for mbed-os 5
Fork of logger by
logger.h
- Committer:
- Colin Hogben
- Date:
- 2016-10-14
- Revision:
- 3:91ee7ead8536
- Parent:
- 2:ce978c9ea3e8
- Child:
- 4:b51e0614c767
File content as of revision 3:91ee7ead8536:
/* * syslog device library * Copyright (c) 2011 Hiroshi Suga * Released under the MIT License: http://mbed.org/license/mit */ /** @file logger.h * @brief syslog device (sender/client) */ #ifndef LOGGER_H #define LOGGER_H #include "mbed.h" #include "NetworkInterface.h" #include "UDPSocket.h" #define LOG_LEN 256 #define LOG_UDPPORT 514 /** * @enum Severity of priority */ enum LOG_SEVERITY { 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 */ }; /** * @enum Facility of priority */ enum LOG_FACILITY { LOG_KERN = 0, /* kernel messages */ LOG_USER = 1, /* user-level messages */ LOG_MAIL = 2, /* mail system */ LOG_DAEMON = 3, /* system daemons */ LOG_AUTH = 4, /* authorization messages */ LOG_SYSLOG = 5, /* messages generated internally by syslogd */ LOG_LPR = 6, /* line printer subsystem */ LOG_NEWS = 7, /* network news subsystem */ LOG_UUCP = 8, /* UUCP subsystem */ LOG_CRON = 9, /* clock daemon */ LOG_AUTHPRIV = 10, /* authorization messages = private */ LOG_FTP = 11, /* ftp daemon */ LOG_NTP = 12, /* NTP subsystem */ LOG_SECURITY = 13, /* security subsystems (audit) */ LOG_CONSOLE = 14, /* /dev/console output (alert) */ LOG_CLOCK = 15, /* clock daemon */ LOG_LOCAL0 = 16, /* reserved for local use */ LOG_LOCAL1 = 17, /* reserved for local use */ LOG_LOCAL2 = 18, /* reserved for local use */ LOG_LOCAL3 = 19, /* reserved for local use */ LOG_LOCAL4 = 20, /* reserved for local use */ LOG_LOCAL5 = 21, /* reserved for local use */ LOG_LOCAL6 = 22, /* reserved for local use */ LOG_LOCAL7 = 23, /* reserved for local use */ }; /** brief syslog device (sender/client) */ class Logger { public: /** init logger class * @param p_eth EthernetNetIf class * @param host syslog collctor (server) */ Logger(NetworkInterface *, const char *); /** init logger class * @param p_eth EthernetNetIf class * @param host syslog collctor (server) hostname or IP address * @param myname My hostname or IP address */ Logger(NetworkInterface *, const char *, const char *); /** Send the message * @param tag Process name * @param content Message */ void send(LOG_SEVERITY, LOG_FACILITY, const char *, const char *); /** Send the message * @param sev Severity * @param fac Facility * @param tag Process name * @param content Message */ void send(const char *, const char *); private: NetworkInterface *_netif; UDPSocket _udpsock; SocketAddress _remote; char _ident[32]; }; #endif