`
i2534
  • 浏览: 182263 次
  • 性别: 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`作为一款优秀的日志管理工具,被广泛应用...

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

    这个“log4j简单范例 日志文件是相对路径的”示例将展示如何配置Log4j来记录日志,并将日志文件保存在程序运行时的相对路径下。 首先,Log4j的核心组件包括Logger(日志器)、Appender(输出目的地)和Layout(格式...

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

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

    Log4j中相对路径的问题

    本文主要讨论了在Log4j配置中如何处理相对路径的问题,以适应不同环境下的日志文件存储需求。 一、使用系统属性设置路径 在Log4j的配置文件(通常是`log4j.properties`)中,可以使用`${}`语法引用系统属性。例如...

    Log4j 相对路径配置

    在SSH(Struts、Spring、Hibernate)等Java Web框架中,配置Log4j以使用相对路径是非常常见的需求,这有助于在不同环境下保持日志文件的一致性。以下是关于Log4j相对路径配置的详细说明: 首先,在`Web.xml`文件中...

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

    例如,在配置文件中指定的日志文件路径`log4j.appender.logfile.File=set up in web.xml`,这里的“set up in web.xml”实际上是指在`web.xml`中指定的日志文件路径,而这个路径也是相对于项目的根目录。 #### 总结...

    log4j 配置日志文件,把日志信息输出到项目的某个文件夹下

    log4j.appender.FILE.File=${catalina.home}/logs/myApp.log # 这里使用相对路径 log4j.appender.FILE.ImmediateFlush=true log4j.appender.FILE.Threshold=DEBUG log4j.appender.FILE.Append=true log4j.appender....

    log4j日志文件配置

    本篇将详细介绍如何配置log4j日志文件,特别是在JSP项目中的应用。 首先,我们要理解日志的级别。Log4j支持多个日志级别,包括DEBUG、INFO、WARN、ERROR和FATAL。这些级别按照严重程度递增,DEBUG是最详细的信息,...

    使用log4j写日志文件

    在Java应用中使用Log4j进行日志记录的第一步,是创建并配置log4j的属性文件(log4j.properties)。这个文件定义了日志的级别、输出目的地以及日志的格式。以下是一个典型的log4j配置示例: ```properties # 设置根...

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

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

    log4j绝对路path

    Log4j通过配置文件(通常是log4j.properties或log4j.xml)来设置日志的行为,其中,日志文件的路径配置是关键部分。 二、绝对路径与相对路径 1. 绝对路径:在操作系统中,绝对路径是从根目录开始,完整指定文件或...

    这个是开源的log4j支持包

    这个jar文件是Log4j 1.2.8版本的核心库,包含了所有必要的类和方法,用于在Java应用程序中实现日志记录。用户需要将此jar包加入到项目的类路径中,才能使用Log4j的功能。1.2.8是一个较早的版本,虽然可能不包含最新...

    log4j之基本配置

    ### Log4j基本配置详解 #### 一、Log4j简介 Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件还是其他地方,还可以控制每一条日志的输出格式;通过定义每一条日志信息...

    log4Qt--qt日志系统

    Log4Qt,顾名思义,是Apache Log4J日志框架的一个Qt实现,为Qt应用程序提供了强大的日志处理功能。由于Log4Qt的文档相对较少,理解其工作原理和用法往往需要参考Log4J的资料。本文将深入探讨Log4Qt的核心概念、配置...

    log4j配置与使用方法

    - 将log4j.properties文件放置在项目的`bin/`目录下,并通过相对路径或者系统资源的方式加载配置文件。 - 如果文件放置在`bin/`目录下的更深层次子目录中,则需要确保路径正确无误。 #### 三、log4j格式详解 - *...

    LOG4J 配置 详细 大全

    `log4j.appender.FILE`配置文件appender,如`log4j.appender.FILE.File=file.log`指定日志文件路径。`log4j.appender.FILE.Append=false`决定是否追加模式,如果为`true`,则日志将被添加到现有文件,如果为`false`...

    log4j 动态配置

    `log4j.properties`文件中定义了日志输出的具体路径和格式。例如: ``` log4j.appender.R.File=../log/log.txt ``` 这条配置表示日志将被输出到当前目录的上级目录下的`log`文件夹中的`log.txt`文件。需要...

    log4j1.2.9jar和详解

    开发者只需将这个JAR文件添加到项目的类路径中,就可以开始使用log4j进行日志记录。 **详解内容** "详解"部分可能包括以下内容: 1. **配置文件**:log4j的配置通常通过一个XML或.properties文件完成,例如`log4j...

    log4j初始化

    除了`log4j`,JDK本身也提供了日志记录包`java.util.logging`,尽管功能相对简单,但对于日志输出需求不复杂的场景来说,可能是一个更轻量级的选择。 - **初始化与配置**:使用`LogManager`类实例化记录器,并通过...

    log4j必须的jar包

    通过配置log4j.properties或log4j.xml文件,开发者可以轻松地调整日志行为以适应项目需求。 其次,`commons-discovery-0.2.jar`是Apache Commons Discovery库,它提供了一种标准的方式来发现服务和组件。在Log4j中...

Global site tag (gtag.js) - Google Analytics