diff options
author | Michael Brown | 2012-03-26 21:23:30 +0200 |
---|---|---|
committer | Michael Brown | 2012-03-26 22:58:58 +0200 |
commit | 3ff7927d2fd15dd0a524f27d714dff667511718a (patch) | |
tree | 2fd8f8fc92d35946afcc0aeb13c392a49c4efd64 /src/include/syslog.h | |
parent | [console] Do not share ANSI escape context between lineconsole users (diff) | |
download | ipxe-3ff7927d2fd15dd0a524f27d714dff667511718a.tar.gz ipxe-3ff7927d2fd15dd0a524f27d714dff667511718a.tar.xz ipxe-3ff7927d2fd15dd0a524f27d714dff667511718a.zip |
[syslog] Pass internal syslog() priority through to syslog console
Use a private ANSI escape sequence to convey the priority of an
internal syslog() message through to the syslog server.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/include/syslog.h')
-rw-r--r-- | src/include/syslog.h | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/src/include/syslog.h b/src/include/syslog.h index cc7b19fd..3dfc11b9 100644 --- a/src/include/syslog.h +++ b/src/include/syslog.h @@ -10,6 +10,7 @@ FILE_LICENCE ( GPL2_OR_LATER ); #include <stdarg.h> +#include <ipxe/ansiesc.h> #include <config/console.h> /** @@ -55,6 +56,16 @@ extern void log_vprintf ( const char *fmt, va_list args ); extern void __attribute__ (( format ( printf, 1, 2 ) )) log_printf ( const char *fmt, ... ); +/** ANSI private escape sequence to set syslog priority + * + * @v priority Priority + */ +#define SYSLOG_SET_PRIORITY( priority ) \ + "\033[" #priority "p" + +/** ANSI private escape sequence to clear syslog priority */ +#define SYSLOG_CLEAR_PRIORITY "\033[p" + /** * Write message to system log * @@ -62,10 +73,11 @@ log_printf ( const char *fmt, ... ); * @v fmt Format string * @v ... Arguments */ -#define vsyslog( priority, fmt, args ) do { \ - if ( (priority) <= LOG_LEVEL ) { \ - log_vprintf ( fmt, (args) ); \ - } \ +#define vsyslog( priority, fmt, args ) do { \ + if ( (priority) <= LOG_LEVEL ) { \ + log_vprintf ( SYSLOG_SET_PRIORITY ( priority ) fmt \ + SYSLOG_CLEAR_PRIORITY, (args) ); \ + } \ } while ( 0 ) /** @@ -75,10 +87,11 @@ log_printf ( const char *fmt, ... ); * @v fmt Format string * @v ... Arguments */ -#define syslog( priority, fmt, ... ) do { \ - if ( (priority) <= LOG_LEVEL ) { \ - log_printf ( fmt, ##__VA_ARGS__ ); \ - } \ +#define syslog( priority, fmt, ... ) do { \ + if ( (priority) <= LOG_LEVEL ) { \ + log_printf ( SYSLOG_SET_PRIORITY ( priority ) fmt \ + SYSLOG_CLEAR_PRIORITY, ##__VA_ARGS__ ); \ + } \ } while ( 0 ) #endif /* _SYSLOG_H */ |