简体   繁体   English

如何将所有日志从休眠和春季重定向到log4j2?

[英]How to redirect all logs from hibernate and spring to log4j2?

I build my "superWebApp" with the next technology stack: 我使用下一个技术堆栈构建“ superWebApp”:

persistence provider - Hibernate 4.x
webMvc and beans container - Spring 4.x
web containter - Tomcat 7.5.x

I have a task to write all logs to db. 我的任务是将所有日志写入db。 And it would be a pain to do it for each logging framework separately. 分别为每个日志记录框架进行操作将很痛苦。 That's why I need to redirect all logs to single framework and then using a DBAppender wouldn't be a problem. 这就是为什么我需要将所有日志重定向到单个框架,然后使用DBAppender并不是问题。

I was thinking about log4j2, since I use it to write logs in "superWebApp". 我正在考虑log4j2,因为我使用它在“ superWebApp”中写入日志。 So is there any idea how to redirect all logs from hibernate and spring to log4j2? 那么,有什么主意如何将所有日志从休眠和春季重定向到log4j2? (it would be good to redirect tomcat loogs too)? (也最好重定向tomcat loogs)?

If it is not possible, maybe there is another logging framework that can be central? 如果不可能的话,也许还有另一个可以成为中心的日志记录框架?

This worked perfectly for me: 这对我来说非常有效:

<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>

From Logging Spring using Log4j2 , we must use log4j-slf4j-impl. 使用Log4j2的Logging Spring开始 ,我们必须使用log4j-slf4j-impl。

I have tested it with Spring 4 also struts 2 and it works fine. 我已经在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>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM