log4j日志记录对于exception的记录问题

在eclipse开发工程中使用log4j,基本步骤网上已经做了很多说明。这里对自己在RCP开发中遇到的几个容易忽略问题总结一下,对于其中的疑惑,请高手帮忙回复。

1:需要引用log4j插件或是将log4j.jar拷贝到开发工程下。
2:如果不使用默认的配置,则需要在rcp启动时,利用PropertyConfigurator.configure("E:/mylog4j.properties");配置log4j的property文件。
3:在RCP开发中,log4j只需要配置一次。在各个插件下皆可使用,所以一般在主工程下,设置上述property属性文件。
4:如果希望不同的插件的log输出到不同的日志文件内,使用如下:
    #省略根,只设置特定包的级别和目的地
    #log4j.rootLogger=debug,appender1
 #evaluation插件下的输出配置
 log4j.logger.com.chen.zyw.evaluation=debug,appender1
 #u3插件下的输出配置
    log4j.logger.com.chen.zyw.u3=info,appender1,appender2

5:我们知道在log4j的配置文件中配置了日志的输出目的地,开发过程中有时候发现有些exception在日志中的堆栈和控制台中的不一致,这时候要查该日志是否完全是由自己控制,将所有的exception都自己处理?因为最大的可能就是有个异常没有自己处理,而eclipse自己处理了。
6:如果配置并希望打印堆栈的异常,可是有的exception却没有打印出来整个堆栈,只是输出了简单的一行,(个人猜测:那最大原因可能是这个exception就是一个exception,而不是exception的子类,简单测试过,如果是检查异常,可能能输出,如果是运行时异常,可能不能输出)。因此我们可以新建个打印流printStream,将e的堆栈信息写到流内,然后通过new String(boStream.toByteArray())生成堆栈信息串并写出到日志中。


问题:对于第六条中的猜测,请高手帮忙。

猜你喜欢

转载自sdfx.iteye.com/blog/1883190