我的Web应用程序使用Java、Hibernate的JPA实现(EntityManager)和Spring。我有哪些日志记录器选择,你会推荐什么?理想情况下,配置应该简单(一个配置文件适用于Hibernate、Spring和我的代码)。
我的Web应用程序使用Java、Hibernate的JPA实现(EntityManager)和Spring。我有哪些日志记录器选择,你会推荐什么?理想情况下,配置应该简单(一个配置文件适用于Hibernate、Spring和我的代码)。
当使用各种框架构建应用程序时,通常需要包装现有的记录器,无论是log4j还是JUL或JULI等。这个任务的标准应用是Java简单日志门面(SLF4J)。即使您的应用程序现在不需要SLF4J,将来可能需要添加一个需要它的库,而它是长期运行中仅需一个配置文件的最佳希望。
考虑到这一点,您应该坚持使用SLF4J支持的日志记录包,但通常归结为java.util.logging(JUL)或Apache的log4j。这已经成为了一直争议的话题,你可以找到许多对于双方的不同意见。
就我个人而言,我认为Java的日志记录处于这种境地是不幸的,我会使用任何能够在情况下给我带来最少痛苦的东西。
选择log4j从未有人被解雇。
还要看看slf4j。
# 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
一般来说,Commons Logging 对于 Web 应用程序(和独立应用程序)来说是不必要的,也是一个糟糕的选择。以下是一些关于此的好文章: