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

IM-Copilot生成AI連携ドライバログ

IM-Copilot生成AI連携ドライバログには、生成AIの呼び出しに成功した際のリクエスト、レスポンスの情報が出力されます。
モジュール IM-Copilot
設定場所 %CONTEXT_PATH%/WEB-INF/conf/log/im_logger_copilot_driver.xml
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<included>
    <!-- ConversionRule -->
    <conversionRule conversionWord="responseBodyReplaceConverter" converterClass="jp.co.intra_mart.system.copilot.driver.log.logback.ResponseBodyReplaceConverter" />
    <!-- FileAppender -->
    <appender name="COPILOT_DRIVER_FILE" class="ch.qos.logback.classic.sift.SiftingAppender">
        <discriminator>
            <key>tenant.id</key>
            <defaultValue>_NO_TENANT_</defaultValue>
        </discriminator>
        <timeout>30 minutes</timeout>
        <sift>
            <appender name="COPILOT_DRIVER_FILE-${tenant.id}" class="ch.qos.logback.core.rolling.RollingFileAppender">
                <file>${im.log}/platform/${tenant.id}/copilot_driver.log</file>
                <append>true</append>
                <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
                    <fileNamePattern>${im.log}/platform/${tenant.id}/copilot_driver%i.log</fileNamePattern>
                    <minIndex>1</minIndex>
                    <maxIndex>5</maxIndex>
                </rollingPolicy>
                <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
                    <maxFileSize>10MB</maxFileSize>
                </triggeringPolicy>
                <encoder>
                    <Pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}]	[%thread]	%-5level	%X{tenant.id}	%X{log.id}	%X{user.cd}	%X{copilot.driver.type}	%X{copilot.driver.request.type}	%X{copilot.driver.request.path}	%X{copilot.driver.request.parameters}	%responseBodyReplaceConverter(%X{copilot.driver.response.body}){}%n</Pattern>
                </encoder>
            </appender>
        </sift>
    </appender>
    <!-- DBAppender
    <appender name="COPILOT_DRIVER_DB" class="ch.qos.logback.classic.db.DBAppender">
        <connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
            <driverClass>org.postgresql.Driver</driverClass>
            <url>jdbc:postgresql://localhost:5432/iap_db_default</url>
            <user>imart</user>
            <password>imart</password>
        </connectionSource>
    </appender>
    -->
    <!-- logger -->
    <logger name="COPILOT_DRIVER_LOG" additivity="false">
        <level value="info" />
        <appender-ref ref="COPILOT_DRIVER_FILE" />
        <!-- DBAppender
        <appender-ref ref="COPILOT_DRIVER_DB" />
        -->
    </logger>
</included>

標準出力設定

ログレベル(初期値) INFO
出力先(初期値)
ファイル - ${im.log}/platform/${tenant.id}/copilot_driver.log

出力パターン

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

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

利用可能なMDCキー

IM-Copilotで利用可能なMDCのキーは以下の通りです。
MDCについては「MDC」を参照してください。
MDCキー 設定有無(初期値) 説明
tenant.id
ログ出力時のアカウントコンテキストのテナント ID
log.id ログ ID
user.cd
ログ出力時のアカウントコンテキストのユーザコード
copilot.driver.type
連携ドライバタイプ
copilot.driver.request.type
リクエストタイプ
copilot.driver.request.path
リクエストパス
copilot.driver.request.parameters
リクエストパラメータ
バイナリはログ出力対象外です。
copilot.driver.response.body
レスポンスボディ
JSON,TEXT以外のレスポンスタイプの場合はログ出力対象外です。

ConversionRuleについて

ResponseBodyReplaceConverterはログ出力内容に対して以下の処理を行います。
・改行コードの除去
・タブコードの除去
・システムプロパティで指定されたリクエストパス(正規表現)に一致した場合のみ空文字に変換
正規表現例:
-Djp.co.intra_mart.system.copilot.driver.log.logback.ResponseBodyReplaceConverter.open-ai=”(?:^POST:/chat/completions$|^GET:/files.+)”
-Djp.co.intra_mart.system.copilot.driver.log.logback.ResponseBodyReplaceConverter.azure-open-ai=”POST:/chat/completions”

ResponseBodyReplaceConverterを外して独自のConversionRuleを適用することも可能です。
Logbackのマニュアルなどを参考に独自のConversionRuleを作成してください。

DBAppenderについて

DBAppenderをご利用の際はコメントアウトを外してデータベース接続情報を設定してご利用ください。
データベース側にはLogback提供の以下テーブル、シーケンスが必要です。(PostgreSQLの場合)
・logging_event
・logging_event_property
・logging_event_exception
・logging_event_id_seq
またlogging_event_propertyテーブルのmapped_valueカラムは以下のように変更してください。(PostgreSQLの場合)
・変更前: mapped_value VARCHAR(1024)
・変更後: mapped_value TEXT
IM-Copilot 利用ガイド、Logbackのマニュアルなども参考にご利用ください。