<?xml version="1.0" encoding="UTF-8" ?>
<!--

 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.

-->

<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
  <appender name="jmx" class="org.apache.samza.logging.log4j.JmxAppender" />

  <appender name="RollingAppender" class="org.apache.log4j.RollingFileAppender">
     <param name="File" value="${samza.log.dir}/${samza.container.name}.log" />
     <param name="MaxFileSize" value="256MB" />
     <param name="MaxBackupIndex" value="20" />
     <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} [%p] %m%n" />
     </layout>
  </appender>
  <appender name="StartupAppender" class="org.apache.log4j.RollingFileAppender">
     <param name="File" value="${samza.log.dir}/${samza.container.name}-startup.log" />
     <param name="MaxFileSize" value="256MB" />
     <param name="MaxBackupIndex" value="1" />
     <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} [%p] %m%n" />
     </layout>
  </appender>
  <logger name="STARTUP_LOGGER" additivity="false">
    <level value="info" />
    <appender-ref ref="StartupAppender"/>
  </logger>
  <root>
    <priority value="info" />
    <appender-ref ref="RollingAppender"/>
    <appender-ref ref="jmx" />
  </root>
</log4j:configuration>
