详解Log4j 日志文件存放位置设置

 更新时间:2018年08月09日 11:07:29   作者:擦肩而过  
这篇文章主要介绍了详解Log4j 日志文件存放位置设置,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

以DailyRollingFileAppender 为例:假设每天一个日志文件

有以下设置:

log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender

log4j.appender.A1.File=app.log

log4j.appender.A1.DatePattern='.'yyyy-MM-dd

log4j.appender.A1.layout=org.apache.log4j.PatternLayout

log4j.appender.A1.layout.ConversionPattern=%d %5p - %c -%-4r [%t]    - %m%n

经过自己测试,无法找到app.log文件 

如要将日志文件保存在 :根目录/web-info/logs/下,个人有以下4种解决方案:

1 绝对路径

log4j.appender.A1.File=D:\apache-tomcat-6.0.18/webapps/项目/WEB-INF/logs/app.log

但这种写法灵活性很差

以下3中使用相同的设置原理: jvm的环境变量

2:spring的Log4jConfigListener

通过以下配置

<context-param> 
  <param-name>webAppRootKey</param-name> 
  <param-value>webApp.root</param-value> 
 </context-param> 
 <context-param> 
 <param-name>log4jConfigLocation</param-name> 
  <param-value>classpath:log4j.properties</param-value> 
 </context-param> 
<listener>  
   <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>  
 </listener> 

log4j.appender.logfile.File=${webApp.root}/WEB-INF/logs/app.log

备注:

1、spring配置变了webAppRootKey是不能变的,值可以随意写。

2、log文件存放在tomcat工程目录/webapp(工程名称)/WEB-INF/logs/app.log文件。

2:使用已有jvm变量:

例如:

log4j.appender.logfile.File=${user.home}/logs/app.log

日志将位于:例如windows:C:\Documents and Settings\joe\logs\app.log

3 自己设置目录,也就是在项目启动时通过System.setProperty设置,通过实现ServletContextListener来解决:例如

public class log4jlistener implements ServletContextListener { 
  public static final String log4jdirkey = "log4jdir"; 
  public void contextDestroyed(ServletContextEvent servletcontextevent) { 
    System.getProperties().remove(log4jdirkey); 
  } 
  public void contextInitialized(ServletContextEvent servletcontextevent) { 
  String log4jdir = servletcontextevent.getServletContext().getRealPath("/"); 
  //System.out.println("log4jdir:"+log4jdir); 
  System.setProperty(log4jdirkey, log4jdir); 
  } 
} 

web.xml配置:

<listener> 
  <listener-class>com.log4j.log4jlistener</listener-class> 
</listener> 

log4j.prtperties 配置:

log4j.appender.A1.File=${log4jdir}/WEB-INF/logs/app1.log 来解决。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java如何在PPT中绘制图形

    Java如何在PPT中绘制图形

    这篇文章主要介绍了Java如何在PPT中绘制图形,Microsoft PowerPoint可支持在幻灯片中插入各种类型的图形并且可设置图形填充、线条颜色、图形大小、位置等。下面将通过Java编程来演示在PPT中绘制图形的方法,需要的朋友可以参考下
    2019-07-07
  • Spring context:component-scan的使用及说明

    Spring context:component-scan的使用及说明

    这篇文章主要介绍了Spring context:component-scan的使用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Spring Boot中使用Spring Retry重试框架的操作方法

    Spring Boot中使用Spring Retry重试框架的操作方法

    这篇文章主要介绍了Spring Retry 在SpringBoot 中的应用,介绍了RetryTemplate配置的时候,需要设置的重试策略和退避策略,需要的朋友可以参考下
    2022-04-04
  • java 遍历MAP的几种方法示例代码

    java 遍历MAP的几种方法示例代码

    本文主要介绍java 遍历MAP的知识资料,这里整理几种方法及实现示例代码,有兴趣的小伙伴可以参考下
    2016-09-09
  • SecurityUtils.getSubject().getPrincipal()为null的问题

    SecurityUtils.getSubject().getPrincipal()为null的问题

    这篇文章主要介绍了SecurityUtils.getSubject().getPrincipal()为null的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • SpringBoot使用Graylog日志收集的实现示例

    SpringBoot使用Graylog日志收集的实现示例

    Graylog是一个生产级别的日志收集系统,集成Mongo和Elasticsearch进行日志收集,这篇文章主要介绍了SpringBoot使用Graylog日志收集的实现示例,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • Java刷视频浏览量点赞量的实现代码

    Java刷视频浏览量点赞量的实现代码

    这篇文章主要介绍了Java刷视频浏览量点赞量的实现代码,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-04-04
  • 浅谈Spring IoC容器的依赖注入原理

    浅谈Spring IoC容器的依赖注入原理

    这篇文章主要介绍了浅谈Spring IoC容器的依赖注入原理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • java正则表达式判断 ip 地址是否正确解析

    java正则表达式判断 ip 地址是否正确解析

    这篇文章主要介绍了java正则表达式判断 ip 地址是否正确解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • 详解Java中二叉树的基础概念(递归&迭代)

    详解Java中二叉树的基础概念(递归&迭代)

    二叉树(Binary tree)是树形结构的一个重要类型。本文将通过图片和示例代码详细为大家讲解一下Java中的二叉树的基础概念,需要的可以参考一下
    2022-03-03

最新评论