使用log4j点滴

log4j的初始化:
log4j可以使用3中配置器来初始化:BasicConfigurator,DOMConfigurator,PropertyConfigurator 其语法为:
BasicConfigurator.configure (): 自动快速地使用缺省Log4j环境。
PropertyConfigurator.configure ( String configFilename) :读取使用Java的特性文件编写的配置文件。
DOMConfigurator.configure ( String filename ) :读取XML形式的配置文件。
注意一点:PropertyConfigurator.configure ( String configFilename),这个语句只需要在系统启动的时候执行一次。
那么到底放到那里进行这条语句的初始化呢?(servletlistener里边)
注意:任何WEB工程,只要lib目录下有log4j的jar包,classes目录下边有log4j.properties,
则log4j.properties会自动加载,不用写任何代码,log4j就会初试化。

log4j实例的获得:
在需要使用log4j的类中,添加一个静态的属性:(不必是静态的把?)
public static Logger logger = Logger.getLogger ( ServerWithLog4j.class.getName () ) ;
protected final Log logger = LogFactory.getLog(getClass());

log4j中配置日志文件相对路径方法:
在servletlistener中写:
PropertyConfigurator.configure ( String configFilename) ;//实例化log4j.properties
System.setProperty ("WORKDIR", WORKDIR);//设置个系统变量
log4j.properties中写:
log4j.appender.logfile.File=${WORKDIR}/logs/app.log

注意:是log4j.appender.logfile.File=${WORKDIR}/logs/app.log   不是 log4j.appender.logfile.File=${WORKDIR}/logs/app.log .

            System.setProperty ("WORKDIR", WORKDIR);//设置个系统变量 这句要先写,然后,

            PropertyConfigurator.configure ( String configFilename) ;//实例化log4j.properties 。

如何将栈中的异常信息写入log4j.Logger配置的输出流中?
public static String errorException(Exception e) {
  StackTraceElement[] ste = e.getStackTrace();
  StringBuffer sb = new StringBuffer();
  sb.append(e.getMessage() + "/n");
  for (int i = 0; i < ste.length; i++) {
   sb.append(ste[i].toString() + "/n");
  }
  return sb.toString();
}

log4j自带一个方法(不是commons-logging),也可以把输出堆栈信息:
logger.error(String s,Exception e);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值