Posted on 2007-10-18 11:24
Magic.Yang 阅读(1486)
评论(0) 编辑 收藏 所属分类:
Java杂记
Log4j的路径问题主要有两个:1、log4j.properties配置文件路径;2、输出的日志文件路径;
1、log4j.properties配置文件路径解决方案
它与其他java文件的读写一样。如果在web应用中,可以通过以下两个方法:
方法一:将log4j.properties文件放到工程的WEB-INF目录下,然后通过下面代码来初始化log4j.properties文件的配置:
ServletContext context = this.getServlet().getServletContext();
PropertyConfigurator.configure(context.getRealPath("/") + "/WEB-INF/log4j.properties");
这里的this.getServlet()是Struts的Action类里面的方法,如果是直接继承HttpServlet的话,则直接通过下面代码取得应用环境。
ServletContext context = getServletContext();
方法二:直接查找log4j.properties。以Tomcat为例,如果你的log4j.properties文件放在project/conf(这里project就是应用的根目录)下,那么可以这样找到它:
PropertyConfigurator.configure(../webapps/project/conf/log4j.properties);
为什么会是这样呢,因为在Tomcat中,所有的配置文件都是以Tomcat的bin目录为根目录的,实践证明的但具体原因不清楚。
2、输出的日志文件路径解决方案
这个跟方上个问题的方法二中一样。比如说,我要把log输出到工程project的logs目录下,那么在log4j.properties文件中这样写就可以了:
log4j.appender.R.File=../webapps/project/logs/log4j.log
到这里,我们可以了看到,tomcat的部署的应用里的配置默认的根目录是%CATALINA_HOME%/bin,以后类似的路径问题从这里入手解决也就不困难了。