[英]log4j2 No appenders found for 1 logger
我在配置 log4j2.xml 文件以包含休眠日志記錄時遇到問題。
這是我的 xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="TRACE">
<Properties>
<Property name="logDir" value="${env:MY_APP}/logs"/>
</Properties>
<Appenders>
<RollingFile name="MY_APP" fileName="${logDir}/my_app.log" bufferedIO="true" filePattern="${logDir}/my_app-%d{yyyy-MM-dd}-%i.log.gz">
<PatternLayout pattern="[%t] %d %-5p %x %m%n"/>
<Policies>
<OnStartupTriggeringPolicy/>
<TimeBasedTriggeringPolicy/>
</Policies>
<DefaultRolloverStrategy>
<Delete basePath="${logDir}" maxDepth="1">
<IfFileName glob="my_app-*.log.gz" />
<IfLastModified age="31d" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</Appenders>
<Loggers>
<Root level="trace">
<AppenderRef ref="MY_APP" level="debug"/>
</Root>
<Logger name="com.company" level="info"/>
<Logger name="com.companyName" level="info"/>
<Logger name="com.companyName.myApp" level="debug"/>
<Logger name="org.hibernate" level="info"/>
</Loggers>
在我的 jar 啟動時,我將以下內容打印到控制台:
log4j:WARN No appenders could be found for logger(org.hibernate.type.BasicTypeRegistry).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
我似乎將日志從我的應用程序獲取到我的 RollingFile 中,但我不明白為什么這個休眠記錄器沒有使用相同的 appender。
非常感謝任何幫助!
我有一個類似的問題,但我的問題與我創建的特定類有關,而不是與庫中的類有關。 但是,我發現專門針對log4j2
的錯誤是我使用了不正確的 Logger。
我的代碼曾經是:
import org.apache.log4j.Logger;
public class SomeClass {
static Logger logger = Logger.getLogger(SomeClass.class);
}
最終為我工作的是:
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
public class SomeClass {
static Logger logger = LogManager.getLogger(SomeClass.class.getName());
}
注意:導入的差異以及記錄器是如何“創建”的。
這就是為我解決這個確切錯誤的原因,但它不在庫中。
對我來說,我的項目中也有 Hibernate,但沒有任何額外的配置 Hibernate 會自動將日志記錄到我的所有 appender。 他們可能已經在對軟件包的更新中修復了這個問題。
建議(如果尚未修復) - 也許嘗試升級 Hibernate 的包/庫,看看它是否有效。 或者,看看您是否可以找出記錄器是如何創建的,以便利用它使用org.apache.logging.log4j.Logger
INSTEAD of org.apache.log4j.Logger
實際上,控制台顯示的事實
log4j:WARN No appenders could be found for logger(org.hibernate.type.BasicTypeRegistry).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
表示 log4j 1.x jars 仍然存在於類路徑中,並且沒有提供 log4j 1.x 配置。 對此的修復是用 Log4j 2 中的 log4j-1.2-api jar 替換 log4j 1.x jar。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.