The main reason why ListAppender doesn't support concurrent tests is essentially a chicken-or-the-egg scenario. While I'd love to be able to enable concurrent tests in log4j-core, for example, there are so many tests that aren't currently configured or written to work concurrently, nobody got around to implementing concurrency support in ListAppender to support such a use case. Updates to ListAppender (or an additional appender supporting concurrency) would certainly be welcomed as contributions!
On Wed, Apr 13, 2022 at 10:46 AM Björn Kautler <bjo...@kautler.net> wrote: > > Hi > > 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? > > Regards > Björn > > --------------------------------------------------------------------- > To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org > For additional commands, e-mail: log4j-user-h...@logging.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-user-h...@logging.apache.org