intra-mart Accel Platform ログ仕様書 第15版 2024-04-01

システムログ

システムログは、ログ API を利用して出力される汎用的なログです。
具体的には、以下の内容がシステムログとして出力されます。(全て同一のログファイル system.log に出力されます。)
  • サーバの運用状態を通知するためのログ

    • サーバの状態をトレースするために必要な情報が出力されます。
  • エラー発生時のログ

    • サーバ運用中に発生した様々なエラーが出力されます。
モジュール コアモジュール
設定場所 %CONTEXT_PATH%/WEB-INF/conf/log/im_logger.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <jmxConfigurator />

  <!--
  <statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" />
  -->

  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <outputPatternAsHeader>true</outputPatternAsHeader>
      <pattern>[%level] %logger{10} - [%X{log.message.code}] %msg%n</pattern>
      <!--
      <charset>Windows-31J</charset>
      -->
    </encoder>
  </appender>

  <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${im.log}/platform/system.log</file>
    <append>true</append>

    <!--
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>
        ${im.log}/platform/system-%d{yyyy-MM-dd}.log
      </fileNamePattern>
    </rollingPolicy>
    -->

    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
      <fileNamePattern>${im.log}/platform/system%i.log</fileNamePattern>
      <minIndex>1</minIndex>
      <maxIndex>5</maxIndex>
    </rollingPolicy>

    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
      <maxFileSize>10MB</maxFileSize>
    </triggeringPolicy>

    <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
      <layout class="jp.co.intra_mart.common.platform.log.layout.OutputStackTracePatternLayout">
        <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}]  [%thread]  %-5level  %logger{255}  %X{tenant.id}  %X{log.id}  %X{request.id}  -  [%X{log.message.code}]  %msg%nopex%n</pattern>

        <enableOutputStackTrace>true</enableOutputStackTrace>
        <stackTraceDir>${im.log}/platform/exception/</stackTraceDir>
        <stackTraceFilename>'exception_'yyyy-MM-dd_HH-mm-ss'_%logId.log'</stackTraceFilename>
      </layout>
    </encoder>
  </appender>

  <!--
  <appender name="EMAIL" class="ch.qos.logback.classic.net.SMTPAppender">
    <smtpHost>smtp_host</smtpHost>
    <to>to_mailaddress</to>
    <from>from_mailaddress</from>
    <layout class="ch.qos.logback.classic.PatternLayout">
      <Pattern>%date %-5level %logger{255} - %message%n</Pattern>
    </layout>
  </appender>
  -->

  <root>
    <level value="info" />
    <appender-ref ref="STDOUT" />
    <appender-ref ref="FILE" />
  </root>

  <!--
     - Logger for Axis2
    -->
  <logger name="org.apache.axis2.util.PrettyPrinter">
    <level value="error" />
  </logger>

  <!--
     - Logger for SpyDataSource
    -->
  <logger name="com.caucho.sql.spy">
    <level value="trace" />
  </logger>

  <!--
     - Logger for OpenPortal
    -->
  <logger name="debug.com.sun.portal.portletcontainer.impl">
    <level value="warn" />
  </logger>

  <logger name="com.sun.portal.portletcontainer.context.window.impl">
    <level value="warn" />
  </logger>

  <!--
     - Logger for WSRP
    -->
  <logger name="com.sun.xml.wss.logging.impl.filter">
    <level value="warn" />
  </logger>

  <!--
     - Logger for Session Timeout
    -->
  <logger name="error-page.session-timeout">
    <level value="off" />
  </logger>

</configuration>

標準出力設定

ログレベル(初期値) INFO
出力先(初期値)
コンソール
ファイル - ${im.log}/platform/system.log

出力パターン

利用可能なパターン文字列

システムログで利用可能なパターン文字列は以下の通りです。
パターン文字列については「パターン文字列」を参照してください。
フォーマット文字列 設定有無(初期値) 説明
%d 出力日時
%thread スレッド名
%level ログレベル
%logger ロガー名
%msg ログメッセージ
%X
利用可能なキーは「利用可能なMDCキー」を参照してください。

利用可能なMDCキー

システムログで利用可能なMDCのキーは以下の通りです。
MDCについては「MDC」を参照してください。
MDCキー 設定有無(初期値) 説明
log.thread.group × スレッドグループ
log.id ログ ID
request.id リクエスト ID
log.message.code ログメッセージコード
user.cd ×
ログ出力時のアカウントコンテキストのユーザコード
intra-mart Accel Platform 2014 Spring(Granada) 以降、利用可能です。
user.type ×
ログ出力時のアカウントコンテキストのユーザ種別
administrator : システム管理者
platform : ジョブなどのバックグラウンド
user : 一般ユーザ
intra-mart Accel Platform 2014 Spring(Granada) 以降、利用可能です。
tenant.id
ログ出力時のアカウントコンテキストのテナント ID
intra-mart Accel Platform 2014 Spring(Granada) 以降、利用可能です。
authenticated ×
ログ出力時のアカウントコンテキストの認証状態
true : 認証済み
false : 未認証
intra-mart Accel Platform 2014 Spring(Granada) 以降、利用可能です。

コラム

アカウントコンテキストの詳細については、「アカウントコンテキストのJavaDoc」を参照してください。

注意

intra-mart Accel Platform 2013 Summer(Damask) 以前のバージョンを利用している場合、 初期状態のログ設定ファイルでは、system.log にメッセージコードが出力されません。

メッセージコードを出力するためには、%CONTEXT_PATH%/WEB-INF/conf/log/im_logger.xml に MDCキー「log.message.code」を設定してください。