将 log4j 添加到我的应用程序后,每次执行应用程序时都会得到以下输出:
log4j:WARN 找不到记录器的附加程序 (slideselector.facedata.FaceDataParser)。 log4j:WARN 请正确初始化 log4j 系统。
这似乎意味着缺少配置文件。这个配置文件应该放在哪里,什么是好的开始内容?
我正在使用纯 Java 开发桌面应用程序。所以没有网络服务器等......
Log4j默认情况下会在类路径中查找名为log4j.propertiesor的文件log4j.xml。
Log4j
log4j.properties
log4j.xml
您可以通过设置系统属性来控制它使用哪个文件来初始化自身(查找“默认初始化过程”部分)。
例如:
java -Dlog4j.configuration=customName ....
将导致log4j在类路径上查找名为 customName 的文件。
log4j
如果您遇到问题,我发现打开 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