Mercurial > paster
annotate log.c @ 55:78a4062bed62
misc: use day by default
author | David Demelier <markand@malikania.fr> |
---|---|
date | Mon, 21 Dec 2020 20:56:39 +0100 |
parents | 6702a87420d1 |
children | fba88439ec0a |
rev | line source |
---|---|
0 | 1 /* |
2 * log.c -- logging routines | |
3 * | |
4 * Copyright (c) 2020 David Demelier <markand@malikania.fr> | |
5 * | |
6 * Permission to use, copy, modify, and/or distribute this software for any | |
7 * purpose with or without fee is hereby granted, provided that the above | |
8 * copyright notice and this permission notice appear in all copies. | |
9 * | |
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
17 */ | |
18 | |
19 #include <assert.h> | |
20 #include <stdio.h> | |
21 #include <syslog.h> | |
22 | |
21
21c103c33ac9
pasterd: improve verbosity, closes #2472
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
23 #include "config.h" |
0 | 24 #include "log.h" |
25 | |
26 static int syslog_levels[] = { | |
27 [LOG_LEVEL_DEBUG] = LOG_DEBUG, | |
28 [LOG_LEVEL_INFO] = LOG_INFO, | |
29 [LOG_LEVEL_WARNING] = LOG_WARNING | |
30 }; | |
31 | |
32 void | |
33 log_open(void) | |
34 { | |
21
21c103c33ac9
pasterd: improve verbosity, closes #2472
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
35 if (config.verbosity > 0) |
21c103c33ac9
pasterd: improve verbosity, closes #2472
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
36 openlog("paster", 0, LOG_USER); |
0 | 37 } |
38 | |
39 void | |
21
21c103c33ac9
pasterd: improve verbosity, closes #2472
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
40 log_write(enum log_level level, const char *fmt, ...) |
0 | 41 { |
24
6702a87420d1
pasterd: fix some assertions
David Demelier <markand@malikania.fr>
parents:
21
diff
changeset
|
42 assert(level >= LOG_LEVEL_WARNING && level <= LOG_LEVEL_DEBUG); |
0 | 43 assert(fmt); |
44 | |
21
21c103c33ac9
pasterd: improve verbosity, closes #2472
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
45 if (config.verbosity >= level) { |
21c103c33ac9
pasterd: improve verbosity, closes #2472
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
46 va_list ap; |
0 | 47 |
21
21c103c33ac9
pasterd: improve verbosity, closes #2472
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
48 va_start(ap, fmt); |
21c103c33ac9
pasterd: improve verbosity, closes #2472
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
49 log_vwrite(level, fmt, ap); |
21c103c33ac9
pasterd: improve verbosity, closes #2472
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
50 va_end(ap); |
21c103c33ac9
pasterd: improve verbosity, closes #2472
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
51 } |
0 | 52 } |
53 | |
54 void | |
55 log_vwrite(enum log_level level, const char *fmt, va_list ap) | |
56 { | |
24
6702a87420d1
pasterd: fix some assertions
David Demelier <markand@malikania.fr>
parents:
21
diff
changeset
|
57 assert(level >= LOG_LEVEL_WARNING && level <= LOG_LEVEL_DEBUG); |
0 | 58 assert(fmt); |
59 | |
60 char line[BUFSIZ]; | |
61 | |
62 vsnprintf(line, sizeof (line), fmt, ap); | |
63 syslog(syslog_levels[level], "%s", line); | |
64 } | |
65 | |
66 void | |
67 log_finish(void) | |
68 { | |
21
21c103c33ac9
pasterd: improve verbosity, closes #2472
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
69 if (config.verbosity > 0) |
21c103c33ac9
pasterd: improve verbosity, closes #2472
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
70 closelog(); |
0 | 71 } |