Log4J使用不完全指南

2010年5月4日 低调の华丽 没有评论

准备


登录apache.org,下载log4j最新jar文件。将jar文件导入到项目中.


快速应用



1.Log4J应用Demo

package com.log4j.test;
 
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
 
public class StartUp {
 
	public static Logger logger;
 
	public static void main(String[] args) {
		StartUp s = new StartUp();
		s.configLog4J();
		s.go();
	}
 
	private void configLog4J() {
		// 1.获取日志记录器,Name一般取本类的名字
		logger = Logger.getLogger(getClass().getName());
		// 2.配置Log4j环境
		// BasicConfigurator.configure();自动快速地使用缺省Log4j环境。
		// PropertyConfigurator.configure ( String configFilename);
		// 读取使用Java的特性文件编写的配置文件。
		// DOMConfigurator.configure ( String filename ) :读取XML形式的配置文件。
		PropertyConfigurator.configure("Log4j.properties");
 
	}
 
	private void go() {
		for (int i=0;i<100;i++) {
			logger.debug("test debug");
			logger.log(Level.INFO, "test info");
		}
	}
}

2.新建配置文件 Log4j.properties

log4j.rootLogger=INFO, A1 ,A2
 
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%-5p] [%t] %c - %m%n
 
log4j.appender.A2=org.apache.log4j.FileAppender
log4j.appender.A2.File=A2.log
log4j.appender.A2.Append=true
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=[%-5p] [%t] %c - %m%n

3.运行Demo即可看到效果

Log4J详细配置


log4j.rootLogger=INFO, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r [%-5p] [%t] %l - %m%n

1.配置根Logger,其语法为:

log4j.rootLogger = [ level ] , appenderName, appenderName, …

其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。

Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。
比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。
appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。

2.配置日志信息输出目的地Appender,其语法为

log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1
…
log4j.appender.appenderName.option = valueN
其中,Log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

其中,Log4j提供的layout有以下几种:

org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

3.pattern

%c 输出类的名字,默认是输出全名,可以指定输出多少层次,比如
%c{2}这样配置的话 "a.b.c" 是全类名,会输出"b.c".
%d 用来输出log事件发生的时间。
可以指定格式,比如:%d{yyyy-MM-dd HH:mm:ss}会输出
2007-04-26 20:12:03
%F    输出log事件发生的文件。
%l    输出log事件发生的位置,会输出全类名和在源码的哪一行。
%L    输出log事件发生在源码的第几行。
%m    输出message的内容,就是logger.info(message)的内容。
%M    输出log事件发生的方法名。
%n    输出一个换行符。不用担心系统的问题。
%p    输出log事件的级别,即info,debug,warn等。
%r    输出log事件所用的时间。
%t    输出log事件所在的线程。
%x    输出NDC(不明白什么意思,没试验出来)
%X    输出MDC
%%    输出%
分类: Java 标签: , ,

博客被和谐了

2010年4月6日 低调の华丽 3 条评论

其实我也不知道具体是什么原因中招了。也许是因为在空间上架设了奶瓶腿,被监测到了。可是奶瓶腿只有我一个人在用,没理由能被防火墙发现啊,也许是我低估了墙的威力吧。反正不管怎样,博客是在墙外了,而我还在墙内。

这几天本想写一些关于SWT方面的文章,一时半会又没兴致了。不过就像某Java大牛说的那样,SWT有点像用Java语法写VB程序的感觉。发一个自己写的SWT做的仿Notepad记事本吧,做的不够好,学习用。点击下载

Update:今天上来一看,又被解封了,啥意思?

分类: 生活点滴 标签:

谷歌纯爷们

2010年3月22日 低调の华丽 2 条评论

2006年1月26日,Google正式启用中国大陆版Google专用域名“Google.cn”

2010年3月23日凌晨,谷歌将其中国网站(Google.cn)的链接自动导向了香港网站(www.google.com.hk),并将后者的设计特别调整,与原来大陆网站接近, 同时引入了部分大陆网站原来没有的服务。

一个商业网站都能做到如此,那些持怀疑论者,持阴谋论者,难道你们不觉的羞耻吗?你们早已没有了信仰,活在这个世界,只是行尸走肉而已!

2010年3月22日凌晨,谷歌将其中国网站(Google.cn)的链接自动导向了香港网站(www.google.com.hk),并将后者的设计特 别调整,与原来大陆网站接近,同时引入了部分大陆网站原来没有的服务。
分类: Web&IT业界 标签: ,