如何将所有日志从hibernate和spring重定向到log4j2?
Posted
技术标签:
【中文标题】如何将所有日志从hibernate和spring重定向到log4j2?【英文标题】:How to redirect all logs from hibernate and spring to log4j2? 【发布时间】:2014-04-11 19:40:58 【问题描述】:我使用下一个技术堆栈构建我的“superWebApp”:
persistence provider - Hibernate 4.x
webMvc and beans container - Spring 4.x
web containter - Tomcat 7.5.x
我的任务是将所有日志写入数据库。单独为每个日志框架做这件事会很痛苦。这就是为什么我需要将所有日志重定向到单个框架,然后使用 DBAppender 不会有问题。
我在考虑 log4j2,因为我用它在“superWebApp”中写日志。那么有什么想法 (也可以重定向 tomcat 日志)?
如果不可能,也许还有另一个日志框架可以作为中心?
【问题讨论】:
【参考方案1】:这对我来说非常有效:
<properties>
<logger.version>2.0-rc1</logger.version>
</properties>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>$logger.version</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>$logger.version</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
<version>$logger.version</version>
</dependency>
<dependency>
<!--HIBERNATE-SPRING - LOGGER (log4j)-->
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.6</version>
</dependency>
【讨论】:
log4j-1.2-api 是我所缺少的!另一个答案***.com/questions/16341020/…【参考方案2】:来自Logging Spring using Log4j2,我们必须使用log4j-slf4j-impl。
我已经用 Spring 4 和 struts 2 测试过它,它工作正常。
<log4j2.version>2.1</log4j2.version>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>$log4j2.version</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
<version>$log4j2.version</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>$log4j2.version</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>$log4j2.version</version>
</dependency>
【讨论】:
在花费大量时间尝试将 Spring 的 INFO 消息记录到控制台之后,这是唯一有效的答案。以上是关于如何将所有日志从hibernate和spring重定向到log4j2?的主要内容,如果未能解决你的问题,请参考以下文章
基于注解的Spring MVC整合Hibernate(所需jar包,spring和Hibernate整合配置,springMVC配置,重定向,批量删除)
如何使用 Hibernate、Spring MVC 将数据从单个表单发送到多个数据库表
如何使用 Spring Security 将登录的用户重定向到他的首页,将未登录的用户重定向到不同的用户
使用 Spring Security 登录后重定向到不同的页面