intra-mart Accel Platform ログ仕様書 第8版 2016-12-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>
			<immediateFlush>true</immediateFlush>
		</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」を設定してください。