From 19bbdd68a491721dd4aeff7cacea51148ce3a9b9 Mon Sep 17 00:00:00 2001 From: Edward Rudd Date: Fri, 24 Oct 2008 13:55:48 +0000 Subject: add logging function added @todo tags for what needs to be finished --- (limited to 'utility/util.c') 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 @@ #include "util.h" #include "apr_strings.h" #include "apr_lib.h" +#include "apr_file_io.h" +#include "config.h" + +#include char *lowerstr(apr_pool_t *pool, const char *input) { @@ -26,3 +30,38 @@ void line_chomp(char *str) } } } + +void logging_init(config_t *cfg) +{ + if (cfg->errorlog) { + apr_file_open(&cfg->errorlog_fp, cfg->errorlog, + APR_FOPEN_CREATE | APR_FOPEN_WRITE | APR_BUFFERED, + APR_OS_DEFAULT, + cfg->pool); + apr_pool_create(&cfg->errorlog_p, cfg->pool); + } +} + +/** + * @todo implement logging + */ +void logging_log(config_t *cfg, loglevel_e level, const char *fmt, ...) +{ + va_list ap; + struct iovec vec[2]; + apr_size_t blen; + + if (!cfg->errorlog_fp || cfg->loglevel < level) return; + + va_start(ap, fmt); + apr_pool_clear(cfg->errorlog_p); + + vec[0].iov_base = apr_pvsprintf(cfg->errorlog_p, fmt, ap); + vec[0].iov_len = strlen(vec[0].iov_base); + vec[1].iov_base = "\n"; + vec[1].iov_len = 1; + + apr_file_writev(cfg->errorlog_fp,vec,2,&blen); + + va_end(ap); +} -- cgit v0.9.2