当前位置: 首页 > 知识库问答 >
问题:

log4j:警告找不到附加程序

寿卜鹰
2023-03-14

我有一个非常简单的scala应用程序。它所做的只是初始化记录器并logger.info(“你好”)。我在类路径中有一个log4j.properties文件,它具有以下设置

# Root logger option
log4j.rootLogger=INFO, stdout

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

但是,当我尝试运行应用程序时。我得到的错误是log4j:WARN找不到记录器的appender(app.TestApp$)。log4j:警告请正确初始化log4j系统。

我错过了什么?但是,如果我有hadoop core,我会打印日志。类路径中的jar(是的,里面也有一个log4j)

共有2个答案

贝自怡
2023-03-14

听起来在类路径上找不到您的属性文件。打印出类路径(系统属性java.class.path)以验证发生了什么。

冯哲彦
2023-03-14

你的log4J配置文件不在类路径中,即使你认为它在。解决此问题的最简单方法是将-Dlog4j.debug添加到VM参数,然后Log4J将跟踪它正在使用的算法以找到其配置:

scala -cp {yourclasspath} -Dlog4j.debug {yourscalaentrypoint}

不幸的是,@Jens的回答在您运行Scala程序时没有帮助,因为Scala不使用标准的Java系统属性来存储其类路径。当您需要打印出用于Scala程序的类路径时,您应该使用类似于此的技术。

 类似资料: