version 1.1, 2009/06/01 22:58:49 |
version 1.2, 2009/06/25 06:23:10 |
|
|
|
|
/* Logging type. */ |
/* Logging type. */ |
#define LOG_TYPE_OFF 0 |
#define LOG_TYPE_OFF 0 |
#define LOG_TYPE_SYSLOG 1 |
#define LOG_TYPE_TTY 1 |
#define LOG_TYPE_TTY 2 |
#define LOG_TYPE_FILE 2 |
#define LOG_TYPE_FILE 3 |
|
int log_type = LOG_TYPE_OFF; |
int log_type = LOG_TYPE_OFF; |
|
|
/* Log file, if needed. */ |
/* Log file, if needed. */ |
|
|
/* Debug level. */ |
/* Debug level. */ |
int log_level; |
int log_level; |
|
|
/* Open logging to syslog. */ |
void log_vwrite(int, const char *, va_list); |
void |
__dead void log_vfatal(const char *, va_list); |
log_open_syslog(int level) |
|
{ |
|
log_type = LOG_TYPE_SYSLOG; |
|
log_level = level; |
|
|
|
openlog(__progname, LOG_PID|LOG_NDELAY, LOG_FACILITY); |
|
|
|
tzset(); |
|
} |
|
|
|
/* Open logging to tty. */ |
/* Open logging to tty. */ |
void |
void |
log_open_tty(int level) |
log_open_tty(int level) |
|
|
|
|
/* Write a log message. */ |
/* Write a log message. */ |
void |
void |
log_write(int pri, const char *msg, ...) |
|
{ |
|
va_list ap; |
|
|
|
va_start(ap, msg); |
|
log_vwrite(pri, msg, ap); |
|
va_end(ap); |
|
} |
|
|
|
/* Write a log message. */ |
|
void |
|
log_vwrite(int pri, const char *msg, va_list ap) |
log_vwrite(int pri, const char *msg, va_list ap) |
{ |
{ |
char *fmt; |
char *fmt; |
FILE *f = log_file; |
FILE *f = log_file; |
|
|
switch (log_type) { |
switch (log_type) { |
case LOG_TYPE_SYSLOG: |
|
vsyslog(pri, msg, ap); |
|
break; |
|
case LOG_TYPE_TTY: |
case LOG_TYPE_TTY: |
if (pri == LOG_INFO) |
if (pri == LOG_INFO) |
f = stdout; |
f = stdout; |