apache log4j实例

闲来无事的时候学习了一下log4j,并写了一个简单的例子,来与大家一同分享!

到apache官方网站下载log4j的应用

需要引入log4j.jar

package test;

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

public class TestMyLog {
	public TestMyLog() { } 
	private static Logger logger = Logger.getLogger(TestMyLog.class); 
	 static { 
	   PropertyConfigurator.configure(TestMyLog.class.getResource("log4j.properties")); //初始化日志文件,之后相应的日志文件就会被创建
	 } 
	public static void main(String[] args) {
		logger.debug("debug");logger.info("info");logger.warn("warn");logger.error("error");logger.fatal("fatal") ;
	}
}

 log4j.properties文件的编写如下:

 

#############################################  

#格式为log4j.rootLogger = [ level ],appenderName1,appenderName2...

log4j.rootLogger = debug,stdout,R
#记日志到console中
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout


log4j.appender.stdout.layout.ConversionPattern =%d{yyyy-MM-dd HH:mm:ss} [%-5p] %C.%M(%L) %n\u4fe1\u606f: %m%n

#记日志到文件中 其中有一些设置 记日志的方式 记录的位置 最大的文件大小 记日志的内容等
log4j.appender.R = org.apache.log4j.RollingFileAppender
log4j.appender.R.File = c:/logs/my.log
log4j.appender.R.MaxFileSize = 20KB
log4j.appender.R.MaxBackupIndex = 1

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%-5p] %C.%M(%L) %n\u4fe1\u606f: %m%n
#############################################

 

说明log4j.properties文件中配置参数所表达的含义

log4j中有个Appender的接口,表示日志记录的位置,有下面一些实现类

org.apache.log4j.ConsoleAppender,控制台
org.apache.log4j.FileAppender,文件,可以设置日志文件的参数,比如文件的大小
org.apache.log4j.DailyRollingFileAppender,每天产生一个日志文件,当然不必设定文件的大小等参数信息,反正每天就产生一个日志文件,或大或小
org.apache.log4j.RollingFileAppender,文件大小到达指定尺寸的时候产生一个新的文件,可以设置日志文件的参数,比如文件的大小(log4j.appender.filter.maxfilesize),备份文件的个数(log4j.appender.gilter.maxbackupindex)等

org.apache.log4j.WriterAppender,将日志信息以流格式发送到任意指定的地方

此外还有一些不是非常常用的Appender

org.apache.log4j.SMTPAppender,用于邮件发送
org.apache.log4j.JDBCAppender,用于数据库 
org.apache.log4j.SocketAppender,用于网络传输

 

并且有个Layout接口,表示日志记录的样式,有下面的一些实现类

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

 

说明下上面的ConversionPattern值表示的含义
%d 表示日期,可以设定日期的格式
%p 表示日志级别,DEBUG,INFO,WARN,ERROR,FATAL,为优先级由低到高,如果日志级别设置为DEBUG,则DEBUG级别和之上的日志级别都将会输出,同样,如果日志级别是INFO,则INFO和它之上的日志级别都将会输出
%t 表示输出该日志的线程名
%C 表示类,显示类的全路径
%M 表示方法
%L 表示行号
%n 表示回车换行符,Windows平台为\r\n,Unix平台为\n
\u4fe1\u606f 为unicode编码的字符
%m 表示记录的消息

 

此外,log4j.properties文件中并不是大小写敏感的,写成下面的两种形式都是可以的(本人更倾向于小写的形式)
log4j.appender.filter.FILE = log/filter.log
log4j.appender.filter.file = log/filter.log

你可能感兴趣的:(log4j)