java项目使用log4j工具类(非web项目)以及log4j.properties文件详解

先列出项目目录以及文件功能:

com.testlog.testlog    //记录日志的工具类
                       logger //logger工具类
                       testlog //对工具类的进一步格式化:logBefore()  和 loggerAfter()
                       uselog  // 让控制台显示日志的使用    
                       log4j.properties //放在src下面的配置文件 

logger.java

package com.testlog;

public class Logger {

private org.apache.log4j.Logger logger;

	
	/**
	 * 构造方法,初始化Log4j的日志对象
	 */
	private Logger(org.apache.log4j.Logger log4jLogger) {
		logger = log4jLogger;
	}

	/**
	 * 获取构造器,根据类初始化Logger对象
	 * 
	 * @param Class
	 *            Class对象
	 * @return Logger对象
	 */
	public static Logger getLogger(Class classObject) {
		return new Logger(org.apache.log4j.Logger.getLogger(classObject));
	}

	/**
	 * 获取构造器,根据类名初始化Logger对象
	 * 
	 * @param String
	 *            类名字符串
	 * @return Logger对象
	 */
	public static Logger getLogger(String loggerName) {
		return new Logger(org.apache.log4j.Logger.getLogger(loggerName));
	}

	public void debug(Object object) {
		logger.debug(object);
	}

	public void debug(Object object, Throwable e) {
		logger.debug(object, e);
	}

	public void info(Object object) {
		logger.info(object);
	}

	public void info(Object object, Throwable e) {
		logger.info(object, e);
	}

	public void warn(Object object) {
		logger.warn(object);
	}

	public void warn(Object object, Throwable e) {
		logger.warn(object, e);
	}

	public void error(Object object) {
		logger.error(object);
	}

	public void error(Object object, Throwable e) {
		logger.error(object, e);
	}

	public void fatal(Object object) {
		logger.fatal(object);
	}

	public String getName() {
		return logger.getName();
	}

	public org.apache.log4j.Logger getLog4jLogger() {
		return logger;
	}

	public boolean equals(Logger newLogger) {
		return logger.equals(newLogger.getLog4jLogger());
	}
}

log4j.properties

//输出源的优先级以及命名,DEBUG < INFO < WARN < ERROR < FATAL
log4j.rootLogger=INFO,console,FILE,infofile


//输出到控制台
log4j.appender.console=org.apache.log4j.ConsoleAppender
//日志输出的最低层次
log4j.appender.console.threshold=INFO
//默认表示所有的消息立即输出
log4j.appender.console.ImmediateFlush = true 
//布局
log4j.appender.console.layout=org.apache.log4j.PatternLayout
//布局格式
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%5p] - %c -%F(%L) -%m%n


//输出到文件,文件大小到达指定尺寸的时候产生一个新的文件
log4j.appender.FILE=org.apache.log4j.RollingFileAppender
日志输出的最低层次,声明为error,则进来的info中的信息中在error之前的info和warn不会输出
log4j.appender.FILE.Threshold=INFO
//是否追加到文件末尾
log4j.appender.FILE.Append=true
//文件路径,指定路径会自动创建文件
log4j.appender.FILE.File=D://TotalDocument//logger//info.log
//布局声明
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
//布局格式
log4j.appender.FILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%5p] - %c -%F(%L) -%m%n
//文件尺寸
log4j.appender.FILE.MaxFileSize=1KB
//制定滚动文件的最大个数,放不下的文件会放到滚动文件里面并且会覆盖以前的信息
log4j.appender.FILE.MaxBackupIndex=2


//定时产生滚动文件
log4j.appender.infofile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.infofile.Threshold = INFO
log4j.appender.infofile.File = D://TotalDocument//logger//error.log
log4j.appender.infofile.Append = true
log4j.appender.infofile.ImmediateFlush = true 
//这里可以设置,是每个月每年还是每分钟产生滚动文件
log4j.appender.infofile.DatePattern = '_'yyyyMMdd'.log ' 
log4j.appender.infofile.layout = org.apache.log4j.PatternLayout
log4j.appender.infofile.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %l %m%n


//具体的格式化信息
-X号: X信息输出时左对齐;
 %p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,
 %d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
 %r: 输出自应用启动到输出该log信息耗费的毫秒数
 %c: 输出日志信息所属的类目,通常就是所在类的全名
 %t: 输出产生该日志事件的线程名
 %l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main (TestLog4.java:10)
 %x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
 %%: 输出一个"%"字符
 %F: 输出日志消息产生时所在的文件名称
 %L: 输出代码中的行号
 %m: 输出代码中指定的消息,产生的日志具体信息
 %n: 输出一个回车换行符,Windows平台为"/r/n",Unix平台为"/n"输出日志信息换行



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值