6.3.1. ViewCreator 操作ログ について¶
ViewCreator 操作ログ では「データ参照」画面を表示する等の操作で、データの取得が行われたことを以下のパスのログに記録します。
- WEB-INF/log/product/viewcreator/viewcreator-operation.log
ログの出力例は以下の通りです。
2025-05-28 04:05:30.637 resin-port-8080-88 INFO 5je7o5i6x1pcq 8hmgv0hy4a3g380 tenant 5i7o4o3kli1pj EXECUTE QUERY 2 0 2 default {drilldownParameters=[], searchParameters=[], sortParameters=[], startRow=1, length=300} 処理が正常に完了しました。
2025-05-28 04:06:38.912 resin-port-8080-106 INFO 5je7o5i98lch7 8hmgv1ynka3p780 tenant 5i7o4o3kli1pj sample_japan_list EXECUTE LIST_DATAVIEW 2 1 1 default {drilldownParameters=[], searchParameters=[{columnCode=ccd00003, keyword=島}], sortParameters=[{columnCode=ccd00002, columnName=, ascending=false}], startRow=51, length=0} 処理が正常に完了しました。
2025-05-28 04:06:44.051 resin-port-8080-106 INFO 5je7o5i9ck3hb 8hmgv22lda3pa80 tenant 5i7o4o3kli1pj sample_japan_list EXPORT LIST_DATAVIEW 8 0 0 default {drilldownParameters=[], searchParameters=[{columnCode=ccd00003, keyword=島}], sortParameters=[{columnCode=ccd00002, columnName=, ascending=false}], startRow=0, length=0} 処理が正常に完了しました。
データ参照を利用してデータ取得を行ったユーザのユーザコードやデータ参照コード、SQLの実行に要した時間等が出力されます。
上記の例では、クエリ(クエリコード:5i7o4o3kli1pj)の実行(プレビュー)や、リスト集計(データ参照コード:sample_japan_list)の実行、エクスポートが tenant ユーザによって行われ、それぞれ、2ミリ秒、2ミリ秒、8ミリ秒で完了したことがわかります。
ログの出力先やレイアウトに関する設定は、「ログ仕様書」-「ViewCreator 操作ログ」 を参照してください。
6.3.1.1. SQLの実行時間が閾値を超えている場合¶
SQLの実行時間が閾値を超えていない場合は、INFO レベルのログが出力されますが、超えている場合は、以下のようにWARNレベルで出力されます。
閾値の設定については、「設定ファイルリファレンス」-「ViewCreatorの設定」 の「ログ設定」を参照してください。
2025-05-28 04:06:44.051 resin-port-8080-106 WARN 5je7o5i9ck3hb 8hmgv22lda3pa80 tenant 5i7o4o3kli1pj sample_japan_list EXECUTE LIST_DATAVIEW 32573 14433 13822 default {drilldownParameters=[], searchParameters=[{columnCode=ccd00003, keyword=島}], sortParameters=[{columnCode=ccd00002, columnName=, ascending=false}], startRow=0, length=0} 件数取得処理が閾値を超過しました。 閾値:5000ms 実際:14433ms
上記の例では、データ参照コード sample_japan_list の実行において、総件数取得SQL実行時間が閾値(5000ミリ秒)を超過し、実際の実行時間は14433ミリ秒であったことがわかります。
WARNレベルのログが出力された場合は、以下のように実行されたSQL文をメッセージに含む例外ログが出力されます。
log.generating.time=Wed May 28 04:44:25 UTC 2025
log.level=WARN
log.logger.name=VIEWCREATOR_OPERATION_LOG
log.id=5je7o5kie2grx
log.thread.id=resin-port-8080-105
log.thread.group=main
log.message=件数取得処理が閾値を超過しました。 閾値:1ms 実際:4ms
jp.co.intra_mart.system.viewcreator.log.exception.SlowSQLExecutionException: Execution time exceeded threshold. Execution time: 14433ms
SQL: SELECT COUNT(*) AS CNT FROM (SELECT 'x' AS im_vc_dummy FROM ( SELECT
sample_population.year AS ccd00001,
sample_region.name AS ccd00002,
sample_prefecture.name AS ccd00003,
sample_age.age AS ccd00004,
sample_prefecture_area.area AS ccd00005,
sample_population.population AS ccd00006
FROM
sample_population
LEFT OUTER JOIN sample_age
ON sample_population.age_id = sample_age.id
LEFT OUTER JOIN sample_prefecture
ON sample_population.prefecture_id = sample_prefecture.id
LEFT OUTER JOIN sample_prefecture_area
ON sample_prefecture.id = sample_prefecture_area.id
LEFT OUTER JOIN sample_region
ON sample_prefecture.region_id = sample_region.id
) IM__QUERY__ ) VC_IM_QUERY___im__a
at jp.co.intra_mart.system.viewcreator.log.ViewCreatorOperationTracer$1.onCountRetrievalExceeded(ViewCreatorOperationTracer.java:220)
at jp.co.intra_mart.system.viewcreator.log.StandardDurationThresholdChecker.lambda$notifyCountRetrievalCompleted$0(DurationThresholdChecker.java:280)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
at jp.co.intra_mart.system.viewcreator.log.StandardDurationThresholdChecker.notifyCountRetrievalCompleted(DurationThresholdChecker.java:280)
at jp.co.intra_mart.system.viewcreator.log.ViewCreatorOperationTracer.endCountRetrieval(ViewCreatorOperationTracer.java:147)
at jp.co.intra_mart.foundation.viewcreator.ExtendDataViewManager.getListResult(ExtendDataViewManager.java:1304)
at jp.co.intra_mart.foundation.viewcreator.DataViewManager$3.execute(DataViewManager.java:470)
コラム
閾値を超えたときだけログ出力を行いたい場合は、「ログ仕様書」-「ViewCreator 操作ログ」の「標準出力設定」で、ログレベルを WARN に設定してください。