udebug: add ulog support

Make ulog able to also log via udebug.

Signed-off-by: John Crispin <john@phrozen.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
John Crispin 2023-11-28 08:13:49 +01:00 committed by Felix Fietkau
parent b77f2a4ce9
commit 260ad5bd15
2 changed files with 17 additions and 0 deletions

14
ulog.c
View file

@ -29,6 +29,7 @@ static int _ulog_facility = -1;
static int _ulog_threshold = LOG_DEBUG; static int _ulog_threshold = LOG_DEBUG;
static int _ulog_initialized = 0; static int _ulog_initialized = 0;
static const char *_ulog_ident = NULL; static const char *_ulog_ident = NULL;
static struct udebug_buf *udb = NULL;
static const char *ulog_default_ident(void) static const char *ulog_default_ident(void)
{ {
@ -120,6 +121,11 @@ static void ulog_syslog(int priority, const char *fmt, va_list ap)
vsyslog(priority, fmt, ap); vsyslog(priority, fmt, ap);
} }
void ulog_udebug(struct udebug_buf *_udb)
{
udb = _udb;
}
void ulog_open(int channels, int facility, const char *ident) void ulog_open(int channels, int facility, const char *ident)
{ {
ulog_close(); ulog_close();
@ -149,6 +155,14 @@ void ulog(int priority, const char *fmt, ...)
{ {
va_list ap; va_list ap;
if (udb) {
va_start(ap, fmt);
udebug_entry_init(udb);
udebug_entry_vprintf(udb, fmt, ap);
udebug_entry_add(udb);
va_end(ap);
}
if (priority > _ulog_threshold) if (priority > _ulog_threshold)
return; return;

3
ulog.h
View file

@ -21,6 +21,8 @@
#include <syslog.h> #include <syslog.h>
#include "udebug.h"
enum { enum {
ULOG_KMSG = (1 << 0), ULOG_KMSG = (1 << 0),
ULOG_SYSLOG = (1 << 1), ULOG_SYSLOG = (1 << 1),
@ -28,6 +30,7 @@ enum {
}; };
void ulog_open(int channels, int facility, const char *ident); void ulog_open(int channels, int facility, const char *ident);
void ulog_udebug(struct udebug_buf *udb);
void ulog_close(void); void ulog_close(void);
void ulog_threshold(int threshold); void ulog_threshold(int threshold);