package biz.paluch.logging.gelf.logback; import static org.assertj.core.api.Assertions.assertThat; import java.net.URL; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.slf4j.MDC; import biz.paluch.logging.gelf.GelfTestSender; import biz.paluch.logging.gelf.intern.GelfMessage; import ch.qos.logback.classic.Logger; import ch.qos.logback.classic.LoggerContext; import ch.qos.logback.classic.joran.JoranConfigurator; /** * @author <a href="mailto:tobiassebastian.kaefer@1und1.de">Tobias Kaefer</a> * @since 2013-10-07 */ public class GelfLogbackAppenderDynamicHostnameTests { public static final String LOG_MESSAGE = "foo bar test log message"; private LoggerContext lc; @BeforeEach public void before() throws Exception { lc = new LoggerContext(); JoranConfigurator configurator = new JoranConfigurator(); configurator.setContext(lc); URL xmlConfigFile = getClass().getResource("/logback/logback-gelf-with-dynamic-originhost.xml"); configurator.doConfigure(xmlConfigFile); GelfTestSender.getMessages().clear(); MDC.remove("mdcField1"); } @Test public void testOriginHost() throws Exception { Logger logger = lc.getLogger(getClass()); logger.info(LOG_MESSAGE); assertThat(GelfTestSender.getMessages()).hasSize(1); GelfMessage gelfMessage = GelfTestSender.getMessages().get(0); String crossCheckHostName = gelfMessage.getAdditonalFields().get("crossCheckHostName"); String json = gelfMessage.toJson(); assertThat(json).contains("\"_crossCheckHostName\":\"" + crossCheckHostName + "\""); assertThat(json).contains("\"host\":\"" + crossCheckHostName + "\""); } }