log4j的配置方式和加载方式

来源:互联网 发布:it行业新闻 编辑:程序博客网 时间:2024/04/30 17:03

1)什么是log4j

log4j是Apache的一个开放源代码的项目,通过使用log4j,我们可以控制日志信息输出到控制台,文件,GUI组件,甚至是套接口服务器,NT的事件记录器,UNIX

 Syslog守护进程等。我们也可以控制每条日志的输出格式,还可以定义每条日志信息的日志级别,实现更加细致的控制日志的生成过程。更方便的是我们可以通过一个配置

文件来灵活的进行配置控制,而不是去修改其源代码。(本段话来自百度百科,略有修改。。)

log4j下载地址:http://logging.apache.org/log4j/1.2/download.html


2)log4j的配置一般有两种方式一种是通过.properties文件方式,另一种是.xml文件方式

两种方式的示例:

a)log4j.properties方式

###设置org.zblog域对应的级别INFO,DEBUG,WARN,ERROR和输出地A1,A2##

log4j.category.org.zblog=ERROR,A1

log4j.category.org.zblog=INFO,A2

###设置输出地A1为ConsoleAppender(控制台)##

log4j.appender.A1=org.apache.log4j.ConsoleAppender

###设置输出地A1的输出布局格式为PatternLayout(可以灵活的指定布局模式)##

log4j.appender.A1.layout=org.apache.log4j.PatternLayout

###配置日志输出的格式##

log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n

###设置A2的输出地为文件(文件的大小到达指定的尺寸的时候,产生一个新的文件)##

log4j.appender.A2=org.apache.log4j.RollingFileAppender

###设置文件的位置##

log4j.appender.A2.File=d:/log4jTest.html

###设置文件的大小##

log4j.appender.A2.MaxFileSize=500kb

###指定采用html的方式输出##

log4j.appender.A2.MaxBackupIndex=1

log4j.appender.A2.layout=org.apache.log4j.HTMLLayout

b)log4j.xml方式

<?xml version="1.0" encoding="GB2312" ?><!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"><log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"><appender name="org.zblog.all" class="org.apache.log4j.RollingFileAppender"><!-- 设置通道ID:org.zblog.all和输出方式:org.apache.log4j.RollingFileAppender -->   <param name="File" value="E:/study/log4j/all.output.log" /><!-- 设置File参数:日志输出文件名 -->   <param name="Append" value="false" /><!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->   <param name="MaxBackupIndex" value="10" />    <layout class="org.apache.log4j.PatternLayout">       <param name="ConversionPattern" value="%p (%c:%L)- %m%n" /><!-- 设置输出文件项目和格式 -->   </layout></appender><appender name="org.zblog.zcw" class="org.apache.log4j.RollingFileAppender">   <param name="File" value="E:/study/log4j/zhuwei.output.log" />   <param name="Append" value="true" />   <param name="MaxFileSize" value="10240" /> <!-- 设置文件大小 -->   <param name="MaxBackupIndex" value="10" />    <layout class="org.apache.log4j.PatternLayout">       <param name="ConversionPattern" value="%p (%c:%L)- %m%n" />   </layout></appender><logger name="zcw.log"> <!-- 设置域名限制,即zcw.log域及以下的日志均输出到下面对应的通道中 -->   <level value="debug" /><!-- 设置级别 -->   <appender-ref ref="org.zblog.zcw" /><!-- 与前面的通道id相对应 --></logger><root> <!-- 设置接收所有输出的通道 -->   <appender-ref ref="org.zblog.all" /><!-- 与前面的通道id相对应 --></root></log4j:configuration>


3)配置文件的加载方法示例

import org.apache.log4j.Logger;import org.apache.log4j.PropertyConfigurator;import org.apache.log4j.xml.DOMConfigurator;public class Log4jApp {   public static void main(String[] args) {       DOMConfigurator.configure("E:/study/log4j/log4j.xml");//加载.xml文件       //PropertyConfigurator.configure("E:/study/log4j/log4j.properties");//加载.properties文件       Logger log=Logger.getLogger("org.zblog.test");       log.info("测试");   }}

4)如何在项目中使用log4j

在web应用中,可以将log4j的配置文件的加载放置在一个独立的servlet中,并在web.xml文件中配置该文件在应用启动的时候就去加载它。

对于在多人项目中,可以给每个人设置一个日志输出通道,每个人在构建Logger时,可以设置自己的域名,让相应的日志文件以个人想要的方式输出到

指定的位置中。


5)log4j常用的输出格式以及含义

%n:换行

%m:日志内容

%p:日志级别(INFO,DEBUG,WARN,ERROR,FATAL or custom)

%r:程序启动到现在的毫秒数

%%:输出%号

%t:当前线程名

%d:日期和时间

%l:同%F%L%C%M

%F:java源文件名

%L:java源码行数

%C:java类名

%M:java方法名


输出格式的详细说明可以参考地址:http://wenku.baidu.com/view/0688e5fdaef8941ea76e0597.html




0 0
原创粉丝点击