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 }