如何在StormCrawler中启用DEBUG级日志记录?
启用StormCrawler DEBUG级别日志的方法
一、提交拓扑时通过命令行参数设置
- 针对StormCrawler核心包单独开启DEBUG日志(避免过多Storm自身日志干扰):
storm jar target/your-stormcrawler-project.jar com.digitalpebble.stormcrawler.CrawlTopology -c "log4j.logger.com.digitalpebble.stormcrawler=DEBUG" - 若需要包含Storm框架自身的DEBUG日志,可添加拓扑调试参数:
storm jar target/your-stormcrawler-project.jar com.digitalpebble.stormcrawler.CrawlTopology -c "topology.debug=true" -c "log4j.logger.com.digitalpebble.stormcrawler=DEBUG"
二、通过日志配置文件修改
找到项目中的log4j2.xml或log4j.properties配置文件,调整对应包的日志级别:
- 若使用log4j2.xml,添加或修改节点:
<Logger name="com.digitalpebble.stormcrawler" level="DEBUG" additivity="false"> <AppenderRef ref="Console"/> <AppenderRef ref="File"/> </Logger> - 若使用log4j.properties,添加配置项:
log4j.logger.com.digitalpebble.stormcrawler=DEBUG
修改完成后重新打包提交拓扑即可生效。
三、本地模式运行的快速设置
在本地模式下,可直接在拓扑启动类中硬编码设置日志级别:
import org.apache.logging.log4j.Level; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.config.Configuration; public class CustomCrawlTopology { public static void main(String[] args) throws Exception { // 动态设置StormCrawler包的日志级别为DEBUG LoggerContext ctx = (LoggerContext) LogManager.getContext(false); Configuration config = ctx.getConfiguration(); config.getLoggerConfig("com.digitalpebble.stormcrawler").setLevel(Level.DEBUG); ctx.updateLoggers(config); // 调用原有拓扑启动逻辑 CrawlTopology.main(args); } }
内容的提问来源于stack exchange,提问作者Michael Dinzinger
相关产品推荐
相关产品推荐

