`
failure5152
  • 浏览: 5329 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

log4j配置文件路径问题

阅读更多

  今天在学习log4j,建的是eclipse中的java工程,source文件夹是src,class文件存放在bin目录下。建了个 com.logger.SimppleLogging类。log4j.properties并没有存放在src文件下,而是存放在和SimppleLogging同个包下。通过设置log4j.configuration这个系统属性来告诉LogManager到哪加载配置文件。查看了下源码,发现LogManager是先通过file来加载,之后是用classLoader来加载的。所以第一次我先使用classLoader来加载:

System.setProperty("log4j.configuration", "com/logger/log4j.properties");

 这个时候能够加载到。第二次使用该文件的绝对路径加载:

System.setProperty("log4j.configuration", "E:/project/j2se/src/com/logger/log4j.properties");

但是这样LogManager并没有加载到该配置文件,查看LogManager源码,发现LogManager是通过构造java.net.URL去加载的,由于URL没有识别出该协议。在前面加上file:后,LogManager加载到了配置文件:

System.setProperty("log4j.configuration", "file:E:/project/j2se/src/com/logger/log4j.properties");

由于配置的是绝对路径,所以不通用。当时在网上查到两种方法取得该类所在目录:

this.getClass().getResource("/")//第一种
File file = new File(".");
file.getAbsolutePath();//第二种

 但通过打印发现第一种方法返回的是我的bin文件夹所在的url(带有file:),而第二种方法返回的是user.dir\.于是使用第一种方法能够满足我的需求:

System.setProperty("log4j.configuration", SimppleLogging.class.getResource("/com/logger").toString() + "/log4j.properties");

 SimppleLogging.class.getResource("/")返回的是bin文件夹,加上/com/logger就为SimppleLogging.class所在的目录,而log4j.properties也位于SimppleLogging.class同一文件夹下。

分享到:
评论
1 楼 lingyunlujixin 2010-01-12  
不错。我今天正好遇到这个问题。不来以为拖到明天解决了。看了你的博客。一下子理解了。,
感谢。

相关推荐

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

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

    log4j(二):动态配置日志输出路径

    总结来说,Log4j的动态配置日志输出路径主要涉及对配置文件的解析和重新加载,以及在运行时使用API直接调整日志设置。理解并熟练运用这些方法,可以帮助我们在开发过程中更灵活地管理和监控日志,提高开发效率和问题...

    Log4j配置文件详细说明

    在`Log4j配置文件详细说明[转].htm`和`Log4j配置文件详细说明[转]_files`这两个文件中,应包含了更详细的实例和说明,可以帮助深入理解每个属性的实际作用和配置方法。在实践中,不断试验和调整,你会发现Log4j是一...

    Log4j 相对路径配置

    2. `<param-name>log4jConfigLocation</param-name>` 指定了Log4j配置文件的路径,这里是`WEB-INF/config/log4j.properties`。这个配置告诉Web应用在哪里寻找Log4j的配置信息。 3. `<param-name>log4...

    log4j.properties配置文件

    ### log4j.properties配置文件详解 #### 一、概述 `log4j.properties`是Apache Log4j框架中用于配置日志记录行为的核心文件之一。通过这个文件,开发者可以定义日志消息的输出方式(例如控制台或文件)、日志级别...

    log4j配置和加载方法

    #### Log4j配置文件格式 Log4j支持多种配置文件格式,包括`.properties`和`.xml`。两种格式在功能上并无本质区别,选择哪种取决于个人或团队的偏好。 1. **.properties格式**: 在`.properties`文件中,配置信息...

    一个Log4j配置文件,感觉还不错

    《深入理解Log4j配置文件》 在Java开发中,日志记录是不可或缺的一部分,而Log4j作为一款广泛使用的日志框架,以其强大的功能和灵活性深受开发者喜爱。本篇文章将详细探讨一个感觉还不错的Log4j配置文件,旨在帮助...

    log4j配置文件及jar包

    通常,配置文件(如`log4j.properties`或`log4j.xml`)会被放置在项目源代码的`src`目录下,这样在编译后会自动包含到类路径中。配置文件可以指定日志输出的目标(控制台、文件、数据库等),输出格式,以及过滤器...

    Log4j配置文件解析以及加载自己的配置文件.doc

    要加载自己的Log4j配置文件,可以在Java代码中指定配置文件路径,例如使用`PropertyConfigurator.configure("path/to/config/file.properties")`,或者在类路径下放置名为`log4j.properties`或`log4j.xml`的文件,...

    Log4j中相对路径的问题

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

    log4j.jar包,和log4j.properties配置文件下载

    2. **log4j.properties**:这是一个配置文件,用于定制Log4j的行为。在这个文件中,你可以设置日志级别,指定哪些类或包的日志应该被记录,以及日志应该如何被输出(即选择哪个Appender)。例如,你可能想要将DEBUG...

    log4j使用手册和配置文件示例

    **log4j配置文件格式.txt、log4j配置文件基本含义说明.txt** 这两个文本文件可能包含了log4j配置文件的格式规范和详细解释,对于理解和编写配置文件非常有用。 总结来说,这个压缩包提供了log4j的使用教程、配置...

    log4j配置文件和jar包

    在下载并导入`log4j.jar`后,你需要将配置文件(如`log4j.properties`)放置在一个可被Java虚拟机(JVM)找到的位置,如类路径下的根目录。如果配置文件不在类路径中,你也可以通过编程方式动态加载配置文件。 以下...

    log4j使用jar包和log4j.properties配置文件

    本文将详细探讨Log4j的使用,主要关注1.2.17版本的jar包以及配置文件`log4j.properties`。 ### 1. Log4j简介 Log4j是一个开源的日志组件,支持多种输出格式,如控制台、文件、数据库等。它的核心概念包括Logger、...

    Spring的log4j以及配置文件

    在Java开发领域,Spring框架是不可或缺的一部分,它提供了一个全面的编程和配置模型...通过合理配置`log4j.properties`文件,开发者可以有效地监控系统状态,及时发现并解决问题,同时避免过多的日志输出影响系统性能。

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

    通过`config.getInitParameter("log4j_properties")`读取初始化参数中的配置文件路径。 - **加载配置文件**:`PropertyConfigurator.configure(properties)` 使用`PropertyConfigurator`类加载配置文件。 #### ...

    老生常谈Log4j和Log4j2的区别(推荐)

    下面我们将从配置文件类型、核心JAR包、文件渲染和Log调用四个方面来比较Log4j和Log4j2的区别。 配置文件类型 Log4j通过一个.properties文件作为主配置文件,而Log4j2则弃用了这种方式,采用的是.xml、.json或者....

    log4j的jar包和配置文件

    在Java项目中,需要将Log4j的jar包添加到类路径中。通常,这可以通过Maven或Gradle的依赖管理来完成。对于不使用构建工具的项目,可以手动下载Log4j的jar文件并将其放入项目的`lib`目录。 ### 5. 性能优化与最佳...

    log4j配置文件详解附实例

    log4j 配置文件详解 log4j 配置文件是 Java 语言中使用 Log4j 日志记录工具的核心配置文件,用于设置日志记录的级别、输出目的地、日志输出格式等。下面是 log4j 配置文件的详解。 Logger 是 log4j 配置文件中的...

Global site tag (gtag.js) - Google Analytics