2012-11-25 15 views
6

Sto provando log4j2 per creare il file di registro nel sistema che sto sviluppando correttamente, ho seguito le istruzioni sul loro site e non si sono verificati errori durante l'esecuzione, ma il registro è non salvato su dove l'ho impostato (es. "D: \ logs \ app.log").File di salvataggio di Log4j2 (utilizzando l'appender di RollingFile)

Qui è il mio log4j.xml

<?xml version="1.0" encoding="UTF-8"?> 
<configuration status="OFF"> 
    <appenders> 
    <RollingFile name="MyRollingFile" fileName="D:/logs/app.log" 
       filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz"> 
     <PatternLayout> 
     <pattern>%d %p %C{1.} [%t] %m%n</pattern> 
     </PatternLayout> 
     <Policies> 
     <TimeBasedTriggeringPolicy /> 
     <SizeBasedTriggeringPolicy size="250 MB"/> 
     </Policies> 
     <DefaultRolloverStrategy max="20"/> 
    </RollingFile> 
    <Console name="Console" target="SYSTEM_OUT"> 
     <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> 
    </Console> 
    </appenders> 
    <loggers> 
    <logger name="Log_RollingFile" level="TRACE" additivity="false"> 
     <appender-ref ref="MyRollingFile"/> 
    </logger> 
    <root level="ERROR"> 
     <appender-ref ref="Console"/> 
    </root> 
    </loggers> 
</configuration> 

ho cercato di:

  • eliminare app.log per vedere se la mia configurazione (D: \ logs \ app.log) lavori. Quando eseguo l'applicazione crea app.log quindi penso che significhi che vede la configurazione e l'unica cosa è NON salvare il file log.info che ho fatto nell'applicazione java
  • Modificare il livello root in "TRACE", e stampa il log.info.

[EDIT:]

Ho anche queste librerie sul mio percorso di classe

  • log4j-api-2.0-beta3.jar
  • log4j-core- 2.0-beta3.jar

Mi manca qualcosa sulla configurazione di RollingFile o su una libreria (forse)?

Grazie in anticipo.

risposta

3

Il nome del logger non è corretto.

Come spiegato nelle istruzioni di configurazione a cui è collegato, il logger deve essere denominato in base al pacchetto/alle classi per cui si desidera acquisire la registrazione.

Nel loro esempio il logger com.foo.Bar registrava tutto dalla classe Bar nel pacchetto com.foo con il livello TRACE.

Problemi correlati