Log4j中使用相对路径

如何在log4j.properties文件中使用相对路径?缺省情况下我们只能在

log4j.properties中配置绝对路径。这样以来,我们在系统部署、开放环境移植等环节

就会带来很大的不便,需要将路径改来改去。因此,我们可以使用下面的办法来实现在

log4j.properties中使用相对路径:

1、实现一个Servlet


/**

 * Log4J初始化

 */

public class Log4jInitServlet extends HttpServlet {

/**

* Servlet初始化

*/

public void init(ServletConfig config) throws ServletException {

   String root = config.getServletContext().getRealPath("/");
  
  //linux的weblogic环境下root最后后面是不带目录符的,如果没有,则加上
   if(!root.endsWith(File.separator)){
   root = (new StringBuilder(String.valueOf(root))).append(File.separator).toString();
  }
  String log4jLocation = config.getInitParameter("log4jLocation");
  System.setProperty("webRoot", root);
  if (log4jLocation != null && !log4jLocation.equals("")) {
   PropertyConfigurator.configure(root + log4jLocation);
  }


    }

}

2、web.xml加载这个servlet

 

<!-- 配置Log4j -->

<servlet>    

<servlet-name>log4jInit</servlet-name>  

<servlet-class>org.eredlab.g4.rif.util.Log4jInitServlet</servlet-class>   

<init-param>     

<param-name>log4jLocation</param-name>   

<param-value>WEB-INF/classes/log4j.properties</param-value>     

</init-param>    

<load-on-startup>0</load-on-startup>  

</servlet>

3、此时在log4j.properties中就可以使用相对路径了,如下:


#Rlogfile

log4j.appender.Rlogfile=org.apache.log4j.RollingFileAppender

log4j.appender.Rlogfile.layout=org.apache.log4j.PatternLayout

log4j.appender.Rlogfile.layout.ConversionPattern=%d %p [%c] - <%m>%n

log4j.appender.Rlogfile.File=${webRoot}/logs/log.log

log4j.appender.Rlogfile.MaxFileSize=2048KB

log4j.appender.Rlogfile.MaxBackupIndex=10

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值