From 414ac2f6508d21e105ad29faeea499006096b8b4 Mon Sep 17 00:00:00 2001 From: awildturtok <1553491+awildturtok@users.noreply.github.com> Date: Thu, 28 Mar 2024 12:55:56 +0100 Subject: [PATCH] POC: SMTP Appender --- .../conquery/util/SMTPAppenderFactory.java | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 backend/src/main/java/com/bakdata/conquery/util/SMTPAppenderFactory.java diff --git a/backend/src/main/java/com/bakdata/conquery/util/SMTPAppenderFactory.java b/backend/src/main/java/com/bakdata/conquery/util/SMTPAppenderFactory.java new file mode 100644 index 00000000000..cb7f4784424 --- /dev/null +++ b/backend/src/main/java/com/bakdata/conquery/util/SMTPAppenderFactory.java @@ -0,0 +1,34 @@ +package com.bakdata.conquery.util; + +import ch.qos.logback.access.net.SMTPAppender; +import ch.qos.logback.access.spi.IAccessEvent; +import ch.qos.logback.classic.LoggerContext; +import ch.qos.logback.core.Appender; +import com.fasterxml.jackson.annotation.JsonTypeName; +import io.dropwizard.logging.AbstractAppenderFactory; +import io.dropwizard.logging.async.AsyncAppenderFactory; +import io.dropwizard.logging.filter.LevelFilterFactory; +import io.dropwizard.logging.layout.LayoutFactory; +import lombok.extern.slf4j.Slf4j; + +@Slf4j +@JsonTypeName("SMTP") +public class SMTPAppenderFactory extends AbstractAppenderFactory { + + @Override + public Appender build(LoggerContext context, String applicationName, LayoutFactory layoutFactory, LevelFilterFactory levelFilterFactory, AsyncAppenderFactory asyncAppenderFactory) { + final SMTPAppender appender = new SMTPAppender(); + appender.setName("cq-smtp-appender"); + + //TODO configure + + appender.setContext(context); + + appender.setLayout(buildLayout(context, layoutFactory)); + appender.addFilter(levelFilterFactory.build(threshold)); + getFilterFactories().forEach(f -> appender.addFilter(f.build())); + + appender.start(); + return wrapAsync(appender, asyncAppenderFactory); + } +}