`

【转】关于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

此时生成日志文件将位于tomcat的bin目录下,如要将日志文件保存在 :根目录/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
...
来解决
 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
来解决。

 

转自:http://www.blogjava.net/freeman1984/archive/2010/06/10/323236.html

分享到:
评论

相关推荐

    Flogs:在Flutter中开发的高级日志记录框架,可提供快速简单的日志记录解决方案

    FLog是在flutter中开发的高级日志记录框架,可提供快速简单的日志记录解决方案。 所有日志均保存到数据库中,然后可以将其导出为zip文件。 概述 FLogs是用Dart写的。 它基本上具有两种类型的记录器(FLog和DataLog)...

    数据库灾难性恢复(数据库技术;灾难性;恢复;数据备份)

    该解决方案的真正复杂性在于保护日志文件以确保它们在恢复期间的可用性。如果选择实现双日志记录,DB2 可以将日志文件放在不同的位置,如果确保这些位置在不同的存储器阵列上,那么保护级别就会得到提高。但是,日志...

    rar压缩软件.rar

    4) 如果目录包含文件掩码或以反斜线结尾,将会应用普通的规则,你 需要指定 -r 开关来处理它的子目录。 下列命令会把 Bitmaps 目录中除了子目录外的所有文件添加,因为未 指定开关 -r: rar a Pictures.rar ...

    WINRAR5.0正式注册版

    UTF-16 小端字节序编码被用于 RAR 和 WinRAR 日志文件 rar.log 中,所以 Unicode 文件名能在日志文件中正确存储。WinRAR 会自动删除非 Unicode 格式的旧 rar.log 文件来避免同一日志文件中混合不同的编码。...

    SQLserver2008系统数据库的迁移.doc

    修改数据文件和日志文件的路径到适当 为位置,错误日志的位置一般不需要做变更,例如将数据文件存放到D盘的SQLData文 件夹下,日志文件存放到E盘的SQLLog文件夹下,则参数如下: -dD:\SQLData\master.mdf;...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...

    SVN操作手册中文版网页格式

    Adding Issue Numbers to Log Messages 4.28.1.1. Issue Number in Text Box 4.28.1.2. Issue Numbers Using Regular Expressions 4.28.2. Getting Information from the Issue Tracker 4.29. 与基于 WEB 的...

    微软活动目录管理管理简明手册

    (2)用于活动目录数据库的最小磁盘空间为200MB,另外还要有50MB的空间用于活动目录数据库的日志文件。% N, l3 [) D1 u9 r- R" {: `( U6 K - S P; `* |# m( E* Q$ E& U2 u (3)已做好了DNS服务器的解析。1 C. \( h3 k) ...

    C#开发实例大全(基础卷).软件开发技术联盟(带详细书签) PDF 下载

    实例004 根据需要创建所需解决方案 6 1.2 Visual Studio开发环境的使用 8 实例005 为程序设置版本和帮助信息 8 实例006 设置Windows应用程序启动窗体 9 实例007 统一窗体中控件的字体设置 10 实例008 通过“格式”...

    sysinternals 工具集合 (20090226版)

     2、 正是基于我们这些迫切需求,NewSID可谓是一个完美的解决方案。它提供三种方式来让我们重新生成SID:a.随机产生 b.从其它计算机复制 c.手工输入 ,以上这三种方式可以满足大多数用户的需求。我们还可以选择是否...

    LINGO软件的学习

    @sum(warehouses(I): volume(I,J))=demand(J)); !产量约束; @for(warehouses(I): @sum(vendors(J): volume(I,J))(I)); !这里是数据; data: capacity=60 55 51 43 41 52; demand=35 37 22 32 41 32 43 38; ...

    asp.net知识库

    一完美的关于请求的目录不存在而需要url重写的解决方案! 在C#中实现MSN消息框的功能 XmlHttp实现无刷新三联动ListBox 鼠标放在一个连接上,会显示图片(类似tooltip) 使用microsoft.web.ui.webcontrols的TabStrip与...

    遗传算法与粒子群算法的实现

    本框架提供了有关粒子群...batch.run()开始执行算法比较过程并输出结果Excel文件到C盘根目录(输出路径可在Testable接口中配置,除了生成Excel文件外,还可以通过修改log4j.properties在制定的位置产生运行结果日志)。

Global site tag (gtag.js) - Google Analytics