【问题标题】:How to redirect all logs from hibernate and spring to log4j2?如何将所有日志从hibernate和spring重定向到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”中写日志。那么有什么想法如何将所有日志从hibernate和spring重定向到log4j2? (也可以重定向 tomcat 日志)?

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

【问题讨论】:

    标签: java spring hibernate tomcat log4j


    【解决方案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>
    

    【讨论】:

    【解决方案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 消息记录到控制台之后,这是唯一有效的答案。
    猜你喜欢
    • 2015-09-02
    • 2020-04-23
    • 2021-01-23
    • 1970-01-01
    • 2019-06-21
    • 1970-01-01
    • 1970-01-01
    • 2023-01-01
    • 2017-03-26
    相关资源
    最近更新 更多