1

I am trying to integrate Log4J into my tests that use TestNG, I have added a logger, but when I try to use it I don't get any output.

I am using the JDK 18, latest stable TestNG and Log4J core.

public abstract class DemoAutomationTest extends AbstractTest {

    private Logger logger = null;

    @BeforeSuite
    @Override
    protected void suiteSetup() {
        String testName = this.getClass().getCanonicalName();
        this.logger = LogManager.getLogger(testName);
        this.logger.info("Test info");
    }
}

Any help would be appreciated, I have looked this up here, on Stack Overflow and can't find an answer.

The structure is:

automation
src
  test
    java
      framework
        testng
          DemoAutomationTest.java
          AbstractTest.java
       tests
          demo.java
pom.xml
Swatcat
  • 73
  • 6
  • 21
  • 57

1 Answers1

0

for the tests i have it:

static ListAppender<ILoggingEvent> getLogAppender(final Class<?> clazz) {
    final var logger = (Logger) LoggerFactory.getLogger(clazz);
    final var appender = new ListAppender<ILoggingEvent>();
    appender.start();
    logger.addAppender(appender);
    return appender;
}

than i use it like:

 private ListAppender<ILoggingEvent>  logAppender = TestUtils.getLogAppender(MyClass.class);
  assertEquals(1, logAppender.list.size());
    assertEquals("Code: 401, Response body: ", logAppender.list.get(0).getFormattedMessage());