]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/log.h
build-sys: enable bz2 tarballs
[thirdparty/systemd.git] / src / log.h
CommitLineData
5899f3b7
LP
1/*-*- Mode: C; c-basic-offset: 8 -*-*/
2
3#ifndef foologhfoo
4#define foologhfoo
5
a7334b09
LP
6/***
7 This file is part of systemd.
8
9 Copyright 2010 Lennart Poettering
10
11 systemd is free software; you can redistribute it and/or modify it
12 under the terms of the GNU General Public License as published by
13 the Free Software Foundation; either version 2 of the License, or
14 (at your option) any later version.
15
16 systemd is distributed in the hope that it will be useful, but
17 WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 General Public License for more details.
20
21 You should have received a copy of the GNU General Public License
22 along with systemd; If not, see <http://www.gnu.org/licenses/>.
23***/
24
5899f3b7
LP
25#include <syslog.h>
26
27#include "macro.h"
28
843d2643
LP
29/* If set to SYSLOG and /dev/log can not be opened we fall back to
30 * KSMG. If KMSG fails, we fall back to CONSOLE */
16801e90
LP
31typedef enum LogTarget{
32 LOG_TARGET_CONSOLE,
16801e90 33 LOG_TARGET_KMSG,
843d2643
LP
34 LOG_TARGET_SYSLOG,
35 LOG_TARGET_SYSLOG_OR_KMSG,
16801e90
LP
36 _LOG_TARGET_MAX,
37 _LOG_TARGET_INVALID = -1
38} LogTarget;
39
40void log_set_target(LogTarget target);
41void log_set_max_level(int level);
42
34f0e866
LP
43int log_set_target_from_string(const char *e);
44int log_set_max_level_from_string(const char *e);
45
1adf1049
LP
46LogTarget log_get_target(void);
47int log_get_max_level(void);
48
843d2643
LP
49int log_open(void);
50
16801e90 51void log_close_syslog(void);
843d2643
LP
52void log_close_kmsg(void);
53void log_close_console(void);
16801e90 54
34f0e866
LP
55void log_parse_environment(void);
56
843d2643 57int log_meta(
5899f3b7
LP
58 int level,
59 const char*file,
60 int line,
61 const char *func,
93a46b0b 62 const char *format, ...) _printf_attr_(5,6);
5899f3b7 63
93a46b0b 64_noreturn_ void log_assert(
185986c6
LP
65 const char*file,
66 int line,
67 const char *func,
93a46b0b 68 const char *format, ...) _printf_attr_(4,5);
185986c6 69
2149e37c
LP
70/* This modifies the buffer passed! */
71int log_dump_internal(
72 int level,
73 const char*file,
74 int line,
75 const char *func,
76 char *buffer);
77
5899f3b7
LP
78#define log_debug(...) log_meta(LOG_DEBUG, __FILE__, __LINE__, __func__, __VA_ARGS__)
79#define log_info(...) log_meta(LOG_INFO, __FILE__, __LINE__, __func__, __VA_ARGS__)
80#define log_notice(...) log_meta(LOG_NOTICE, __FILE__, __LINE__, __func__, __VA_ARGS__)
81#define log_warning(...) log_meta(LOG_WARNING, __FILE__, __LINE__, __func__, __VA_ARGS__)
82#define log_error(...) log_meta(LOG_ERR, __FILE__, __LINE__, __func__, __VA_ARGS__)
83
2149e37c
LP
84/* This modifies the buffer passed! */
85#define log_dump(level, buffer) log_dump_internal(level, __FILE__, __LINE__, __func__, buffer)
86
34f0e866
LP
87const char *log_target_to_string(LogTarget target);
88LogTarget log_target_from_string(const char *s);
89
5899f3b7 90#endif