I'm currently using ListAppender from log4j2-core-test, to test that
the logging of the project does what it should do.
For that I configured a ListAppender in the log4j2 config file that is
used for the tests.
In a custom global Spock extension (the test framework I use), I
retrieve the appender
using ListAppender.getListAppender and call clear() on it before an
iteration starts,
so I only get the logs written during that test and it also does not
overflow the RAM.

Now my problem is, that I'd like to enable parallel execution of the
tests which is new in Spock 2.x.
But the ListAppender naturally does not like that, as it is the same
for the whole JVM.

I looked into the LoggerContextRule whether I find something useful there,
but - please correct me if I'm wrong - as far as I have seen it also
is not capable of parallel execution
as it uses system properties and static state, so parallel tests would
also overwrite each other I guess.

Is there something that could be used that better supports parallel execution?
Would maybe a ThreadLocalListAppender help that has thread local
fields for events, messages, and data?
Or something else that is available?


To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org

Reply via email to