当前位置: 首页 > 知识库问答 >
问题:

spring和hibernate的日志记录配置

凤财
2023-03-14

目前,我正在与

  • log4j2.7
  • springframework 4.3。5;
  • 冬眠5.2。三,

我通过一个xml文件配置log4j
为此,我创建了一些appender,其中一个名为“General”。我需要的是,所有日志都必须转到该appender(包括springframework或hibernate生成的日志),并且后者都不会打印在控制台上(我仍然需要其他类中的其他日志)
我试着写这些日志:

<Loggers>
    <Logger name="org" level="ALL" />
    <Root level="ALL" additivity="false">
        <AppenderRef ref="General"/>
    </Root>
    <Logger name="tests" level="ALL" additivity="false">
        <AppenderRef ref="console"/>
        <AppenderRef ref="General"/>
    </Logger>
</Loggers>

关键是,尽管除了springframework之外的所有包都通过该appender正确地进行了日志记录,springframework仍然在控制台上进行日志记录,并且没有通过“常规”appender写入任何行。我怎样才能解决这个问题

编辑:我发现这可能是因为springframework似乎使用其他库(logback、slf4j和类似库)进行日志记录。我还了解到springboot可以配置为使用log4j,而且,由于我对Spring及其库还不太了解,我不知道如何获得我想要的结果。

共有2个答案

华永逸
2023-03-14

最后,我简单地在pom上添加了这些依赖项。

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.12</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-jcl</artifactId>
        <version>2.7</version>
    </dependency>

以及卸下记录器

<Logger name="org" level="ALL" />
秦俊豪
2023-03-14

当你定义org logger你需要传递appender ref在该记录器希望这将工作。

<Logger name="org" level="ALL" >
 <AppenderRef ref="General"/>
</Logger>

Spring by默认共享日志库。您需要禁用它,而是使用lg4j库。您需要排除共享日志依赖项。

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.0.0.RELEASE</version>
        <scope>runtime</scope>
        <exclusions>
            <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>

您需要将Log4j放在类路径上,并为其提供一个配置文件,即Log4j。类路径根目录中的xml。并在pom中添加以下依赖项。xml。

<dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.14</version>
        <scope>runtime</scope>
    </dependency>

参考-http://docs.spring.io/spring/docs/4.0.0.RELEASE/spring-framework-reference/htmlsingle/#overview-不使用commons日志记录

 类似资料:
  • 我有以下情况:一个使用日志的Spring启动应用程序,以及已经在应用程序中配置的几个日志记录属性 我想添加其他只能通过文件可用的配置选项,但是一旦我将此文件添加到类路径(无论它被命名为还是),它就会覆盖中的所有内容,并且所有日志记录级别/模式以及那里定义的其他选项都不再有效 - 似乎在添加的所有选项 被忽略,我需要在xml文件中重新添加它们而不是yml。 我的问题是:是否可以合并这两个配置?我的意

  • 我在解释Hibernate会话日志时有点卡住了。我的主要问题是许多查询有点慢 - 基于我实现的一些 TimeWatch 日志记录。为了进一步跟踪问题,我启用了Hibernate会话日志记录,目的是查看执行查询或获取连接的时间是否浪费(我猜这意味着配置错误)。 关于用例——Oracle DB、Spring、Hibernate。在“繁忙时间”,最多有15个线程对数据库执行查询。我想没什么特别的。 现在

  • 如何在Spring启动应用程序中以编程方式配置日志记录? 使用xml或属性文件不够灵活,无法满足我的需要。 更新:我想实现以下目标: 每个环境我所拥有的是: 伐木。数量root=[INFO,DEBUG,…] 没有XML、Groovy和其他我真的不想处理的格式的重复。 归根结底,这实际上是为了实现与Spring JavaConfig对beans一样的日志记录灵活性。XML或其他文件格式太过静态,需要

  • 互联网上有许多帖子建议如何从logback迁移到log4j2进行Spring引导日志记录。 参考这个sof post-Spring Boot日志与log4j2-我已经配置我的项目使用log4j2。然后我添加了一些基本的log4j2.xml和log4j2.properties文件来测试。 但是在这些更改之后,我的项目无法进行任何日志记录。有人能帮我找出毛病吗? 项目代码可在github-https:

  • 我正在做一个Spring Boot项目,我正在检查它是否与这个漏洞有关,我没有任何Log4j核心依赖,但是我正在使用Hibernate核心5.0.12,它使用jboss日志3.3.1 当我检查jboss日志依赖时,我看到log4j: 先谢谢你

  • 问题内容: 我还找不到关于如何使用Log4j的XML样式配置文件配置Hibernate日志记录的任何文档。 这是否有可能,或者我是否使用属性样式配置文件来控制Hibernate的日志记录? 如果有人有任何信息或文档链接,我们将不胜感激。 编辑: 只是为了澄清,我正在寻找控制Hibernate的实际XML语法的示例。 EDIT2: 这是我的XML配置文件中的内容。 日志记录工作正常,但是我正在寻找一