码迷,mamicode.com
首页 > 其他好文 > 详细

log4j详解(二) XML 配置方式

时间:2015-08-20 13:13:57      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:log4j   xml   

上一篇文章说到了 log4j 的 properties 的配置方式,虽然感觉区别没有很大,但是 log4j.properties的配置方式里面不能使用 Filter 过滤器来限制日志级别,另一个原因在于 log4j.xml 在插入数据库的时候sql 语句可以放在 layout 属性的 ConversionPattern 参数中,而 log4j.properties 配置起来就显得更加麻烦

一、步骤

   1.引入 jar 包

   2.src 下创建 log4j.xml 文件

   3.配置头部(重要)

   技术分享

   4.配置 XML

二、代码部分

    XML 文件

<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
	<!-- 以下是 appender 的定义,定义日志输出的目的地、输出方式和过滤级别 -->
	<!-- * 1. 一个 appender 子元素定义一个日志输出目的地 * 2. 一个logger子元素定义一个日志写出器 -->
	<appender name="myFileAppend" class="org.apache.log4j.RollingFileAppender">
		<param name="File" value="E:logs//output.log" /><!-- 设置日志输出文件名 -->
		<!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->
		<param name="Append" value="true" />
		<param name="MaxBackupIndex" value="10" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%p (%c:%L)- %m%n" />
		</layout>
		<!-- LevelRangeFilter:是一个非常简单的过滤器基于水平匹配,可拒绝消息优先级在一定范围内。 过滤器承认三个选项 LevelMin 
			, LevelMax , AcceptOnMatch。 如果 LoggingEvent 的水平不是 Min 和 Max (包容),然后过滤。否认返回。 
			如果日志事件级别是在指定范围内,然后如果 AcceptOnMatch 是真的,过滤器。接受返回,如果AcceptOnMatch是假,过滤器。中立的返回。 
			如果 LevelMin 没有定义,那么就没有最小可接受的水平(即水平永远不会拒绝过于“低”/不重要)。 如果LevelMax没有定义,那么就没有最大可接受的水平(即水平也不会拒绝这份“高”/重要)。 
			参考 setThreshold 方法可用于所有输出源扩展 AppenderSkeleton 为一个更加方便的方式来过滤事件级别。 -->
		<filter class="org.apache.log4j.varia.LevelRangeFilter">
			<param name="LevelMin" value="DEBUG"></param>
			<param name="LevelMax" value="DEBUG"></param>
			<param name="AcceptOnMatch" value="true"></param>
		</filter>
	</appender>

	<!-- 控制台输出 -->
	<appender name="consoleAppend" class="org.apache.log4j.ConsoleAppender">
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern"
				value="%-d{yyyy-MM-dd HH:mm:ss} [%5p][%t][%c{1}]-[%M] %m%n" />
		</layout>
	</appender>

	<appender name="activexAppender" class="org.apache.log4j.DailyRollingFileAppender">
		<param name="File" value="E:/logs/activex.log" />
		<param name="Appender" value="false"></param>
		<param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="[%d{MMdd HH:mm:ss SSS\} %-5p] [%t] %c{3\} - %m%n" />
		</layout>
	</appender>

	<!-- 日志写出器:每一个 logger 可以有多个输出目的地和输出方式 additivity 指示是否遵循缺省的继承机制 -->
	<logger name="com.inspur.log4j.testLog4j" additivity="false">
		<level value="DEBUG"></level>
		<appender-ref ref="consoleAppend"></appender-ref>
	</logger>

	<!-- 根logger的设置 -->
	<root>
		<priority value="debug" />
		<appender-ref ref="myFileAppend" />
		<appender-ref ref="activexAppender" />
	</root>
</log4j:configuration>

测试类

package com.inspur.log4j;

import org.apache.log4j.Logger;

public class testLog4j {

	public static final Logger log = Logger.getLogger(testLog4j.class);

	public static void main(String[] args) {
		System.out.println("Start.");
		for (int i = 0; i < 4; i++) {
			log.info("Enter the main()....");
			log.debug("Enter the main()....");
			log.warn("Enter the main()....");
			log.error("Exception!");
			System.out.println("This is log4j test.");
			log.info("End.");
		}
	}

}
记得要在指定目录下建立一个 logs 文件夹~


  1.  

版权声明:本文为博主原创文章,未经博主允许不得转载。

log4j详解(二) XML 配置方式

标签:log4j   xml   

原文地址:http://blog.csdn.net/qq_21394609/article/details/47804727

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!