web-dev-qa-db-ja.com

Mybatisのログバックを設定してSQLを出力する方法

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>%d{HH:mm:ss} %-5level %logger{35} - %msg%n
            </Pattern>
        </encoder>
    </appender>
    <logger name="Java.sql" level="DEBUG" >
        <appender-ref ref="STDOUT" />
    </logger>
    <root>
        <level value="ERROR" />
        <appender-ref ref="STDOUT" />
    </root>
</configuration>

SQLとエラーのみを印刷したいのですが、コンソールでSQLを印刷しません。誰か助けてもらえますか?色々ありがとう

6
maows

アペンダーの構成は正しいですが、ロガーの構成は正しくありません。

特定のmybatisマッパーのSQLステートメントをログに記録するには、完全修飾マッパー名を使用してロガーのDEBUG(クエリパラメーターと結果を表示するTRACE)レベルを設定します

<logger name="com.mycompany.myapp.mapper.MyMapper" level="DEBUG"/>

このように同じパッケージに含まれている場合は、すべてのマッパーからのすべてのSQLステートメントをログに記録できます。

<logger name="com.mycompany.myapp.mapper" level="DEBUG"/>
17
Roman Konoval
     <logger name="org.mybatis">
      <level value="TRACE"/>
  </logger>

<logger name="Java.sql">
    <level value="WARN"/>
</logger> 

Logback.xmlで上記のコードスニペットを使用し、ロガーでsqlクエリを取得しました。特定のロガーでSQLを出力する必要がある場合は、タグを使用します。

1

ありがとう、logback.xmlに追加します

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${logFile}</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${logFile}.%d.Zip</fileNamePattern>
        <maxHistory>5</maxHistory>
    </rollingPolicy>
    <encoder>
        <pattern>[%date] [%level] %msg [%file:%line] [%logger{100}] [%thread] [AspLink-${project.version}]%n</pattern>
    </encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern>[AspLink-${project.version}] [%level] %msg [%file:%line] [%logger{100}]%n</pattern>
    </encoder>
</appender>

<logger name="liquibase" level="INFO" />
<logger name="ru.company.asplink.dao" level="DEBUG" />
<logger name="org.mybatis">
    <level value="TRACE"/>
</logger>

<root level="INFO">
    <appender-ref ref="FILE" />
    <appender-ref ref="STDOUT" />
</root>