用log4j记录日志,发现了很奇怪的问题。1、用eclipse3.7开发spring web项目testWeb,
log4j.properties:
log4j.rootLogger=DEBUG,R,stdout
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=${logFilePath}/test.logweb.xml:
<context-param>
<param-name>logFilePath</param-name>
<param-value>www/log</param-value>
</context-param>我的eclipse安装在d盘
启动服务后,发现日志在D:\test.log
而在eclipse发布的目录下的testWeb\www\log\下没有日志文件。请问这是什么原因造成的?
log4j.properties:
log4j.rootLogger=DEBUG,R,stdout
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=${logFilePath}/test.logweb.xml:
<context-param>
<param-name>logFilePath</param-name>
<param-value>www/log</param-value>
</context-param>我的eclipse安装在d盘
启动服务后,发现日志在D:\test.log
而在eclipse发布的目录下的testWeb\www\log\下没有日志文件。请问这是什么原因造成的?
解决方案 »
- jsp调用上传到服务器的文件
- struts-config.xml显示设计是报错
- java正则表达式有反向引用吗?
- weblogic上部署多个web应用如何配置各自的log4j.properties
- 关于java调用sqlserver的事件探查器和oracle中的审计功能
- 【POI相关】如何在Excel中写入百分数?
- hibernate小问题
- 各位高手,请给个建议...我学j2ee 2个月了,书也看了好几本了。现在想找个项目的源代码看,大家推荐几个。
- 服务发布后 不能显示查看WSDL描述[求助]
- 常见的weblogic错误,请问怎么解决呢?
- <散分>怎样能无师自通呢?
- myeclipse手动安装struts2.0
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>test</param-value>
</context-param>log4j.properties:
log4j.appender.R.File=${test}/logs/test.log
但是日志仍然是在D盘根目录
最终是什么呢??
应该就变成d盘了吧
<param-name>webAppRootKey</param-name>
<param-value>test</param-value>
</context-param>
${test}不应该是我工程发布的路径下吗?
而且我把工程拷贝到了tomcat下执行,启动tomcat,
发现日志仍然生成在了D盘。
真是郁闷了。
我用maven构建的工程,完全没有问题,正常执行。
同样的代码,只不过现在不是maven的模式,就不能正常执行了,真奇怪。
打印出来看看。
DailyRollingFileAppender appender = (DailyRollingFileAppender)Logger.getRoot().getAppender("R");
System.err.print("log path = " + appender .getFile());
打印出来看看是否是${logFilePath}值有问题。
log4j.appender.R.File=${webapp.root}/WEB-INF/logs/test.logweb。xml里面没有任何配置,用的是spring,是可以自动加载上properties的打印出来的是:
log path = /WEB-INF/logs/test.log
都得到日志文件的路径了尽然写到D盘了,真是头一次见。
要不你别在配置文件设路径了,直接在代码里里设
DailyRollingFileAppender应该有设置文件的方法。
是这样的,默认生成的日志是在tomcat的安装目录所在的根目录下面。
你的tomcat安装在D盘?
我到觉得是apache-tomcat\bin下呢,那你怎么解决的。
可是我已经在properties里面定义了
log4j.appender.R.File=${webapp.root}/WEB-INF/logs/test.log
难道这个webapp.root是表示了tomcat的根路径啊。
可是,我同事其他的工程也是用的这样的方法,
那我在web.xml:
<context-param>
<param-name>logFilePath</param-name>
<param-value>www/log</param-value>
</context-param>
定义了logFilePath
然后log4j.appender.R.File=${logFilePath}/test.log
log就到了工程路径下。
这是什么原因,是我的log文件写的不对?
是配置文件的问题。
都在web.xml里面。
1、可以不配置properties,这样就只能是在tomcat的根路径下。
2、配置properties,加上listener。