我有一个风暴螺栓,负责提取电子邮件的内容。我想在我选择的日志文件而不是worker.log中记录有关电子邮件的一些详细信息。螺栓确实记录到worker.log的错误等,我希望它继续这样做。
我已经更新了cluster.xml以包含新的记录器
<configuration monitorInterval="60" shutdownHook="disable">
<properties>
<property name="pattern">%d{yyyy-MM-dd HH:mm:ss.SSS} %c{1.} %t [%p] %msg%n</property>
</properties>
<appenders>
<RollingFile name="A1" immediateFlush="false"
fileName="${sys:storm.log.dir}/${sys:logfile.name}"
filePattern="${sys:storm.log.dir}/${sys:logfile.name}.%i.gz">
<PatternLayout>
<pattern>${pattern}</pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
<DefaultRolloverStrategy max="9"/>
</RollingFile>
<RollingFile name="TEST-SIZE" immediateFlush="false"
fileName="${sys:storm.log.dir}/test_debug.log"
filePattern="${sys:storm.log.dir}/test_debug.log.%i.gz">
<PatternLayout>
<pattern>${pattern}</pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
<DefaultRolloverStrategy max="9"/>
</RollingFile>
<Syslog name="syslog" format="RFC5424" charset="UTF-8" host="localhost" port="514"
protocol="UDP" appName="[${sys:daemon.name}]" mdcId="mdc" includeMDC="true"
facility="LOCAL5" enterpriseNumber="18060" newLine="true" exceptionPattern="%rEx{full}"
messageId="[${sys:user.name}:S0]" id="storm" immediateFlush="true" immediateFail="true"/>
</appenders>
<loggers>
<Logger name="TestSizeLogger" level="info" additivity="false">
<AppenderRef ref="TEST-SIZE"/>
<AppenderRef ref="syslog"/>
</Logger>
<root level="info"> <!-- We log everything -->
<appender-ref ref="A1"/>
<appender-ref ref="syslog"/>
</root>
</logger>
在java代码中,我创建了两个logger示例,但它们都记录到worker.log
static Logger logger = LoggerFactory.getLogger(ExtractorBolt.class);
static Logger testLogger = LoggerFactory.getLogger("TestSizeLogger");
我将感激任何关于如何让我的测试记录器记录到我的新日志文件的建议。
1条答案
按热度按时间pb3s4cty1#
xml用于配置nimbus、supervisor和其他守护进程的日志记录。您应该编辑log4j2/worker.xml文件来配置worker日志记录。