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