2017-08-02 1 views
0

Ich bin dabei, von log4j 1.2 zu log4j 2 zu migrieren.log4j: WARN Es konnten keine Appender für den Logger gefunden werden (org.springframework.web.filter.CharacterEncodingFilter). mit log4j2

Ich habe meine gesamte Konfiguration in einer log4j2.properties-Datei.

Ich bemerkte, dass ich eine neue Fehlermeldung in meinen Logs bekam, während mein Kater beginnen:

log4j: WARN konnte keine Appender für Logger (org.springframework.web.filter.CharacterEncodingFilter) gefunden werden. log4j: WARN Bitte initialisieren Sie das log4j-System ordnungsgemäß. log4j: WARN Siehe http://logging.apache.org/log4j/1.2/faq.html#noconfig für weitere Informationen.

Ich habe mit meinen vorherigen Protokollen verifiziert, und ich hatte diese Warnung zuvor nicht.

Hier ist meine vorherige Konfiguration (in der log4j.properties-Datei):

log4j.rootLogger=INFO, CONSOLE 

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout 
log4j.appender.CONSOLE.layout.ConversionPattern=%d{dd-MM HH:mm:ss} %p %t %c - %m%n 
log4j.logger.com.example=DEBUG 
log4j.logger.org.springframework=INFO 

Hier ist die neue (in log4j2.properties):

appender.console.type = Console 
appender.console.name = ConsoleAppender 
appender.console.layout.type = PatternLayout 
appender.console.layout.pattern = %d %p %t %c - %m%n 

loggers = log1, log2 

logger.log1.name = org.springframework 
logger.log1.level = INFO 
logger.log1.appenderRef = ConsoleAppender 

logger.log2.name = com.example 
logger.log2.level = DEBUG 
logger.log2.appenderRef = ConsoleAppender 

rootLogger.level = ERROR 
rootLogger.appenderRef.stdout.ref = ConsoleAppender 

Also, was ich habe verstehen, so weit ist:

  • ich erstelle ein appender namens ConsoleAppender vom Typ Console
  • Ich schaffe zwei Loggern, die jeweils auf ConsoleAppender, eine auf org.springframework (Ebene INFO) und die andere auf com.example (Ebene INFO)

Ich benutze this page zu versuchen zu verstehen, wie zu tun, um die Migration geht .

Sehen Sie irgendeine Erklärung, warum ich diese bestimmte Nachricht haben sollte?

+0

Haben Sie versucht, den Speicherort der Konfigurationsdatei anzugeben? Ich denke, dass dieser Fehler bedeutet, dass Log4j es nicht findet: https://logging.apache.org/log4j/2.0/faq.html#config_location – xuso

+0

Es scheint, dass es nicht notwendig ist, es zu spezifizieren, da log4j2.properties automatisch gefunden wird (da log4j.properties automatisch mit der vorherigen Version gefunden wurde) –

+0

Beim erneuten Lesen der Log-Nachricht habe ich festgestellt, dass die Version 1.2 nicht ihre Konfiguration findet, nicht die Version 2.4. Vielleicht ist das alte 1.2 Glas noch in deinem Klassenpfad? – xuso

Antwort

0

Wie in this answer gesehen, das Problem kann auf die Tatsache zurückzuführen sein, dass ich auch slf4j-log4j12 (aber in der aktuellen Version bereits) und es war in Konflikt mit anderen log4j apis wurde mit:

<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-api</artifactId> 
    <version>1.7.25</version> 
</dependency> 
<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-log4j12</artifactId> 
    <version>1.7.25</version> 
</dependency> 

Also tat ich, was gesagt hat und ich entfernte die org.slf4j: slf4j-log4j12 dependancy und hinzugefügt log4j-api & log4j-slf4j-impl Abhängigkeiten:

<dependency> 
    <groupId>org.apache.logging.log4j</groupId> 
    <artifactId>log4j-core</artifactId> 
    <version>2.8.2</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.logging.log4j</groupId> 
    <artifactId>log4j-api</artifactId> 
    <version>2.8.2</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.logging.log4j</groupId> 
    <artifactId>log4j-slf4j-impl</artifactId> 
    <version>2.8.2</version> 
</dependency> 

... und weiß, es scheint zu lösen Sie den Fehler (es nicht mehr in meine Startprotokolle erscheint

mehr klar zu sein, habe ich zunächst nur die drei oben ohne Abhängigkeiten man die slf4j-log4j12 zu entfernen, und ich habe dies auch in den Protokollen:

SLF4J: gefunden in Bindung [jar: file: /myuser/apache-tomcat-7.0.75/webapps/mywebapp/WEB-INF/lib/log4j-slf4j-impl-2.8.2.jar/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Die Bindung wurde in [jar: file: /myuser/apache-tomcat-7.0.75/webapps/mywebapp/WEB-INF/lib/slf4j-log4j12-1.7.25 gefunden. jar!/org/slf4j/impl/StaticLoggerBinder.Klasse]

Nachdem die Abhängigkeit slf4j-log4j12 entfernt wurde, verschwanden die gesamten Fehlerprotokolle.

Verwandte Themen