今天在学习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同一文件夹下。
分享到:
相关推荐
### Log4j中配置日志文件相对路径方法详解 #### 概述 在软件开发过程中,日志记录是一项重要的功能,它有助于开发者调试程序、监控应用程序的运行状态以及追踪问题。`Log4j`作为一款优秀的日志管理工具,被广泛应用...
总结来说,Log4j的动态配置日志输出路径主要涉及对配置文件的解析和重新加载,以及在运行时使用API直接调整日志设置。理解并熟练运用这些方法,可以帮助我们在开发过程中更灵活地管理和监控日志,提高开发效率和问题...
在`Log4j配置文件详细说明[转].htm`和`Log4j配置文件详细说明[转]_files`这两个文件中,应包含了更详细的实例和说明,可以帮助深入理解每个属性的实际作用和配置方法。在实践中,不断试验和调整,你会发现Log4j是一...
2. `<param-name>log4jConfigLocation</param-name>` 指定了Log4j配置文件的路径,这里是`WEB-INF/config/log4j.properties`。这个配置告诉Web应用在哪里寻找Log4j的配置信息。 3. `<param-name>log4...
### log4j.properties配置文件详解 #### 一、概述 `log4j.properties`是Apache Log4j框架中用于配置日志记录行为的核心文件之一。通过这个文件,开发者可以定义日志消息的输出方式(例如控制台或文件)、日志级别...
#### Log4j配置文件格式 Log4j支持多种配置文件格式,包括`.properties`和`.xml`。两种格式在功能上并无本质区别,选择哪种取决于个人或团队的偏好。 1. **.properties格式**: 在`.properties`文件中,配置信息...
《深入理解Log4j配置文件》 在Java开发中,日志记录是不可或缺的一部分,而Log4j作为一款广泛使用的日志框架,以其强大的功能和灵活性深受开发者喜爱。本篇文章将详细探讨一个感觉还不错的Log4j配置文件,旨在帮助...
通常,配置文件(如`log4j.properties`或`log4j.xml`)会被放置在项目源代码的`src`目录下,这样在编译后会自动包含到类路径中。配置文件可以指定日志输出的目标(控制台、文件、数据库等),输出格式,以及过滤器...
要加载自己的Log4j配置文件,可以在Java代码中指定配置文件路径,例如使用`PropertyConfigurator.configure("path/to/config/file.properties")`,或者在类路径下放置名为`log4j.properties`或`log4j.xml`的文件,...
本文主要讨论了在Log4j配置中如何处理相对路径的问题,以适应不同环境下的日志文件存储需求。 一、使用系统属性设置路径 在Log4j的配置文件(通常是`log4j.properties`)中,可以使用`${}`语法引用系统属性。例如...
2. **log4j.properties**:这是一个配置文件,用于定制Log4j的行为。在这个文件中,你可以设置日志级别,指定哪些类或包的日志应该被记录,以及日志应该如何被输出(即选择哪个Appender)。例如,你可能想要将DEBUG...
**log4j配置文件格式.txt、log4j配置文件基本含义说明.txt** 这两个文本文件可能包含了log4j配置文件的格式规范和详细解释,对于理解和编写配置文件非常有用。 总结来说,这个压缩包提供了log4j的使用教程、配置...
在下载并导入`log4j.jar`后,你需要将配置文件(如`log4j.properties`)放置在一个可被Java虚拟机(JVM)找到的位置,如类路径下的根目录。如果配置文件不在类路径中,你也可以通过编程方式动态加载配置文件。 以下...
本文将详细探讨Log4j的使用,主要关注1.2.17版本的jar包以及配置文件`log4j.properties`。 ### 1. Log4j简介 Log4j是一个开源的日志组件,支持多种输出格式,如控制台、文件、数据库等。它的核心概念包括Logger、...
在Java开发领域,Spring框架是不可或缺的一部分,它提供了一个全面的编程和配置模型...通过合理配置`log4j.properties`文件,开发者可以有效地监控系统状态,及时发现并解决问题,同时避免过多的日志输出影响系统性能。
通过`config.getInitParameter("log4j_properties")`读取初始化参数中的配置文件路径。 - **加载配置文件**:`PropertyConfigurator.configure(properties)` 使用`PropertyConfigurator`类加载配置文件。 #### ...
下面我们将从配置文件类型、核心JAR包、文件渲染和Log调用四个方面来比较Log4j和Log4j2的区别。 配置文件类型 Log4j通过一个.properties文件作为主配置文件,而Log4j2则弃用了这种方式,采用的是.xml、.json或者....
在Java项目中,需要将Log4j的jar包添加到类路径中。通常,这可以通过Maven或Gradle的依赖管理来完成。对于不使用构建工具的项目,可以手动下载Log4j的jar文件并将其放入项目的`lib`目录。 ### 5. 性能优化与最佳...
log4j 配置文件详解 log4j 配置文件是 Java 语言中使用 Log4j 日志记录工具的核心配置文件,用于设置日志记录的级别、输出目的地、日志输出格式等。下面是 log4j 配置文件的详解。 Logger 是 log4j 配置文件中的...