1/*
2 * log.c
3 *
4 * Copyright (c) 2004 Maksim Yevmenkin <m_evmenkin@yahoo.com>
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 *    notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 *    notice, this list of conditions and the following disclaimer in the
14 *    documentation and/or other materials provided with the distribution.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
17 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 * SUCH DAMAGE.
27 *
28 * $Id: log.c,v 1.1 2004/01/07 23:15:00 max Exp $
29 * $FreeBSD$
30 */
31
32#include <sys/types.h>
33#include <stdarg.h>
34#include <syslog.h>
35
36void
37log_open(char const *prog, int32_t log2stderr)
38{
39	openlog(prog, LOG_PID|LOG_NDELAY|(log2stderr? LOG_PERROR:0), LOG_USER);
40}
41
42void
43log_close(void)
44{
45	closelog();
46}
47
48void
49log_emerg(char const *message, ...)
50{
51	va_list	ap;
52
53	va_start(ap, message);
54	vsyslog(LOG_EMERG, message, ap);
55	va_end(ap);
56}
57
58void
59log_alert(char const *message, ...)
60{
61	va_list	ap;
62
63	va_start(ap, message);
64	vsyslog(LOG_ALERT, message, ap);
65	va_end(ap);
66}
67
68void
69log_crit(char const *message, ...)
70{
71	va_list	ap;
72
73	va_start(ap, message);
74	vsyslog(LOG_CRIT, message, ap);
75	va_end(ap);
76}
77
78void
79log_err(char const *message, ...)
80{
81	va_list	ap;
82
83	va_start(ap, message);
84	vsyslog(LOG_ERR, message, ap);
85	va_end(ap);
86}
87
88void
89log_warning(char const *message, ...)
90{
91	va_list	ap;
92
93	va_start(ap, message);
94	vsyslog(LOG_WARNING, message, ap);
95	va_end(ap);
96}
97
98void
99log_notice(char const *message, ...)
100{
101	va_list	ap;
102
103	va_start(ap, message);
104	vsyslog(LOG_NOTICE, message, ap);
105	va_end(ap);
106}
107
108void
109log_info(char const *message, ...)
110{
111	va_list	ap;
112
113	va_start(ap, message);
114	vsyslog(LOG_INFO, message, ap);
115	va_end(ap);
116}
117
118void
119log_debug(char const *message, ...)
120{
121	va_list	ap;
122
123	va_start(ap, message);
124	vsyslog(LOG_DEBUG, message, ap);
125	va_end(ap);
126}
127
128