`
i2534
  • 浏览: 179563 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

log4j日志文件的相对路径

    博客分类:
  • util
阅读更多

一直没能很好的解决log4j的日志文件的保存路径.今天恰好又遇到.算是比较完美的解决.

先说场景:

一个web项目,使用log4j做日志系统.开发时web容器为jetty,生产环境为tomcat5.5.

classes下定义了log4j.properties.

log4j.appender.A2=org.apache.log4j.RollingFileAppender

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

 一般,自定义dir,可以在System中设置dir的值.

如果不是使用java -Ddir=xxx这样方式,就需要在加载log4j.properties之前设置.

一般用Listener,在Listener的init方法中设置.

这种方式在jetty中可行.在tomcat中失败.

这是因为tomcat在启动项目时,会优先加载log4j.properties文件,然后才执行Listener.

突然想到,tomcat在启动项目时,会自动设置环境变量:catalina.base

修改一下

log4j.appender.A2.File=${catalina.base}/logs/report.log

  然后在Listener中判断此变量是否存在,存在,表示在tomcat中,不需要再设置,否则,设置路径为项目根路径

String key = "catalina.base";
if (System.getProperty(key) == null) {//不在tomcat中,需定义
	String root = ctx.getRealPath("/");//就保存在项目下
	System.setProperty(key, root);
}

 这样.如果再tomcat中,会保存日志文件到tomcat/logs下.否则保存到webapp/logs下

 

附上一个典型的log4j配置

 

log4j.rootLogger=INFO, A1, A2

# A1 is set to be ConsoleAppender sending its output to System.out
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss} %-5p [%t] (%F:%L) %3x - %m%n

log4j.appender.A2=org.apache.log4j.RollingFileAppender
log4j.appender.A2.Threshold=INFO
#log_dir\u5728AppListener\u4e2d\u83b7\u5f97\u5e76\u8bbe\u7f6e\u5982System
log4j.appender.A2.File=${catalina.base}/logs/web.log
log4j.appender.A2.Append=true
log4j.appender.A2.MaxFileSize=100KB
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5r %-5p [%t] %c{2}:%L - %m%n
 
分享到:
评论
1 楼 LD_21 2014-08-29  

相关推荐

    log4j中配置日志文件相对路径方法(PDF)

    本文档提供log4j配置相对路径三种方法:log4j.properties文件配置、xml文件配置和通过servlet初始化方式来配置,希望对大家有所帮助

    log4j中配置日志文件相对路径方法分析

    log4j中配置日志文件相对路径方法分析 方法一、 解决的办法自然是用相对路径代替绝对路径,其实log4j的FileAppender本身就有这样的机制,如:log4j.appender.logfile.File=${WORKDIR}/logs/app.log 其中“${...

    log4j简单范例 日志文件是相对路径的

    log4j简单范例 日志文件是相对路径的。

    0积分:完全相对路径的log4j配置

    完全相对路径的log4j配置: 配置文件相对,及日志文件相对. 不过使用的是properties,总觉得用XML配置是好点的做法

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

    log4j1/log4j2中category的配置以及log的输出位置(windows和linux通用的log输出位置) 一、场景和需求 假设我现在有3个独立的用project(暂时用maven关联起来,当然也可以不用maven),一个是提供公共服务的...

    log4j日志文件配置

    通过初始化servlet,在文件里输出你想要的自定义信息,方便的调试功能,输出任意级别的错误.这是个jsp的日志文件配置

    p6spy.jar+配置文件

    2、针对日志文件,由于此文件记录量,增加一个log4j中的DailyRollingFileLogger,每天做日志,并且增加一个属性在配置文件中maxfilesize=500(kb),超过此文件的最大值,系统重新生成一个文件。输入的日志格式采用...

    如何编写批处理文件批处理文件批处理文件

    简明批处理教程22009年10月20日 星期二 下午 05:35 最近对于批处理技术的探讨比较热,也有不少好的批处理程序发布,但是如果没有一定的相关知识恐怕不容易看懂和理解这些批处理文件,也就更谈不上自己动手编写了,古...

    互联网创意产品众筹平台

    问题一箩筐-关于打印日志log4j问题5 y: }- e: Z$ p6 X9 d0 A9 @ │ 7.问题一箩筐-生产环境模拟, y; v4 Z% p0 }& I+ X* B) t# j │ 8.问题一箩筐-相对路径和绝对路径 │ 9.问题一箩筐-自定义监听器,解决上下文路径...

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

    (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) ...

    网上商城需求报告

    log4j:日志工具,用于输出日志信息.主要在业务层和数据访问层使用 junit:单体测试工具,用于测试业务或者数据访问方法 -----------项目开发流程------------ UML模型图:IBM Rose,Microsoft Visio E-R模型图:...

    HGE_系列教材(1-9)

    System_Log 在日志文件中书写格式化消息 System_Launch 运行一个URL 或者外部的可执行文件或数据文件 System_Snapshot 截屏并保存到一个文件 3. 资源函数(Resource functions): Resource_Load 从硬盘上读取资源到...

    LINGO软件的学习

    数据部分提供了模型相对静止部分和数据分离的可能性。显然,这对模型的维护和维数的缩放非常便利。 数据部分以关键字“data:”开始,以关键字“enddata”结束。在这里,可以指定集成员、集的属性。其语法如下: ...

    dangdang和smartstruts2.rar

    log4j:日志工具,用于输出日志信息.主要在业务层和数据访问层使用 junit:单体测试工具,用于测试业务或者数据访问方法 -----------项目开发流程------------ UML模型图:IBM Rose,Microsoft Visio E-R模型图:...

    Sosoo 1.0网络爬虫程序.doc

    设置从开始路径能找的最大深度【maxDepth】:程序会判断当前处理的链接深度是否超过最大链接深度,如果超过这个链接将忽略,当然你可以通过设置depthIsEffect来屏蔽这个功能。默认值为1。 robby.setMaxDepth(0); ...

    新版Android开发教程.rar

    谷歌早在 2002 年就进入了移动领域,可是由于目前的手机操作系统企业和手机企业相对封闭,提高了 行业的进入门槛,移动互联网的发展远没有拥有统一标准的传统互联网发展迅速,此次推出的开源手机操 作 系统平台就是...

Global site tag (gtag.js) - Google Analytics