CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2EE / EJB / JMS

关于修改Log4j配置文件后使之打印日志信息及时生效的问题?急急急急急急急急急急急急急急急急急急急急急????????

楼主wangxindong(www)2006-03-23 22:10:40 在 Java / J2EE / EJB / JMS 提问

我应用tomcat作为服务器,做了个JSP页面,是专门修改log4j.properties配置文件中的配置值的,当我提交页面修改完此文件中配置值后,要重启tomcat服务器后,新的修改配置才能起作用;  
   
  例如修改配置文件中打印级别后,tomcat后台的打印日志信息级别不能马上生效,而要重启tomcat服务器后才能打印出修改后的打印级别,不然还是引用一开始的打印级别;  
   
  现在请问各位在log4j中有没有直接调用的方法可以去直接刷新log4j.properties配置文件信息,使日志打印信息不用重启服务器的情况下就生效;如果在log4j中没有直接引用的相关方法可不可以直接写一个来刷新log4j.properties配置文件的类,怎么去写?请给出相关代码?谢谢! 问题点数:50、回复次数:21Top

1 楼wangxindong(www)回复于 2006-03-24 08:08:06 得分 0

怎么没有人来顶一下呀?Top

2 楼pigengler(en)回复于 2006-03-24 08:19:06 得分 10

Log4j提供的appender有以下几种:  
  org.apache.log4j.ConsoleAppender(控制台),  
  org.apache.log4j.FileAppender(文件),  
  org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),  
  org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)  
  Top

3 楼wangxindong(www)回复于 2006-03-24 21:26:11 得分 0

我主要是想达到时时修改配置文件log4j.properties中参数而立刻使之生效,且不用重新启动tomcat   服务器;  
  如:修改log4j.properties文件中的参数(日志文件大小参数由200K该为20K)后,所产生的日志文件大小就立刻只能生成到20K就从新产生新的日志文件,而不是原来的200K后再产生新文件,且必须是不重启动服务器的前提条件!Top

4 楼cwill(休息一下)回复于 2006-03-25 16:17:33 得分 10

为了提高效率在web项目中与在应用项目中不同  
  web项目中log4j一般在服务启动时通过了web.xml设定   利用某个指定Servlet(这里假设是Log4jInit.java)的init()方法读取了log4j的属性配置文件,放置在内存中,由于指定的Servlet的Log4jInit.init()方法在整个服务运行期间只执行一次,所以在服务运行状态下   你无论怎么改动配置文件其实都与内存中的设定无关了。  
  不过可以试试   改动Log4jInit.java   服务器发现   该Servlet改动后会重新创建一次   ,看能否实现吧。先说了,我没试过   ,不过理论可以的:)Top

5 楼wangxindong(www)回复于 2006-03-26 09:55:48 得分 0

谁有过这方面的研究?或有相关明确方法?Top

6 楼cwill(休息一下)回复于 2006-03-26 17:48:17 得分 0

理论变成现实了  
  我试了一下改动Log4jInit.java     保存后   配置文件立即生效了Top

7 楼wangxindong(www)回复于 2006-03-28 19:42:52 得分 0

请问兄弟在log4j源码中哪里有Log4jInit.java这个类呀?Top

8 楼wangxindong(www)回复于 2006-03-29 08:28:41 得分 0

怎么没有人来顶一下呀?Top

9 楼dubufanchen(benney)回复于 2006-03-29 12:26:03 得分 5

在tomcat中把该工程reloadable=true设定之后tomcat就可以自动监测工程的变动了,不过会影响tomcat的运行效率Top

10 楼wangxindong(www)回复于 2006-03-30 21:48:49 得分 0

请问是哪个文件呀?Top

11 楼haohao100(好好100)回复于 2006-03-31 08:19:19 得分 0

dingTop

12 楼LexChen(阿修罗)回复于 2006-03-31 15:13:33 得分 0

顶5楼Top

13 楼ohbug(臭虫)回复于 2006-03-31 19:40:52 得分 5

server.xml文件中修改那个属性。Top

14 楼wangxindong(www)回复于 2006-04-01 17:26:34 得分 0

shi   shi   kan   xianTop

15 楼wangxindong(www)回复于 2006-04-03 21:22:40 得分 0

在tomcat中的serverl.xml中的reloadable=true属性本来就是为true的Top

16 楼Jolestar(叶明)回复于 2006-04-04 05:39:23 得分 5

我觉得你可以写一个初始化log4j的servlet,然后更改配置后把哪个servlet运行一下就可以了。Top

17 楼haohao100(好好100)回复于 2006-04-04 21:51:19 得分 0

楼上的说了等于没有说?Top

18 楼wangxindong(www)回复于 2006-04-05 22:24:06 得分 0

再冒个泡Top

19 楼haohao100(好好100)回复于 2006-04-06 22:02:01 得分 0

dingTop

20 楼pigo()回复于 2006-04-06 22:38:40 得分 15

log4j自带有FileWatchdog功能:  
   
   
  PropertyConfigurator.configureAndWatch("c://log4j.properties",60000);//每分钟检测一次文件是否被更改,如果更改,则自动重新读取配置。  
   
  DOMConfigurator.configureAndWatch("c://log4j.properties",60000);//xml配置格式的。  
   
  Top

21 楼wangxindong(www)回复于 2006-04-09 23:51:19 得分 0

今日结贴!谢谢各位参与!Top

相关问题

  • log4net在配置文件中指定logger的日志级别的问题?
  • 配置文件
  • jboss配置文件
  • ··· 资料:WINAMP 配置文件 ···
  • 关于tomcat配置文件
  • 怎样写配置文件?
  • 配件配置文件
  • 配置文件问题??
  • 读写配置文件
  • 配置文件错误

关键词

  • log4j
  • 修改
  • 文件
  • 服务器
  • 打印
  • 属性
  • tomcat
  • 信息
  • 项目
  • apache

得分解答快速导航

  • 帖主:wangxindong
  • pigengler
  • cwill
  • dubufanchen
  • ohbug
  • Jolestar
  • pigo

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo