Log4j配置

理论:

一.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.class log4j.appender.appenderName.option1 = value1 ... log4j.appender.appenderName.option = valueN Log4j提供的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.class log4j.appender.appenderName.layout.option1 = value1 .... log4j.appender.appenderName.layout.option = valueN Log4j提供的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

例子:

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

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

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

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

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

log4j.appender.businessApp=org.apache.log4j.RollingFileAppender log4j.appender.businessApp.File=businessApp.log log4j.appender.businessApp.MaxFileSize=5120KB log4j.appender.businessApp.MaxBackupIndex=100 log4j.appender.businessApp.layout=org.apache.log4j.PatternLayout log4j.appender.businessApp.layout.ConversionPattern=%d - %m%n

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

log4j.appender.errorApp=org.apache.log4j.RollingFileAppender log4j.appender.errorApp.File=error.log log4j.appender.errorApp.MaxFileSize=5120KB log4j.appender.errorApp.MaxBackupIndex=100 log4j.appender.errorApp.layout=org.apache.log4j.PatternLayout log4j.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 自动生成方法存根

 }

}

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值