#include #include #include #include "ioloop.h" void i_debug(const char *format, ...) { static FILE *f = NULL; va_list args; struct timeval tv; gettimeofday(&tv, NULL); va_start(args, format); t_push(); if (!f) { const char *dir = t_strdup_printf("/tmp/dovecot/%d", (int)ioloop_time/10); mkdir(dir, 0700); f = fopen(t_strdup_printf("%s/%d", dir, getpid()), "a+"); setbuf(f, NULL); } fprintf(f, "%10u.%06u PID=%s %s\n", (unsigned)tv.tv_sec, (unsigned)tv.tv_usec, dec2str(getpid()), t_strdup_vprintf(format, args)); t_pop(); va_end(args); }