Zhong Zheng
Zhong Zheng

Reputation: 31

Storm-0.10.0 all worker log in supervisor.log

Here is my cluster.xml

<configuration monitorInterval="60">
<properties>
    <property name="pattern">%d{yyyy-MM-dd HH:mm:ss.SSS} %c{5.} [%p] %msg%n</property>
    <property name="patternMetrics">%d %-8r %m%n</property>
</properties>
<appenders>
    <RollingFile name="A1" immediateFlush="false"
                 fileName="${sys:storm.log.dir}/${sys:logfile.name}"
                 filePattern="${sys:storm.log.dir}/${sys:logfile.name}.%i.gz">
        <PatternLayout>
            <pattern>${pattern}</pattern>
        </PatternLayout>
        <Policies>
            <SizeBasedTriggeringPolicy size="100 MB"/> <!-- Or every 100 MB -->
        </Policies>
        <DefaultRolloverStrategy max="9"/>
    </RollingFile>

    <RollingFile name="THRIFT-ACCESS" immediateFlush="false"
                 fileName="${sys:storm.log.dir}/access-${sys:logfile.name}"
                 filePattern="${sys:storm.log.dir}/access-${sys:logfile.name}.%i.gz">
        <PatternLayout>
            <pattern>${pattern}</pattern>
        </PatternLayout>
        <Policies>
            <SizeBasedTriggeringPolicy size="100 MB"/> <!-- Or every 100 MB -->
        </Policies>
        <DefaultRolloverStrategy max="9"/>
    </RollingFile>
    <RollingFile name="METRICS" immediateFlush="false"
                 fileName="${sys:storm.log.dir}/metrics.log"
                 filePattern="${sys:storm.log.dir}/metrics.log.%i.gz">
        <PatternLayout>
            <pattern>${patternMetrics}</pattern>
        </PatternLayout>
        <Policies>
            <SizeBasedTriggeringPolicy size="2 MB"/> <!-- Or every 100 MB -->
        </Policies>
        <DefaultRolloverStrategy max="9"/>
    </RollingFile>
    <Syslog name="syslog" format="RFC5424" charset="UTF-8" host="localhost" port="514"
            protocol="UDP" appName="[${sys:daemon.name}]" mdcId="mdc" includeMDC="true"
            facility="LOCAL5" enterpriseNumber="18060" newLine="true" exceptionPattern="%rEx{full}"
            messageId="[${sys:user.name}:S0]" id="storm" immediateFlush="false" immediateFail="true"/>
</appenders>
<loggers>
    <Logger name="storm.kafka.KafkaSpout" level="info" additivity="false">
        <AppenderRef ref="THRIFT-ACCESS"/>
    </Logger>
    <Logger name="backtype.storm.metric.LoggingMetricsConsumer" level="info">
        <AppenderRef ref="METRICS"/>
    </Logger>
    <Logger name="storm.trident.tuple.TridentTuple" level="info" additivity="false">
        <AppenderRef ref="A1"/>
    </Logger>
    <root level="info"> <!-- We log everything -->
        <appender-ref ref="A1"/>
    </root>
</loggers>

I got all my worker logs in supervisor.log and the format is pretty weird. Here is the example:

2016-01-12 10:23:21.655 backt.storm.util [WARN] Worker Process fe85591f-a5b4-4620-9705-7d9c37450b0f:259424 [Thread-2] INFO  STDERR - 258752 [Thread-21-b-6-netflow_stream] ERROR STDIO - at storm.trident.planner.processor.AppendCollector.emit(AppendCollector.java:50)

I think I only need the message after 'INFO STDERR', and the log level should be ERROR instead of WARN.

Upvotes: 2

Views: 978

Answers (1)

feng.zhai
feng.zhai

Reputation: 31

if you want to log your class to a separate file, you should transfer your configures from cluster.xml to worker.xml,like this :

<configuration monitorInterval="60">
<properties>
    <property name="pattern">%d{yyyy-MM-dd HH:mm:ss.SSS} %c{1.} [%p] %msg%n</property>
    <property name="patternNoTime">%msg%n</property>
