`

log4j配置相对路径实现日志记录

    博客分类:
  • j2ee
阅读更多
从网上简单搜索了一下,发现有三种介绍的方法。总结在这里
1. 解决的办法自然是想办法用相对路径代替绝对路径
    其实log4j的FileAppender本身就有这样的机制,如:log4j.appender.logfile.File=${WORKDIR}/logs/app.log其中“${WORKDIR}/”是个变量,会被System Property中的“WORKDIR”的值代替。这样,我们就可以在log4j加载配置文件之前,先用System.setProperty设置好根路径。

2.可以使用环境变量
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=${catalina.base}/logs/logs_tomcat.log
log4j.appender.R.MaxFileSize=10KB

3.具体实现
    (1)一般在我们开发项目过程中,log4j日志输出路径固定到某个文件夹,这样如果我换一个环境,日志路径又需要重新修改,比较不方便,目前我采用了动态改变日志路径方法来实现相对路径保存日志文件
public class Log4jInit extends HttpServlet {
     static Logger logger = Logger.getLogger(Log4jInit.class);

     public Log4jInit() {
     }
     public void init(ServletConfig config) throws ServletException {
         String prefix = config.getServletContext().getRealPath("/");
         String file = config.getInitParameter("log4j");
         String filePath = prefix + file;
         Properties props = new Properties();
         try {
              FileInputStream istream = new FileInputStream(filePath);
              props.load(istream);
              istream.close();
              //toPrint(props.getProperty("log4j.appender.file.File"));
              String logFile = prefix + props.getProperty("log4j.appender.file.File");//设置路径
             props.setProperty("log4j.appender.file.File",logFile);             
             PropertyConfigurator.configure(props);//装入log4j配置信息
        } catch (IOException e) {
             toPrint("Could not read configuration file [" + filePath + "].");
             toPrint("Ignoring configuration file [" + filePath + "].");
             return;
         }
    }
    public static void toPrint(String content) {
    System.out.println(content);
    }
   }


(2).Web.xml中的配置

  <servlet>    
    <servlet-name>log4j-init</servlet-name>    
    <servlet-class>Log4jInit</servlet-class>
    <init-param>
      <param-name>log4j</param-name>
      <param-value>WEB-INF/classes/log4j.properties</param-value>     
    </init-param>    
      <load-on-startup>1</load-on-startup>
  </servlet>
分享到:
评论

相关推荐

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

    ### Log4j中配置日志文件相对路径方法详解 #### 概述 在软件开发过程中,日志记录是一项重要的功能,它有助于开发者调试程序、监控应用程序的运行状态以及追踪问题。`Log4j`作为一款优秀的日志管理工具,被广泛应用...

    Log4j 相对路径配置

    Log4j 是一个广泛使用的Java日志记录框架,它允许开发者灵活地控制日志信息的输出。在SSH(Struts、Spring、Hibernate)等Java Web框架中,配置Log4j以使用相对路径是非常常见的需求,这有助于在不同环境下保持日志...

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

    ### 完全相对路径的log4j配置 #### 背景与意义 Log4j 是一个基于 Java 的日志框架,广泛应用于企业级应用的日志记录。它提供了灵活的日志记录机制,允许开发者根据需求调整日志级别、格式以及输出目的地等。本文将...

    Log4j中相对路径的问题

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

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

    Log4j是一款广泛使用的日志...通过这个简单的Log4j范例,我们可以理解如何配置和使用Log4j进行日志记录,并了解相对路径在设置日志文件时的应用。这有助于我们在开发和维护Java应用程序时更好地管理和分析日志信息。

    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 是一个广泛使用的日志记录框架,它提供了灵活且强大的配置机制,能够满足各种日志记录需求。在本文中,我们将深入探讨LOG4J配置的各种方面,帮助你更好地理解和应用LOG4J。 1. **日志级别设置** 日志级别是...

    log4j 动态配置

    Log4j是Apache的一个开源项目,用于实现日志记录功能。它提供了一种强大的机制来控制日志的生成,使得日志信息可以被输出到不同的目的地,如控制台、文件等,并且可以根据需求设置不同的日志级别(例如DEBUG、INFO、...

    log4j之基本配置

    通过XML配置,可以实现更复杂的配置逻辑,如多级日志记录等。 ```xml &lt;!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"&gt; &lt;log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"&gt; ...

    使用log4j写日志文件

    这里通过`getInitParameter`获取Web应用中的初始化参数,通常是log4j配置文件的路径,然后调用`PropertyConfigurator.configure()`方法加载配置。 #### 在IDE中使用Log4j 对于在IDE中开发的应用,可以直接在代码中...

    log4j配置,jar包

    Log4j是Apache组织提供的一款开源的日志记录框架,广泛应用于Java应用程序中。它的核心功能是为开发者提供一种灵活、高效的方式来记录应用程序运行过程中的各种信息,如错误、警告、调试信息等,有助于在开发和维护...

    log4j日志文件配置

    // 加载log4j配置 PropertyConfigurator.configure("/WEB-INF/classes/log4j.properties"); // 输出一条日志信息 logger.info("Servlet初始化完成"); } // 其他方法... } ``` 通过这种方式,你可以轻松地...

    这个是开源的log4j支持包

    这是一个默认的Log4j配置文件,用于指定日志记录的行为。它使用键值对的形式定义了日志输出的级别、目的地、格式等。例如,你可以设置所有的日志信息输出到控制台,或者写入文件,甚至通过网络发送到远程服务器。...

    log4j绝对路path

    在Java开发中,日志系统是不可或缺的一部分,Log4j作为一款广泛使用的日志记录框架,为开发者提供了强大的日志处理能力。本文将详细探讨Log4j中涉及的“绝对路径”概念及其在实际应用中的重要性。 一、Log4j简介 ...

    log4Qt--qt日志系统

    由于Log4Qt的文档相对较少,理解其工作原理和用法往往需要参考Log4J的资料。本文将深入探讨Log4Qt的核心概念、配置、使用方法以及实际应用,以帮助开发者更好地利用这一工具进行Qt项目的日志管理。 一、Log4Qt核心...

    log4j初始化

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

    Log4j自己配置.doc

    Log4j是一款广泛使用的日志记录框架,它允许开发者对应用程序的日志输出进行灵活的配置,从而满足不同的日志需求。在本文中,我们将详细探讨如何在项目中配置Log4j,以及Log4j配置文件的主要元素。 首先,我们需要...

    非常好用的日志工具log4j

    SLF4J的核心在于其API,它定义了一系列的日志记录方法,如`info()`, `debug()`, `error()`, `warn()`等,这些方法在编译时不会实际执行,只有在运行时与具体的日志实现结合后才会产生效果。这使得SLF4J具有很高的...

    log4j必须的jar包

    例如,以下是一个简单的log4j配置示例: ```xml &lt;log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"&gt; &lt;appender name="console" class="org.apache.log4j.ConsoleAppender"&gt; ...

    log4j 在web中的应用

    - Tomcat本身不包含默认的log4j配置,因此在Tomcat上使用log4j相对简单直接。 - 开发者需要自行创建log4j配置文件(log4j.properties或log4j.xml),并根据项目的需要进行配置。 - **JBoss环境下log4j配置**: - ...

Global site tag (gtag.js) - Google Analytics