イントラマートで独自のログファイルにログを出力する方法
イントラマートで独自のログファイルを新規に追加して出力する方法です。
イントラマートとは
株式会社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」オブジェクトで出力したいログレベルを指定し、メソッドを呼び出します。
設定を変更した場合はイントラマートを再起動する必要があります。