log_level set_log_threshold(log_level level) { logmsg(DEBUG, "Setting log level to %s", get_log_level_name(level)); THRESHOLD = level; return THRESHOLD; }
void log_impl(int line, const char *file, char const *function, log_level level, ...) { if (level <= THRESHOLD) { char buffer[32]; time_t t = time(0); struct tm tm; gmtime_r(&t, &tm); int status = strftime(buffer, sizeof buffer, ISO8601_FORMAT, &tm); if (status == 0) { fprintf(stderr, "Failed to format timestamp '%s': error %d %s", buffer, errno, strerror(errno)); goto error; } fprintf(stderr, "%s %s ", buffer, get_log_level_name(level)); if (level >= TRACE) { fprintf(stderr, "%s:%d:%s: ", file, line, function); } va_list args; va_start(args, level); const char *format = va_arg(args, char *); vfprintf(stderr, format, args); va_end(args); fprintf(stderr, ".\n"); fflush(stderr); }
void log_handler(const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer /*user_data */) { if ((!verbose_flag) && ((log_level & G_LOG_LEVEL_CRITICAL) == 0) ) { return; } if (!daemonized) { printf("%s: %s: %s\n", log_domain, get_log_level_name(log_level), message); } else { // TODO implement } }