我想使用宁静及其风暴螺栓向德鲁伊发送数据。所以我编写了一个风暴拓扑(具有宁静的依赖性)并将其编译为一个 jar 文件,然后在本地模式下使用该 jar 文件运行风暴。然而我遇到了问题:风暴螺栓显示没有错,德鲁伊的霸王节点没有记录。感觉霸主没有收到风暴螺栓发送的数据。
我想找出问题所在。我确实启用了风暴配置的调试
conf.setDebug(true);
但它只显示每个spout
and的详细信息bolt
,它不显示tranquility
调试日志信息。我尝试将风暴更改logback/cluster.xml
为
<root level="DEBUG">
<appender-ref ref="A1"/>
</root>
但它似乎不起作用。我尝试在项目的顶级目录中添加一个 log4j.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true"
xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="console" />
</root>
</log4j:configuration>
它也不起作用。
我对宁静的源代码进行了一些挖掘,发现宁静依赖于依赖于 log4j 的ladylog 库,所以我认为在项目中添加一个 log4j.xml 将启用调试模式并可以看到这个 BeamBot的调试输出
我完全糊涂了,因为现在我写了一个使用 tranquiity 库的 jar,它使用 loglady 库,它使用 log4j,而我的 jar 由 Storm 运行,使用 logback。谁能给我一些建议?