Apache Storm:自定义日志记录

时间:2015-08-07 14:27:58

标签: java logging logback apache-storm

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

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

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

我需要加入:

 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>

1 个答案:

答案 0 :(得分:0)

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

您必须修改cluster.xmlworker.xml或两者,才能让配置进行注册。