当前位置: 代码迷 >> java >> Apache Storm:自定义日志记录
  详细解决方案

Apache Storm:自定义日志记录

热度:48   发布时间:2023-07-25 19:34:13.0

我想修改Storms logback / cluster.xml,以便它将根据ID写入不同的文件。

查看信息,我需要更改cluster.xml并添加一个Sifting Appender。 参考

主要问题这是最好/正确的方法吗? 一个例子?

我需要添加:

 MDC.put("userid", "Alice");
 logger.debug("Alice says hello");

示例帮助

对于该示例,我似乎无法将其写入文件。 我在类路径中使用默认的logback.xml。 我没有传递arg并加载配置,因为我认为它将在类路径中找到。 但是,没有文件被写入吗?

<configuration>

<appender name="SIFT" class="ch.qos.logback.classic.sift.SiftingAppender">
    <!-- in the absence of the class attribute, it is assumed that the desired 
        discriminator type is ch.qos.logback.classic.sift.MDCBasedDiscriminator -->
    <discriminator>
        <key>userid</key>
        <defaultValue>unknown</defaultValue>
    </discriminator>
    <sift>
        <appender name="FILE-${userid}" class="ch.qos.logback.core.FileAppender">
            <file>$/Users/Stuart/Desktop/main.log</file>
            <append>false</append>
            <layout class="ch.qos.logback.classic.PatternLayout">
                <pattern>%d [%thread] %level %mdc %logger{35} - %msg%n</pattern>
            </layout>
        </appender>
    </sift>
</appender>

<root level="DEBUG">
    <appender-ref ref="SIFT" />
</root>
</configuration>

Apache Storm不使用默认过程来加载日志文件。 根据您使用的版本,它会具有log4j log4j2或非常简短的配置文件的logback目录。

您将必须修改cluster.xmlworker.xml或两者都进行修改以获取注册配置。

  相关解决方案