* copyright notice and this permission notice appear in all copies.
*/
+#ifndef SYS_SOLARIS9
#include <stdint.h>
+#endif
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include "debug.h"
static char *debug_ident = NULL;
-static uint8_t debug_level = DBG_WARN;
+static uint8_t debug_level = DBG_INFO;
static FILE *debug_file = NULL;
static int debug_syslogfacility = 0;
+static uint8_t debug_timestamp = 1;
void debug_init(char *ident) {
debug_file = stderr;
case 3:
debug_level = DBG_INFO;
return;
+ case 4:
+ debug_level = DBG_DBG;
+ return;
}
}
+void debug_no_timestamp() {
+ debug_timestamp = 0;
+}
+
uint8_t debug_get_level() {
return debug_level;
}
if (!strncasecmp(dest, "file:///", 8)) {
debug_file = fopen(dest + 7, "a");
- if (!debug_file)
+ if (!debug_file) {
+ debug_file = stderr;
debugx(1, DBG_ERR, "Failed to open logfile %s\n%s",
dest + 7, strerror(errno));
+ }
setvbuf(debug_file, NULL, _IONBF, 0);
return 1;
}
if (!strncasecmp(dest, "x-syslog://", 11)) {
dest += 11;
+ if (*dest == '/')
+ dest++;
if (*dest) {
for (i = 0; facstrings[i]; i++)
if (!strcasecmp(dest, facstrings[i]))
if (debug_syslogfacility) {
switch (level) {
+ case DBG_DBG:
+ priority = LOG_DEBUG;
+ break;
case DBG_INFO:
priority = LOG_INFO;
break;
}
vsyslog(priority, format, ap);
} else {
- timebuf = malloc(256);
- if (timebuf) {
+ if (debug_timestamp && (timebuf = malloc(256))) {
gettimeofday(&now, NULL);
ctime_r(&now.tv_sec, timebuf);
timebuf[strlen(timebuf) - 1] = '\0';
- fprintf(debug_file, "%s: ", timebuf);
+ fprintf(debug_file, "%s: ", timebuf + 4);
free(timebuf);
}
vfprintf(debug_file, format, ap);