Aggiornamento - questo problema era di mia iniziativa.Trovare log4j.properties in IDEA
A un certo punto questa particolare classe di test aveva un test per assicurarsi che qualcosa fosse stato registrato. Nel setup, avevo precedentemente rimosso tutte le appendici e aggiunto il mio appender per le asserzioni in tempo di test. Quel test è finito da tempo, ma questa pepita è rimasta nella configurazione: Logger.getRootLogger().removeAllAppenders();
.
Ci scusiamo per il falso allarme. :)
In idea che ho il seguente test:
@Test
public void shouldLog() {
URL resource = Thread.currentThread().getContextClassLoader()
.getResource("log4j.properties");
System.out.println("resource = " + resource);
final Logger logger = Logger.getLogger(getClass());
logger.info("Hello world");
}
Produce così:
"C:\Program Files\Java\jdk1.5.0_18\bin\java" -classpath "C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 11.1\lib\idea_rt.jar" -ea -Dfile.encoding=UTF-8 com.intellij.rt.execution.CommandLineWrapper C:\DOCUME~1\JMAWSO~1.NT3\LOCALS~1\Temp\classpath2294205410661538428.tmp @vm_params C:\DOCUME~1\JMAWSO~1.NT3\LOCALS~1\Temp\vm_params5645362020129462784.tmp com.intellij.rt.execution.application.AppMain com.intellij.rt.execution.junit.JUnitStarter -ideVersion5 au.com.gmm.repo.RepoThreadCleanupServiceTest,shouldLog
resource = file:/C:/user/jem/projects/GMM/out/test/cashflow/log4j.properties
log4j:WARN No appenders could be found for logger (au.com.gmm.repo.RepoThreadCleanupServiceTest).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Process finished with exit code 0
Questo è un problema noto, visto da molti neofiti più e più volte. Mi sento un po 'stupido essere sconcertato oggi.
http://logging.apache.org/log4j/1.2/faq.html#noconfig dice log4j uses Thread.getContextClassLoader().getResource() to locate the default configuration files
. Tuttavia, il mio test controlla Thread.currentThread().getContextClassLoader().getResource("log4j.properties")
e trova il file delle proprietà senza problemi.
Il contenuto del file è:
log4j.rootLogger=DEBUG, CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{HH:mm:ss.SSS} %c - %m%n
Grazie per la risposta. Sfortunatamente non aiuta. – Synesso
Ooops, il problema era colpa mia. Vedi domanda aggiornata. Risposta corretta assegnata, sebbene slf4j non sia necessario e potresti ridurre un po 'le proprietà log4j.properties. – Synesso
Grazie, contrassegnarlo come "fonte" ha risolto il mio problema! \ O / – koenmetsu