论坛首页 入门技术论坛

log4j高级技巧--动态配置日志输出文件的位置

浏览 8794 次
精华帖 (0) :: 良好帖 (4) :: 新手帖 (7) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-08-11  

                               log4j高级技巧--动态配置日志输出文件的位置

    log4j的通常用法就是通过在其配置文件(xml或properties)中直接将输出文件写死,在很多情况下,这样做是非常简单而又有效的。但这样做的缺点是,如果想让这个web应用运行起来,必须要修改log4j的配置文件。比如struts2.x中log4j的配置,每个人都得按照自己的路径进行配置。这无疑增加了配置的复杂性。因此,在某些情况下,我们更希望日志文件默认就输出到web应用的某个目录里,比如如果想输出日志到webroot/logs/log.log中,这该如何实现呢?

    在配置文件中(我是在properties文件中使用的,xml我未测试,理论上一样)使用${user.dir}类似的方式,这里变量必须是System.getPropertities里的变量。而我们则就是要利用这一点。首先在一个Listener里或高优先级、自启动的Servlet里获得应用的发布目录,这是很容易得到的,比如String home = servletContext.getRealPath("/");然后调用System.setPropertity("web_home",home),“web_home”名字可以随意。则log4j.properties里的配置为:log4j.appender.TRACE.File=${web_home}/logs/log.log.则日志会输出到web应用发布目录里的logs目录里。

   发表时间:2010-08-12  
不错,真好需要在一个项目中解决
0 请登录后投票
   发表时间:2010-08-12  
http://lixjluck.iteye.com/blog/711895
0 请登录后投票
   发表时间:2010-08-12  
基本技巧。。。
0 请登录后投票
   发表时间:2010-08-12  
以前就想知道这怎么配,今天才看到可以这样配置。十分感谢!!!
0 请登录后投票
   发表时间:2010-08-13  
有没有更高级的技术呀,曾经面试时被问到,info,warn,error等不同的级别信息分别保存到不到同的文件
0 请登录后投票
   发表时间:2010-08-24  
log4j不同级别日志分不同文件记录

http://www.iteye.com/topic/744693
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics