我有麻烦配置我的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>
在启动我的罐子时,我会将以下内容打印到控制台:
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.
我似乎从我的应用程序中获取日志到我的滚动文件中,但我不明白为什么这个hibernate记录器没有使用相同的appender。
非常感谢您的帮助!
实际上,控制台显示的事实
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 1. x jar替换为Log4j 2中的log4j-1.2-api jar。
我也有类似的问题,但我的问题与我创建的特定类有关,而不是库中的类。但是,我发现错误是专门针对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会自动记录到我的所有应用程序。他们可能已经在包的更新中修复了这个问题。
建议(如果尚未修复)-可能尝试升级Hibernate的包/库,看看它是否有效。或者,看看您是否可以了解记录器是如何创建的,以便利用它使用的org。阿帕奇。登录中。log4j。记录器
而不是组织。阿帕奇。log4j。记录器
我尝试使用第二个日志文件与我的默认日志文件在servlet我有这个log4j.xml配置。 现在在servlet中,我将记录器设置为: 但在运行时:错误日志。调试(“启动应用程序”);我得到: log4j和log4j.xml在类路径我做错了什么?
问题内容: 我正在尝试在Firefoxdriver上运行Selenium Webdriver代码,但在运行时我遇到了一个例外- 代码是-import org.openqa.selenium。*; 导入org.openqa.selenium.firefox.FirefoxDriver; 问题答案: 实际上,您得到的异常与您在帖子标题中提到的警告无关。 警告 :只是告诉您您没有为硒驱动程序定义任何附加
我已经将log4j放入了buildpath中,但在运行应用程序时会收到以下消息: 这些警告意味着什么?这里的附加符是什么?
问题内容: 我已经将log4j放到了我的构建路径中,但是在运行应用程序时收到以下消息: 这些警告是什么意思?这里的追加器是什么? 问题答案: 这个log4j指南的简短介绍有些陈旧,但仍然有效。 该指南将为你提供有关如何使用记录器和附加器的信息。 为了让你步入正轨,你可以采用两种简单的方法。 首先是将这一行添加到你的main方法中: 第二种方法是将这个标准文件log4j.properties(来自上
Log4j2-LogManager。getLogger(“名称”)未找到自定义记录器。 以下所有操作都返回相同的记录器,即此代码所在类的根记录器。我想这些都会有所不同,我会在前3个电话中拿回我的3个定制电话。注意:将创建appender指定的文件,但不会向其发送日志。 我使用以下方法创建自定义记录器: writeXmlConfiguration中的等效XML为: