-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Closed
Labels
bugIncorrect, unexpected, or unintended behavior of existing codeIncorrect, unexpected, or unintended behavior of existing codeconfigurationAffects the configuration system in a general wayAffects the configuration system in a general way
Milestone
Description
Description
When using a monitorInterval setting on a remote/http log4j.xml the reconfigure-thread does not update the lastModifiedTime of the configuration source and reconfigures the loggers every time.
Configuration
Version: 2.23 and 2.24
Operating system: Windows 10
JDK: AdoptOpenJDK 21
Logs
Reproduction
I don't really have a completely isolated test. The problem does not occur when using a file-based log-config, so you need something like a webserver.
My test-setup looks like this:
Main
public static void main(String[] args) throws Exception {
System.setProperty("log4j2.debug", "true");
System.setProperty("log4j2.Configuration.allowedProtocols","http,https,file,jar");
Configurator.reconfigure(URI.create("http://sfs00053/configs/t7/client/testlog.xml"));
new Thread(() -> {
while (true) {
try {
LogManager.getLogger().error("hello");
TimeUnit.SECONDS.sleep(5);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
}).start();
}
Log-Config
<?xml version="1.0" encoding="UTF-8" ?>
<Configuration monitorInterval="10">
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%d | %-5p | %c | %m%n" />
</Console>
</Appenders>
<Loggers>
<Root level="DEBUG">
<AppenderRef ref="STDOUT" />
</Root>
</Loggers>
</Configuration>
Steps to reproduce
- Change the log4j.xml-location in the main to your own location
- Start the main. log4j2 should configure itself with the given log-config and log every 5 seconds
- Change the file on the webserver so the lastModified of the log-config is newer than the one log4j2 knows (e.g. by
touch testlog.xml
) - log4j2 will now reconfigure every 10 seconds and not only once because it doesn't honor the new lastModified
See also the attached log. I changed the file on the webserver after the first watchmonitor run. After that it reconfigured itself every time.
I hope I filled out this issue correctly. If something's missing please let me know :)
Metadata
Metadata
Assignees
Labels
bugIncorrect, unexpected, or unintended behavior of existing codeIncorrect, unexpected, or unintended behavior of existing codeconfigurationAffects the configuration system in a general wayAffects the configuration system in a general way