`

使用Log4j生成不同日志级别的日志文件

    博客分类:
  • J2SE
阅读更多

在src根目录下存放log4j.xml文件,具体配置如下(测试使用log4j-1.2.16.jar):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">

<!--
设置通道名称和输出方式,其中输出方式appender有5种,分别为:
org.apache.log4j.FileAppender (文件)
org.apache.log4j.ConsoleAppender (控制台)
org.apache.log4j.RollingFileAppender (根据文件大小创建新文件)
org.apache.log4j.DailyRollingFileAppender (每天产生一个日志文件)
org.apache.log4j.WriterAppender (将日志信息以流格式发送到指定地方)
-->
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
	<!-- 定义控制台日志级别入口  -->
	<param name="Threshold" value="DEBUG"/>
	<param name="Target" value="System.out" />
	<layout class="org.apache.log4j.PatternLayout">
		<param name="ConversionPattern" value="%d{yyyy-MM-dd hh:mm:ss,SSS} | %-5p | %-10t | %-24.24c{1} | %-30.30C %4L | %m%n"/>
	</layout>
</appender>

<appender name="DEBUG" class="org.apache.log4j.RollingFileAppender">
	<param name="File" value="c:/logs/log4j/debug.log"/>
	<param name="Append" value="true" />
	<param name="Threshold" value="DEBUG"/>
	<param name="MaxFileSize" value="10MB" />
	<param name="MaxBackupIndex" value="30" />
	<layout class="org.apache.log4j.PatternLayout">
		<param name="ConversionPattern" value="%d{yyyy-MM-dd hh:mm:ss,SSS} | %-5p | %-10t | %-24.24c{1} | %-30.30C %4L | %m%n"/>
	</layout>
	<filter class="org.apache.log4j.varia.LevelRangeFilter">
		<param name="LevelMin" value="DEBUG"/>
		<param name="LevelMax" value="DEBUG"/>
	</filter>
</appender>

<!-- 每天生成一个文件,注意由于window不支持特殊字符命名,在配置DatePattern是不能用":"-->
<appender name="INFO" class="org.apache.log4j.DailyRollingFileAppender">
	<param name="Threshold" value="INFO"/>
	<param name="File" value="c:/logs/log4j/info.log"/>
	<param name="DatePattern" value="'.'yyyy-MM-dd'.log'"/>
	<layout class="org.apache.log4j.PatternLayout">
		<param name="ConversionPattern" value="%d{yyyy-MM-dd hh:mm:ss,SSS} | %-5p | %-10t | %-24.24c{1} | %-30.30C %4L | %m%n"/>
	</layout>
	<!-- 过滤器只记录info级别的日志,以下同  -->
	<filter class="org.apache.log4j.varia.LevelRangeFilter">
		<param name="LevelMin" value="INFO"/>
		<param name="LevelMax" value="INFO"/>
	</filter>
</appender>

<!-- warn -->
<appender name="WARN" class="org.apache.log4j.FileAppender">
	<param name="Threshold" value="WARN"/>
	<param name="File" value="c:/logs/log4j/warn.log"/>
	<layout class="org.apache.log4j.PatternLayout">
		<param name="ConversionPattern" value="%d{yyyy-MM-dd hh:mm:ss,SSS} | %-5p | %-10t | %-24.24c{1} | %-30.30C %4L | %m%n"/>
	</layout>
	<filter class="org.apache.log4j.varia.LevelRangeFilter">
		<param name="LevelMin" value="WARN"/>
		<param name="LevelMax" value="WARN"/>
	</filter>
</appender>

<!-- error -->
<appender name="ERROR" class="org.apache.log4j.FileAppender">
	<param name="Threshold" value="ERROR"/>
	<param name="File" value="c:/logs/log4j/error.log"/>
	<layout class="org.apache.log4j.PatternLayout">
		<param name="ConversionPattern" value="%d{yyyy-MM-dd hh:mm:ss,SSS} | %-5p | %-10t | %-24.24c{1} | %-30.30C %4L | %m%n"/>
	</layout>
	<filter class="org.apache.log4j.varia.LevelRangeFilter">
		<param name="LevelMin" value="ERROR"/>
		<param name="LevelMax" value="ERROR"/>
	</filter>
</appender>

<!-- fatal -->
<appender name="FATAL" class="org.apache.log4j.FileAppender">
	<param name="Threshold" value="FATAL"/>
	<param name="File" value="c:/logs/log4j/fatal.log"/>
	<layout class="org.apache.log4j.PatternLayout">
		<param name="ConversionPattern" value="%d{yyyy-MM-dd hh:mm:ss,SSS} | %-5p | %-10t | %-24.24c{1} | %-30.30C %4L | %m%n"/>
	</layout>
	<filter class="org.apache.log4j.varia.LevelRangeFilter">
		<param name="LevelMin" value="FATAL"/>
		<param name="LevelMax" value="FATAL"/>
	</filter>
</appender>

<logger name="org.apache.commons.dbcp">
	<level value="INFO"/>
</logger>
<logger name="org.hibernate.cache">
	<level value="DEBUG"/>
</logger>
<logger name="org.hibernate">
	<level value="WARN"/>
</logger>
<logger name="org.apache">
	<level value="WARN"/>
</logger>
<logger name="org.springframework">
	<level value="WARN"/>
</logger>
<logger name="org.jencks">
	<level value="WARN"/>
</logger>
<logger name="org.apache.activemq">
	<level value="WARN"/>
</logger>
<logger name="org.apache.activemq.transport.discovery">
	<level value="ERROR"/>
</logger>
<logger name="org.apache.servicemix">
<!-- To enable debug logging, replace the INFO by DEBUG -->
	<level value="WARN"/>
</logger>
<logger name="org.apache.servicemix.jbi.config">
	<level value="WARN"/>
</logger>
<logger name="org.apache.servicemix.jbi.deployment">
	<level value="WARN"/>
</logger>
<logger name="org.directwebremoting">
	<level value="WARN"/>
</logger>

<root>
	<level value="DEBUG"/><!-- 定义日志级别 -->
	<appender-ref ref="CONSOLE"/>
	<appender-ref ref="DEBUG"/>
	<appender-ref ref="INFO"/>
	<appender-ref ref="WARN"/>
	<appender-ref ref="ERROR"/>
	<appender-ref ref="FATAL"/>
</root>
</log4j:configuration>

 在开发过程中会提示找不到"log4j.dtd",解压log4j.jar文件,将org.apache.log4j.xml中的log4j.dtd复制到src根目录即可.

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Tomcat下使用Log4j接管生成日志文件

    本文将详细介绍如何在Tomcat服务器环境下使用Log4j接管生成日志文件。 首先,了解Log4j的核心组件: 1. **Logger**:负责生成日志信息,是使用最频繁的部分。 2. **Appender**:负责将日志信息输出到指定的目标,如...

    log4j生成带时间戳的日志文件(包括extras包以及简单demo)

    总结来说,Log4j是一个强大的日志框架,通过使用extras包和适当的配置,我们可以方便地生成带有时间戳的日志文件,进行日志级别的控制,以及有效地管理日志文件的大小。在实际项目中,熟练掌握Log4j的使用对于提高...

    weblogic中使用log4j生成日志文件实例

    总结来说,WebLogic中使用Log4j生成日志文件涉及配置Log4j,将其集成到WebLogic环境,然后在代码中使用日志API。这个过程可以帮助开发者更好地跟踪系统运行情况,定位问题,优化性能,从而提高整体运维效率。通过...

    log4j按功能保存日志

    在“log4j按功能保存日志”的场景中,我们通常会利用Log4j的配置灵活性,将不同功能的日志分别写入不同的文件,以便于后期分析、排查问题和监控系统状态。 1. **Log4j基本概念** - **Logger**: 日志记录器,是Log4...

    log4j按照不同appender生成日志例子

    本示例将深入讲解如何利用Log4j的不同Appender来生成不同的日志文件,以满足不同接口或模块的日志记录需求。 首先,我们需要理解什么是Appender。在Log4j中,Appender是负责将日志信息输出到特定目的地的组件,如...

    log4j 写多个日志文件,按照日期每天都记

    2. **使用DailyRollingFileAppender**:`DailyRollingFileAppender`是`log4j`提供的一种特殊Appender,它可以按照指定的时间间隔(通常是每天)滚动生成新的日志文件。我们可以通过以下配置设置每日滚动: ```...

    mybatis,log4j打印日志到后台和文件

    总结,通过以上步骤,你已成功配置了 MyBatis 使用 Log4j 来记录日志,同时将日志输出到后台控制台和文件,这有助于在开发和调试过程中追踪问题,提高代码的可维护性。记得根据实际需求调整日志级别和输出格式,以...

    tomcat下用Log4j 按文件大小,生成catalina.out日志文件

    要实现按文件大小生成日志,我们需使用Log4j的RollingFileAppender。这个Appender会在日志文件达到预设大小时自动滚动并创建新的日志文件。以下是一个简单的`log4j.properties`配置示例: ```properties # 设置root...

    Log4j 把不同包的日志打印到不同位置

    `Log4j`是一个广泛使用的Java日志框架,它允许开发者控制应用程序的输出日志,包括日志级别、格式和目的地。这篇博客"Log4j 把不同包的日志打印到不同位置"可能详细解释了如何利用Log4j配置来实现特定包的日志定向...

    log4j使用与java中log4j记录日志如何写入数据库

    1. **配置文件**:Log4j的配置文件通常是`log4j.properties`或`log4j.xml`,它定义了日志的级别(如DEBUG、INFO、WARN、ERROR、FATAL)、输出目的地(控制台、文件、数据库等)以及布局格式。 2. **日志类**:在...

    Log4j生成日志保存

    2. **配置Log4j**: 在Android中,通常通过XML配置文件(如`log4j.properties`或`log4j.xml`)来设置Log4j的行为,包括设置日志级别、定义Appender和Layout等。 3. **创建Logger**: 在代码中,通过`org.apache.log4j...

    使用log4j生成日志

    本文将深入探讨如何使用Log4j来生成日志,以及如何结合提供的资源进行实践。 首先,Log4j的核心理念是灵活性和可配置性。它允许开发者根据需要定制日志级别(如DEBUG、INFO、WARN、ERROR和FATAL),并选择将日志...

    log4j(二):动态配置日志输出路径

    这个文件定义了Log4j的行为,包括设置日志级别(如DEBUG, INFO, WARN, ERROR, FATAL),定义Appender,以及指定Appender的输出目标。例如: ```properties # log4j.properties 示例 log4j.rootLogger=DEBUG, FILE ...

    tomcat9 slf4j+log4j2 写日志.zip

    如果日志仍然没有生成,检查`log4j2.xml`配置文件是否有误,或者Tomcat的权限设置是否正确。 总之,配置Tomcat 9使用SLF4J和Log4j2进行日志记录是一个涉及依赖管理、日志配置文件设置和Tomcat自身配置的过程。通过...

    Tomcat下使用Log4j 接管 catalina.out 日志文件生成方式

    2. **配置Log4j**:创建一个`log4j.properties`或`log4j.xml`配置文件,定义日志级别、输出目的地、布局模式等。例如: ```properties # log4j.properties 示例 log4j.rootLogger=DEBUG, FILE log4j.appender....

    log4j日志文件

    在实际应用中,根据项目需求,可以通过调整Log4j的配置文件来控制日志的级别、输出位置和格式,从而更好地管理和利用日志信息。理解并熟练掌握Log4j的配置与使用,对于提高软件的可维护性和排查问题的效率具有重要...

    AndroidStudio 使用log4j记录日志,按照大小定期滚动日志Demo

    本文将详细介绍如何在Android Studio中使用log4j库来记录日志,并实现按照日志文件大小自动滚动的功能,以及如何进行日志内容的格式化输出。 首先,log4j是一款广泛使用的日志记录框架,它提供了灵活的日志配置和...

    log4j自定义日志文件名及日志输出格式

    Log4j是Apache提供的一款广泛使用的日志框架,它提供了丰富的配置选项,允许开发者灵活地控制日志输出。当我们面对特定项目需求,比如需要自定义日志文件名和日志输出格式时,Log4j同样提供了相应的解决方案。 首先...

    log4j记录Debug日志

    在使用Log4j记录Debug日志时,确保项目中引入了相应的Log4j库,并正确配置了`log4j.properties`或`log4j.xml`文件,设置DEBUG级别,然后在代码中使用Logger对象进行日志记录。例如: ```java import org.apache.log4...

    Log4j日志根据模块不同输出到不同的日志文件开发配置,便于监控项目各功能模块的运行情况

    文件中内容包括模块中某个类单独输出到一个日志文件中、模块中某个package单独输出到一个日志文件中、同一模块不同package输出到一个日志文件中三种情况下log4j.properties配置项配置事例、Java类中代码如何一致编写...

Global site tag (gtag.js) - Google Analytics