日志_log4j:自定义log4j日志文件存放路径

话说这是第一次自己配置log4j,以前都是拿来就用,完全没想过这个问题。
log4j的配置文件还是比较好用的,只要编译后log4j.properties文件是在classes目录下,它就会自动查找这个文件。
把记录日志放到文件中也是比较好配置的,问题是这个日志文件在哪儿,死活没找到?这让我有些慌张,如果不自己定义路径,将它控制住,就会觉得有些不舒服。
在网上搜了大半天,关于log4j讲解的文章可谓是多如牛毛,然后就在这些牛毛中提取出了我自己觉得相对好用一点的方法。

一:写监听

1.写一个日志监听类,让它实现ServletContextListener,在此类中定义日志文件的存放路径。Log4jListener.java

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class Log4jListener implements ServletContextListener{

    public void contextDestroyed(ServletContextEvent arg0) {
        System.out.println("this is last destroyeed");    
    }

    public void contextInitialized(ServletContextEvent arg0) {
         String log4jdir = arg0.getServletContext().getRealPath("/");
         System.setProperty("log4jdir", log4jdir);
    }

}

2.将监听配置在web.xml文件中,容器一启动就开启监听。web.xml

<listener>  
    <listener-class>com.adtech.jyjc.utils.Log4jListener</listener-class>  
  </listener>

3.在log4j中引用已定义的路径。log4j.properties

log4j.rootLogger=INFO,Console,logfile

#Console  
log4j.appender.Console=org.apache.log4j.ConsoleAppender  
log4j.appender.Console.layout=org.apache.log4j.PatternLayout  
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n  

#file
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=${log4jdir}/WEB-INF/logs/jyjc.log      
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m %n


log4j.logger.java.sql.ResultSet=DEBUG  
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG  
log4j.logger.java.sql.Statement=DEBUG  
log4j.logger.java.sql.PreparedStatement=DEBUG    

二:写servlet

与第一种方法相同,略!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值