Java 为什么我的信息日志在升级时仍会被记录?

Java 为什么我的信息日志在升级时仍会被记录?,java,logging,log4j2,Java,Logging,Log4j2,我今天才意识到我们使用的是log4j2,而我的log4j属性文件没有被使用。因此,我插入了最基本的log4j2.xml文件,以验证是否正在使用它。我希望在关闭它时不会看到任何日志,而是看到所有日志。有人能告诉我为什么这个级别设置没有得到尊重吗 这是我的档案: <?xml version="1.0" encoding="UTF-8"?> <Configuration status="trace" packages=""> <Appenders> &l

我今天才意识到我们使用的是log4j2,而我的log4j属性文件没有被使用。因此,我插入了最基本的log4j2.xml文件,以验证是否正在使用它。我希望在关闭它时不会看到任何日志,而是看到所有日志。有人能告诉我为什么这个级别设置没有得到尊重吗

这是我的档案:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="trace" packages="">
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Root level="off">
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>
</Configuration>
请参见此处,它将继续记录来自我的应用程序的信息消息:

Apr 14, 2016 12:02:46 PM com.myorg.licensing.persistence.dao.ext.S1ProductDaoExt update
INFO: updating S1Product instance
Apr 14, 2016 12:02:46 PM com.myorg.licensing.persistence.dao.ext.S1ProductDaoExt update
INFO: update successful
Apr 14, 2016 12:02:52 PM com.myorg.licensing.persistence.dao.ext.S1ProductDaoExt update
INFO: updating S1Product instance
Apr 14, 2016 12:02:52 PM com.myorg.licensing.persistence.dao.ext.S1ProductDaoExt update
INFO: update successful
Apr 14, 2016 12:02:56 PM com.myorg.licensing.persistence.dao.ext.S1ProductDaoExt update
INFO: updating S1Product instance
Apr 14, 2016 12:02:56 PM com.myorg.licensing.persistence.dao.ext.S1ProductDaoExt update
INFO: update successful

我的hibernate模型是从数据库逆向工程生成的,并使用org.apache.commons.logging.Log和org.apache.commons.logging.LogFactory而不是相应的Log4j2类生成


上面的Log4j2配置确实关闭了我所有的内部Log4j2日志,但仍然附加到控制台上的是Apache commons日志。

关闭所有日志后,您希望看到什么?通常不会将其设置为关闭,但我似乎无法根据设置的级别对其进行更改。所以我将其设置为off,我希望在我的应用程序中不会看到任何日志记录。但是我看到的完全相反,我看到了一切。试着将状态设置为“跟踪”或“调试”以查看log4j内部日志。也许你会得到一个暗示。更改配置后重新启动应用程序,以查看启动消息。添加tracelog后,我没有看到任何突出的东西,表明它无法工作的原因。也许可以。启动时显示的唯一内容是Log4j状态记录器的日志记录,您已将其配置为“跟踪”级别,因此,上面显示的日志是正确的。您包含的日志没有显示从应用程序记录的任何内容。你是说还有更多的日志事件没有显示吗?除了Log4j 2之外,还有其他日志实现吗?如果您使用log4j2-Commons日志适配器,那么log4j2也应该能够处理这些问题。我定制了reveng模板以使用log4j2,现在它可以按预期工作。
Apr 14, 2016 12:02:46 PM com.myorg.licensing.persistence.dao.ext.S1ProductDaoExt update
INFO: updating S1Product instance
Apr 14, 2016 12:02:46 PM com.myorg.licensing.persistence.dao.ext.S1ProductDaoExt update
INFO: update successful
Apr 14, 2016 12:02:52 PM com.myorg.licensing.persistence.dao.ext.S1ProductDaoExt update
INFO: updating S1Product instance
Apr 14, 2016 12:02:52 PM com.myorg.licensing.persistence.dao.ext.S1ProductDaoExt update
INFO: update successful
Apr 14, 2016 12:02:56 PM com.myorg.licensing.persistence.dao.ext.S1ProductDaoExt update
INFO: updating S1Product instance
Apr 14, 2016 12:02:56 PM com.myorg.licensing.persistence.dao.ext.S1ProductDaoExt update
INFO: update successful