2013-10-28 11 views
5

sto caricando il file di configurazione utilizzandolog4j non è stato in grado di trovare le informazioni del root logger. Questo è l'ok

java.net.URL url=Thread.currentThread().getContextClassLoader().getResource("MyLog4j.xml"); 
url=Thread.currentThread().getContextClassLoader().getResource("MyLog4j.xml"); 
PropertyConfigurator.configure(url); 

Quando si esegue questo programma con log4j il debug sul suo dare questo errore.

log4j: Reading configuration from URL file:/F:/TestApp/WEB-INF/classes/MyLog4j.xml 
log4j: Could not find root logger information. Is this OK? 
log4j: Finished configuring. 
log4j:WARN No appenders could be found for logger (MyServlet). 
log4j:WARN Please initialize the log4j system properly. 

ho messo il MyLog4j.xml in webapp/WEB-INF/classes

Questo è il contenuto del mio MyLog4j.xml

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 
     <appender name="appender" class="org.apache.log4j.DailyRollingFileAppender"> 
      <param name="DatePattern" value="'.'yyyy-MM-dd"/> 
     <param name="File" value="F:/MyLogs/MyAppLogs.log"/> 
     <param name="Append" value="true"/> 
      <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d [%t] %p - %m%n"/> 
     </layout> 
    </appender> 
    <root> 
     <priority value ="debug"/> 
     <appender-ref ref="appender"/> 
    </root> 
</log4j:configuration> 

Ho cercato molte domande su questo argomento su SO e non farlo funzionare. Qualcuno può aiutarmi qui?

MODIFICA Se cambio il codice per configurare utilizzando i file di proprietà, quindi funziona correttamente. Contenuto del file delle proprietà

# This sets the global logging level and specifies the appenders 
log4j.rootLogger=INFO, myConsoleAppender 

# settings for the console appender 
log4j.appender.myConsoleAppender=org.apache.log4j.ConsoleAppender 
log4j.appender.myConsoleAppender.layout=org.apache.log4j.PatternLayout 
log4j.appender.myConsoleAppender.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n 
+0

Avete: ? – united

+0

risposta

7

Avendo appena trovato la soluzione a questo, ho pensato di condividere la risposta qui poiché questa domanda è ancora senza risposta.

Il problema è che si sta utilizzando lo PropertyConfigurator per configurare il file MyLog4j.xml. Per i file XML, è necessario utilizzare lo DOMConfigurator.

DOMConfigurator.configure(url);