欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

apache log4j实例

程序员文章站 2022-07-06 09:49:37
...

闲来无事的时候学习了一下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