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
risposta
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.
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.
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
Nessuno è mai stato licenziato per aver scelto log4j.
Controllare anche slf4j.
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.
In generale, la registrazione di Commons non è necessaria e rappresenta una cattiva scelta per le applicazioni Web (e le applicazioni standalone). Qualche buona scrittura sul perché:
- 1. Configura sessionFactory con Spring, Hibernate e LocalSessionFactoryBuilder
- 2. Come usare JodaTime con Spring e Hibernate?
- 3. HibernateInterceptor con spring 3.1 e hibernate 4.01
- 4. Transazione nidificata utilizzando Spring e Hibernate
- 5. Hibernate Validator, ResourceBundleLocator personalizzato e Spring
- 6. Transazioni di lunga durata con Spring e Hibernate?
- 7. Spring hibernate template quando usare e perché?
- 8. Spring + Hibernate con annotazioni: No Hibernate Session legata al thread
- 9. DAO, Spring and Hibernate
- 10. progetto noob per imparare Spring/Hibernate
- 11. Come utilizzare StatelessSession con Spring Data JPA e Hibernate?
- 12. Utilizzo del tempo joda con JPA/hibernate e spring
- 13. Come abilitare gli inserimenti batch con Hibernate e Spring Boot
- 14. Spring vs Hibernate
- 15. Hibernate problema dialetto con configurazione di Spring
- 16. Spring Boot: Hibernate e Flyway Boot Order
- 17. Metodo consigliato per l'escape dell'HTML in Java
- 18. È persistence.xml richiesto quando si lavora con Spring e Hibernate?
- 19. Database multipli con Spring + Hibernate + JPA
- 20. Spring ORM o Hibernate
- 21. Registratore Singleton, registratore statico, registratore di fabbrica ... come accedere?
- 22. Hibernate e java 8 lambda
- 23. spring hibernate manual commit
- 24. Configurazione Spring di C3P0 con Hibernate?
- 25. CannotAcquireLockException (Spring, Hibernate, Mysql)
- 26. Come disabilitare completamente la memorizzazione nella cache di Hibernate? (con Spring 3, Hibernate con annotazioni)
- 27. Spring, Hibernate, Blob lazy loading
- 28. Devo andare per Spring o stick con Java EE 6?
- 29. Registratore di dati con NLog
- 30. Relazioni tra Spring, Hibernate, JDBC
duplicati di http://stackoverflow.com/questions/354837/whats-up-with-logging-in-java – Jherico
forse ... questo Q è specifico su Hibernate e Spring –
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