【发布时间】:2014-09-05 06:41:00
【问题描述】:
我在 Storm 中使用 log4j 登录文件时遇到了一点问题。
在提交我的拓扑之前,即在我的主要方法中,我编写了一些日志语句并使用以下配置记录器:
PropertyConfigurator.configure(myLog4jProperties)
现在,当我在 eclipse 中使用 executable jar 运行拓扑时 - 它工作正常,并且正在按预期创建日志文件。
或
当我使用“java -jar MyJarFile”运行我的可执行 jar someOtherOptions”,我可以看到正在配置 log4j 并且文件是 格式正确,并且在文件和控制台上都完成了日志记录(如 在我的 log4j.properties 中定义)但是当我使用“storm jar MyJarFile MyMainClass someOtherOptions”运行同一个 jar 时,它无法创建和记录 进入除控制台以外的任何文件。
我说的是我在在提交拓扑之前打印的日志。
在使用storm时有什么方法可以将我的语句记录在一个文件中?我不一定要使用 org.apache.log4j。
【问题讨论】:
-
您正在使用本地集群作为 jar exec?当您使用“storm jar ...”时,您使用的是集群模式。那么,您是否检查了服务器中storm install dir/log4j 上的文件storm.log.properties?当您以集群模式提交拓扑时,storm 已经在运行并正在写入日志,也许您无法在运行时覆盖 log4j,因此之前修改storm log4j 文件应该适用于所有情况。
-
@zenbeni 我实际上是在本地模式下运行的。我在 Storm 安装目录中找不到任何与 log4j 相关的属性。我正在使用 apache-storm-0.9.2-incubating。
标签: java logging log4j slf4j apache-storm