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
出力パターン¶
利用可能なパターン文字列¶
利用可能なMDCキー¶
IM-Copilotで利用可能なMDCのキーは以下の通りです。MDCについては「MDC」を参照してください。
MDCキー 設定有無(初期値) 説明 tenant.id ○ ログ出力時のアカウントコンテキストのテナント IDlog.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 TEXTIM-Copilot 利用ガイド、Logbackのマニュアルなども参考にご利用ください。