char const *file, int line, char const *fmt, ...)
{
va_list ap;
- log_dst_t *dst_p;
+ log_dst_t *dst;
if (!request->log.dst) return;
va_start(ap, fmt);
- for (dst_p = request->log.dst; dst_p; dst_p = dst_p->next) {
- dst_p->func(type, lvl, request, file, line, fmt, ap, dst_p->uctx);
+ for (dst = request->log.dst; dst; dst = dst->next) {
+ if (lvl < dst->lvl) continue;
+
+ dst->func(type, lvl, request, file, line, fmt, ap, dst->uctx);
}
va_end(ap);
}
struct log_dst {
log_func_t func; //!< Function to call to log to this destination.
void *uctx; //!< Context to pass to the logging function.
+ fr_log_lvl_t lvl; //!< Log messages with lvl >= to this should be logged.
log_dst_t *next; //!< Next logging destination.
};