]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib: event-log - Add support for logging with log_type as a parameter.
authorStephan Bosch <stephan.bosch@dovecot.fi>
Sun, 10 Mar 2019 22:09:46 +0000 (23:09 +0100)
committerStephan Bosch <stephan.bosch@dovecot.fi>
Tue, 30 Apr 2019 20:20:23 +0000 (22:20 +0200)
src/lib/event-log.c
src/lib/event-log.h

index 1f801963e59699f20b4336f1b56cf999fe0fd2c9..1bd08856cf027ee3e9821c4d717ab00258e936c0 100644 (file)
@@ -77,6 +77,23 @@ void e_debug(struct event *event,
        va_end(args);
 }
 
+#undef e_log
+void e_log(struct event *event, enum log_type level,
+          const char *source_filename, unsigned int source_linenum,
+          const char *fmt, ...)
+{
+       struct event_log_params params = {
+               .log_type = level,
+               .source_filename = source_filename,
+               .source_linenum = source_linenum,
+       };
+       va_list args;
+
+       va_start(args, fmt);
+       event_logv(event, &params, fmt, args);
+       va_end(args);
+}
+
 static bool event_get_log_prefix(struct event *event, string_t *log_prefix,
                                 bool *replace_prefix, unsigned int *type_pos)
 {
index a2bd73cdbe55259939c2510c2b27e31ff31ce833..6b0427b56f67adebec56b0433e7f8a4c5c2baf9e 100644 (file)
@@ -51,6 +51,18 @@ void e_debug(struct event *event,
        else \
                event_send_abort(_tmp_event); \
        } STMT_END
+
+void e_log(struct event *event, enum log_type level,
+          const char *source_filename, unsigned int source_linenum,
+          const char *fmt, ...) ATTR_FORMAT(5, 6);
+#define e_log(_event, level, ...) STMT_START { \
+       struct event *_tmp_event = (_event); \
+       if (event_want_level(_tmp_event, level)) \
+               e_log(_tmp_event, level, __FILE__, __LINE__, __VA_ARGS__); \
+       else \
+               event_send_abort(_tmp_event); \
+       } STMT_END
+
 /* Returns TRUE if debug event should be sent (either logged or sent to
    stats). */
 bool event_want_log_level(struct event *event, enum log_type level,