如何使用Log4j和Storm Framework将日志写入文件?

hol*_*840 7 java logging log4j slf4j apache-storm

我在使用log4j在风暴中记录到文件时遇到了一些问题.

在提交我的拓扑之前,即在我的main方法中,我编写了一些日志语句并使用以下命令配置了记录器:

PropertyConfigurator.configure(myLog4jProperties)
Run Code Online (Sandbox Code Playgroud)
  • 现在,当我在eclipse中使用我的可执行jar运行我的拓扑时- 它正常工作并且正在创建日志文件.
    或者
    当我使用"java -jar MyJarFile someOtherOptions"运行我的可执行jar时,我可以看到log4j正在配置并且文件正确形成并且在文件和控制台上都进行了日志记录(在我的log4j.properties中定义)

  • 但是当我使用"风暴jar MyJarFile MyMainClass someOtherOptions"运行相同的jar时,它无法创建并登录到除控制台之外的任何文件.

我正在谈论我提交拓扑之前打印的日志.

有没有办法在使用storm时将我的语句记录在文件中?我不一定要使用org.apache.log4j.

Nar*_*esh 4

Storm 框架使用自己的日志记录。您的日志很可能最终会出现在安装storm的日志目录中({Storm DIR}/logs)。您可以在 {Storm DIR}/logback/cluster.xml 中找到 Storm 日志属性。它使用 logback 而不是 log4j