2009-09-18 11 views
16

Ad esempio, la prima volta che eseguo un'applicazione (o immediatamente dopo aver eliminato la directory/logs), voglio che log4j scriva i registri dell'applicazione in un file denominato log.0. Quindi, esco dall'applicazione e lo riavvio, voglio che i log vengano scritti su log.1. E così via.È possibile configurare log4j per creare un nuovo file ad ogni esecuzione dell'applicazione?

vorrei tenere questo nel file di configurazione, anche se non posso, credo che sempre ho potuto farlo nella mia richiesta, quando log4j è impostato.

È possibile? Se é cosi, come?

risposta

0

Dalla parte superiore della mia testa non penso che sia possibile con Log4j. Forse quando si chiude l'applicazione, è possibile rinominare il file .log così la volta successiva che si avvia un nuovo file di registro viene creato.

+0

Se è il caso, sono un po 'deluso. log4j soddisfa tutti i miei bisogni e funziona bene. Voglio solo essere in grado di raggruppare i miei registri per esecuzione, anziché per data o dimensione del file. –

+0

una volta ho scritto un adattatore aggiuntivo per log4j (storia lunga) il codice sorgente è davvero facile da leggere e ben documentato sicuro che non ci vorrà molto tempo per implementare questa funzione :-) – Karl

1
+2

Questa risposta non è per un altro framework, non per log4j stesso? Almeno does'nt lavoro con log4j per me: ' log4j: WARN di continuazione errore di analisi 11 e la colonna 61 log4j: WARN Elemento tipo "timestamp" deve essere dichiarato. log4j: WARN di continuazione errore di analisi 18 e colonna 16 log4j: WARN Il contenuto di tipo di elemento "appender" must match "(errorHandler, param *, disposizione, il filtro *, appender-ref *?)". ' – Henning

3

Soluzione con log4j2:

 <RollingFile name="RollingFile" fileName="${log-path}/GScraper.log" 
       filePattern="${log-path}/GScraper_%d{yyyy-MM-dd}_%i.log"> 
     <ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/> 
     <PatternLayout> 
      <pattern>%level\t%d{yyyy-MM-dd HH:mm:ss} %c: %m%n</pattern> 
     </PatternLayout> 
     <Policies> 
      <TimeBasedTriggeringPolicy interval="1" modulate="true"/> 
      <SizeBasedTriggeringPolicy size="32 MB" /> 
      <OnStartupTriggeringPolicy/> 
     </Policies> 
    </RollingFile> 

Nota OnStartupTriggeringPolicy e % i in filePattern. In questo modo, Log4j creerà un nuovo file di registro con indice ogni volta che esegui l'app.

Problemi correlati