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
Avete: ? – united
Sì Xml version = "1.0" encoding = "UTF-8"?> –