Ứng dụng web của tôi đang sử dụng Java, thực thi JPA Hibernate (EntityManager) và Spring. Lựa chọn logger của tôi là gì và bạn sẽ giới thiệu gì. Lý tưởng nhất là cấu hình sẽ đơn giản (một tập tin cấu hình cho Hibernate, Spring và mã của tôi).Trình ghi nhật ký được đề xuất để sử dụng với Java, Hibernate và Spring
Trả lời
Khi xây dựng các ứng dụng ra khỏi các khung công tác khác nhau, bạn thường cần bọc các logger hiện tại, chúng có thể là log4j hoặc JUL hoặc JULI hay bất kỳ thứ gì. Ứng dụng tiêu chuẩn cho điều này là Simple Logging Facade for Java (SLF4J). Ngay cả khi ứng dụng của bạn không cần SLF4J thì bây giờ bạn có thể muốn thêm một thư viện mà không cần nó, và đó là hy vọng tốt nhất của bạn cho một tập tin cấu hình trong thời gian dài.
Với ý nghĩ đó, bạn nên gắn bó với các gói ghi nhật ký mà SLF4J hỗ trợ, nhưng thường nó nén xuống java.util.logging (JUL) hoặc log4j của Apache. Đây là subject for debate trong một thời gian và bạn có thể tìm thấy nhiều ý kiến ở cả hai bên.
Cá nhân, tôi nghĩ rằng thật không may là việc ghi nhật ký Java nằm trong this situation và tôi sẽ sử dụng bất kỳ thứ gì mang lại cho tôi ít đau nhất cho tình huống.
log4j là bộ ghi chuẩn mà tôi sử dụng. Bạn có thể cấu hình các mức ghi nhật ký và các tệp nhật ký theo gói để Hibernate, Spring và mã của bạn có thể đi tới các tệp nhật ký của riêng bạn.
tôi sử dụng Apache Commons Logging api, với một tập tin log4j cấu hình (file log4j cấu hình rất đơn giản, dễ dàng cho một người mới để hiểu và có nhiều ví dụ để làm việc từ.
tôi thích sử dụng commons đăng nhập API vì nó Một cấu hình log4j đơn giản sẽ in ra thông tin gỡ lỗi cho gói của bạn, mức INFO cho mùa xuân và ngủ đông, và WARN cho mọi thứ khác:
# 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
Không ai từng bị sa thải vì đã chọn log4j.
Ngoài ra, hãy xem slf4j.
Hibernate đã dựa trên SLF4J. Trừ khi tôi nhầm, phiên bản Spring hiện tại dựa vào việc ghi nhật ký, nhưng phiên bản tiếp theo cũng sẽ sử dụng SLF4J. Dù sao, bạn có thể consolidate all logging through SLF4J (xem phần trên jcl-over-slf4j.jar). Khi đã xong, bạn có thể chọn bất kỳ java.util.logging, log4j hoặc logback nào làm khung khai thác cơ bản của bạn.
Nói chung, Ghi nhật ký Commons là không cần thiết và lựa chọn không tốt cho các ứng dụng web (và các ứng dụng độc lập). Một số văn bản tốt về lý do tại sao:
- 1. Tắt ghi nhật ký Hibernate
- 2. bối rối bởi Systems Logging Java với Spring và Hibernate
- 3. Ghi nhật ký với Vala
- 4. Ghi nhật ký Java - cách chuyển hướng đầu ra sang tệp nhật ký tùy chỉnh cho trình ghi nhật ký?
- 5. Cách bạn định cấu hình ghi nhật ký trong Hibernate 4 để sử dụng SLF4J
- 6. Đề xuất của trình xem sự kiện nhật ký khối lượng lớn trong môi trường Java
- 7. Các vấn đề khi sử dụng Spring Hibernate
- 8. Tôi có thể tắt tiêu đề nhật ký cho trình ghi nhật ký ruby không?
- 9. Đang sử dụng Spring AOP để ghi nhật ký một ý tưởng hay?
- 10. Ghi nhật ký Tomcat của Azure Java
- 11. Sử dụng chú thích để ghi nhật ký theo dõi
- 12. Trình ghi nhật ký cho thư viện Java
- 13. Ghi nhật ký sản xuất trong Flex
- 14. Ghi nhật ký CherryPy: Làm cách nào để định cấu hình và sử dụng trình ghi nhật ký cấp độ toàn cầu và ứng dụng?
- 15. Giao dịch lồng nhau sử dụng Spring và Hibernate
- 16. Làm cách nào để có được google guice để chèn trình ghi nhật ký tùy chỉnh, hãy nói nhật ký ghi nhật ký hoặc log4j
- 17. Lỗi ghi nhật ký có lập trình Với Elmah: Ghi nhật ký thông tin cụ thể
- 18. Java Frameworks War: Spring và Hibernate
- 19. phân cấp ghi nhật ký so với trình ghi nhật ký gốc?
- 20. Làm thế nào để sử dụng JodaTime với Spring và Hibernate?
- 21. Ghi nhật ký * Kinh doanh * Sự kiện - sử dụng khung ghi nhật ký?
- 22. Ghi nhật ký Java với lớp trừu tượng
- 23. Ghi nhật ký mùa xuân bằng cách sử dụng Log4j2
- 24. Ghi nhật ký Java vs Log4J
- 25. Ghi nhật ký Thay đổi thực thể trong Ứng dụng web Java
- 26. Có trình ghi nhật ký hoặc trình diễn hiệu suất Java dài hạn không?
- 27. Chủ đề không được quản lý Spring Quartz Websphere Hibernate
- 28. Batch Insertions với Hibernate & Spring
- 29. Sử dụng log4net để ghi vào nhật ký khác nhau
- 30. Ghi nhật ký các ứng dụng web Java?
Duplicate của http://stackoverflow.com/questions/354837/whats-up-with-logging-in-java – Jherico
lẽ ... Đây Q là cụ thể về Hibernate và Spring –
Than ôi, chỉ có một câu trả lời đề cập đến bất cứ điều gì về việc sử dụng đăng nhập vào một phương thức có liên quan cụ thể đến Spring và Hibernate. Ở mức nào, câu trả lời thực sự là 'bất kỳ triển khai ghi nhật ký nào cũng sẽ làm những gì bạn muốn vì hầu hết các thư viện như spring hoặc hibernate đang ghi nhật ký triển khai thực hiện bất khả tri'. – Jherico