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

Encoder

この設定は一部のAppenderで設定可能です。<encoder> で設定します。
Encoderは、以下の役割を担います。
  • ログ出力時の出力方法の決定
  • ログ出力時のフォーマットの決定
以下は「ConsoleAppender」にEncoderを指定した場合の im_logger.xml の例です。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>

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

</configuration>
<encoder> で指定可能な属性設定は以下の通りです。
属性 必須設定 説明
class × Encoderの実装クラスの完全修飾クラス名を指定します。
Encoderに対しての設定は <encoder> の子要素で指定します。設定可能な値(プロパティ)は、Encoderの実装により異なります。
Encoderの実装クラスとその他のクラスとの関連クラスの情報は以下の通りです。
../../../_images/encoder.png
以下では各種Encoderの実装を紹介します。

コラム

本書に記述されていないEncoderについては「LogbackのWebサイト」を参照してください。

EchoEncoder

ログレベルとメッセージのみのログを出力するEncoderです。

クラス名

ch.qos.logback.core.encoder.EchoEncoder

プロパティ

設定可能なプロパティはありません。

PatternLayoutEncoder

様々な形式でログを出力することを可能としたEncoderです。指定したフォーマットパターンに従ってログが出力されます。

クラス名

ch.qos.logback.classic.encoder.PatternLayoutEncoder

プロパティ

プロパティ名 タイプ 必須設定 説明
pattern String
出力時のフォーマットパターン。
フォーマットパターンで指定可能なパターン文字列については「パターン文字列」を参照してください。
outputPatternAsHeader boolean ×
ログ出力開始時に、<pattern> に指定した文字列を出力するかを指定します。
true を指定した場合、Appenderの出力先に対してログメッセージを出力を開始する前に以下のような文字列が出力されます。
#logback.classic pattern: [%level] %logger{10} - %msg%n
false を指定した場合は、出力を行いません。
未指定の場合は、false を設定したものとして扱われます。
charset String ×
ログ出力に変換を行う文字コードを指定します。
未指定の場合は、文字コードの変換を行いません。
immediateFlush boolean ×
バッファリングしている内容を即時書き込むかを指定します。
未指定の場合は、true を設定したものとして扱われます。
2019 Summer(Waltz) 以降でアップデートを行うと、system.log に LogbackUtil に関する Warning ログが出力されます。
warning ログの出力を回避するには、 logger.xml 内の immediateFlush タグを encoder タグの下から appender タグの下へ移動させてください。
2019 Spring(Violette) 以前のバージョンでは、Warning ログは出力されないため、immediateFlush タグの移動は不要です。
詳細は FAQ を確認ください。

LayoutWrappingEncoder

様々な形式でログを出力することを可能としたEncoderです。パターン文字列で指定したフォーマットに従ってログが出力されます。

クラス名

ch.qos.logback.classic.encoder.LayoutWrappingEncoder

プロパティ

プロパティ名 タイプ 必須設定 説明
layout Layout Layout」を指定します。
charset String ×
ログ出力に変換を行う文字コードを指定します。
未指定の場合は、文字コードの変換を行いません。
immediateFlush boolean ×
バッファリングしている内容を即時書き込むかを指定します。
未指定の場合は、true を設定したものとして扱われます。
2019 Summer(Waltz) 以降でアップデートを行うと、system.log に LogbackUtil に関する Warning ログが出力されます。
warning ログの出力を回避するには、 logger.xml 内の immediateFlush タグを encoder タグの下から appender タグの下へ移動させてください。
2019 Spring(Violette) 以前のバージョンでは、Warning ログは出力されないため、immediateFlush タグの移動は不要です。
詳細は FAQ を確認ください。