我无法配置我的log4j2.xml文件以包含hibernate日志记录。
这是我的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但我无法理解为什么这个hibernate记录器没有使用相同的appender。
非常感谢任何帮助!
答案 0 :(得分:0)
我有一个类似的问题,但是我的与我创建的特定类有关,而不是与图书馆中的某个类有关。但是,我发现该错误专门针对log4j2
,是因为我使用了错误的记录器。
我的代码曾经是:
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会自动记录到我所有的附加程序中。他们可能已经在软件包更新中解决了此问题。
建议(如果尚未解决)-可能尝试为Hibernate升级软件包/库,并查看其是否有效。或者,查看是否可以找到记录器的创建方式,以便利用它使用org.apache.logging.log4j.Logger
的{{1}} INSTEAD
答案 1 :(得分:0)
实际上,控制台显示的事实
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 jar,并且未提供log4j 1.x配置。解决此问题的方法是用Log4j 2中的log4j-1.2-api jar替换log4j 1.x jar。