Log4j配置

来源:互联网 发布:淘宝女装退货率 编辑:程序博客网 时间:2024/05/21 00:18

理论:

.log4j中有五级logger :   FATAL 0 ,ERROR 3 ,WARN 4 ,INFO 6 ,DEBUG 7
. 配置根Logger,其语法为:log4j.rootLogger = [ level ] , appenderName, appenderName, …
其中:level:是日志记录的优先级。appenderName:就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。1.配置日志信息输出目的地Appender,其语法为:log4j.appender.appenderName = fully.qualified.name.of.appender.classlog4j.appender.appenderName.option1 = value1...log4j.appender.appenderName.option = valueNLog4j提供的appender有以下几种:org.apache.log4j.ConsoleAppender(输出到控制台),org.apache.log4j.FileAppender(输出到文件),org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方) 2.配置日志信息的格式(布局),其语法为:log4j.appender.appenderName.layout = fully.qualified.name.of.layout.classlog4j.appender.appenderName.layout.option1 = value1....log4j.appender.appenderName.layout.option = valueNLog4j提供的layout有以下4种:org.apache.log4j.HTMLLayout(以HTML表格形式布局),org.apache.log4j.PatternLayout(可以灵活地指定布局模式),其灵活性表现在:    #%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
    #%r 输出自应用启动到输出该log信息耗费的毫秒数
    #%c 输出所属的类目,通常就是所在类的全名
    #%t 输出产生该日志事件的线程名
    #%n 输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n”
    #%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比    如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
    #%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。    举例:Testlog4.main(TestLog4.java:10)
    #%d {yyyy-MM-dd HH:mm:ss,SSS};
    #%m 消息体
    #%F 类名(*.java)
    #%L 仅仅是发生的行号(如:18)org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)3. logger= INFO: log4j.rootLogger=INFO, A1 ,R说明:FATAL ERROR WARN INFO ,被输出;DEBUG将被屏蔽掉.4.logger= WARN:如果为log4j.rootLogger=WARN, 则意味着只有WARN,ERROR,FATAL被输出,DEBUG,INFO将被屏蔽掉.5.logger= DEBUG:说明:a.Set root logger level to DEBUG and its only appender to A1     b.A1 is set to be a ConsoleAppender.
c.所有的日志信息将被输出。6. d 时间log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n 7.R 输出到文件 RollingFileAppender的扩展,可以提供一种日志的备份功能。log4j.appender.R=org.apache.log4j.RollingFileAppender #日志文件的名称扩展log4j.appender.R.File=log4j.log #日志文件的大小扩展log4j.appender.R.MaxFileSize=100KB # 保存一个备份文件扩展log4j.appender.R.MaxBackupIndex=1 log4j.appender.R.layout=org.apache.log4j.TTCCLayout#log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n

例子:

#########################################################################                                                                      ##                         日志管理配置文件                             ##                                                                      #########################################################################

#设置Loggerlog4j.rootLogger=DEBUG, A1#根Logger,A1根Logger的日志输出格式log4j.logger.system=DEBUG, systemApp#根Logger的子类log4j.logger.business=DEBUG, businessApplog4j.logger.error=DEBUG, errorApp#设置 console ,调试用

log4j.appender.A1=org.apache.log4j.ConsoleAppenderlog4j.appender.A1.layout=org.apache.log4j.PatternLayoutlog4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

#设置systemApp, 记录系统日志信息log4j.appender.systemApp=org.apache.log4j.RollingFileAppenderlog4j.appender.systemApp.File=system.loglog4j.appender.systemApp.MaxFileSize=5120KBlog4j.appender.systemApp.MaxBackupIndex=100log4j.appender.systemApp.layout=org.apache.log4j.PatternLayoutlog4j.appender.systemApp.layout.ConversionPattern= %d [%c:%L] [%t] - %m%n

#设置businessApp, 记录业务日信息

log4j.appender.businessApp=org.apache.log4j.RollingFileAppenderlog4j.appender.businessApp.File=businessApp.loglog4j.appender.businessApp.MaxFileSize=5120KBlog4j.appender.businessApp.MaxBackupIndex=100log4j.appender.businessApp.layout=org.apache.log4j.PatternLayoutlog4j.appender.businessApp.layout.ConversionPattern=%d - %m%n

#设置errorApp, 记录业务日信息

log4j.appender.errorApp=org.apache.log4j.RollingFileAppenderlog4j.appender.errorApp.File=error.loglog4j.appender.errorApp.MaxFileSize=5120KBlog4j.appender.errorApp.MaxBackupIndex=100log4j.appender.errorApp.layout=org.apache.log4j.PatternLayoutlog4j.appender.errorApp.layout.ConversionPattern=%d - %m%n

 

/** *  */package cn.com.sparknet.check.log;

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

/** *功能说明: *2008-5-29 下午02:27:33 * @author 巩明 * */public class LogWritter {    private static Logger systemLogger = null;//不太清楚为什么要分成这两种情况    private static Logger bussinessLogger = null; private static String confFileName; /**  *   */ public LogWritter() {  // TODO 自动生成构造函数存根 }  public static void sysDebug(String message){  systemLogger.debug(message); }  public static void sysInfo(String message){  systemLogger.info(message); } // public static void sysWarn  public static void sysError(String message){  systemLogger.error(message); }  public static void bizDebug(String message){  bussinessLogger.debug(message); } // public static void   static {//静态块,类第一次被加载时,会被立即执行  confFileName = "logWriter.properties";  FileURL fileUrl  = new FileURL();  PropertyConfigurator.configure(fileUrl.getUrl(confFileName));  systemLogger = Logger.getLogger("system");//name为配置文件中指定的名字或不是  //说明:此处的name可以任意取,  //1:如果在配置文件中有system(log4j.logger.system=DEBUG, systemApp)这里的system为rootLogger的子类,则日志在输出时  //按照systemApp指定的格式输出,  //2:如果找不到指定的name,则生成一个rootLogger对象,若配置了log4j.rootLogger=DEBUG, A1,则按A1指定的格式输出,若没有配置则  //按照默认格式输出  //2、加载配置文件和创建Logger没有先后顺序要求,但必须在调用Logger方法前加载配置文件  bussinessLogger = Logger.getLogger("business"); }

 /**  * @param args  */ public static void main(String[] args) {  // TODO 自动生成方法存根

 }

}