Mercurial > paster
comparison log.c @ 21:21c103c33ac9
pasterd: improve verbosity, closes #2472
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 06 Feb 2020 20:10:00 +0100 |
parents | 15a06aa20298 |
children | 6702a87420d1 |
comparison
equal
deleted
inserted
replaced
20:85a22b9abaec | 21:21c103c33ac9 |
---|---|
18 | 18 |
19 #include <assert.h> | 19 #include <assert.h> |
20 #include <stdio.h> | 20 #include <stdio.h> |
21 #include <syslog.h> | 21 #include <syslog.h> |
22 | 22 |
23 #include "config.h" | |
23 #include "log.h" | 24 #include "log.h" |
24 | 25 |
25 static int syslog_levels[] = { | 26 static int syslog_levels[] = { |
26 [LOG_LEVEL_DEBUG] = LOG_DEBUG, | 27 [LOG_LEVEL_DEBUG] = LOG_DEBUG, |
27 [LOG_LEVEL_INFO] = LOG_INFO, | 28 [LOG_LEVEL_INFO] = LOG_INFO, |
29 }; | 30 }; |
30 | 31 |
31 void | 32 void |
32 log_open(void) | 33 log_open(void) |
33 { | 34 { |
34 openlog("paster", 0, LOG_USER); | 35 if (config.verbosity > 0) |
36 openlog("paster", 0, LOG_USER); | |
35 } | 37 } |
36 | 38 |
37 void | 39 void |
38 log_write(enum log_level level,const char *fmt, ...) | 40 log_write(enum log_level level, const char *fmt, ...) |
39 { | 41 { |
42 assert(level >= 0 && level <= LOG_LEVEL_WARNING); | |
40 assert(fmt); | 43 assert(fmt); |
41 assert(level >= 0 && level <= LOG_LEVEL_WARNING); | |
42 | 44 |
43 va_list ap; | 45 if (config.verbosity >= level) { |
46 va_list ap; | |
44 | 47 |
45 va_start(ap, fmt); | 48 va_start(ap, fmt); |
46 log_vwrite(level, fmt, ap); | 49 log_vwrite(level, fmt, ap); |
47 va_end(ap); | 50 va_end(ap); |
51 } | |
48 } | 52 } |
49 | 53 |
50 void | 54 void |
51 log_vwrite(enum log_level level, const char *fmt, va_list ap) | 55 log_vwrite(enum log_level level, const char *fmt, va_list ap) |
52 { | 56 { |
57 assert(level > 0 && level <= LOG_LEVEL_DEBUG); | |
53 assert(fmt); | 58 assert(fmt); |
54 assert(level >= 0 && level <= LOG_LEVEL_WARNING); | |
55 | 59 |
56 char line[BUFSIZ]; | 60 char line[BUFSIZ]; |
57 | 61 |
58 vsnprintf(line, sizeof (line), fmt, ap); | 62 vsnprintf(line, sizeof (line), fmt, ap); |
59 syslog(syslog_levels[level], "%s", line); | 63 syslog(syslog_levels[level], "%s", line); |
60 } | 64 } |
61 | 65 |
62 void | 66 void |
63 log_finish(void) | 67 log_finish(void) |
64 { | 68 { |
65 closelog(); | 69 if (config.verbosity > 0) |
70 closelog(); | |
66 } | 71 } |