summaryrefslogtreecommitdiffstats
path: root/rtemsbsd/rtems/syslog.c
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2016-06-30 09:14:55 +1000
committerChris Johns <chrisj@rtems.org>2016-06-30 09:14:55 +1000
commit4a2b84469e41786a2cde2b59447f0f135a99e614 (patch)
tree2c945c8395600a47553b9e1a79b02a12f4c317d0 /rtemsbsd/rtems/syslog.c
parentAdd ftpd as a service. Add rtems-bsd-config.h for app libbsd set up. (diff)
downloadrtems-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.c37
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;
+}