diff --git a/lib/loglib.h b/lib/loglib.h index e2239b045..26e1fe0c9 100644 --- a/lib/loglib.h +++ b/lib/loglib.h @@ -38,10 +38,10 @@ void __ilog_np(int prio, const char *format, ...) __attribute__ ((format (printf #ifndef __DEBUG #define ilog(prio, fmt, ...) \ do { \ - int loglevel = get_log_level(); \ - if (LOG_LEVEL_MASK((prio)) > LOG_LEVEL_MASK(loglevel)) \ + int __loglevel = get_log_level(); \ + if (LOG_LEVEL_MASK((prio)) > LOG_LEVEL_MASK(__loglevel)) \ break; \ - if ((loglevel & LOG_FLAG_RESTORE) && !((prio) & LOG_FLAG_RESTORE)) \ + if ((__loglevel & LOG_FLAG_RESTORE) && !((prio) & LOG_FLAG_RESTORE)) \ break; \ __ilog(prio, fmt, ##__VA_ARGS__); \ } while (0) diff --git a/recording-daemon/main.c b/recording-daemon/main.c index 4fe980d1a..e0c267352 100644 --- a/recording-daemon/main.c +++ b/recording-daemon/main.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -60,11 +61,27 @@ static void avlog_ilog(void *ptr, int loglevel, const char *fmt, va_list ap) { if (vasprintf(&msg, fmt, ap) <= 0) ilog(LOG_ERR, "av_log message dropped"); else { +#ifdef AV_LOG_PANIC + // translate AV_LOG_ constants to LOG_ levels + if (loglevel >= AV_LOG_VERBOSE) + loglevel = LOG_DEBUG; + else if (loglevel >= AV_LOG_INFO) + loglevel = LOG_NOTICE; + else if (loglevel >= AV_LOG_WARNING) + loglevel = LOG_WARNING; + else if (loglevel >= AV_LOG_ERROR) + loglevel = LOG_ERROR; + else if (loglevel >= AV_LOG_FATAL) + loglevel = LOG_CRIT; + else + loglevel = LOG_ALERT; +#else // defuse avlog log levels to be either DEBUG or ERR if (loglevel <= LOG_ERR) loglevel = LOG_ERR; else loglevel = LOG_DEBUG; +#endif ilog(loglevel, "av_log: %s", msg); free(msg); }