|
17 | 17 | package org.apache.logging.log4j.core.appender; |
18 | 18 |
|
19 | 19 | import java.lang.reflect.Field; |
20 | | -import java.util.Map; |
21 | 20 |
|
22 | 21 | import org.apache.logging.log4j.Level; |
23 | 22 | import org.apache.logging.log4j.LogManager; |
24 | 23 | import org.apache.logging.log4j.core.Logger; |
25 | 24 | import org.apache.logging.log4j.core.LoggerContext; |
26 | 25 | import org.apache.logging.log4j.core.appender.rolling.DirectWriteRolloverStrategy; |
| 26 | +import org.apache.logging.log4j.core.appender.rolling.RollingFileManager; |
27 | 27 | import org.apache.logging.log4j.core.appender.rolling.SizeBasedTriggeringPolicy; |
28 | 28 | import org.apache.logging.log4j.core.config.Configurator; |
29 | 29 | import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilder; |
@@ -105,15 +105,12 @@ private void removeManagerUsingReflection() |
105 | 105 | { |
106 | 106 | try |
107 | 107 | { |
108 | | - final Field field = AbstractManager.class.getDeclaredField("MAP"); |
| 108 | + final Field field = AbstractManager.class.getDeclaredField("REGISTRY"); |
109 | 109 | field.setAccessible(true); |
| 110 | + final ManagerRegistry registry = (ManagerRegistry) field.get(null); |
110 | 111 |
|
111 | | - // Retrieve the map itself. |
112 | | - final Map<String, AbstractManager> map = |
113 | | - (Map<String, AbstractManager>) field.get(null); |
114 | | - |
115 | | - // Remove the file manager keyed on file pattern. |
116 | | - map.remove(appender.getFilePattern()); |
| 112 | + final RollingFileManager manager = appender.getManager(); |
| 113 | + registry.removeManager(manager.getName(), manager); |
117 | 114 | } |
118 | 115 | catch (Exception e) |
119 | 116 | { |
|
0 commit comments