分享

我的第一个log4j程序(详细解释)

 I_T_馆 2014-05-15

今天,和夏大侠一块找haoshili项目的bug,说到了log4j日志这一块.他问我知道不知道里面配置文件的含义.我说不知道.原来用了这么久的log4j,每次都是复制粘贴,竟然从来没有研究过里面每一句到底是什么含义.于是决定,今晚了解一下log4j具体是怎么回事,每一个参数时什么含义.

找了好多有关log4j的资料,我认为比较好的都搜藏在"日志"文件夹中了,日后有时间多巩固巩固.

下面看看一个简单的log4j的实现:

先看看代码,然后在说具体含义。

第一步:导入相关的jar包,主要有两个:log4j-1.2.9.jar   ,common-logging-1.1.1.jar
 
 
第二部:在src目录下写配置文件 --- log4j.properties
注意:在写配置文件时,不必要的空格不要多,否则,可能会导致错误
 
 
具体的代码如下:
==============================================================
#配置根Logger
log4j.rootLogger=INFO,C 

###输出在控制台####
log4j.appender.C=org.apache.log4j.ConsoleAppender
log4j.appender.C.Target=System.out
log4j.appender.C.layout=org.apache.log4j.PatternLayout
log4j.appender.C.layout.ConversionPattern=[%-5p]%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{6}:%L - %m%n


补充:

log4j.appender.C=org.apache.log4j.ConsoleAppender
log4j.appender.C.Encoding=utf-8   //编码格式
log4j.appender.C.Target=System.out
log4j.appender.C.layout=org.apache.log4j.PatternLayout
log4j.appender.C.Threshold=WARN //在控制台打印输出的级别
log4j.appender.C.layout.ConversionPattern=[%-5p]%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{6}:%L - %m%n
===============================================================
来看看这里面具体的含义:

log4j.rootLogger --> 配置根Logger,意思是log日志从项目的根目录开始,进行日志操作。此处还可以控制某个文件夹或某个类文件的日志。例如:log4j.logger.com.TestLog=DEBUG,D,   意思是只打印com.TestLog类文件的日志。

具体说说log4j.appender.C.layout.ConversionPattern=[%-5p]%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{6}:%L - %m%n 的意思,其他的直接看有关文章即可。
%c 输出日志信息所属的类的全名 
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28 
%f 输出日志信息所属的类的类名 
%l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行 
%m 输出代码中指定的信息,如log(message)中的message 
%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n” 
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推 
%r 输出自应用启动到输出该日志信息所耗费的毫秒数 
%t 输出产生该日志事件的线程名
[%-5p]中-5的意思是在输出INFO/DEBUG/WARN/ERROR级别的信息后空几个格 -5代表空5个格
%c{2}:指的是输出的几级目录,如果是2则输出两级目录 com.TestLog  如果是1则直接输出类名TestLog。

第三步:编写测试java类
 
 
package com.baihui;

import javax.servlet.http.HttpServlet;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

public class TestLog extends HttpServlet{
private static Logger logger = Logger.getLogger(TestLog.class);
public static void main(String[] args){
//加载配置文件,这里的路径为绝对路径。
PropertyConfigurator.configure("D:/Workspaces/MyEclipse 8.6-(tomcat6.0-jdk6.0)/log4j/src/config/log4j.properties");
System.out.println(2);
logger.info("这里在测试");
}
}

==============================================
控制台打印效果:
 
 这是一个仅仅在控制台打印的日志,接下来会有更复杂的日志。



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多