【转自】http://tobato.iteye.com/blog/152573
经常看见开发Web应用的时候,有人被控制台输出的大量日志
弄得眼花缭乱,启动一个应用,控制台打出
N多没用的日志
。那么,如何控制最大限度log4j的配置文件输出需要的调试信息呢?
Log4j的Logger组件配置可以帮助我们屏蔽不必要的日志
输出,尤其在项目应用了大量第三方组件的时候,
通过控制Logger组件可以控制输出某一个组件的日志
级别,帮助我们更好的进行调试。
注意:控制的粒度到类一级。也就是说,可以控制某一个类的日志
如何输出。
限制:虽然不可以控制到方法一级,但是基本上也够用了。
假设我们现在的类命名空间在 com.foo 下面
我们有2个包
package com.foo.cartoon
package com.foo.common
这2个包下面分别有自己的类文件
在package com.foo.cartoon包下有
com.foo.cartoon.Cat;
在package com.foo.common包下有
com.foo.common.Omia;
使用如下的配置文件:
- <?xml version=
"1.0"
encoding=
"UTF-8"
?>
- <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"
>
-
- <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
>
-
- <appender name="CONSOLE"
class
=
"org.apache.log4j.ConsoleAppender"
>
- <layout class
=
"org.apache.log4j.PatternLayout"
>
- <param name="ConversionPattern"
- value="%p [%t] %c{1}.%M(%L) | %m%n"
/>
- </layout>
- </appender>
-
- <logger name="com.foo"
>
- <level value="INFO"
/>
- </logger>
-
- <logger name="com.foo.common"
>
- <level value="DEBUG"
/>
- </logger>
-
- <root>
- <level value="WARN"
/>
- <appender-ref ref="CONSOLE"
/>
- </root>
-
- </log4j:configuration>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%p [%t] %c{1}.%M(%L) | %m%n"/>
</layout>
</appender>
<logger name="com.foo">
<level value="INFO"/>
</logger>
<logger name="com.foo.common">
<level value="DEBUG"/>
</logger>
<root>
<level value="WARN"/>
<appender-ref ref="CONSOLE"/>
</root>
</log4j:configuration>
那么 针对所有日志
(<root>项配置) 都使用WARN级别输出
com.foo 路径下的Class 都使用INFO 级别输出
com.foo.common 路径下的Class 都使用DEBUG 级别输出
---------------
假如想要控制com.foo.common.Omia这一个类的日志
输出级别
只需要使用如下配置
<logger name="com.foo.common.Omia">
<level value="DEBUG"/>
</logger>
---------------
如果项目中使用了第三方组件,那么可以用这样的方式控制日志
<logger name="org.apache.struts2
">
<level value="DEBUG"/>
</logger>
<logger name="org.springframework">
<level value="INFO"/>
</logger>
这样就可以让struts2
的日志
按Debug级别输出,让Spring的日志
按Info级别输出
分享到:
相关推荐
《深入理解Spring Boot Starter Log4j2》 在Java开发领域,日志系统扮演着至关重要的角色,它帮助开发者记录程序运行过程中...在实际开发中,掌握Log4j2的配置和使用,能帮助我们更好地追踪问题,提升项目的可维护性。
本文将详细介绍 SSM 整合中的 Log4j 配置详情,帮助读者更好地理解 Log4j 的使用。 一、Log4j 的基本概念 Log4j 是 Apache 软件基金会提供的一个日志记录工具,能够记录和输出项目中的日志信息。Log4j 的核心组件...
3. 配置log4j2:创建一个log4j2的配置文件(如log4j2.xml或log4j2.json),定义日志输出的模式和级别。例如,以下是一个简单的配置示例: ```xml <Configuration status="WARN"> <Appenders> <Console name=...
在本文中,我们将介绍如何在 Windows 环境下搭建 Flume-ng,并使用 Log4j 将日志输出到 HDFS。 一、Flume-ng 安装与配置 首先,需要下载 Flume-ng 并解压到指定目录。然后,需要设置环境变量,新建 FLUME_HOME ...
总之,SLF4J+Log4j2的组合提供了强大的日志管理和输出能力,允许开发者自定义日志格式、控制输出级别,以及在Web环境中方便地配置和初始化日志系统。通过合理配置和使用,可以帮助开发者更好地追踪问题、监控系统...
本文主要介绍了Spring Boot使用Log4j2的实例代码,包括log4j2.xml配置和Maven依赖项配置。下面我们将详细介绍这些知识点。 Log4j2简介 Log4j2是Java中的一种日志记录工具,提供了丰富的Appender,例如...
在Java开发领域,Spring Boot是一个...通过引入Log4j依赖,配置日志输出格式和级别,以及在代码中使用`Logger`接口,我们可以实现高效且易于管理和分析的日志系统。这在开发、调试和维护Spring Boot应用时非常有用。
本示例将详细介绍如何配置并使用Log4j2将日志信息记录到MySQL数据库中。 首先,我们要理解Log4j2的核心概念。Log4j2主要包括以下几个组件: 1. **配置文件**:如`log4j2.xml`,这是Log4j2的配置中心,定义了日志...
Log4j 2是Log4j的下一代版本,它引入了大量新特性,包括异步日志记录、可插拔的日志格式化器、动态配置以及丰富的API。相较于Log4j 1.x,Log4j 2不仅在性能上有所增强,而且在用户体验和安全性上都有显著改进。 2....
Log4j2作为Log4j的升级版,提供更好的性能和更丰富的特性,如异步日志记录,JSON布局,以及可插拔的日志配置。 #### 配置Log4j2 1. **添加依赖**:在`pom.xml`中,添加Log4j2的依赖。 ```xml <dependency> ...
在Java开发中,日志记录是一项至关重要的任务,它帮助开发者追踪程序运行状态,调试问题,以及进行性能分析。...通过阅读《log4j(二):动态配置日志输出路径》这篇博文,你可以获得更详细的操作步骤和实践指导。
### Log4j中配置日志文件相对路径方法详解 #### 概述 在软件开发过程中,日志记录是一项重要的功能,它有助于开发者调试程序、监控应用程序的运行状态以及追踪问题。`Log4j`作为一款优秀的日志管理工具,被广泛应用...
Log4j2相比Log4j 1.x有许多改进,包括性能提升、更丰富的配置选项、异步日志记录支持以及动态日志配置等。 在Tomcat 9中配置SLF4J和Log4j2,你需要以下步骤: 1. **添加依赖**:确保你的项目中包含SLF4J和Log4j2的...
`log4j2`是`log4j`的升级版,是一个功能强大且性能高效的日志框架,提供了丰富的配置选项,包括异步日志记录、日志级别动态调整、自定义日志布局等。相比于`log4j`,`log4j2`在性能和可扩展性上有了显著提升,并且...
### Log4j基本配置详解 #### 一、Log4j简介 Log4j是Apache的一个开源项目,通过使用...通过以上步骤,我们可以根据不同的需求和场景选择合适的配置方式来定制Log4j的行为,从而更好地满足项目开发中的日志管理需求。
Log4j2是Apache提供的一款强大且灵活的日志框架,它的出现替代了早期的Log4j,提供了更高的性能和更丰富的功能。本文将深入探讨如何在Log4j2中实现异步写日志,并通过提供的文件`TestController.java`、`log4j2.xml`...
Slf4j 是一个 Java 日志记录门面,它提供了一个通用的日志记录API,允许开发者使用不同的日志记录框架,例如 Logback、Log4j 等。在 Springboot 项目中,Slf4j 是默认的日志记录框架。本文将介绍如何使用 Slf4j 将...
**日志框架Log4j详解** 在Java开发中,日志记录是一项至关重要的任务,它帮助开发者追踪程序运行...通过合理的配置和使用,Log4j能够为开发者提供强大且灵活的日志管理能力,帮助他们更好地监控和维护Java应用程序。
2. **配置Log4j**:在项目的类路径下创建`log4j.properties`或`log4j.xml`配置文件,指定日志级别、输出目的地等。例如: ```properties # log4j.properties log4j.rootLogger=DEBUG, stdout log4j.appender....
Log4j2是一个流行的、高效且可配置的日志框架,广泛应用于各种项目。本文将详细解释如何配置Log4j2以实现不同级别的日志分别存储到不同的文件中。 首先,确保在项目中正确引入了Log4j2的jar包。通常,这可以通过在...