Штормовой болт всегда регистрируется в worker.log - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть штормовой болт, который отвечает за извлечение содержимого электронного письма.Я хотел бы записать некоторые подробности об электронной почте в файл журнала по моему выбору, а не в 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-коде я создаю два экземпляра средства ведения журнала, но оба они регистрируются в worker.log

static Logger logger = LoggerFactory.getLogger(ExtractorBolt.class);
static Logger testLogger = LoggerFactory.getLogger("TestSizeLogger");

. Буду признателен за любые советы относительно того, как заставить свой testLogger регистрироваться в моем новом файле журнала.

1 Ответ

0 голосов
/ 26 сентября 2018

cluster.xml - для настройки ведения журнала для Nimbus, супервизора и других демонов.Вы должны отредактировать файл log4j2 / worker.xml, чтобы настроить ведение журнала работника.

...