【问题标题】:No appenders could be found for logger using Log4j找不到使用 Log4j 的记录器的附加程序
【发布时间】:2014-06-27 14:12:53
【问题描述】:

我正在本地运行一个应用程序并试图让它将日志输出到我创建的文件中。 log4j.properties 文件如下所示:

# Define the root logger with appender file

log4j.rootLogger = DEBUG, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=C:\\Users\\jkm144\\workspace\\LdapPurge\\log.out

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

这是一个 Maven 项目。它在我的 pom.xml 中定义,并在我的 Maven 依赖项中列出。

我已经导入了三个类:

import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.FileAppender;

我用来定义记录器的代码是:

static Logger log = Logger.getLogger(LdapPurge.class.getName());

每当我遇到日志时,它都会告诉我“log4j:WARN No appenders could be found for logger”

我不确定自己做错了什么。这是我第一次使用 log4j。

【问题讨论】:

  • 你想要的行为是什么?
  • log4j.properties 的位置是什么
  • 如果 log4j 在任何地方都找不到文件 log4j.properties 或 log4j.xml,通常你会看到这个警告。顺便说一句,您在哪里指定您将使用 log4j.properties 文件?
  • 对于像这样的 Maven 项目,您应该在 src/main/java 中有源代码,您可以将 log4j.properties 放入 src/main/resources
  • @Ian。谢谢。那行得通。

标签: java logging log4j


【解决方案1】:

您的屏幕截图表明这是一个 Maven 项目,因此请将 log4j.properties 放入 src/main/resources。这是在运行时需要在类路径中结束的资源文件的 Maven 标准路径,您放入其中的任何内容都将与从 src/main/java 中的源编译的类一起打包到应用程序的 JAR 文件中。

【讨论】:

    【解决方案2】:

    您应该将 log4j.properties 放在

    WEB-INF/类

    您的网络应用程序的目录。 Log4j 将找到属性文件并对其进行初始化。这很容易做到,而且很有效。

    手动添加 log4j.properties:

    你可以在你想要的任何地方添加它,当你运行你的项目时,配置类路径并通过单击添加 log4j.properties 文件的位置:运行->运行配置->[类路径选项卡]->单击用户条目 -> 高级 -> 选择添加文件夹 -> 选择 log4j.properties 文件的位置。点击确定

    【讨论】:

    • 我添加了一张图片。我没有这个项目的 WEB-INF。
    • 查看其他方法。
    猜你喜欢
    • 2012-09-13
    • 1970-01-01
    • 2015-07-23
    • 1970-01-01
    • 2015-06-11
    • 2018-03-21
    • 2018-03-18
    相关资源
    最近更新 更多