diff options
author | Vsevolod Stakhov <vsevolod@rambler-co.ru> | 2009-06-16 15:39:09 +0400 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@rambler-co.ru> | 2009-06-16 15:39:09 +0400 |
commit | dc48e79c1507e1235a271b4a3763e9701651d2ab (patch) | |
tree | f4289c12007f953ade8cf096e1c4ec4eda2bacbc /src/util.c | |
parent | 53b1f011a3b34a40b08882e34083db820a815bab (diff) | |
download | rspamd-dc48e79c1507e1235a271b4a3763e9701651d2ab.tar.gz rspamd-dc48e79c1507e1235a271b4a3763e9701651d2ab.zip |
* Use own logging system to use static logging buffer instead of dynamically allocated one
Diffstat (limited to 'src/util.c')
-rw-r--r-- | src/util.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/util.c b/src/util.c index cb2d948ec..c90427935 100644 --- a/src/util.c +++ b/src/util.c @@ -40,7 +40,14 @@ struct list_file { struct stat st; }; +struct logger_params { + GLogFunc log_func; + struct config_file *cfg; +}; + + static GHashTable *listfiles = NULL; +static struct logger_params log_params; int make_socket_nonblocking (int fd) @@ -662,6 +669,13 @@ close_log (struct config_file *cfg) } +void +rspamd_set_logger (GLogFunc func, struct config_file *cfg) +{ + log_params.log_func = func; + log_params.cfg = cfg; +} + int reopen_log (struct config_file *cfg) { @@ -671,6 +685,20 @@ reopen_log (struct config_file *cfg) } void +rspamd_log_function (GLogLevelFlags log_level, const char *fmt, ...) +{ + static char logbuf[BUFSIZ]; + va_list vp; + + if (log_level <= log_params.cfg->log_level) { + va_start (vp, fmt); + vsnprintf (logbuf, sizeof (logbuf), fmt, vp); + va_end (vp); + log_params.log_func (NULL, log_level, logbuf, log_params.cfg); + } +} + +void syslog_log_function (const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer arg) { struct config_file *cfg = (struct config_file *)arg; |