2016-07-14 13 views
0

Ich habe log4j2 für eine ganze Weile verwendet und am Klassenpfad hat es gut funktioniert. Aber jetzt habe ich beschlossen, es zu VM options mit -Dlog4j.configuration= zu verschieben, und es ist eine Katastrophe. Es gibt tonns von WARN und schließlich gibt es mir einen Fehler, dass No log4j2 configuration file found.log4j2.xml VM-Optionen "Keine Log4j2-Konfigurationsdatei gefunden"

Was mit bewegten sie aus Projekt geändert hat und log4j2.xml mit VM-Optionen bei IDEA Injektion?

log4j:WARN Continuable parsing error 2 and column 30 
log4j:WARN Document root element "configuration", must match DOCTYPE root "null". 
log4j:WARN Continuable parsing error 2 and column 30 
log4j:WARN Document is invalid: no grammar found. 
log4j:WARN The <configuration> element has been deprecated. 
log4j:WARN Use the <log4j:configuration> element instead. 
log4j:WARN Unrecognized element appenders 
log4j:WARN Unrecognized element Loggers 
log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader). 
log4j:WARN Please initialize the log4j system properly. 
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console. 

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?> 
<configuration status="WARN"> 
<appenders> 
    <Console name="Console" target="SYSTEM_OUT"> 
     <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> 
    </Console> 

    <File name="File" fileName="logs/error.log" 
      immediateFlush="true" append="true"> 
     <PatternLayout pattern=" \n\n %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> 
    </File> 

    <RandomAccessFile name="File" fileName="logs/journal.log" immediateFlush="true" append="true"> 
     <PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss.SSS}] %msg%n"/> 
    </RandomAccessFile> 

    <File name="JournalJSON" fileName="logs/journalJSON.log" immediateFlush="true" append="false"> 
     <JSONLayout complete="true" charset="UTF-8" compact="false" eventEol="false"/> 
    </File> 

</appenders> 

<Loggers> 

    <Logger name="com.ottercoder.controller" level="error" additivity="false"> 
     <AppenderRef ref="Error" level="error"/> 
     <AppenderRef ref="Console" level="error"/> 
    </Logger> 

    <Logger name="com.ottercoder.service" level="info" additivity="false"> 
     <appender-ref ref="JournalJSON" level="info"/> 
     <appender-ref ref="Journal" level="info"/> 
     <appender-ref ref="Console" level="info"/> 
    </Logger> 

    <Root level="warn"> 
     <AppenderRef ref="Console"/> 
    </Root> 
</Loggers> 


</configuration> 
+0

Ist das die vollständige XML-Datei? Es ist kaputt! – Fildor

+0

@Fildor Wie ist das, und warum hat es funktioniert, Ressourcen Ordner zu sein. – ottercoder

+0

kann ich dir nicht sagen. Alles was ich sagen kann ist, dass das von Ihnen gepostete XML kein gültiges XML ist, um nicht von einem gültigen log4j Konfigurations-XML zu sprechen. Vielleicht sollten Sie sich eine Sicherungskopie der Datei ansehen und nachsehen, ob es einen Copy & Paste-Fehler oder etwas ähnliches gegeben hat. – Fildor

Antwort

1

-Dlog4j.configuration ist ein Log4j 1.2-Eigenschaft. In Log4j 2 können Sie den Speicherort der Konfigurationsdatei mit der Eigenschaft -Dlog4j.configurationFile angeben.

Die log4j:WARN Ausgabeleitungen werden von Log4j-1.2 generiert. Das ist nicht gut. Stellen Sie sicher, dass die Datei log4j-1.2.x.jar aus dem Klassenpfad entfernt wird. (Verwenden Sie den log4j-1.2-api-Adapter, um Anrufe, die die Log4j 1.2 API zum Log4j 2-Implementierung verwenden.)

Es gibt einen Log4j 2 Status-Logger Warnung: ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console: wenn log4j.configurationFile nicht angegeben ist, Log4j 2 versucht, Suchen Sie die Konfigurationsdatei im Klassenpfad. Wenn nicht gefunden, wird dieser Fehler gedruckt. Sie können dies beheben, indem Sie die Konfigurationsdatei in ein Verzeichnis im Klassenpfad verschieben oder indem Sie den Speicherort der Konfigurationsdatei mit der Eigenschaft -Dlog4j.configurationFile angeben.

Schließlich hat der Logger com.ottercoder.service einen "Journal" AppenderRef über die Konfiguration, aber kein Appender mit diesem Namen ist im Appender-Abschnitt definiert. Ähnlich für den com.ottercoder.controller Logger, der auf einen nicht existierenden "Error" -Appender verweist. In Bezug auf die Auswirkungen wird Log4j 2 eine Warnung ausgeben, ignoriert diese jedoch ansonsten.

Verwandte Themen