|
12 | 12 | #ifdef WSS_PROXY_CLIENT |
13 | 13 | #include <openssl/lhash.h> |
14 | 14 | #endif |
| 15 | +#ifdef HAVE_SYSLOG |
| 16 | +#include <syslog.h> |
| 17 | +#else |
| 18 | +#define syslog(x, y, ...) do {} while (0) |
| 19 | +#endif |
15 | 20 | #include "ws-header.h" |
16 | 21 |
|
17 | 22 | #ifndef WSS_PAYLOAD_SIZE |
|
44 | 49 |
|
45 | 50 | #define TIME_FORMAT "%Y-%m-%d %H:%M:%S" |
46 | 51 |
|
47 | | -enum log_level { |
48 | | - DEBUG, |
49 | | - INFO, |
50 | | - WARN, |
51 | | - ERROR, |
52 | | -}; |
| 52 | +#ifdef HAVE_SYSLOG |
| 53 | +#define DEBUG LOG_DEBUG |
| 54 | +#define INFO LOG_INFO |
| 55 | +#define WARN LOG_WARNING |
| 56 | +#define ERROR LOG_ERR |
| 57 | +#else |
| 58 | +#define DEBUG 7 |
| 59 | +#define INFO 6 |
| 60 | +#define WARN 4 |
| 61 | +#define ERROR 3 |
| 62 | +#endif |
53 | 63 |
|
54 | 64 | #define MAX_UDP_FRAME_SIZE 65535 |
55 | 65 | #define UDP_FRAME_LENGTH_SIZE 2 |
@@ -109,18 +119,26 @@ void log_callback(int severity, const char *msg); |
109 | 119 |
|
110 | 120 | void init_log_level(const char *loglevel); |
111 | 121 |
|
112 | | -enum log_level get_log_level(void); |
113 | | - |
114 | | -#define LOG(format, stream, level, ...) \ |
115 | | - do { \ |
116 | | - if (get_log_level() <= level) { \ |
117 | | - time_t now = time(NULL); \ |
118 | | - char timestr[20]; \ |
119 | | - strftime(timestr, 20, TIME_FORMAT, localtime(&now)); \ |
120 | | - fprintf(stream, " %s " #level " " LOGGER_NAME " " format "\n", timestr, \ |
121 | | - ## __VA_ARGS__); \ |
122 | | - fflush(stream); \ |
123 | | - } \ |
| 122 | +int get_log_level(void); |
| 123 | + |
| 124 | +int use_syslog(void); |
| 125 | + |
| 126 | +void close_syslog(void); |
| 127 | + |
| 128 | +#define LOG(format, stream, level, ...) \ |
| 129 | + do { \ |
| 130 | + if (get_log_level() >= level) { \ |
| 131 | + if (use_syslog()) { \ |
| 132 | + syslog(level, format, ## __VA_ARGS__); \ |
| 133 | + } else { \ |
| 134 | + time_t now = time(NULL); \ |
| 135 | + char timestr[20]; \ |
| 136 | + strftime(timestr, 20, TIME_FORMAT, localtime(&now)); \ |
| 137 | + fprintf(stream, " %s " #level " " LOGGER_NAME " " format "\n", \ |
| 138 | + timestr, ## __VA_ARGS__); \ |
| 139 | + fflush(stream); \ |
| 140 | + } \ |
| 141 | + } \ |
124 | 142 | } while (0) |
125 | 143 |
|
126 | 144 | #define LOGD(format, ...) LOG(format, stdout, DEBUG, ## __VA_ARGS__) |
|
0 commit comments