[英]log4j doesn't read its log4j.properties file
在Maven項目中,我已將log4j.properties文件放在src \\ main \\ resources目錄中,這似乎是放置它的通常位置。但是,它似乎無法讀取,或者有一個我看不到的錯誤因為我的記錄器不會打印DEBUG級別的消息(盡管它確實會打印INFO級別的消息),也不會創建logs.log文件。 這是我正在使用的log4j.properties文件:
# Root logger option
log4j.rootLogger=DEBUG, file, stdout
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=D:/.../src/main/resources/META-INF/logs.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
# 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{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
我還嘗試在運行配置中將路徑傳遞到log4j.properties文件,但它也不起作用: -Dlog4j.configuration=file:D:/.../src/main/resources/log4j.properties
該項目是通過另一個綁定項目啟動的,因此我使用了整個文件路徑,這可能是不正確的,因為我所看到的所有示例都沒有提供完整路徑。
我們用於運行該應用程序的服務器是Wildfly 8.1.0,它具有自己的log4j記錄器,所以也許這在某種程度上干擾了?
這是我的攔截器中應該創建日志的部分:
final static Logger logger = Logger.getLogger(RestInterceptor.class);
...
if(e instanceof ApplicationException) {
logger.debug(e.getMessage(), e);
//TODO remove these when done testing
logger.debug("debug is working");
logger.info("info is working");
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
但是,僅打印“信息正在運行”。
您確定src \\ main \\ resources在您的構建路徑中嗎?
右鍵單擊您的項目-> Java構建路徑[源選項卡]
確保資源文件夾在構建路徑上。 還要確保排除的模式='**'
好吧,所以我設法解決了這個問題。 這是因為Wildfly的記錄器干擾了我的。 我在standalone.xml中添加了<use-deployment-logging-config value="false"/>
行,但這還不夠。 在深入研究之后,我還發現並添加了以下行<add-logging-api-dependencies value="false"/>
,它終於開始工作。 盡管我對這種解決方案不完全滿意,但我認為它總比沒有好,也許值得分享。
簡而言之,請將其添加到standalone.xml中,如果您使用的是Wildfly 8,它將解決日志記錄沖突:
<subsystem xmlns="urn:jboss:domain:logging:2.0"> <add-logging-api-dependencies value="false"/> <use-deployment-logging-config value="false"/> ... </subsystem>
更新春季版本。 這個對我有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.