annotate log.c @ 14:97ef217c3d89 noffle

[svn] Prepare for version 1.0pre5
author enz
date Tue, 18 Apr 2000 07:11:50 +0100
parents 04124a4423d4
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
1 /*
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
2 log.c
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
3
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
4 $Id: log.c 3 2000-01-04 11:35:42Z enz $
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
5 */
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
6
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
7 #include <syslog.h>
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
8 #include <stdarg.h>
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
9 #include "common.h"
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
10
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
11 #define MAXLENGTH 240
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
12
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
13 struct
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
14 {
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
15 Bool interactive;
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
16 } log = { FALSE };
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
17
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
18 void
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
19 Log_init( Str name, Bool interactive, int facility )
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
20 {
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
21 int option = LOG_PID | LOG_CONS;
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
22
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
23 log.interactive = interactive;
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
24 openlog( name, option, facility );
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
25 }
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
26
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
27 #define DO_LOG( LEVEL ) \
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
28 va_list ap; \
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
29 Str t; \
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
30 \
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
31 va_start( ap, fmt ); \
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
32 vsnprintf( t, MAXCHAR, fmt, ap ); \
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
33 if ( MAXLENGTH < MAXCHAR ) \
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
34 t[ MAXLENGTH ] = '\0'; \
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
35 syslog( LEVEL, "%s", t ); \
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
36 if ( log.interactive ) \
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
37 fprintf( stderr, "%s\n", t ); \
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
38 va_end( ap );
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
39
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
40 void
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
41 Log_inf( const char *fmt, ... )
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
42 {
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
43 DO_LOG( LOG_INFO );
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
44 }
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
45
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
46 void
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
47 Log_err( const char *fmt, ... )
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
48 {
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
49 DO_LOG( LOG_ERR );
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
50 }
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
51
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
52 /* Ensure the condition "cond" is true; otherwise log an error and return 1 */
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
53 int
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
54 Log_check(int cond, const char *fmt, ... )
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
55 {
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
56 if (!cond) {
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
57 DO_LOG( LOG_ERR );
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
58 return 1;
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
59 }
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
60 return 0;
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
61 }
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
62
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
63 void
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
64 Log_ntc( const char *fmt, ... )
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
65 {
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
66 DO_LOG( LOG_NOTICE );
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
67 }
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
68
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
69 void
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
70 Log_dbg( const char *fmt, ... )
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
71 {
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
72 #ifdef DEBUG
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
73 DO_LOG( LOG_DEBUG );
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
74 #endif
04124a4423d4 [svn] Initial revision
enz
parents:
diff changeset
75 }