2010-07-05 12 views
7

sto usando log4j nella mia applicazione java, ma dopo qualche tempo, senza lanciare alcuna eccezione si è fermato registrandolog4j fermato accedendo al file,

la mia configurazione log4j è come sotto.

log4j.rootLogger=INFO,FILE 
log4j.appender.FILE=com.test.TestFIleAppender 
log4j.appender.FILE.MaxFileSize=20MB 
log4j.appender.FILE.MaxBackUpIndex=200 

mio appender di file contiene il codice per fare l'operazione di avviamento postale e per specificare il formato di file di log e tutti.

Questo è stato registrando bene per qualche tempo, ma si fermò improvvisamente la registrazione, non fa eccezione anche gettato

qualsiasi organismo può dirmi quello che può essere il problema?

qualsiasi corpo conosce problemi relativi a log4j come questo?

+0

C'è una domanda qui? –

+0

Sei sicuro che sia 'TestFIleAppender' con I maiuscole? Inoltre, hai provato a stampare un messaggio di prova al livello INFO? –

+0

sì, le tracce del livello delle informazioni stanno andando bene – sreejith

risposta

1

È difficile rispondere, perché il registro si sta arrestando.

Innanzitutto, controllare lo spazio sul disco rigido, se questo è pieno.

Rispetto alla scrittura di una testcase in cui un thread sta eseguendo il polling di un messaggio di registrazione di tipo INFO ogni secondo. Di quanto potresti verificare se si tratta di uno spazio o di un problema di memoria.

Nota: quando il programma è in attesa da qualche parte e nessun thread o azione funziona, non verrà visualizzato alcun messaggio di log. Controllare, tramite debug, se una riga di codice viene eseguita in un ciclo (o come ci si aspetta di vedere i messaggi) in cui deve essere visualizzato un messaggio di registrazione.

Questo è un esempio del file delle proprietà log4j. Può essere utile è è:

log4j.rootLogger=INFO, stdout, logfile 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d %p (%t) [%c] - %m%n 

log4j.appender.logfile=org.apache.log4j.RollingFileAppender 
log4j.appender.logfile.File=C:/log/client.log 
log4j.appender.logfile.MaxFileSize=5MB 
log4j.appender.logfile.MaxBackupIndex=0 
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout 
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n 
+0

e la mia applicazione è ok, in pratica la mia applicazione è server, in grado di elaborare richieste e tutto ... ma traccia non in stampa – sreejith

+0

il mio file log4j è anche simile ... sai qualche problemi noti in log4j come questo – sreejith

+0

è un motivo, perché stai usando il tuo FileAppender? –

0

Avete considerato la possibilità che log4j sta ancora scrivendo in un file, ma il file è stato rimosso dal directory superiore dal tuo appender personalizzato?

4

Questo è successo a me. Lavorare un giorno e poi non lavorare il prossimo. Sono tornato e ho capito che avevo cambiato le dipendenze POM e ho fatto qualche ricerca su google.

Quando ho corretto questo problema, il mio registro è tornato. Vorrei fare in modo di avere i seguenti manufatti in sincronia:

<dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>1.7.1</version> 
    </dependency> 

    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-simple</artifactId> 
     <version>1.7.1</version> 
    </dependency> 

    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.17</version> 
    </dependency> 

http://www.slf4j.org/manual.html

0

A me è capitato dopo l'aggiunta di sardine biblioteca ai miei dipendenze. Quindi, da una delle risposte qui ho aggiunto la libreria slf4j-log4j12 alle dipendenze e ha iniziato a funzionare di nuovo.

0

Probabilmente si tratta di una situazione molto rara, ma una volta ho riscontrato un problema simile causato dall'uso di Cloner. Dopo la clonazione di un oggetto con la registrazione log4j abilitata, la registrazione ha smesso di funzionare. La soluzione era quella di escludere le classi log4j dalla clonazione con:

cloner.dontClone(org.apache.log4j.Logger.class, org.apache.log4j.LogManager.class,)

Problemi correlati