当前位置: 首页 > 工具软件 > J4ME > 使用案例 >

日志 在web下log4j按日期生成文件夹

陆子石
2023-12-01

         期望结果:在web项目的根目录下(Tomcat下的项目路径下)按日期生成文件夹,在最底层文件夹中记录日志,如:2019/03/21,在21这个文件夹下记录21号的日志,03和2019均为21的父文件夹。

         本篇是在java项目下生成日期文件夹日志的基础上进行改变,可以先查看java项目下日志生成

         1、修改日志的配置文件,在原日志路径上,增加一个${log4j_file_path}/,用于存放项目的路径,在后面为这个变量赋值。

log4j.rootLogger=console,logErrFile,logfile
log4j.additivity.org.apache=true
log4j.logger.org.apache=off
log4j.logger.com.mchange=off
## (console)
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Threshold=DUBUG
log4j.appender.console.ImmediateFlush=true
log4j.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}:%p %t %c - %m%n
 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss:SSS}:%p %t %l - %m%n
 
## (file: ERROR)
log4j.appender.logErrFile=util.Log4jFileUpdate
log4j.appender.logErrFile.Threshold=ERROR
log4j.appender.logErrFile.ImmediateFlush=true
log4j.appender.logErrFile.Append=true
log4j.appender.logErrFile.File=${log4j_file_path}/logger/yyyy/MM/dd/error_logs.log
log4j.appender.logErrFile.layout=org.apache.log4j.PatternLayout
log4j.appender.logErrFile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}:%p %t %c - %m%n
##log4j.appender.logErrFile.DatePattern =yyyyMMdd
 
log4j.appender.logfile=util.Log4jFileUpdate
log4j.appender.logfile.File=${log4j_file_path}/logger/yyyy/MM/dd/all.log
log4j.appender.logfile.MaxFileSize=10MB
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss\:SSS}\: %p %t %l - %m%n

         2、新建一个日志的自启动servlet,用于初始化

import javax.servlet.ServletConfig;
import javax.servlet.http.HttpServlet;

import org.apache.log4j.PropertyConfigurator;


public class LoggerServlet extends HttpServlet {

	private static final long serialVersionUID = -7764887265438492800L;

	@Override
	public void init (ServletConfig config) {
		// 项目地址
		String path = config.getServletContext().getRealPath("/");
		// 设置为系统属性,用于日志配置文件中所需要的路径变量
		System.setProperty("log4j_file_path", path);
		// log4j配置文件
		String Log4j_Properties = path + "WEB-INF/classes/log4j.properties";
		PropertyConfigurator.configure(Log4j_Properties);
	}

}

         3、在web.xml中让这个类自启动

  <servlet>
  	<servlet-name>logger</servlet-name>
  	<servlet-class>me.xf.LoggerServlet</servlet-class>
  	<load-on-startup>1</load-on-startup>
  </servlet>

 

 类似资料: