0

不幸的是,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>

骆驼已启动,但日志中没有标记:

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,所以在这种情况下可以做些什么吗?

4

1 回答 1

1

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

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

于 2018-04-16T16:10:34.887 回答