Mercurial > noffle
view src/log.c @ 194:a4e9a20e50e5 noffle
[svn] * docs/noffle.conf.5,src/configfile.c,src/filter.h,src/filter.c:
Contrary to the documentation, the action of a filter if not specified
was 'full'. Add a new 'default' action which makes the action that of the
group's subscription mode. Make this the default action, and allow
'default' to be specified explicitly as the action in the filter
definition. Adapted from patch submitted by Mirko Liss. Thanks, Mirko.
* docs/noffle.conf.5: Correct small typo.
author | bears |
---|---|
date | Tue, 30 Oct 2001 12:42:13 +0000 |
parents | fed1334d766b |
children | 755e03bc7dcf |
line wrap: on
line source
/* log.c $Id: log.c 300 2001-08-05 08:24:22Z bears $ */ #if HAVE_CONFIG_H #include <config.h> #endif #include <syslog.h> #include <stdarg.h> #include "common.h" #include "log.h" #include "portable.h" #define MAXLENGTH 240 #define DEFAULT_DBG_MASK LOG_DBG_NONE struct { Bool interactive; unsigned debugMask; } log = { FALSE, DEFAULT_DBG_MASK }; void Log_init( const char *name, Bool interactive, int facility ) { int option = LOG_PID | LOG_CONS; log.interactive = interactive; openlog( name, option, facility ); } #define DO_LOG( LEVEL ) \ va_list ap; \ Str t; \ \ va_start( ap, fmt ); \ vsnprintf( t, MAXCHAR, fmt, ap ); \ if ( MAXLENGTH < MAXCHAR ) \ t[ MAXLENGTH ] = '\0'; \ syslog( LEVEL, "%s", t ); \ if ( log.interactive ) \ fprintf( stderr, "%s\n", t ); \ va_end( ap ); void Log_inf( const char *fmt, ... ) { DO_LOG( LOG_INFO ); } void Log_err( const char *fmt, ... ) { DO_LOG( LOG_ERR ); } /* Ensure the condition "cond" is true; otherwise log an error and return 1 */ int Log_check(int cond, const char *fmt, ... ) { if (!cond) { DO_LOG( LOG_ERR ); return 1; } return 0; } void Log_ntc( const char *fmt, ... ) { DO_LOG( LOG_NOTICE ); } void Log_dbg( unsigned subsystem, const char *fmt, ... ) { if ( ( subsystem & log.debugMask ) != 0 ) { DO_LOG( LOG_DEBUG ); } } void Log_setDbgMask( unsigned mask ) { /* A non-zero mask always include Noffle logs */ if ( mask != 0 ) mask |= LOG_DBG_NOFFLE; log.debugMask = mask; }