summaryrefslogtreecommitdiffstatsabout
path: root/utility/util.c
diff options
context:
space:
mode:
authorEdward Rudd <urkle@outoforder.cc>2008-10-24 13:55:48 (GMT)
committer Edward Rudd <urkle@outoforder.cc>2008-10-24 13:55:48 (GMT)
commit19bbdd68a491721dd4aeff7cacea51148ce3a9b9 (patch)
tree4e143a77f879f7baf65797c08a4e3a489b4ac755 /utility/util.c
parent50af087b9f3831285869dc8d8bf91cc3e6d5169a (diff)
add logging function
added @todo tags for what needs to be finished
Diffstat (limited to 'utility/util.c')
-rw-r--r--utility/util.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/utility/util.c b/utility/util.c
index ef3ea68..cb6898d 100644
--- a/utility/util.c
+++ b/utility/util.c
@@ -1,7 +1,11 @@
1#include "util.h" 1#include "util.h"
2#include "apr_strings.h" 2#include "apr_strings.h"
3#include "apr_lib.h" 3#include "apr_lib.h"
4#include "apr_file_io.h"
4 5
6#include "config.h"
7
8#include <stdarg.h>
5 9
6char *lowerstr(apr_pool_t *pool, const char *input) 10char *lowerstr(apr_pool_t *pool, const char *input)
7{ 11{
@@ -26,3 +30,38 @@ void line_chomp(char *str)
26 } 30 }
27 } 31 }
28} 32}
33
34void logging_init(config_t *cfg)
35{
36 if (cfg->errorlog) {
37 apr_file_open(&cfg->errorlog_fp, cfg->errorlog,
38 APR_FOPEN_CREATE | APR_FOPEN_WRITE | APR_BUFFERED,
39 APR_OS_DEFAULT,
40 cfg->pool);
41 apr_pool_create(&cfg->errorlog_p, cfg->pool);
42 }
43}
44
45/**
46 * @todo implement logging
47 */
48void logging_log(config_t *cfg, loglevel_e level, const char *fmt, ...)
49{
50 va_list ap;
51 struct iovec vec[2];
52 apr_size_t blen;
53
54 if (!cfg->errorlog_fp || cfg->loglevel < level) return;
55
56 va_start(ap, fmt);
57 apr_pool_clear(cfg->errorlog_p);
58
59 vec[0].iov_base = apr_pvsprintf(cfg->errorlog_p, fmt, ap);
60 vec[0].iov_len = strlen(vec[0].iov_base);
61 vec[1].iov_base = "\n";
62 vec[1].iov_len = 1;
63
64 apr_file_writev(cfg->errorlog_fp,vec,2,&blen);
65
66 va_end(ap);
67}