2009-06-02 12 views
6

La mia applicazione Web utilizza Java, l'implementazione JPA di Hibernate (EntityManager) e Spring. Quali sono le mie scelte di logger e cosa consiglieresti. Idealmente la configurazione sarebbe semplice (un file di configurazione per Hibernate, Spring e il mio codice).Registratore consigliato per l'utilizzo con Java, Hibernate e Spring

+0

duplicati di http://stackoverflow.com/questions/354837/whats-up-with-logging-in-java – Jherico

+0

forse ... questo Q è specifico su Hibernate e Spring –

+0

Ahimè, solo una risposta menziona qualsiasi cosa sull'utilizzo del log in un metodo che ha una pertinenza specifica per Spring e Hibernate. Ad ogni modo, la vera risposta è "qualsiasi implementazione del logging farà ciò che si desidera, dal momento che la maggior parte delle librerie come spring o hibernate registrano l'implementazione agnostica". – Jherico

risposta

13

Quando si creano applicazioni da vari framework, è spesso necessario disporre di registratori esistenti, sia log4j o JUL o JULI o qualsiasi altra cosa. L'applicazione standard per questo è il Simple Logging Facade for Java (SLF4J). Anche se la tua app non ha bisogno di SLF4J ora potresti in seguito voler aggiungere una libreria che ne ha bisogno, ed è la tua migliore speranza per un file di configurazione a lungo termine.

Con questo in mente, è necessario attenersi ai pacchetti di registrazione supportati da SLF4J, ma in genere si riduce a java.util.logging (JUL) o Apache's log4j. Questo è stato un subject for debate per un po 'di tempo e puoi trovare molte opinioni su entrambi i lati.

Personalmente, penso che sia sfortunato che la registrazione Java sia in this situation, e userò qualunque cosa mi dia il minimo fastidio per la situazione.

7

log4j è il programma di registrazione standard che utilizzo. È possibile configurare i livelli di registrazione e i file di registro in base al pacchetto, in modo tale che Hibernate, Spring e il proprio codice possano andare ciascuno nei propri file di registro.

3

uso il Apache Commons Logging api, con un file di log4j di configurazione (il file log4j di configurazione è semplice, facile per un novizio di capire e ha numerosi esempi di lavorare da.

Io preferisco usare i beni comuni registrazione API perché la sua agnostico sul suo file di configurazione, può essere configurato tramite formati di file per qualsiasi numero di pacchetti di registrazione popolari

Ecco una semplice configurazione di log4j che stamperà le informazioni di debug per i propri pacchetti, il livello INFO per la primavera e l'ibernazione e WARN per tutto il resto:

# Global logging configuration 
log4j.rootLogger=WARN, stdout 
log4j.category.org.mydomain.org=DEBUG 
log4j.category.org.hibernate=INFO 
log4j.category.org.springframework=INFO 


# CONSOLE appender not used by default 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d %-5p [%t] %c - %m%n 
5

Nessuno è mai stato licenziato per aver scelto log4j.

Controllare anche slf4j.

4

Hibernate si basa già su SLF4J. A meno che non mi sbagli, la versione corrente di Spring si basa sulla registrazione delle risorse comuni, ma la versione successiva userà anche SLF4J. Ad ogni modo, potresti consolidate all logging through SLF4J (vedi la sezione su jcl-over-slf4j.jar). Una volta eseguita questa operazione, è possibile scegliere java.util.logging, log4j o logback come framework di registrazione sottostante.

Problemi correlati