当前位置: 首页 > 知识库问答 >
问题:

为什么我的拖放日志记录配置未应用?

佴涵蓄
2023-03-14

我的dropwizard日志只将所有内容输出到控制台,并输出所有级别的日志。我想在开发输出到控制台的过程中为我自己的东西记录一些日志,但是过滤掉噪声。我在这个问题上已经坚持了一段时间,自从我升级到drowizard 1 . 0 . 5后,我的日志输出太大了,无法忽略这个问题。我正在尝试过滤日志,但是无论我做什么,我的配置都没有用。当我运行dropwizard应用程序时,我将所有日志输出到控制台

我正在使用以下命令启动

java  \
-Dcom.sun.management.jmxremote  \
-Dcom.sun.management.jmxremote.port=${JMX_PORT}  \
-Dcom.sun.management.jmxremote.rmi.port=${JMX_PORT}  \
-Dcom.sun.management.jmxremote.local.only=false  \
-Dcom.sun.management.jmxremote.authenticate=false  \
-Dcom.sun.management.jmxremote.ssl=false  \
-Djava.rmi.server.hostname=${HOST_IP}  \
-server  \
-classpath "/server/api.jar:/server/config"  \
-Dtm-devops.defaults.file=/server/config/local.properties  \
-Xmx512m  \
-Xms128m  \
-Xdebug  \
-Xrunjdwp:transport=dt_socket,server=y,suspend=${WAIT_DEBUG:-n},address=7878 \
com.tubemogul.api.Application  server config.yaml

配置.yaml在类补丁中,它是那里唯一的yaml文件。我可以确认对此文件进行的无效更改已被识别并阻止服务器运行。

我正在尝试应用以下日志记录配置。

logging:

  # The default level of all loggers. Can be OFF, ERROR, WARN, INFO, DEBUG, TRACE, or ALL.
  level: WARN

  # Logger-specific levels.
  loggers:


    # Sets the level
    io.dropwizard:
      level: WARN
      additive: false
      appenders:
        - type: file
          currentLogFilename: log/dw.log
          archivedLogFilenamePattern: log/dw.%d.log.gz
          archivedFileCount: 5
    org.eclipse: NONE
    org.hibernate:
      level: WARN
      additive: false
      appenders:
        - type: file
          currentLogFilename: log/hib.log
          archivedLogFilenamePattern: log/hib.%d.log.gz
          archivedFileCount: 5
    org.springframework:
      level: WARN
      additive: true
      appenders:
        - type: file
          currentLogFilename: log/spring.log
          archivedLogFilenamePattern: log/spring.%d.log.gz
          archivedFileCount: 5

  appenders:
    - type: console
      threshold: WARN

使用我给出的配置,日志文件被创建,但它们从未被写入。

共有1个答案

曾弘扬
2023-03-14

我在配置中注意到的第一件事是“org.eclipse”的级别不正确,因为“NONE”不是一个可接受的级别,这似乎触发了“org.eclipse”记录器的所有日志消息显示在控制台中。

org.eclipse: NONE

有趣的是,当我将此记录器的级别更改为“关闭”时,我得到了一个异常,即不支持记录器的格式。我尝试了不带引号和带引号的记录器名称,但运气不好,因为错误似乎与无效的JSON格式有关。这很奇怪,因为DW文档显示支持这种格式。

org.eclipse: OFF
"org.eclipse": OFF

Exception in thread "main" java.lang.IllegalArgumentException: Unsupported format of logger 'org.eclipse'

当我将此记录器更改为将level属性作为记录器的子属性时,DW接受该格式,并且我不再在控制台中收到此记录器的日志消息。

org.eclipse:
  level: OFF

尽管如此,带有threshold WARN的控制台appender阻止所有消息到达控制台,包括正确的和不正确的级别。我不确定这是否有帮助,但尝试将“org.eclipse”更改为另一种格式,可能会有帮助,因为我无法使用DW 1.0.5复制该问题,因为所有消息都以正确的级别发送到正确的位置。

我从Intellij执行了所有的测试,而不是从命令。

 类似资料:
  • 需要帮助...我在这里做错了什么???我相信它确实从应用程序属性文件中读取路径和文件名。但我不认为它读取了logback.xml或logback-spring.xml 我做了一些研究,发现了许多问题/答案。但是我想每个人都说要把logback xml放在资源中,把路径和文件名放在application.properties.我知道这很简单,但是在某个地方遗漏了一些东西… 提前谢谢!! 应用程序属性

  • 目前,我正在与 log4j2.7 springframework 4.3。5; 冬眠5.2。三, 我通过一个xml文件配置log4j 为此,我创建了一些appender,其中一个名为“General”。我需要的是,所有日志都必须转到该appender(包括springframework或hibernate生成的日志),并且后者都不会打印在控制台上(我仍然需要其他类中的其他日志) 我试着写这些日志:

  • 每当我部署一个外部化配置有错误的生产应用程序时,我都会在Tomcat日志中收到以下消息: 显然,外部化的配置是在log4j被正确初始化之前处理的,因此没有附加程序可以接受来自的消息。 有没有办法预先初始化log4j,以便在标准Grails log4j初始化发生之前捕获这些消息?

  • 问题内容: 如何配置OpenEJB日志记录格式?这就是我现在在日志中看到的内容: 我想禁用消息,并更改其他消息的格式。中的更改无效。 问题答案: 这是我为使事情正常运行所做的工作: 现在工作正常。这是我的: 这是: 现在,由于大卫的支持,我可以在测试期间微调OpenEJB的日志记录:)

  • 我想按照这里的描述设置用于日志记录的Jetty-http://www.eclipse.org/jetty/documentation/current/configuring-jetty-request-logs.html 但上线过程以错误结束: 我的码头网。WEB-INF中的xml具有以下配置: 我做错了什么? 我用下一个命令编译并运行WAR文件:

  • 本文向大家介绍如何配置Spring Boot应用程序日志记录?相关面试题,主要包含被问及如何配置Spring Boot应用程序日志记录?时的应答技巧和注意事项,需要的朋友参考一下 Spring Boot附带了对Log4J2,Java Util Logging和Logback的支持。它通常预先配置为控制台输出。可以通过仅在application.properties文件中指定logging.leve