2016-05-03 15 views
0

Ich verwende die log4j-web Abhängigkeit für die richtige (de) -Anmeldung des log4j2 Logger in einer tomcat Umgebung:Wie benutzt man WebLookup mit log4j-web?

<dependency> 
    <groupId>org.apache.logging.log4j</groupId> 
    <artifactId>log4j-web</artifactId> 
</dependency> 

Problem: dann kann ich WebLookup nicht mehr verwenden, wie folgt:

<RollingRandomAccessFile name="TEST" fileName="${web:rootDir}-${web:majorVersion}-application.log" ..> 

Wenn ich die log4j-web Abhängigkeit ausschließe, funktioniert das Weblookup gut. Aber ich muss die Abhängigkeit für die richtige Tomcat-Protokollierung verwenden.

Wahrscheinlich ist das Nachschlagen zu spät initialisiert. Also, wie kann ich das weblookup noch benutzen?

Antwort

1

Eine mögliche Lösung: Haken vor dem Logger Initialisierung und die Karte params bevölkern in log4j2.xml Config verwenden:

@SpringBootApplication 
public class App extends SpringBootServletInitializer { 
    @Override 
    public void onStartup(ServletContext servletContext) throws ServletException { 
     MainMapLookup.setMainArguments(new String[] {"thekey", "thevalue"}); 
     super.onStartup(servletContext); 
    } 
} 

Verbrauch:

fileName="${main:thekey}-..."