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

Yur*_*nko 8 java spring tomcat hibernate log4j

我使用下一个技术堆栈构建我的"superWebApp":

persistence provider - Hibernate 4.x
webMvc and beans container - Spring 4.x
web containter - Tomcat 7.5.x
Run Code Online (Sandbox Code Playgroud)

我有一个任务是将所有日志写入db.分别为每个日志记录框架执行它会很痛苦.这就是为什么我需要将所有日志重定向到单个框架然后使用DBAppender不会有问题.

我在想log4j2,因为我用它来写"superWebApp"中的日志.那么有什么想法如何将所有日志从hibernate和spring重定向到log4j2?(重定向tomcat loogs也不错)?

如果不可能,也许还有另一个可以成为核心的日志框架?

Yur*_*nko 12

这对我很有用:

<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>
Run Code Online (Sandbox Code Playgroud)


Ali*_*ahi 7

Logging Spring使用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>
Run Code Online (Sandbox Code Playgroud)