禁用Apache Storm中的LocalCluster日志记录

gea*_*s88 7 logging log4j apache-storm

我正试图通过运行示例代码来开始Apache风暴.我正在使用maven存储库中的风暴0.10.1-beta1.

不幸的是,当我运行这些时,控制台充满了信息级日志,淹没了System.out.print()我添加的任何呼叫.在运行LocalCluster时是否可以更改日志级别?我已经尝试过这里列出的解决方案,但似乎没有任何解决方案可行.

从链接,将Config.TOPOLOGY_DEBUG属性更改为false不会删除信息级别日志,并使用链接中的代码,我甚logger.setLevel((Level) Level.FATAL)至无法使用"方法setLevel(级别)未定义为类型记录器"尽管它明显列在log4j api中.

编辑1:我也在这里尝试了解决方案,logback.xml使用以下配置将一个调用./src 的xml :

<configuration monitorInterval="60">
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
     <PatternLayout pattern="%-4r [%t] %-5p %c{1.} - %msg%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Logger name="org.apache.zookeeper" level="WARN"/>
    <Root level="WARN">
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>
</configuration>
Run Code Online (Sandbox Code Playgroud)

但是仍然没有运气.是否需要任何其他配置来告诉storm使用自定义日志设置?

更新:事实证明风暴0.10.x切换到使用log4j2而不是logback,所以添加一个log4j2.xml与上面的配置终于工作了!

Mat*_*Sax 1

以下配置对我有用:

<configuration>
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>

  <root level="WARN">
    <appender-ref ref="STDOUT" />
  </root>
</configuration>
Run Code Online (Sandbox Code Playgroud)

  • 所以事实证明,storm 0.10.x [切换到 log4j2](https://storm.apache.org/2015/06/15/storm0100-beta-released.html),这就是 logback.xml 文件不存在的原因在职的。然而,在 ./src 中创建 log4j2.xml 确实有效。我用 Storm 0.9.1-incubating 测试了你的配置,它运行得很好。谢谢您的帮助! (2认同)