java - 无法抑制 jar 中的日志输出

标签 java logging log4j glassfish-4

我正在构建一个使用 expect4j 的 JSF 应用程序库,并且我很难抑制 glassfish 服务器日志中的输出。我尝试根据expect4j的logging.properties文件在我的src/main/resources目录中创建一个logging.properties文件。我还尝试创建一个 log4j2.xml 文件来完成同样的事情。根据我通过研究发现的另一篇文章,我什至尝试将 log4j2.xml 文件移动到 web.xml 旁边的 WEB-INF 目录中。

我想抑制它,因为它在信息/调试级别生成大量消息。以下是该消息的示例:

[2016-06-25T14:36:06.195-0600] [glassfish 4.1] [INFO] [] [] [tid: _ThreadID=225 _ThreadName=Thread-8] [timeMillis: 1466886966195] [levelValue: 800] [[4229 [__ejb-thread-pool5] DEBUG expect4j.Expect4j  - Found EOF]]

查看expect4j,它似乎只依赖于slf4j,所以我将log4j2定义为我的记录器应该没有任何问题。

以下是我在 Maven 项目中包含的以下依赖项:

  • 期望4j:1.6
  • slf4j-log4j12:1.7.7
  • jSTL:1.2
  • jSTL-api:1.2-rev-1
  • javax.ejb-api:3.2
  • jsf-api:2.2.8-02
  • jsf-impl:2.2.8-02
  • primefaces:5.2
  • log4j-web:2.6.1

这是我的logging.properties 文件中的内容:

handlers=java.util.logging.ConsoleHandler
.level=INFO
java.util.logging.ConsoleHandler.level=INFO
#expect4j.handler=java.util.logging.ConsoleHandler
expect4j.level=SEVERE

这是我的 log4j2.xml 文件中的内容:

<?xml version="1.0" encoding="UTF-8" ?>
<Configuration status="INFO">
  <Appenders>
    <Console name="Console" target="STDOUT">
      <PatternLayout
        pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
    </Console>
  </Appenders>
  <Loggers>
    <Logger name="expect4j" level="error" additivity="false">
      <AppenderRef ref="Console" />
    </Logger>
    <Root level="warn">
      <AppenderRef ref="Console" />
    </Root>
  </Loggers>
</Configuration>

我确实查看了此链接,但当我连接到 glassfish 服务器时,我没有看到 jconsole 中指出的任何内容。 Suppress java util logging from 3rd party jar .

感谢您提供的任何帮助。

最佳答案

您正在使用 slf4j-log4j12 将所有 slf4j 输出路由到 log4j 1.x。相反,您应该使用 log4j-slf4j-impl。如果expect4j使用slf4j,你不应该需要logging.properties。尽管 log4j-slf4j-impl 应该包含它们,但您还应该包含 log4j-api 和 log4j-core jar。如果您还希望将 java util 日志记录输出定向到 log4j 2,那么还需要包含 log4j-jul jar。

关于java - 无法抑制 jar 中的日志输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38032992/

相关文章:

java - 做一个API,构造函数仅供系统私有(private)使用,另一个官方的,javadoc'ed和公共(public)使用的。关于修复/模式方法的建议

带有类值的java hashmap

asp.net - 无法加载文件或程序集 Nlog.web.aspnetcore 或其依赖项之一

logging - 如何在自定义 ColdFusion 日志文件中获取新行?

java - 通过log4j将junit测试用例的日志保存到单独的文件中

java - Eclipse 控制台中出现 "Unable to parse type name from hyperlink"错误

java - 如何在 Struts 中显示成功消息?

MySQL 通用查询日志录入顺序

java - Spring 中的动态 Apache log4j

java - 从一个点到另一个点以相同的角度移动?