详解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 来解决。

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

(0)

相关推荐

  • Log4j 日志文件Linux/Mac/Windows通用存放位置设置方法

    log4j1/log4j2中category的配置以及log的输出位置(windows和linux通用的log输出位置) 一.场景和需求 假设我现在有3个独立的用project(暂时用maven关联起来,当然也可以不用maven),一个是提供公共服务的infrastructure,一个是提供存储的persister,一个是提供搜索的searcher,其中提供基础服务的所有的类,例如DateUtils,HttpUtils等工具类都位于目录com.chuanliu.platform.activity

  • 详解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.append

  • SqlServer修改数据库文件及日志文件存放位置

    --查看当前的存放位置 select database_id,name,physical_name AS CurrentLocation,state_desc,size from sys.master_files where database_id=db_id(N'数据库名'); --修改文件的存放位置下次启动生效 --testDb为数据库名, alter database 数据库名 modify file ( name = 文件名(不包含后缀), filename = '文件存储路径'); a

  • log4j 详解异步日志的配置和测试

     log4j 详解异步日志的配置和测试 日志可以帮助我们分析故障原因,做些数据挖掘的工作.最简单的日志方法,就是自己写个写文件的方法,在需要打日志的时候调用下,但是这显然不可能在实际工程上用.还有个问题,就是频繁地打日志,会增加磁盘I/O,使得系统性能下降.这里用log4j这个库来部署一个含有日志管理的轻量级的系统,主要支持日志的异步写和等级分类的功能,完成最低限度的日志需求. 首先,我们建立一个Maven工程,并且在pom.xml文件里面引入log4j的依赖: <dependency> &l

  • 详解Oracle控制文件及日志文件的管理问题

    目录 一.控制文件的管理 1.控制文件的概述 2.控制文件的创建 1.控制文件的重新建立 3.控制文件的备份 1.将控制文件备份为二进制文件 2.将控制文件备份为文本文件 4.控制文件的恢复 5.添加多路复用的控制文件 二.重做日志文件的管理 1.重做日志文件概述 2.查询重做日志文件信息 3.重做日志文件组及成员的创建 4.重做日志文件组及成员的删除 5.修改重做日志文件的名称或位置 三.归档日志文件的管理 1.归档日志文件概述 2.归档日志信息的查询 3.归档模式的设置 四.总结 一.控制文

  • 详解log4j.properties的简单配置和使用

    本文介绍了详解log4j.properties的简单配置和使用,分享给大家,具体如下: 简单log4j.properties配置示例 ### set log levels ### log4j.rootLogger = INFO , console , debug , error ### console ### log4j.appender.console = org.apache.log4j.ConsoleAppender log4j.appender.console.Target = Syst

  • 详解nginx.conf 中 root 目录设置问题

    在配置 nginx.conf 总会遇到一些问题,下面列举一些常见的问题并说明如何解决 1.相对路径的问题 例如配置文件中 location 设置 location ~ .php${ root html } location 中root所指向的html是一个相对路径,相对的是这个配置文件的路径,假设此配置文件的位置是/etc/nginx/conf.d,那么这个html的绝对路径就是/etc/nginx/conf.d/html.因此为避免出现不必要的麻烦,在配置root路径的过程中最好用绝对路径.

  • Java 配置log4j日志文件路径 (附-获取当前类路径的多种操作)

    1 日志路径带来的痛点 Java 项目中少不了要和log4j等日志框架打交道, 开发环境和生产环境下日志文件的输出路径总是不一致, 设置为绝对路径的方式缺少了灵活性, 每次变更项目路径都要修改文件, 目前想到的最佳实现方式是: 根据项目位置自动加载并配置文件路径. 本文借鉴 Tomcat 的配置方式 "${catalina.home}/logs/catalina.out", 通过相对路径的方式设置日志的输出路径, 有其他解决方案的小伙伴, 请直接评论区交流哦

  • 图文详解nginx日志切割的实现

    目录 实现nginx的日志切割 面试题讨论: 总结 实现nginx的日志切割 (注:为什么要切割呢?因为当你用户访问量大的时候,可能日志也很大.) <1>:ll /usr/local/nginx/logs/  查看日志 (注:有两个日志,一个是访问日志,另一个是错误日志.) <2>:tail -f /usr/local/nginx/logs/access.log  查看访问日志 <3>:vim /opt/cut_nginx_log.sh  编写一个脚本 <4>

  • Python详解复杂CSV文件处理方法

    目录 项目简介 项目笔记与心得 1.分批处理与多进程及多线程加速 2.优化算法提高效率 总结 项目简介 鉴于项目保密的需要,不便透露太多项目的信息,因此,简单介绍一下项目存在的难点: 海量数据:项目是对CSV文件中的数据进行处理,而特点是数据量大...真的大!!!拿到的第一个CSV示例文件是110多万行(小CASE),而第二个文件就到了4500万行,等到第三个文件......好吧,一直没见到第三个完整示例文件,因为太大了,据说是第二个示例文件的40多倍,大概二十亿行...... 业务逻辑复杂:项

随机推荐