<configuration>

  <!-- 標準出力用設定 -->
  <appender name="BAR-STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>
        %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
      </pattern>
    </encoder>
  </appender>

  <!-- ファイル出力用設定 -->
  <appender name="FOO-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <!-- 起動毎にログファイルを切り替える -->
      <fileNamePattern>logs/log-%d{yyyy-MM-dd}.log</fileNamePattern>
      <!-- 保持しておくログアーカイブファイルの最大数 -->
      <maxHistory>90</maxHistory>
    </rollingPolicy>
    <encoder>
      <pattern>%date %level [%thread] %logger{10} [%file : %line] %msg%n</pattern>
    </encoder>
  </appender>

  <!-- ルートロガー -->
  <!-- DEBUG, INFO, WARN, ERROR レベルのログを出力 -->
  <root level="DEBUG">
    <!-- 全てのロガーのメッセージを定義した FOO-FILE アペンダーに出力 -->
    <appender-ref ref="FOO-FILE"/>
    <appender-ref ref="BAR-STDOUT"/>
  </root>

</configuration>