Enable SQL query logging in Jira Data Center
プラットフォームについて: Data Center - この記事は、Data Center プラットフォームのアトラシアン製品に適用されます。
このナレッジベース記事は製品の Data Center バージョン用に作成されています。Data Center 固有ではない機能の Data Center ナレッジベースは、製品のサーバー バージョンでも動作する可能性はありますが、テストは行われていません。サーバー*製品のサポートは 2024 年 2 月 15 日に終了しました。サーバー製品を利用している場合は、アトラシアンのサーバー製品のサポート終了のお知らせページにて移行オプションをご確認ください。
*Fisheye および Crucible は除く
目的
このナレッジベース記事では、Jira 内の詳細な SQL ロギングを有効化する方法を説明します。これは次のような場合に使用できます。
- データベースの SQL の問題のトラブルシューティング
- 特定のユーザー アクションで送信された SQL を判断するための、GUI アクションのリバースエンジニアリング
This is broken down into two sections, OfBiz and Active Objects. They are both persistence ORM frameworks which means they're libraries that can be used to manage the SQL sent to different database systems.
- OfBiz: Used by standard Jira functionality.
- Active Objects: Used by plugins, both third-party and bundled. Active Objects tables can be identified as they're named
AO_<code>_TABLENAME
.
It's important to note enabling SQL logging on production instances may cause a performance degradation on Jira, impacting the ability of end-users to conduct their work.
When possible, work on a lower environment or outside business hours to minimize impact on end-users. If that's not possible, you may consider enabling DEBUG level logs instead of TRACE to reduce the amount of logs generated and also slow down how often these logs will rotate.
環境
Jira Server/Data Center on any version from Jira 8.0.0.
ソリューション
To temporarily enable SQL logging
- Log into Jira as a System Administrator.
[管理] > [システム] > [ロギングとプロファイリング] に移動します。
OfBiz の場合:
次のように SQL ロギングを有効化します。
結果のログは
<JIRA HOME>/log/atlassian-jira-sql.log
に記録されます。
Active Objects の場合:
Search for net.java.ao.sql and set it to
TRACE
:- In the logging page, click at the Configure option as shown below. Add the package com.querydsl.sql and set it to TRACE:
結果のログは
<JIRA HOME>/log/atlassian-jira.log
に記録されます。
これらの設定はメモリに保管されるため、再起動すると失われます。
To permanently enable SQL logging
Solution For Jira versions below 9.5.0
To have Jira persist the DEBUG settings, they need to be changed in the log4j.properties
file as below:
Look for the line below, ands change
OFF
toON
:log4j.logger.com.atlassian.jira.ofbiz.LoggingSQLInterceptor = OFF, sqllog
For the Active Object java.ao.sql, look for the lines below and set
WARN
toTRACE:
log4j.logger.net.java.ao.sql = WARN, console, filelog
For the Active Object com.querydsl.sql, append the following lines at the end of the file:
log4j.logger.com.querydsl.sql = TRACE, console, sqllog log4j.additivity.com.querydsl.sql = false
Solution For Jira versions from 9.5.0
As mentioned in the Jira 9.5.0 Release notes, Log4j was upgraded to the version 2.17.2, which means that, to enable DEBUG packages permanently, a different file needs to be modified.
To have Jira persist the DEBUG settings, they need to be changed in the log4j2.xml
file as below:
Look for the line below, ands change
OFF
toON
:<Logger name="com.atlassian.jira.ofbiz.LoggingSQLInterceptor" level="OFF" additivity="false"> <AppenderRef ref="sqllog"/> </Logger>
For the Active Object java.ao.sql, look for the lines below and set
WARN
toTRACE:
<Logger name="net.java.ao.sql" level="WARN" additivity="false"> <AppenderRef ref="filelog"/> </Logger>
- For the Active Object com.querydsl.sql, append the following lines at the end of the file:
<Logger name="com.querydsl.sql" level="TRACE" additivity="false"> <AppenderRef ref="sqllog"/> </Logger>