diff options
author | Chris Johns <chrisj@rtems.org> | 2016-06-30 09:14:55 +1000 |
---|---|---|
committer | Chris Johns <chrisj@rtems.org> | 2016-06-30 09:14:55 +1000 |
commit | 4a2b84469e41786a2cde2b59447f0f135a99e614 (patch) | |
tree | 2c945c8395600a47553b9e1a79b02a12f4c317d0 /rtemsbsd/rtems/syslog.c | |
parent | Add ftpd as a service. Add rtems-bsd-config.h for app libbsd set up. (diff) | |
download | rtems-libbsd-4a2b84469e41786a2cde2b59447f0f135a99e614.tar.bz2 |
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".
Diffstat (limited to 'rtemsbsd/rtems/syslog.c')
-rw-r--r-- | rtemsbsd/rtems/syslog.c | 37 |
1 files changed, 31 insertions, 6 deletions
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 <errno.h> +#include <stddef.h> +#include <strings.h> + +#define SYSLOG_NAMES #include <syslog.h> #include <rtems/bsd/bsd.h> +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; +} |