log4j相对路径

log4j相对路径

方法一:

在工程src目录下建立一个log4j.properties文件,该文件会自动拷贝到/WEB-INF/classes下,文件内容如下:

<!-- <br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--> ### set log levels ###
log4j.rootLogger 
=  debug ,  stdout ,  D ,  E


### 输出到控制台 ###
log4j.appender.stdout 
=  org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target 
=  System.out
log4j.appender.stdout.layout 
=  org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern 
=  %d{ABSOLUTE} %5p %c:%L - %m%n


### 输出到日志文件 ###
log4j.appender.D 
=  org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File 
=  ${WORKDIR}/logs/log.log
log4j.appender.D.Append 
=  true
## 输出DEBUG级别以上的日志
log4j.appender.D.Threshold 
=  DEBUG
log4j.appender.D.layout 
=  org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern 
=  %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ]  -  [ %p ]  %m%n


### 保存异常信息到单独文件 ###
log4j.appender.E 
=  org.apache.log4j.DailyRollingFileAppender
## 异常日志文件名
log4j.appender.E.File 
=  ${WORKDIR}/logs/error.log
log4j.appender.E.Append 
=  true
## 只输出ERROR级别以上的日志!!!
log4j.appender.E.Threshold 
=  ERROR 
log4j.appender.E.layout 
=  org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern 
=  %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ]  -  [ %p ]  %m%n



然后写一个初始化启动的Servlet,代码如下:

<!-- <br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--> package  servlets;

import  javax.servlet.ServletException;
import  javax.servlet.http.HttpServlet;

public   class  Log4jInit  extends  HttpServlet {

 
private   static   final   long  serialVersionUID  =   - 5543643811008717484L ;

 
public  Log4jInit() {
  
super ();
 }

 
public   void  destroy() {
  
super .destroy(); 
 }

 
public   void  init()  throws  ServletException {
  
//  获得工作目录,修改log4j文件的保存路径
  String path  =   this .getServletContext().getRealPath( "" );
  System.out.println(path);
  System.setProperty(
" WORKDIR " , path);
  
  
super .init();
 }
}


web.xml配置如下:

<!-- <br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->   < servlet >
    
< description > This is the description of my J2EE component </ description >
    
< display-name > This is the display name of my J2EE component </ display-name >
    
< servlet-name > Log4jInit </ servlet-name >
    
< servlet-class > servlets.Log4jInit </ servlet-class >
    
< init-param >    
    
< param-name > log4j </ param-name >    
      
< param-value > WEB-INF/classes/log4j.properties </ param-value >
    
</ init-param >
    
< load-on-startup > 1 </ load-on-startup >
  
</ servlet >

 

这样就可以在代码中直接使用了
<%@ page import="org.apache.log4j.Logger;"%>
<%
  Logger log = Logger.getLogger(this.getClass());
  log.info("记录信息");
  log.debug( " debug " );
  log.error( " error " );
%>

 

    <servlet>
         <servlet-name>log4j-init</servlet-name>
         <servlet-class>com.comlink.base.action.Log4jInit</servlet-class>
         <init-param>
           <param-name>log4j</param-name>
           <param-value>WEB-INF/classes/log4j.properties</param-value>
         </init-param>
         <load-on-startup>1</load-on-startup>
       </servlet>


方法二:
去掉方法一中配置文件log4j.properties中的${WORKDIR}/
然后修改Log4jInit的init方法如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值