xref: /freebsd/usr.sbin/bluetooth/sdpd/log.c (revision 1de7b4b805ddbf2429da511c053686ac4591ed89)
1*1de7b4b8SPedro F. Giffuni /*-
207be7a6cSMaksim Yevmenkin  * log.c
307be7a6cSMaksim Yevmenkin  *
4*1de7b4b8SPedro F. Giffuni  * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
5*1de7b4b8SPedro F. Giffuni  *
607be7a6cSMaksim Yevmenkin  * Copyright (c) 2004 Maksim Yevmenkin <m_evmenkin@yahoo.com>
707be7a6cSMaksim Yevmenkin  * All rights reserved.
807be7a6cSMaksim Yevmenkin  *
907be7a6cSMaksim Yevmenkin  * Redistribution and use in source and binary forms, with or without
1007be7a6cSMaksim Yevmenkin  * modification, are permitted provided that the following conditions
1107be7a6cSMaksim Yevmenkin  * are met:
1207be7a6cSMaksim Yevmenkin  * 1. Redistributions of source code must retain the above copyright
1307be7a6cSMaksim Yevmenkin  *    notice, this list of conditions and the following disclaimer.
1407be7a6cSMaksim Yevmenkin  * 2. Redistributions in binary form must reproduce the above copyright
1507be7a6cSMaksim Yevmenkin  *    notice, this list of conditions and the following disclaimer in the
1607be7a6cSMaksim Yevmenkin  *    documentation and/or other materials provided with the distribution.
1707be7a6cSMaksim Yevmenkin  *
1807be7a6cSMaksim Yevmenkin  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
1907be7a6cSMaksim Yevmenkin  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
2007be7a6cSMaksim Yevmenkin  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2107be7a6cSMaksim Yevmenkin  * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
2207be7a6cSMaksim Yevmenkin  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2307be7a6cSMaksim Yevmenkin  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2407be7a6cSMaksim Yevmenkin  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2507be7a6cSMaksim Yevmenkin  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2607be7a6cSMaksim Yevmenkin  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2707be7a6cSMaksim Yevmenkin  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2807be7a6cSMaksim Yevmenkin  * SUCH DAMAGE.
2907be7a6cSMaksim Yevmenkin  *
3007be7a6cSMaksim Yevmenkin  * $Id: log.c,v 1.1 2004/01/07 23:15:00 max Exp $
3107be7a6cSMaksim Yevmenkin  * $FreeBSD$
3207be7a6cSMaksim Yevmenkin  */
3307be7a6cSMaksim Yevmenkin 
3407be7a6cSMaksim Yevmenkin #include <sys/types.h>
3507be7a6cSMaksim Yevmenkin #include <stdarg.h>
3607be7a6cSMaksim Yevmenkin #include <syslog.h>
3707be7a6cSMaksim Yevmenkin 
3807be7a6cSMaksim Yevmenkin void
3907be7a6cSMaksim Yevmenkin log_open(char const *prog, int32_t log2stderr)
4007be7a6cSMaksim Yevmenkin {
4107be7a6cSMaksim Yevmenkin 	openlog(prog, LOG_PID|LOG_NDELAY|(log2stderr? LOG_PERROR:0), LOG_USER);
4207be7a6cSMaksim Yevmenkin }
4307be7a6cSMaksim Yevmenkin 
4407be7a6cSMaksim Yevmenkin void
4507be7a6cSMaksim Yevmenkin log_close(void)
4607be7a6cSMaksim Yevmenkin {
4707be7a6cSMaksim Yevmenkin 	closelog();
4807be7a6cSMaksim Yevmenkin }
4907be7a6cSMaksim Yevmenkin 
5007be7a6cSMaksim Yevmenkin void
5107be7a6cSMaksim Yevmenkin log_emerg(char const *message, ...)
5207be7a6cSMaksim Yevmenkin {
5307be7a6cSMaksim Yevmenkin 	va_list	ap;
5407be7a6cSMaksim Yevmenkin 
5507be7a6cSMaksim Yevmenkin 	va_start(ap, message);
5607be7a6cSMaksim Yevmenkin 	vsyslog(LOG_EMERG, message, ap);
5707be7a6cSMaksim Yevmenkin 	va_end(ap);
5807be7a6cSMaksim Yevmenkin }
5907be7a6cSMaksim Yevmenkin 
6007be7a6cSMaksim Yevmenkin void
6107be7a6cSMaksim Yevmenkin log_alert(char const *message, ...)
6207be7a6cSMaksim Yevmenkin {
6307be7a6cSMaksim Yevmenkin 	va_list	ap;
6407be7a6cSMaksim Yevmenkin 
6507be7a6cSMaksim Yevmenkin 	va_start(ap, message);
6607be7a6cSMaksim Yevmenkin 	vsyslog(LOG_ALERT, message, ap);
6707be7a6cSMaksim Yevmenkin 	va_end(ap);
6807be7a6cSMaksim Yevmenkin }
6907be7a6cSMaksim Yevmenkin 
7007be7a6cSMaksim Yevmenkin void
7107be7a6cSMaksim Yevmenkin log_crit(char const *message, ...)
7207be7a6cSMaksim Yevmenkin {
7307be7a6cSMaksim Yevmenkin 	va_list	ap;
7407be7a6cSMaksim Yevmenkin 
7507be7a6cSMaksim Yevmenkin 	va_start(ap, message);
7607be7a6cSMaksim Yevmenkin 	vsyslog(LOG_CRIT, message, ap);
7707be7a6cSMaksim Yevmenkin 	va_end(ap);
7807be7a6cSMaksim Yevmenkin }
7907be7a6cSMaksim Yevmenkin 
8007be7a6cSMaksim Yevmenkin void
8107be7a6cSMaksim Yevmenkin log_err(char const *message, ...)
8207be7a6cSMaksim Yevmenkin {
8307be7a6cSMaksim Yevmenkin 	va_list	ap;
8407be7a6cSMaksim Yevmenkin 
8507be7a6cSMaksim Yevmenkin 	va_start(ap, message);
8607be7a6cSMaksim Yevmenkin 	vsyslog(LOG_ERR, message, ap);
8707be7a6cSMaksim Yevmenkin 	va_end(ap);
8807be7a6cSMaksim Yevmenkin }
8907be7a6cSMaksim Yevmenkin 
9007be7a6cSMaksim Yevmenkin void
9107be7a6cSMaksim Yevmenkin log_warning(char const *message, ...)
9207be7a6cSMaksim Yevmenkin {
9307be7a6cSMaksim Yevmenkin 	va_list	ap;
9407be7a6cSMaksim Yevmenkin 
9507be7a6cSMaksim Yevmenkin 	va_start(ap, message);
9607be7a6cSMaksim Yevmenkin 	vsyslog(LOG_WARNING, message, ap);
9707be7a6cSMaksim Yevmenkin 	va_end(ap);
9807be7a6cSMaksim Yevmenkin }
9907be7a6cSMaksim Yevmenkin 
10007be7a6cSMaksim Yevmenkin void
10107be7a6cSMaksim Yevmenkin log_notice(char const *message, ...)
10207be7a6cSMaksim Yevmenkin {
10307be7a6cSMaksim Yevmenkin 	va_list	ap;
10407be7a6cSMaksim Yevmenkin 
10507be7a6cSMaksim Yevmenkin 	va_start(ap, message);
10607be7a6cSMaksim Yevmenkin 	vsyslog(LOG_NOTICE, message, ap);
10707be7a6cSMaksim Yevmenkin 	va_end(ap);
10807be7a6cSMaksim Yevmenkin }
10907be7a6cSMaksim Yevmenkin 
11007be7a6cSMaksim Yevmenkin void
11107be7a6cSMaksim Yevmenkin log_info(char const *message, ...)
11207be7a6cSMaksim Yevmenkin {
11307be7a6cSMaksim Yevmenkin 	va_list	ap;
11407be7a6cSMaksim Yevmenkin 
11507be7a6cSMaksim Yevmenkin 	va_start(ap, message);
11607be7a6cSMaksim Yevmenkin 	vsyslog(LOG_INFO, message, ap);
11707be7a6cSMaksim Yevmenkin 	va_end(ap);
11807be7a6cSMaksim Yevmenkin }
11907be7a6cSMaksim Yevmenkin 
12007be7a6cSMaksim Yevmenkin void
12107be7a6cSMaksim Yevmenkin log_debug(char const *message, ...)
12207be7a6cSMaksim Yevmenkin {
12307be7a6cSMaksim Yevmenkin 	va_list	ap;
12407be7a6cSMaksim Yevmenkin 
12507be7a6cSMaksim Yevmenkin 	va_start(ap, message);
12607be7a6cSMaksim Yevmenkin 	vsyslog(LOG_DEBUG, message, ap);
12707be7a6cSMaksim Yevmenkin 	va_end(ap);
12807be7a6cSMaksim Yevmenkin }
12907be7a6cSMaksim Yevmenkin 
130