</properties>
<appenders>
    <RollingFile name="A1"
                 fileName="${sys:storm.log.dir}/${sys:logfile.name}"
                 filePattern="${sys:storm.log.dir}/${sys:logfile.name}.%i.gz">
        <PatternLayout>
            <pattern>${pattern}</pattern>
        </PatternLayout>
        <Policies>
            <SizeBasedTriggeringPolicy size="100 MB"/> <!-- Or every 100 MB -->
        </Policies>
        <DefaultRolloverStrategy max="9"/>
    </RollingFile>
    <RollingFile name="STDOUT"
                 fileName="${sys:storm.log.dir}/${sys:logfile.name}.out"
                 filePattern="${sys:storm.log.dir}/${sys:logfile.name}.out.%i.gz">
        <PatternLayout>
            <pattern>${patternNoTime}</pattern>
        </PatternLayout>
        <Policies>
            <SizeBasedTriggeringPolicy size="100 MB"/> <!-- Or every 100 MB -->
        </Policies>
        <DefaultRolloverStrategy max="4"/>
    </RollingFile>
    <RollingFile name="STDERR"
                 fileName="${sys:storm.log.dir}/${sys:logfile.name}.err"
                 filePattern="${sys:storm.log.dir}/${sys:logfile.name}.err.%i.gz">
        <PatternLayout>
            <pattern>${patternNoTime}</pattern>
        </PatternLayout>
        <Policies>
            <SizeBasedTriggeringPolicy size="100 MB"/> <!-- Or every 100 MB -->
        </Policies>
        <DefaultRolloverStrategy max="4"/>
    </RollingFile>
    <RollingFile name="CHANNE"
                 fileName="${sys:storm.log.dir}/channe-code.log"
                 filePattern="${sys:storm.log.dir}/channe-code.log.%i">
        <PatternLayout>
            <pattern>${pattern}</pattern>
        </PatternLayout>
        <Policies>
            <SizeBasedTriggeringPolicy size="100 MB"/> <!-- Or every 100 MB -->
        </Policies>
        <DefaultRolloverStrategy max="9"/>
    </RollingFile>
    <Syslog name="syslog" format="RFC5424" host="localhost" port="514"
        protocol="UDP" appName="[${sys:storm.id}:${sys:worker.port}]" mdcId="mdc" includeMDC="true"
        facility="LOCAL5" enterpriseNumber="18060" newLine="true" exceptionPattern="%rEx{full}"
        messageId="[${sys:user.name}:${sys:logging.sensitivity}]" id="storm"/>
</appenders>
<loggers>
    <root level="info"> <!-- We log everything -->
        <appender-ref ref="A1"/>
        <appender-ref ref="syslog"/>
    </root>
    <Logger name="STDERR" level="INFO">
        <appender-ref ref="STDERR"/>
        <appender-ref ref="syslog"/>
    </Logger>
    <Logger name="STDOUT" level="INFO">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="syslog"/>
    </Logger>
    <Logger name="com.cc.imp.KafkaDataSpout" level="info">
        <AppenderRef ref="CHANNE"/>
    </Logger>
    <Logger name="com.cc.imp.MessageSplitBolt" level="info">
        <AppenderRef ref="CHANNE"/>
    </Logger>
    <Logger name="com.cc.imp.CalculateBolt" level="info">
        <AppenderRef ref="CHANNE"/>
    </Logger>
    <Logger name="com.cc.imp.WriteOpenTSDBBolt" level="info">
        <AppenderRef ref="CHANNE"/>
    </Logger>
    <Logger name="com.cc.imp.WriteHbaseBolt" level="info">
        <AppenderRef ref="CHANNE"/>
    </Logger>
    <Logger name="com.cc.imp.SendTransferBolt" level="info">
        <AppenderRef ref="CHANNE"/>
    </Logger>
</loggers>
</configuration>

Upvotes: 3

Related Questions