对log4j初始化并设置log文件的存放路径

利用servlet初始化时配置log的存放位置
java 代码
  1. package cn.feigme.util;
  2. import java.io.FileInputStream;
  3. import java.io.IOException;
  4. import java.util.Properties;
  5. import javax.servlet.ServletConfig;
  6. import javax.servlet.ServletException;
  7. import javax.servlet.http.HttpServlet;
  8. import org.apache.log4j.Logger;
  9. import org.apache.log4j.PropertyConfigurator;
  10. /**
  11. * Feigme H.Guo
  12. */
  13. public class Log4jInit extends HttpServlet {
  14. private static final long serialVersionUID = 1L;
  15. private static Logger logger = Logger.getLogger(Log4jInit.class);
  16. public Log4jInit() {
  17. }
  18. public void init(ServletConfig config) throws ServletException {
  19. String prefix = config.getServletContext().getRealPath("/");
  20. String file = config.getInitParameter("log4j");
  21. String filePath = prefix + file;
  22. Properties props = new Properties();
  23. try {
  24. FileInputStream istream = new FileInputStream(filePath);
  25. props.load(istream);
  26. istream.close();
  27. String logFile = prefix + props.getProperty("log4j.appender.logfile.File");//设置路径
  28. props.setProperty("log4j.appender.logfile.File",logFile);
  29. PropertyConfigurator.configure(props);//装入log4j配置信息
  30. logger.info(logFile);
  31. } catch (IOException e) {
  32. logger.debug("Could not read configuration file [" + filePath + "].");
  33. logger.debug("Ignoring configuration file [" + filePath + "].");
  34. return;
  35. }
  36. }
  37. }

相关配置
xml 代码
 
  1. <!-- log4j config -->    
  2.      <servlet>    
  3.          <servlet-name>log4j-init</servlet-name>    
  4.          <servlet-class>cn.feigme.util.Log4jInit</servlet-class>    
  5.          <init-param>    
  6.              <param-name>log4j</param-name>    
  7.              <param-value>WEB-INF/classes/log4j.properties</param-value>    
  8.          </init-param>    
  9.          <load-on-startup>1</load-on-startup>    
  10.      </servlet>    
  11. <!-- log4j config -->  

log4j文件
java 代码
 
  1. # For JBoss: Avoid to setup Log4J outside $JBOSS_HOME/server/default/deploy/log4j.xml!  
  2. # For all other servers: Comment out the Log4J listener in web.xml to activate Log4J.  
  3. log4j.rootLogger=INFO, stdout, logfile  
  4.   
  5. log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
  6. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
  7. log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n  
  8.   
  9. log4j.appender.logfile=org.apache.log4j.RollingFileAppender  
  10. log4j.appender.logfile.File=cis.log  
  11. log4j.appender.logfile.MaxFileSize=1024KB  
  12. # Keep three backup files.  
  13. log4j.appender.logfile.MaxBackupIndex=3  
  14. # Pattern to output: date priority [category] - message  
  15. log4j.appender.logfile.layout=org.apache.log4j.PatternLayout  
  16. log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值