Rich Felker | 57d5fff | 2012-06-15 21:52:53 -0400 | [diff] [blame] | 1 | #ifndef _SYSLOG_H |
| 2 | #define _SYSLOG_H |
Rich Felker | 0b44a03 | 2011-02-12 00:22:29 -0500 | [diff] [blame] | 3 | |
| 4 | #ifdef __cplusplus |
| 5 | extern "C" { |
| 6 | #endif |
| 7 | |
Rich Felker | c1a9658 | 2012-09-07 23:13:55 -0400 | [diff] [blame] | 8 | #include <features.h> |
| 9 | |
Rich Felker | 0b44a03 | 2011-02-12 00:22:29 -0500 | [diff] [blame] | 10 | #define LOG_EMERG 0 |
| 11 | #define LOG_ALERT 1 |
| 12 | #define LOG_CRIT 2 |
| 13 | #define LOG_ERR 3 |
| 14 | #define LOG_WARNING 4 |
| 15 | #define LOG_NOTICE 5 |
| 16 | #define LOG_INFO 6 |
| 17 | #define LOG_DEBUG 7 |
| 18 | |
Rich Felker | b5b43b6 | 2011-04-13 16:13:49 -0400 | [diff] [blame] | 19 | #define LOG_PRIMASK 7 |
| 20 | #define LOG_PRI(p) ((p)&LOG_PRIMASK) |
| 21 | #define LOG_MAKEPRI(f, p) (((f)<<3)|(p)) |
| 22 | |
Rich Felker | 0b44a03 | 2011-02-12 00:22:29 -0500 | [diff] [blame] | 23 | #define LOG_MASK(p) (1<<(p)) |
Rich Felker | b5b43b6 | 2011-04-13 16:13:49 -0400 | [diff] [blame] | 24 | #define LOG_UPTO(p) ((1<<(p)+1)-1) |
Rich Felker | 0b44a03 | 2011-02-12 00:22:29 -0500 | [diff] [blame] | 25 | |
| 26 | #define LOG_KERN (0<<3) |
| 27 | #define LOG_USER (1<<3) |
| 28 | #define LOG_MAIL (2<<3) |
| 29 | #define LOG_DAEMON (3<<3) |
| 30 | #define LOG_AUTH (4<<3) |
| 31 | #define LOG_SYSLOG (5<<3) |
| 32 | #define LOG_LPR (6<<3) |
| 33 | #define LOG_NEWS (7<<3) |
| 34 | #define LOG_UUCP (8<<3) |
| 35 | #define LOG_CRON (9<<3) |
Rich Felker | b5b43b6 | 2011-04-13 16:13:49 -0400 | [diff] [blame] | 36 | #define LOG_AUTHPRIV (10<<3) |
| 37 | #define LOG_FTP (11<<3) |
Rich Felker | 0b44a03 | 2011-02-12 00:22:29 -0500 | [diff] [blame] | 38 | |
| 39 | #define LOG_LOCAL0 (16<<3) |
| 40 | #define LOG_LOCAL1 (17<<3) |
| 41 | #define LOG_LOCAL2 (18<<3) |
| 42 | #define LOG_LOCAL3 (19<<3) |
| 43 | #define LOG_LOCAL4 (20<<3) |
| 44 | #define LOG_LOCAL5 (21<<3) |
| 45 | #define LOG_LOCAL6 (22<<3) |
| 46 | #define LOG_LOCAL7 (23<<3) |
| 47 | |
Rich Felker | b5b43b6 | 2011-04-13 16:13:49 -0400 | [diff] [blame] | 48 | #define LOG_NFACILITIES 24 |
| 49 | #define LOG_FACMASK 0x3f8 |
| 50 | #define LOG_FAC(p) (((p)&LOG_FACMASK)>>3) |
| 51 | |
Rich Felker | 0b44a03 | 2011-02-12 00:22:29 -0500 | [diff] [blame] | 52 | #define LOG_PID 0x01 |
| 53 | #define LOG_CONS 0x02 |
| 54 | #define LOG_ODELAY 0x04 |
| 55 | #define LOG_NDELAY 0x08 |
| 56 | #define LOG_NOWAIT 0x10 |
Rich Felker | b5b43b6 | 2011-04-13 16:13:49 -0400 | [diff] [blame] | 57 | #define LOG_PERROR 0x20 |
Rich Felker | 0b44a03 | 2011-02-12 00:22:29 -0500 | [diff] [blame] | 58 | |
| 59 | void closelog (void); |
| 60 | void openlog (const char *, int, int); |
| 61 | int setlogmask (int); |
| 62 | void syslog (int, const char *, ...); |
| 63 | |
Rich Felker | 419ae6d | 2012-05-22 21:52:08 -0400 | [diff] [blame] | 64 | #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) |
| 65 | #define _PATH_LOG "/dev/log" |
Rich Felker | b5b43b6 | 2011-04-13 16:13:49 -0400 | [diff] [blame] | 66 | #define __NEED_va_list |
| 67 | #include <bits/alltypes.h> |
Rich Felker | c3dbe9b | 2012-05-12 22:18:34 -0400 | [diff] [blame] | 68 | void vsyslog (int, const char *, va_list); |
| 69 | #if defined(SYSLOG_NAMES) |
Rich Felker | b5b43b6 | 2011-04-13 16:13:49 -0400 | [diff] [blame] | 70 | #define INTERNAL_NOPRI 0x10 |
| 71 | #define INTERNAL_MARK (LOG_NFACILITIES<<3) |
| 72 | struct __CODE { |
| 73 | const char *c_name; |
| 74 | int c_val; |
| 75 | }; |
| 76 | typedef struct { |
| 77 | char *c_name; |
| 78 | int c_val; |
| 79 | } CODE; |
| 80 | #define prioritynames ((CODE *)(const struct __CODE []){ \ |
| 81 | { "alert", LOG_ALERT }, { "crit", LOG_CRIT }, { "debug", LOG_DEBUG }, \ |
| 82 | { "emerg", LOG_EMERG }, { "err", LOG_ERR }, { "error", LOG_ERR }, \ |
| 83 | { "info", LOG_INFO }, { "none", INTERNAL_NOPRI }, \ |
| 84 | { "notice", LOG_NOTICE }, { "panic", LOG_EMERG }, \ |
| 85 | { "warn", LOG_WARNING }, { "warning", LOG_WARNING }, { NULL, -1 } }) |
| 86 | #define facilitynames ((CODE *)(const struct __CODE []){ \ |
| 87 | { "auth", LOG_AUTH }, { "authpriv", LOG_AUTHPRIV }, \ |
| 88 | { "cron", LOG_CRON }, { "daemon", LOG_DAEMON }, { "ftp", LOG_FTP }, \ |
| 89 | { "kern", LOG_KERN }, { "lpr", LOG_LPR }, { "mail", LOG_MAIL }, \ |
| 90 | { "mark", INTERNAL_MARK }, { "news", LOG_NEWS }, \ |
| 91 | { "security", LOG_AUTH }, { "syslog", LOG_SYSLOG }, \ |
| 92 | { "user", LOG_USER }, { "uucp", LOG_UUCP }, \ |
| 93 | { "local0", LOG_LOCAL0 }, { "local1", LOG_LOCAL1 }, \ |
| 94 | { "local2", LOG_LOCAL2 }, { "local3", LOG_LOCAL3 }, \ |
| 95 | { "local4", LOG_LOCAL4 }, { "local5", LOG_LOCAL5 }, \ |
| 96 | { "local6", LOG_LOCAL6 }, { "local7", LOG_LOCAL7 }, { NULL, -1 } }) |
Rich Felker | c8b01e7 | 2012-05-10 22:41:54 -0400 | [diff] [blame] | 97 | #endif |
Rich Felker | b5b43b6 | 2011-04-13 16:13:49 -0400 | [diff] [blame] | 98 | #endif |
| 99 | |
Rich Felker | 0b44a03 | 2011-02-12 00:22:29 -0500 | [diff] [blame] | 100 | #ifdef __cplusplus |
| 101 | } |
| 102 | #endif |
| 103 | |
| 104 | #endif |