Apache Camel critical(FATAL)日志记录级别

时间:2018-04-16 16:03:03

标签: logging apache-camel eip

不幸的是,Apache Camel日志组件和日志EIP中没有“关键”或“致命”日志记录级别。

我们使用NXlog将Camel(特别是)日志传输到Graylog,并且必须在那里设置'关键'级别。

是否有一些解决方法可以实现它?

UPD

我尝试按https://www.slf4j.org/faq.html#fatal建议实现日志记录标记。

这是我的Spring XML:

<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
    <route id="process.message">
        <from uri="file:/test?delete=true"/>
        <log message="fatal marker test" loggingLevel="ERROR" marker="fatalmarker"/>
        <to uri="file:/my"/>
    </route>
</camelContext>

<bean id="fatalmarker" class="org.slf4j.MarkerFactory" factory-method="getMarker">
    <constructor-arg type="java.lang.String" value="CRITICAL"/>
</bean>

Camel已经启动但日志中没有标记:

2018-04-17 17:14:24,361 | ERROR | fatal marker test | get.message | Camel (camel) thread #0 - file:///test

我不确定我是否以正确的方式使用它?如何在日志中获取标记?

UPD UPD

直到现在才注意到:

  

结合不支持标记的日志框架(如log4j和java.util.logging),标记数据将被忽略

我们正在使用ActiveMQ,正如我所看到的那样完全使用log4j,所以在这种情况下可以做什么?

1 个答案:

答案 0 :(得分:1)

Apache Camel中的日志记录API使用slf4j。所以我们只支持/可以做这个API支持的内容。

slf4j项目有一个关于缺少FATAL日志记录级别的常见问题解答 https://www.slf4j.org/faq.html#fatal