ログ4jでSQLログをファイルに出力する方法は?

以下の手順に従って設定することで、SQLログをファイルに出力できます。

  1. Mavenでlog4jの依存を追加します。依存関係は次のとおりです。
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
  1. ログ4jの設定ファイルに、SQLログを出力するAppenderを追加します。ログ4j.propertiesファイル、log4j.xmlファイルに設定できます。設定例:
log4j.appender.sql=org.apache.log4j.RollingFileAppender
log4j.appender.sql.File=/path/to/sql.log
log4j.appender.sql.MaxFileSize=10MB
log4j.appender.sql.MaxBackupIndex=10
log4j.appender.sql.layout=org.apache.log4j.PatternLayout
log4j.appender.sql.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n

ログは/path/to/sql.logファイルに出力され、最大ファイルサイズは10MBに設定され、最大10ファイルがバックアップされます。

  1. log4j の設定ファイルで、SQL ロガーの Appender と該当の Logger を紐付ける。具体的な設定は次の通り。
log4j.logger.sqlLogger=DEBUG, sql
log4j.additivity.sqlLogger=false
log4j.logger.org.hibernate.SQL=DEBUG, sql
log4j.additivity.org.hibernate.SQL=false

sqlLoggerおよびorg.hibernate.SQLのログレベルをDEBUGに、アペンダーをsqlと名付けたものに出力させ、additivityをfalseにして上位ロガーにログを伝搬しないようにします。

  1. コード中にLoggerオブジェクトを使用し、SQLログを出力します。例:
import org.apache.log4j.Logger;

public class Example {
    private static final Logger logger = Logger.getLogger(Example.class);

    public void executeSql(String sql) {
        logger.debug("Executing SQL: " + sql);
        // 执行SQL语句的代码
    }
}

SQLログは、logger.debugメソッドを使用して出力されます。

上記手順により、SQL ログをファイルに出力できます。

bannerAds