- if(level <= debug_level) {
- switch(logmode) {
- case LOGMODE_STDERR:
- fprintf(stderr, "%s\n", message);
- fflush(stderr);
- break;
- case LOGMODE_FILE:
- now = time(NULL);
- strftime(timestr, sizeof timestr, "%Y-%m-%d %H:%M:%S", localtime(&now));
- fprintf(logfile, "%s %s[%ld]: %s\n", timestr, logident, (long)logpid, message);
- fflush(logfile);
- break;
- case LOGMODE_SYSLOG:
-#ifdef HAVE_MINGW
- {
- const char *messages[] = {message};
- ReportEvent(loghandle, priority, 0, 0, NULL, 1, 0, messages, NULL);
- }
-#else
-#ifdef HAVE_SYSLOG_H
- syslog(priority, "%s", message);
-#endif
-#endif
- break;
- case LOGMODE_NULL:
- break;
- }
- }
-
- if(logcontrol) {
- suppress = true;
- logcontrol = false;
- for list_each(connection_t, c, connection_list) {
- if(!c->status.log)
- continue;
- logcontrol = true;
- if(level > (c->outcompression >= 0 ? c->outcompression : debug_level))
- continue;
- int len = strlen(message);
- if(send_request(c, "%d %d %d", CONTROL, REQ_LOG, len))
- send_meta(c, message, len);
- }
- suppress = false;
- }