log4j日志文件怎么保存到程序当前目录?

发布时间:2021-01-21编辑:脚本学堂
有关log4j日志文件保存在程序当前目录路径下的方法,直接在log4j配置中写绝对路径,跟Spring集成,在web.xml中配置等多个方法,需要的朋友参考下。

在用log4j记录程序日志文件时,有一种需求是:
如何将生成的日志文件保存在当前路径,以便于查看,以及日志文件分析。

这里jbxue小编整理了三种方法,分享给各位朋友。

方法1,直接在log4j配置中写绝对路径

方法2,新建一个ServletContextListener的实现类Log4jConfigListener,Log4jConfigListener做:
 

String path = Environment.class.getResource("").getPath(); 
String webAppPath = path.substring(0, path.toUpperCase().lastIndexOf("WEB-INF/")).replaceAll("%20", " "); 
System.setProperty("webapp",webAppPath + "logs/log.log"); 

在log4j配置中:
 

log4j.appender.A2.File=${webapp}/logs/log.log 

方法3,跟spring集成,在web.xml中配置
 

<context-param> 
<param-name>webAppRootKey</param-name>   
<param-value>webapp.root</param-value>   
    </context-param>  
    <context-param> 
<param-name>log4jConfigLocation</param-name> 
<param-value>/WEB-INF/config/log4j.properties</param-value> 
    </context-param>  
    <context-param> 
<param-name>log4jRefreshInterval</param-name> 
<param-value>6000</param-value> 
    </context-param> 
    <listener> 
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
</listener>

然后,在log4j中用上述配置webAppRootKey对应的值:
 

log4j.appender.file.File=${webapp.root}/WEB-INF/logs/log.log