]> git.ipfire.org Git - thirdparty/systemd.git/blob - logging.h
run_program: log "info" not "error" if program is missing
[thirdparty/systemd.git] / logging.h
1 /*
2 * simple logging functions that can be expanded into nothing
3 *
4 * Copyright (C) 2003-2004 Greg Kroah-Hartman <greg@kroah.com>
5 * Copyright (C) 2004-2006 Kay Sievers <kay.sievers@vrfy.org>
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the
9 * Free Software Foundation version 2 of the License.
10 *
11 * This program is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License along
17 * with this program; if not, write to the Free Software Foundation, Inc.,
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19 *
20 */
21
22 #ifndef LOGGING_H
23 #define LOGGING_H
24
25 #define err(format, arg...) do { } while (0)
26 #define info(format, arg...) do { } while (0)
27 #define dbg(format, arg...) do { } while (0)
28 #define logging_init(foo) do { } while (0)
29 #define logging_close(foo) do { } while (0)
30
31 #ifdef USE_LOG
32 #include <stdarg.h>
33 #include <unistd.h>
34 #include <syslog.h>
35
36 #undef err
37 #define err(format, arg...) \
38 do { \
39 log_message(LOG_ERR ,"%s: " format ,__FUNCTION__ ,## arg); \
40 } while (0)
41
42 #undef info
43 #define info(format, arg...) \
44 do { \
45 log_message(LOG_INFO ,"%s: " format ,__FUNCTION__ ,## arg); \
46 } while (0)
47
48 #ifdef DEBUG
49 #undef dbg
50 #define dbg(format, arg...) \
51 do { \
52 log_message(LOG_DEBUG ,"%s: " format ,__FUNCTION__ ,## arg); \
53 } while (0)
54 #endif
55
56 extern void log_message(int priority, const char *format, ...)
57 __attribute__ ((format (printf, 2, 3)));
58
59 #undef logging_init
60 static inline void logging_init(const char *program_name)
61 {
62 openlog(program_name, LOG_PID | LOG_CONS, LOG_DAEMON);
63 }
64
65 #undef logging_close
66 static inline void logging_close(void)
67 {
68 closelog();
69 }
70
71 #endif /* USE_LOG */
72
73 #endif