3 * handle logging for dcm and update server
5 * Copyright (C) 1988-1998 by the Massachusetts Institute of Technology.
6 * For copying and distribution information, please see the file
10 #include <mit-copyright.h>
12 #include "update_server.h"
27 void mr_update_com_err_hook(const char *whoami, long code,
28 const char *fmt, va_list args);
38 extern int log_priority;
41 void mr_update_com_err_hook(const char *whoami, long code,
42 const char *fmt, va_list args)
44 char buf[BUFSIZ], *cp;
48 for (cp = buf; *cp; cp++)
58 strcpy(cp, error_message(code));
62 vsprintf(cp, fmt, args);
64 syslog(syslog_prio[log_priority], "%s", buf);
71 void mr_update_initialize(void)
73 static int initialized = 0;
77 openlog(whoami, LOG_PID, LOG_DAEMON);
79 set_com_err_hook(mr_update_com_err_hook);
80 log_priority = log_INFO;
85 static char fmt[] = "[%s] %s";
87 #define def(name, level, prio) \
91 old_prio = log_priority; \
92 mr_update_initialize(); \
93 com_err(whoami, 0, fmt, level, msg); \
94 log_priority = old_prio; \
97 def(mr_log_error, "error", log_ERROR)
98 def(mr_log_warning, "warning", log_WARNING)
99 def(mr_log_info, "info", log_INFO)
100 def(mr_debug, "debug", log_DEBUG)