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

来源:互联网 发布:迅雷7mac官方下载 编辑:程序博客网 时间:2024/06/04 18:57

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

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 < FATALlog4j.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.DailyRollingFileAppenderlog4j.appender.infofile.Threshold = INFOlog4j.appender.infofile.File = D://TotalDocument//logger//error.loglog4j.appender.infofile.Append = truelog4j.appender.infofile.ImmediateFlush = true //这里可以设置,是每个月每年还是每分钟产生滚动文件log4j.appender.infofile.DatePattern = '_'yyyyMMdd'.log ' log4j.appender.infofile.layout = org.apache.log4j.PatternLayoutlog4j.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"输出日志信息换行



0 0