小编典典

如何正确初始化log4j?

log4j

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

log4j:WARN No appenders could be found for logger (slideselector.facedata.FaceDataParser).
log4j:WARN Please initialize the log4j system properly.

看来这意味着缺少配置文件。此配置文件应位于何处,什么是良好的入门内容?

我使用纯Java开发桌面应用程序。因此没有网络服务器等…


阅读 534

收藏
2020-09-23

共1个答案

小编典典

Log4j默认情况下,在classpath上查找名为log4j.properties或的文件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
2020-09-23