我们在storm cluster的worker.xml中创建了以下记录器配置
<!-- This is new appender we want to add -->
<FDPRollingFile name="RollingFileInfo" filename="${sys:storm.log.dir}/userlogs/info-${sys:logfile.name}"
filepattern="${sys:storm.log.dir}/userlogs/info-${sys:logfile.name}.%d{yyyy-MM-dd-HH-mm}" append="true">
<PatternLayout>
<pattern>${patternFdpNew}</pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="100 MB"/> <!-- Or every 100 MB -->
</Policies>
</FDPRollingFile>
<FDPRollingFile name="RollingFileDebug" filename="${sys:storm.log.dir}/userlogs/debug-${sys:logfile.name}"
filepattern="${sys:storm.log.dir}/userlogs/debug-${sys:logfile.name}.%d{yyyy-MM-dd-HH-mm}" append="true">
<PatternLayout>
<pattern>${patternFdpNew}</pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="100 MB"/> <!-- Or every 100 MB -->
</Policies>
</FDPRollingFile>
<FDPRollingFile name="RollingFileError" filename="${sys:storm.log.dir}/userlogs/error-${sys:logfile.name}"
filepattern="${sys:storm.log.dir}/userlogs/error-${sys:logfile.name}.%d{yyyy-MM-dd-HH-mm}" append="true">
<PatternLayout>
<pattern>${patternFdpNew}</pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="100 MB"/> <!-- Or every 100 MB -->
</Policies>
</FDPRollingFile>
<!-- This is new appender we want to add -->
以及以下方式定义的自定义记录器
<Logger name="custom-logger" additivity="false" level="INFO">
<appender-ref ref="RollingFileDebug" level="TRACE"/>
<appender-ref ref="RollingFileError" level="WARN"/>
<appender-ref ref="RollingFileInfo" level="INFO"/>
</Logger>
在storm拓扑生成器主类中
config.put("topology.classpath","/usr/local/Cellar/storm/mylogger.jar");
在喷口里
private static org.slf4j.Logger _logger = LoggerFactory.getLogger("custom- logger");
现在它检测到我的jar并在日志文件中写入一行日志,但是post不会将任何一行日志记录到日志文件中。
1条答案
按热度按时间0s0u357o1#
logger元素的name属性应该是您的包名,您确定“customlogger”是正确的吗?
如果在代码中使用slf4j,则必须将log4j2 slf4j绑定添加到类路径中,有关详细信息,请参阅本文。
希望有帮助。