Thank you both for the responses. You asked for the log4j configuration. I try to extract the relevant parts. Indeed the application has got a DynamicThresholdFilter in the game.
<DynamicThresholdFilter key="abc" onMatch="ACCEPT" onMismatch="DENY"> <KeyValuePair key="abc" value="INFO" /> </DynamicThresholdFilter> There two appenders referenced from the loggers, one usual RollingFile appender with the following pattern: <Pattern>%d{yyyy-MM-dd HH:mm:ss,SSS 'UTC'Z} %-5p [%t] (%X{reqtype}) [%X{reqtag}] %c -- %m%n</Pattern> And one Null appender as placeholder. The loggers are configured to INFO, that's why just the two lines. They have no extra threshold configured. If I remove the (%X{reqtype}) [%X{reqtag}], then this doesn't improve the performance. But indeed, if I remove the DynamicThresholdFilter, then the performance is back at normal, if loggers remain on INFO. I didn't test with DEBUG enabled, and haven't got figures to compare.