|
|
@@ -20,10 +20,13 @@ int opt_log_level = LOG_NOTICE;
|
|
|
|
|
|
static void my_log_curses(__maybe_unused int prio, char *f, va_list ap)
|
|
|
{
|
|
|
+ if (opt_quiet && prio != LOG_ERR)
|
|
|
+ return;
|
|
|
+
|
|
|
#ifdef HAVE_CURSES
|
|
|
extern bool use_curses;
|
|
|
- if (use_curses)
|
|
|
- log_curses(prio, f, ap);
|
|
|
+ if (use_curses && log_curses_only(prio, f, ap))
|
|
|
+ ;
|
|
|
else
|
|
|
#endif
|
|
|
{
|
|
|
@@ -31,57 +34,20 @@ static void my_log_curses(__maybe_unused int prio, char *f, va_list ap)
|
|
|
|
|
|
strcpy(f + len - 1, " \n");
|
|
|
|
|
|
-#ifdef HAVE_CURSES
|
|
|
- log_curses(prio, f, ap);
|
|
|
-#else
|
|
|
+ mutex_lock(&console_lock);
|
|
|
vprintf(f, ap);
|
|
|
-#endif
|
|
|
+ mutex_unlock(&console_lock);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+static void log_generic(int prio, const char *fmt, va_list ap);
|
|
|
+
|
|
|
void vapplog(int prio, const char *fmt, va_list ap)
|
|
|
{
|
|
|
if (!opt_debug && prio == LOG_DEBUG)
|
|
|
return;
|
|
|
-
|
|
|
-#ifdef HAVE_SYSLOG_H
|
|
|
- if (use_syslog) {
|
|
|
- vsyslog(prio, fmt, ap);
|
|
|
- }
|
|
|
-#else
|
|
|
- if (0) {}
|
|
|
-#endif
|
|
|
- else if (opt_log_output || prio <= LOG_NOTICE) {
|
|
|
- char *f;
|
|
|
- int len;
|
|
|
- struct timeval tv = {0, 0};
|
|
|
- struct tm *tm;
|
|
|
-
|
|
|
- gettimeofday(&tv, NULL);
|
|
|
-
|
|
|
- tm = localtime(&tv.tv_sec);
|
|
|
-
|
|
|
- len = 40 + strlen(fmt) + 22;
|
|
|
- f = alloca(len);
|
|
|
- sprintf(f, " [%d-%02d-%02d %02d:%02d:%02d] %s\n",
|
|
|
- tm->tm_year + 1900,
|
|
|
- tm->tm_mon + 1,
|
|
|
- tm->tm_mday,
|
|
|
- tm->tm_hour,
|
|
|
- tm->tm_min,
|
|
|
- tm->tm_sec,
|
|
|
- fmt);
|
|
|
- /* Only output to stderr if it's not going to the screen as well */
|
|
|
- if (!isatty(fileno((FILE *)stderr))) {
|
|
|
- va_list apc;
|
|
|
-
|
|
|
- va_copy(apc, ap);
|
|
|
- vfprintf(stderr, f, apc); /* atomic write to stderr */
|
|
|
- fflush(stderr);
|
|
|
- }
|
|
|
-
|
|
|
- my_log_curses(prio, f, ap);
|
|
|
- }
|
|
|
+ if (use_syslog || opt_log_output || prio <= LOG_NOTICE)
|
|
|
+ log_generic(prio, fmt, ap);
|
|
|
}
|
|
|
|
|
|
void applog(int prio, const char *fmt, ...)
|
|
|
@@ -100,7 +66,7 @@ void applog(int prio, const char *fmt, ...)
|
|
|
* generic log function used by priority specific ones
|
|
|
* equals vapplog() without additional priority checks
|
|
|
*/
|
|
|
-static void __maybe_unused log_generic(int prio, const char *fmt, va_list ap)
|
|
|
+static void log_generic(int prio, const char *fmt, va_list ap)
|
|
|
{
|
|
|
#ifdef HAVE_SYSLOG_H
|
|
|
if (use_syslog) {
|
|
|
@@ -121,7 +87,7 @@ static void __maybe_unused log_generic(int prio, const char *fmt, va_list ap)
|
|
|
|
|
|
len = 40 + strlen(fmt) + 22;
|
|
|
f = alloca(len);
|
|
|
- sprintf(f, "[%d-%02d-%02d %02d:%02d:%02d] %s\n",
|
|
|
+ sprintf(f, " [%d-%02d-%02d %02d:%02d:%02d] %s\n",
|
|
|
tm->tm_year + 1900,
|
|
|
tm->tm_mon + 1,
|
|
|
tm->tm_mday,
|