小编典典

如何正确初始化 log4j?

all

将 log4j 添加到我的应用程序后,每次执行应用程序时都会得到以下输出:

log4j:WARN 找不到记录器的附加程序 (slideselector.facedata.FaceDataParser)。
log4j:WARN 请正确初始化 log4j 系统。

这似乎意味着缺少配置文件。这个配置文件应该放在哪里,什么是好的开始内容?

我正在使用纯 Java 开发桌面应用程序。所以没有网络服务器等......


阅读 91

收藏
2022-04-20

共1个答案

小编典典

Log4j默认情况下会在类路径中查找名为log4j.propertiesor的文件log4j.xml

您可以通过设置系统属性来控制它使用哪个文件来初始化自身(查找“默认初始化过程”部分)。

例如:

java -Dlog4j.configuration=customName ....

将导致log4j在类路径上查找名为 customName 的文件。

如果您遇到问题,我发现打开 log4j.debug 会很有帮助:

-Dlog4j.debug

它将向 System.out 打印很多有用的信息,关于它用于初始化自身的文件、配置了哪些记录器/附加程序以及如何配置等。

配置文件可以是 java 属性文件或 xml 文件。以下是从log4j
介绍文档页面
获取的属性文件格式示例:

log4j.rootLogger=debug, stdout, R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log

log4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
2022-04-20