1 #ifndef _SYSLOG_H 2 #define _SYSLOG_H 3 4 #ifdef __cplusplus 5 extern "C" { 6 #endif 7 8 #include <features.h> 9 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 19 #define LOG_PRIMASK 7 20 #define LOG_PRI(p) ((p)&LOG_PRIMASK) 21 #define LOG_MAKEPRI(f, p) (((f)<<3)|(p)) 22 23 #define LOG_MASK(p) (1<<(p)) 24 #define LOG_UPTO(p) ((1<<((p)+1))-1) 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) 36 #define LOG_AUTHPRIV (10<<3) 37 #define LOG_FTP (11<<3) 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 48 #define LOG_NFACILITIES 24 49 #define LOG_FACMASK 0x3f8 50 #define LOG_FAC(p) (((p)&LOG_FACMASK)>>3) 51 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 57 #define LOG_PERROR 0x20 58 59 void closelog (void); 60 void openlog (const char *, int, int); 61 int setlogmask (int); 62 void syslog (int, const char *, ...); 63 64 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 65 #define _PATH_LOG "/dev/log" 66 #define __NEED_va_list 67 #include <bits/alltypes.h> 68 void vsyslog (int, const char *, va_list); 69 #if defined(SYSLOG_NAMES) 70 #define INTERNAL_NOPRI 0x10 71 #define INTERNAL_MARK (LOG_NFACILITIES<<3) 72 typedef struct { 73 char *c_name; 74 int c_val; 75 } CODE; 76 #define prioritynames ((CODE *)(const CODE []){ \ 77 { "alert", LOG_ALERT }, { "crit", LOG_CRIT }, { "debug", LOG_DEBUG }, \ 78 { "emerg", LOG_EMERG }, { "err", LOG_ERR }, { "error", LOG_ERR }, \ 79 { "info", LOG_INFO }, { "none", INTERNAL_NOPRI }, \ 80 { "notice", LOG_NOTICE }, { "panic", LOG_EMERG }, \ 81 { "warn", LOG_WARNING }, { "warning", LOG_WARNING }, { 0, -1 } }) 82 #define facilitynames ((CODE *)(const CODE []){ \ 83 { "auth", LOG_AUTH }, { "authpriv", LOG_AUTHPRIV }, \ 84 { "cron", LOG_CRON }, { "daemon", LOG_DAEMON }, { "ftp", LOG_FTP }, \ 85 { "kern", LOG_KERN }, { "lpr", LOG_LPR }, { "mail", LOG_MAIL }, \ 86 { "mark", INTERNAL_MARK }, { "news", LOG_NEWS }, \ 87 { "security", LOG_AUTH }, { "syslog", LOG_SYSLOG }, \ 88 { "user", LOG_USER }, { "uucp", LOG_UUCP }, \ 89 { "local0", LOG_LOCAL0 }, { "local1", LOG_LOCAL1 }, \ 90 { "local2", LOG_LOCAL2 }, { "local3", LOG_LOCAL3 }, \ 91 { "local4", LOG_LOCAL4 }, { "local5", LOG_LOCAL5 }, \ 92 { "local6", LOG_LOCAL6 }, { "local7", LOG_LOCAL7 }, { 0, -1 } }) 93 #endif 94 #endif 95 96 #ifdef __cplusplus 97 } 98 #endif 99 100 #endif 101