イントラマートで独自のログファイルにログを出力する方法
イントラマートで独自のログファイルを新規に追加して出力する方法です。
イントラマートとは
株式会社NTTデータイントラマート社が開発・販売している、Webアプリケーションシステムのシステム共通基盤(統合型フレームワーク)で、国内の著名企業を中心に6,000社以上に導入されています。
イントラマートを導入することにより、Webシステム開発における短納期・低コスト・標準化推進・品質向上を実現できます。
詳しくはこちらをご覧ください。
イントラマートで独自のログファイルにログを出力する方法
イントラマートで独自のログファイルにログを出力するにはxmlで設定ファイルを作成する必要があります。
intra-mart Accel Platform では ロギングライブラリとして 「SLF4J」、その実装ライブラリとして「Logback」を採用しています。
とあるように「SLF4J」、「LogBack」の設定をしてあげる必要があります。
設定ファイル
設定ファイルはxml形式で以下のようなファイルを作成し、 イントラマートログインフォルダー配下の「/WEB-INF/conf/log」にわかりやすい名前で保存します。
(ファイル名は独自に決定することができます。)
<included>
<appender name="USER_LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${im.log}/platform/user_log.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${im.log}/platform/user_log-%d{yyyy-MM-dd}.zip</FileNamePattern>
<MaxHistory>7</MaxHistory>
</rollingPolicy>
<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}][%-8level]%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>
<charset>Windows-31J</charset>
</encoder>
</appender>
<logger name="DEBUG" additivity="false">
<level value="debug" />
<appender-ref ref="USER_LOG_FILE" />
</logger>
<logger name="ERROR" additivity="false">
<level value="error" />
<appender-ref ref="USER_LOG_FILE" />
</logger>
<logger name="WARNNING" additivity="false">
<level value="warnning" />
<appender-ref ref="USER_LOG_FILE" />
</logger>
<logger name="INFO" additivity="false">
<level value="info" />
<appender-ref ref="USER_LOG_FILE" />
</logger>
</included>
<appender>にある「name」にはわかりやすい名前を独自に付けることができます。
<file>は実際にログを出力するファイル名を設定します。
<rollingPolicy>はログをローテーションさせる場合の設定で上の例では1日ごとに最大7日間分、user_log-年月日.zipでログをローテーションさせるという設定になっています。
(拡張子に「.zip」をしているすると自動でzipファイルに圧縮してログをローテーションしてくれます。
独自ログへの出力方法
設定した独自ログへの情報を出力する方法ですが、以下のように行います。
Logger.getLogger("DEBUG").debug("出力するメッセージ");
Logger.getLogger("INFO").info("出力するメッセージ");
Logger.getLogger("WARNNING").warn("出力するメッセージ");
Logger.getLogger("ERROR").error("出力するメッセージ");
スクリプト開発では「Logger」オブジェクトで出力したいログレベルを指定し、メソッドを呼び出します。
設定を変更した場合はイントラマートを再起動する必要があります。






