java - 正确初始化log4j系统

标签 java eclipse logging log4j

我正在尝试为我的一个项目设置 log4j。我找到了this教程中,我遵循了其中的每个步骤。

当然,我已将 jar 文件添加到引用库中。下图显示 log.out 文件的路径位于 PATH 变量中。这就是我的 PATH 变量的样子(只是一个片段):

enter image description here

下图显示log4j jar文件和log4j.properties文件的路径位于CLASSPATH变量中。这是我的类路径:

enter image description here

log4j.properties 文件(与前面提到的教程中的 .properties 示例相比,我唯一更改的是 log4j.appender.FILE.File):

enter image description here

这就是我的项目层次结构:

enter image description here

我正在使用以下类对其进行测试:

package test;

import org.apache.log4j.Logger;

import java.io.*;
import java.sql.SQLException;

public class Log4jExample{
    /* Get actual class name to be printed on */
    static Logger log = Logger.getLogger(Log4jExample.class.getName());

    public static void main(String[] args) throws IOException,SQLException{

        log.debug("Hello this is an debug message");
        log.info("Hello this is an info message");
    }
}

我不断收到以下异常,并且没有任何内容记录到指定的文件中:

enter image description here

当尝试点击警告消息中指定的链接时,我找到了以下答案:

This occurs when the default configuration files log4j.properties and log4j.xml can not be found and the application performs no explicit configuration.

为什么找不到log4j.properties?怎么解决这个问题?

注意:我已经看到有很多关于这些特定 WARN 消息的帖子,但是,我既没有 Maven 项目,也没有动态 Web 项目。这是一个普通的 Java 项目,我只是想测试 log4j。我有 Windows 7 并使用 Eclipse Luna。

更新:看来,如果我将 log4j.properties 文件移动到 src 文件夹,一切都会顺利。我怎样才能修改内容以适应当前的文件结构?

更新#2:我在下面标记为已接受的答案回答了我在更新中提出的问题。不过,我还发现了this该帖子针对该位置问题提出了有用的解决方案。

最佳答案

默认情况下,Log4j 在类路径的根目录中搜索配置文件(log4j.xmllog4j.properties)。将其放入 src 文件夹会自动完成此操作。

如果您不希望将其放在那里,您可以通过系统属性log4j.configuration告诉Log4j在哪里查找它。启动您的应用程序将变为:java -Dlog4j.configuration=file:"D:\..."-jar myapp.jar。在 Eclipse 中,系统属性在“运行配置 > 参数 > VM 参数”中配置。

关于java - 正确初始化log4j系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28486622/

相关文章:

java - Solr 连接多个集合,每个集合有多个分片

java - Java 是否支持类似 Swift 的类扩展?

java - 了解 ArrayList 以及它们如何用于 TUI

eclipse - 在 Eclipse Indigo 中运行 JUnit 插件测试的正确目标平台?

java - Spring 4.2.5 无法查看日志消息

google-app-engine - Google App Engine HTTP 日志中的所有列是什么?

java - 背景图片会减慢 Android 应用程序的速度

Android eclipse 模拟器闪白屏

android - 转换为 Dalvik 格式失败 : Unable to execute dex: java. util.Arrays.copyOfRange

java - 您如何看待将堆栈跟踪保存在一个特殊的日志表中?