У меня есть топология шторма, и я хотел бы зарегистрировать определенные события, которые происходят в топологии, в отдельный файл журнала. Я пытаюсь создать пользовательский appender в storm/logback/cluster.xml, который будет использоваться для регистрации этих событий. Вот мой cluster.xml фрагмент кода, который устанавливает все вверх:Пользовательский регистратор ловушек для топологии
<appender name="A2" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${storm.home}/logs/custom-logger/cl-log.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${storm.home}/logs/${logfile.name}.%i</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>9</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd_HH:mm:ss} %c{1} [%p] %m$n</pattern>
</encoder>
</appender>
<logger name="custom-logger" additivity="false">
<level value="INFO" />
<appender-ref ref="A2"/>
</logger>
Я использую основной WordCountTopology просто проверить пример. Вот фрагмент кода, где я пытаюсь не писать в лог-файл
public static class WordCount extends BaseBasicBolt {
private static final org.slf4j.Logger CUSTOM_LOGGER =
LoggerFactory.getLogger("custom-logger");
Map<String, Integer> counts = new HashMap<String, Integer>();
public void execute(Tuple tuple, BasicOutputCollector collector) {
String word = tuple.getString(0);
Integer count = counts.get(word);
if (count == null)
count = 0;
count++;
counts.put(word, count);
CUSTOM_LOGGER.info("Emitting word[" + word + "] count["+ count + "]");
collector.emit(new Values(word, count));
}
public void declareOutputFields(OutputFieldsDeclarer declarer) {
declarer.declare(new Fields("word", "count"));
}
}
Независимо от того, что я делаю, я не могу показаться, чтобы получить эти журналы, чтобы показать в заказ регистратора CL-журнал. журнальный файл. Возможно ли даже в Storm регистрировать определенные события в определенном файле с помощью журнала? Любая помощь будет оценена по достоинству.
Знаете ли вы, как настроить ведение журнала в локальном режиме? –
Как вы отделили системные журналы от журналов топологии? – Mani
@Mani Создавая приложение выше, вы точно контролируете то, что вы регистрируете, создавая приватный статический окончательный org.slf4j.Logger CUSTOM_LOGGER = LoggerFactory.getLogger («custom-logger»); – medium