Implementato shutdown Log4j
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good

This commit is contained in:
2025-06-19 10:58:16 +02:00
parent 7d0cdf3d2a
commit 005f2655ff
4 changed files with 42 additions and 5 deletions

View File

@@ -68,7 +68,7 @@
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-bom</artifactId>
<version>2.24.3</version>
<version>2.25.0</version>
<scope>import</scope>
<type>pom</type>
</dependency>

View File

@@ -23,6 +23,7 @@ import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.sql.DriverManager;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.List;
import java.util.Set;
import java.util.concurrent.ExecutorService;
@@ -72,6 +73,22 @@ public class EmsCoreContext {
@PreDestroy
public void preDestroy() {
contextInitialized = false;
ClassLoader cl = Thread.currentThread().getContextClassLoader();
Enumeration<java.sql.Driver> drivers = DriverManager.getDrivers();
logger.info("Deregister DB Drivers");
while (drivers.hasMoreElements()) {
java.sql.Driver driver = drivers.nextElement();
if (driver.getClass().getClassLoader() == cl) {
try {
DriverManager.deregisterDriver(driver);
} catch (Exception ex) {
// log error
}
}
}
}
//@EventListener(ContextRefreshedEvent.class)

View File

@@ -0,0 +1,18 @@
package it.integry.ems.listener;
import org.apache.logging.log4j.LogManager;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class Log4jShutdownListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
LogManager.shutdown();
}
}

View File

@@ -19,16 +19,18 @@
<param-name>log4jConfiguration</param-name>
<param-value>classpath:log4j2.xml</param-value>
</context-param>
<listener>
<listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
<listener>
<listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class>
</listener>
<!-- <listener>-->
<!-- <listener-class>it.integry.ems.listener.Log4jShutdownListener</listener-class>-->
<!-- </listener>-->
<servlet>
<servlet-name>SpringDispatcherServlet</servlet-name>