|
|
|
@ -10,12 +10,16 @@ |
|
|
|
|
|
|
|
struct log_info __thread log_info; |
|
|
|
volatile gint log_level = LOG_INFO; |
|
|
|
#ifndef MAX_LOG_LINE_LENGTH |
|
|
|
#define MAX_LOG_LINE_LENGTH 500 |
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void ilog(int prio, const char *fmt, ...) { |
|
|
|
char prefix[256]; |
|
|
|
char *msg; |
|
|
|
char *msg, *piece; |
|
|
|
const char *infix = ""; |
|
|
|
va_list ap; |
|
|
|
int ret, xprio; |
|
|
|
|
|
|
|
@ -55,7 +59,16 @@ void ilog(int prio, const char *fmt, ...) { |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
syslog(xprio, "%s%s", prefix, msg); |
|
|
|
piece = msg; |
|
|
|
|
|
|
|
while (ret > MAX_LOG_LINE_LENGTH) { |
|
|
|
syslog(xprio, "%s%s%.*s ...", prefix, infix, MAX_LOG_LINE_LENGTH, piece); |
|
|
|
ret -= MAX_LOG_LINE_LENGTH; |
|
|
|
piece += MAX_LOG_LINE_LENGTH; |
|
|
|
infix = "... "; |
|
|
|
} |
|
|
|
|
|
|
|
syslog(xprio, "%s%s%s", prefix, infix, piece); |
|
|
|
|
|
|
|
free(msg); |
|
|
|
} |
|
|
|
|