void upsdebug_with_errno(int level, const char *fmt, ...) { va_list va; if (nut_debug_level < level) return; /* For debugging output, we want to prepend the debug level so the user can * e.g. lower the level (less -D's on command line) to retain just the amount * of logging info he needs to see at the moment. Using '-DDDDD' all the time * is too brutal and needed high-level overview can be lost. This [D#] prefix * can help limit this debug stream quicker, than experimentally picking ;) */ char fmt2[LARGEBUF]; if (level > 0) { int ret; ret = snprintf(fmt2, sizeof(fmt2), "[D%d] %s", level, fmt); if ((ret < 0) || (ret >= (int) sizeof(fmt2))) { syslog(LOG_WARNING, "upsdebug_with_errno: snprintf needed more than %d bytes", LARGEBUF); } else { fmt = (const char *)fmt2; } } va_start(va, fmt); vupslog(LOG_DEBUG, fmt, va, 1); va_end(va); }
/* logs the formatted string to any configured logging devices */ void upslogx(int priority, const char *fmt, ...) { va_list va; va_start(va, fmt); vupslog(priority, fmt, va, 0); va_end(va); }
/* logs the formatted string to any configured logging devices + the output of strerror(errno) */ void upslog_with_errno(int priority, const char *fmt, ...) { va_list va; va_start(va, fmt); vupslog(priority, fmt, va, 1); va_end(va); }
static void vfatal(const char *fmt, va_list va, int use_strerror) { if (xbit_test(upslog_flags, UPSLOG_STDERR_ON_FATAL)) xbit_set(&upslog_flags, UPSLOG_STDERR); if (xbit_test(upslog_flags, UPSLOG_SYSLOG_ON_FATAL)) xbit_set(&upslog_flags, UPSLOG_SYSLOG); vupslog(LOG_ERR, fmt, va, use_strerror); }
void upsdebugx(int level, const char *fmt, ...) { va_list va; if (nut_debug_level < level) return; va_start(va, fmt); vupslog(LOG_DEBUG, fmt, va, 0); va_end(va); }
void upsdebugx(int level, const char *fmt, ...) { va_list va; if (nut_debug_level < level) return; /* See comments above in upsdebug_with_errno() - they apply here too. */ char fmt2[LARGEBUF]; if (level > 0) { int ret; ret = snprintf(fmt2, sizeof(fmt2), "[D%d] %s", level, fmt); if ((ret < 0) || (ret >= (int) sizeof(fmt2))) { syslog(LOG_WARNING, "upsdebugx: snprintf needed more than %d bytes", LARGEBUF); } else { fmt = (const char *)fmt2; } } va_start(va, fmt); vupslog(LOG_DEBUG, fmt, va, 0); va_end(va); }