`
koen
  • 浏览: 82136 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

使用slf4j框架发生重复日志问题

阅读更多

在使用slf4j进行日志输出的时候,发现这样一个问题。

当使用如下的log level设置的时候,所有“abc.def”包中通过Logger.info()输出的日志在"STDOUT"和"ROLLING_FILE" appender中都会打印两次。("STDOUT"是控制台,"ROLLING_FILE"是自定义的日志文件。)

  <root level="INFO">
    <appender-ref ref="STDOUT" />
    <appender-ref ref="ROLLING_FILE" />
  </root>
  <logger name="abc.def" level="INFO">
    <appender-ref ref="STDOUT" />
    <appender-ref ref="ROLLING_FILE" />
  </logger>
 



我考虑了一下,觉得问题的原因是:root lever logger和specific logger的打印是各自独立的,而不是我原来认为的“如果为abc.def包设定了specific logger则root level logger就不会打印(互斥)”。

因此我把配置改成了:

  <root level="INFO">
    <appender-ref ref="STDOUT" />
  </root>
  <logger name="abc.def" level="INFO">
    <appender-ref ref="ROLLING_FILE" />
  </logger>
 



改完之后的日志行为是:abc.def包中的info level的日志会同时出现在"STDOUT"和"ROLLING_FILE" appender中,而其他package的日志只会出现在"STDOUT"中,这正是我想要的。

这说明:root level logger是会对所有Logger输出都有效的,而specific logger只会对设定的package生效。

分享到:
评论

相关推荐

    slf4j-log4j相关jar

    SLF4J(Simple Logging Facade for Java)和Log4j是Java开发中常用的日志处理框架,两者在日志管理领域各有其特点和优势。本文将深入探讨这两个框架以及它们之间的关系,以及如何通过SLF4J接口来实现Log4j的日志记录...

    slf4j-1.5.2.zip

    3. **slf4j-log4j12.jar**:这个JAR桥接了SLF4J和Log4j,如果你的系统中同时有Log4j的配置,那么SLF4J会通过这个桥接器使用Log4j进行日志记录。 4. **logback-classic.jar** 和 **logback-core.jar**:如果项目中...

    slf4j jar 包

    SLF4J(Simple Logging Facade for Java)是Java中的一种日志门面(Logging Facade),它为各种日志框架提供了一个统一的接口,如Log4j、Java Util Logging、Logback等。通过SLF4J,开发者可以在不修改代码的情况下...

    hibernate+slf4j+log4j+junit包

    在Java开发领域,Hibernate、SLF4J、Log4j以及JUnit是四个非常重要的库,它们各自服务于不同的目的,但又常被一起使用以构建高效、可维护的项目。让我们来详细了解一下这些技术和它们在软件开发中的作用。 1. ...

    基于socket通信传递xml(jdom生成)文件的demo(maven管理)集成slf4j

    5. **日志记录**:通过SLF4J接口记录客户端和服务器端的运行信息,便于调试和问题定位。 这个项目作为一个演示,可以帮助开发者理解如何在实际应用中结合这些技术,实现高效且可靠的网络数据传输。通过学习和实践这...

    spring所需的日志jar文件

    接着是"log4j-1.2.17.jar",这是Log4j的第一个版本,一个非常流行且广泛使用的日志框架。它提供了丰富的配置选项,可以控制日志输出的级别(如DEBUG、INFO、WARN、ERROR等),还可以将日志输出到文件、控制台、甚至...

    IDEA下springboot+mybatis+log4j

    【标题】"IDEA下springboot+mybatis+log4j"所涉及的知识点主要集中在Java开发环境的集成、Spring Boot框架的应用、MyBatis持久层框架的使用以及日志管理工具Log4j和SLF4J的配置与实践。 首先,IntelliJ IDEA(简称...

    crawler4j-4.1-jar-with-dependencies

    SLF4J(Simple Logging Facade for Java)是一个日志API,它的目的是为各种日志框架(如log4j、java.util.logging、Logback等)提供一个统一的接口。这样,用户可以在部署时根据需求自由选择具体的日志实现。`slf4j-...

    如何使用LoggerFactory.getLogger在Spring Boot中输出日志(2)

    `LoggerFactory.getLogger()`是Spring Boot集成的SLF4J(Simple Logging Facade for Java)框架提供的核心功能,用于获取与特定类关联的日志记录器。SLF4J作为一个抽象层,允许开发者在不修改代码的情况下切换到其他...

    日志规范总结

    1. **使用SLF4J API**:在应用中使用SLF4J提供的API,而不是直接使用Log4j等日志框架的API。 2. **输出异常的完整信息**:记录异常时,确保包含完整的StackTrace信息。 3. **避免多次记录日志**:在记录异常信息时,...

    quartz_2.2.1核心包+依赖包.zip

    4. `slf4j-api-1.6.6.jar`:这是SLF4J API的1.6.6版本,包含了SLF4J的接口定义,供应用程序使用,与具体的日志实现无关。 5. `quartz-jobs-2.2.1.jar`:这是Quartz的作业库,包含了一些预定义的Job类,这些Job可以...

    spring quartz定时器支持的jar包

    2. `slf4j-api-1.5.3.jar`: SLF4J(Simple Logging Facade for Java)是一个为各种日志框架提供一个简单统一的接口,使得最终用户能够在部署的时候配置自己希望的日志框架。`slf4j-api-1.5.3.jar`是SLF4J的API库,它...

    ssh三大框架连用所需要的jar包

    6. **slf4j-log4j12.jar**:SLF4J的日志实现之一,这里使用Log4j作为日志框架。 7. **log4j.jar**:流行的日志框架,用于记录应用运行时的信息。 8. **commons-collections.jar**:Apache Commons组件之一,提供了...

    hibernate框架完整包

    3. **Log4j和SLF4J**:Log4j是Java的日志记录框架,提供灵活的日志记录配置。SLF4J(Simple Logging Facade for Java)是一个日志门面,它为各种日志API提供一个简单统一的接口,使得最终的用户能够在部署的时候配置...

    Spring--事务操作.pdf

    在Spring框架中,事务操作是确保数据一致性和完整性的关键组件。事务是一组逻辑上的操作集合,它们要么全部成功,要么全部失败。这个特性对于银行转账这样的典型场景尤为重要,在事务管理中,我们通常提到的ACID原则...

    mybatis generator 完整包包括日志和相关工具

    MBG可能使用了如Log4j、SLF4J或Java内置的日志框架,这些日志组件可以帮助我们记录MBG在生成代码过程中的详细步骤和可能出现的错误,从而优化生成过程。 除了核心功能和日志包,这个完整包还包含了工具类。这些工具...

    MyEclipse下JSP开发框架

    通常会使用如Log4j或SLF4J这样的日志框架来记录应用程序的运行状态、错误信息和调试信息。 7. **JDBC封装**:JDBC(Java Database Connectivity)是Java访问数据库的标准API。框架对JDBC进行了封装,提供更简便的...

    ical4j:用于解析和构建iCalendar数据模型的Java库

    iCal4j-iCalendar解析器和对象... slf4j-api [必需]-集成到不同日志框架实现的日志记录元库。 在所有需要记录的类中使用。 commons-lang3 [必需]-提供对标准Java库的增强,包括对自定义equals()和hashcode()实现的支持

    Quartz2.3.0的整合Jar包。

    在标题中提到的"Quartz2.3.0的整合Jar包",意味着这是一个包含了Quartz库的特定版本,即2.3.0,以及可能与之兼容的其他依赖库的集合,比如描述中提到的slf4j日志框架。这个整合的Jar包是为了方便开发者快速地将...

    基于ssm,集成分页插件,多数据源切换,通用mapper插件,日志等基本框架

    项目中可能使用了如Log4j、Logback或Java内置的日志框架java.util.logging,配合SLF4J(Simple Logging Facade for Java)提供统一的API,方便进行日志输出的管理和调整。 在这个名为"BasicProject"的压缩包中,...

Global site tag (gtag.js) - Google Analytics