Browse Source

split very long log lines into smaller pieces

pull/13/head
Richard Fuchs 12 years ago
parent
commit
77829f92de
1 changed files with 15 additions and 2 deletions
  1. +15
    -2
      daemon/log.c

+ 15
- 2
daemon/log.c View File

@ -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);
}


Loading…
Cancel
Save