From 4a2b84469e41786a2cde2b59447f0f135a99e614 Mon Sep 17 00:00:00 2001 From: Chris Johns Date: Thu, 30 Jun 2016 09:14:55 +1000 Subject: Default syslog priority to INFO. Add rtems_setlogpriority to configure the priority. The rc.conf has 'syslog_priority' where the priority is the name, eg syslog_priority="debug" sets the priority to "debug". --- rtemsbsd/rtems/syslog.c | 37 +++++++++++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 6 deletions(-) (limited to 'rtemsbsd/rtems/syslog.c') diff --git a/rtemsbsd/rtems/syslog.c b/rtemsbsd/rtems/syslog.c index 76162563..f356690f 100644 --- a/rtemsbsd/rtems/syslog.c +++ b/rtemsbsd/rtems/syslog.c @@ -37,25 +37,35 @@ * SUCH DAMAGE. */ +#include +#include +#include + +#define SYSLOG_NAMES #include #include +static int syslog_priority = LOG_NOTICE; + void syslog(int priority, const char *format, ...) { - va_list ap; + if (priority <= syslog_priority) { + va_list ap; - va_start(ap, format); - vsyslog(priority, format, ap); - va_end(ap); + va_start(ap, format); + vsyslog(priority, format, ap); + va_end(ap); + } } void vsyslog(int priority, const char *format, va_list ap) { - - rtems_bsd_vprintf(priority, format, ap); + if (priority <= syslog_priority) { + rtems_bsd_vprintf(priority, format, ap); + } } void @@ -75,3 +85,18 @@ setlogmask(int mask) { /* TODO */ } + +int +rtems_bsd_setlogpriority(const char* priority) +{ + CODE* c = &prioritynames[0]; + while (c->c_name != NULL) { + if (strcasecmp(c->c_name, priority) == 0) { + syslog_priority = c->c_val; + return 0; + } + ++c; + } + errno = ENOENT; + return -1; +} -- cgit v1.2.3