Logback 輸出 JPA SQL日志 到文件
使用Spring Boot 配置 JPA 時可以指定如下配置在控制台查看執行的SQL語句
spring.jpa.show-sql=true
Spring Boot 默認的日志配置不會輸出到文件,若要打印日志到文件,可以使用如下配置:
llogging.level后跟要打印日志的包名或類的全限定名,設置打印級別
日志級別:TRACE < DEBUG < INFO < WARN < ERROR < FATAL
logging.level.com.example=INFO
配置日志文件的名稱,可以使用絕對路徑和相對路徑
logging.file=test.log
設置日志目錄,默認在目錄下生成 spring.log
logging.path=
其他如格式等配置請查官方文檔
一般在生產上,需要將項目日志進行分類,錯誤日志單獨打印,業務日志等。
在使用 JPA 的時候,spring.jpa.show-sql=true可以在控制台看到SQL語句,但是無法打印到日志,試了很多種方法都沒用生效,后來在stackoverflow發現以下配置可行:
輸出Hibernate SQL 到日志
<!--輸出到控制台-->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!--輸出到文件-->
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logback.%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>error.%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- 1. 輸出SQL 到控制台和文件-->
<logger name="org.hibernate.SQL" additivity="false" >
<level value="DEBUG" />
<appender-ref ref="file" />
<appender-ref ref="console" />
</logger>
<!-- 2. 輸出SQL 的參數到控制台和文件-->
<logger name="org.hibernate.type.descriptor.sql.BasicBinder" additivity="false" level="TRACE" >
<level value="TRACE" />
<appender-ref ref="file" />
<appender-ref ref="console" />
</logger>
<!--<logger name="org.hibernate.type" additivity="false" >-->
<!--<level value="TRACE" />-->
<!--<appender-ref ref="file" />-->
<!--<appender-ref ref="console" />-->
<!--</logger>-->
<root level="info">
<appender-ref ref="console" />
<appender-ref ref="file" />
</root>
推薦使用 方案1,2一起打印SQL和參數,相關日志會少點。
logback 中 logger 標簽參數作用:name:指定打印日志的包或類,additivity: 是否向上傳遞日志,level 打印日志級別,appender-ref :使用哪種打印機制
說明一下 additivity屬性,logback 日志打印有一個根節點也就是上面的
標簽,一般情況下不指定additivity的情況為true ,也就是向上傳遞日志
作者:帶着天使反上帝
來源:CSDN
原文:https://blog.csdn.net/sinat_25295611/article/details/81073011
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!