提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔
logback 日志
springboot + logback 日志
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
logback-spring.xml 文件
` 使用時注意:文章來源:http://www.zghlxwxcb.cn/news/detail-825991.html
- 配置日志文件保存路徑 默認用戶目錄
- 自定義指定需要打印日志的文件路徑
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 默認的一些配置 -->
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<!-- 定義應(yīng)用名稱,區(qū)分應(yīng)用 -->
<property name="APP_NAME" value="logback-test"/>
<!-- 定義日志文件的輸出路徑 -->
<property name="LOG_PATH" value="${user.home}/logs/${APP_NAME}"/>
<!-- 定義日志文件名稱和路徑 -->
<property name="LOG_FILE" value="${LOG_PATH}/application.log"/>
<!-- 定義警告級別日志文件名稱和路徑 -->
<property name="WARN_LOG_FILE" value="${LOG_PATH}/warn.log"/>
<!-- 定義錯誤級別日志文件名稱和路徑 -->
<property name="ERROR_LOG_FILE" value="${LOG_PATH}/error.log"/>
<!-- 定義錯誤級別日志文件名稱和路徑 -->
<property name="DEBUG_LOG_FILE" value="${LOG_PATH}/debug.log"/>
<!-- 定義指定目錄service日志文件名稱和路徑 -->
<property name="SERVICE_LOG_FILE" value="${LOG_PATH}/service.log"/>
<!-- 定義指定目錄HTTP日志文件名稱和路徑 -->
<property name="HTTP_PACKAGE_LOG_FILE" value="${LOG_PATH}/http-package.log"/>
<!-- 定義指定類topic方式的日志文件名稱和路徑 -->
<property name="HTTP_TOPIC_LOG_FILE" value="${LOG_PATH}/http-topic.log"/>
<!-- 自定義控制臺打印格式 -->
<property name="FILE_LOG_PATTERN" value="%green(%d{yyyy-MM-dd HH:mm:ss.SSS}) [%blue(traceId: %X{traceId})] [%highlight(%thread)] ${PID:- } %logger{36} %-5level - %msg%n"/>
<!-- 將日志滾動輸出到application.log文件中 -->
<appender name="APPLICATION"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 輸出文件目的地 -->
<file>${LOG_FILE}</file>
<encoder>
<!-- 使用默認的輸出格式打印 -->
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
<!-- 設(shè)置 RollingPolicy 屬性,用于配置文件大小限制,保留天數(shù)、文件名格式 -->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 文件命名格式 -->
<fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!-- 文件保留最大天數(shù) -->
<maxHistory>7</maxHistory>
<!-- 文件大小限制 -->
<maxFileSize>50MB</maxFileSize>
<!-- 文件總大小 -->
<totalSizeCap>500MB</totalSizeCap>
</rollingPolicy>
</appender>
<!-- 摘取出WARN級別日志輸出到warn.log中 -->
<appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${WARN_LOG_FILE}</file>
<encoder>
<!-- 使用默認的輸出格式打印 -->
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
<!-- 設(shè)置 RollingPolicy 屬性,用于配置文件大小限制,保留天數(shù)、文件名格式 -->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 文件命名格式 -->
<fileNamePattern>${LOG_PATH}/warn.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!-- 文件保留最大天數(shù) -->
<maxHistory>7</maxHistory>
<!-- 文件大小限制 -->
<maxFileSize>50MB</maxFileSize>
<!-- 文件總大小 -->
<totalSizeCap>500MB</totalSizeCap>
</rollingPolicy>
<!-- 日志過濾器,將WARN相關(guān)日志過濾出來 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>WARN</level>
</filter>
</appender>
<!-- 摘取出ERROR級別日志輸出到error.log中 -->
<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${ERROR_LOG_FILE}</file>
<encoder>
<!-- 使用默認的輸出格式打印 -->
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
<!-- 設(shè)置 RollingPolicy 屬性,用于配置文件大小限制,保留天數(shù)、文件名格式 -->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 文件命名格式 -->
<fileNamePattern>${LOG_PATH}/error.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!-- 文件保留最大天數(shù) -->
<maxHistory>7</maxHistory>
<!-- 文件大小限制 -->
<maxFileSize>50MB</maxFileSize>
<!-- 文件總大小 -->
<totalSizeCap>500MB</totalSizeCap>
</rollingPolicy>
<!-- 日志過濾器,將ERROR相關(guān)日志過濾出來 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
</appender>
<!-- 摘取出ERROR級別日志輸出到Debug.log中 -->
<appender name="DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${DEBUG_LOG_FILE}</file>
<encoder>
<!-- 使用默認的輸出格式打印 -->
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
<!-- 設(shè)置 RollingPolicy 屬性,用于配置文件大小限制,保留天數(shù)、文件名格式 -->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 文件命名格式 -->
<fileNamePattern>${LOG_PATH}/debug.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!-- 文件保留最大天數(shù) -->
<maxHistory>7</maxHistory>
<!-- 文件大小限制 -->
<maxFileSize>50MB</maxFileSize>
<!-- 文件總大小 -->
<totalSizeCap>500MB</totalSizeCap>
</rollingPolicy>
<!-- 日志過濾器,將ERROR相關(guān)日志過濾出來 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
</appender>
<!-- 配置控制臺輸出 -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!-- 配置日志打印格式 -->
<!-- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] ${PID:- } %logger{36} %-5level - %msg%n</pattern>-->
<!-- 使用默認的輸出格式打印 -->
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
</appender>
<!-- 定義指定目錄service的appender -->
<appender name="SERVICE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${SERVICE_LOG_FILE}</file>
<encoder>
<!-- 使用默認的輸出格式打印 -->
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
<!-- 設(shè)置 RollingPolicy 屬性,用于配置文件大小限制,保留天數(shù)、文件名格式 -->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 文件命名格式 -->
<fileNamePattern>${LOG_PATH}/service.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!-- 文件保留最大天數(shù) -->
<maxHistory>7</maxHistory>
<!-- 文件大小限制 -->
<maxFileSize>50MB</maxFileSize>
<!-- 文件總大小 -->
<totalSizeCap>500MB</totalSizeCap>
</rollingPolicy>
</appender>
<!-- 定義指定目錄HTTP-PACKAGE的appender -->
<appender name="HTTP-PACKAGE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${HTTP_PACKAGE_LOG_FILE}</file>
<encoder>
<!-- 使用默認的輸出格式打印 -->
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
<!-- 設(shè)置 RollingPolicy 屬性,用于配置文件大小限制,保留天數(shù)、文件名格式 -->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 文件命名格式 -->
<fileNamePattern>${LOG_PATH}/http-package.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!-- 文件保留最大天數(shù) -->
<maxHistory>7</maxHistory>
<!-- 文件大小限制 -->
<maxFileSize>50MB</maxFileSize>
<!-- 文件總大小 -->
<totalSizeCap>500MB</totalSizeCap>
</rollingPolicy>
</appender>
<!-- 定義指定類topic的appender -->
<appender name="HTTP-TOPIC" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${HTTP_TOPIC_LOG_FILE}</file>
<encoder>
<!-- 使用默認的輸出格式打印 -->
<!-- <pattern>${CONSOLE_LOG_PATTERN}</pattern>-->
<pattern>${FILE_LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
<!-- 設(shè)置 RollingPolicy 屬性,用于配置文件大小限制,保留天數(shù)、文件名格式 -->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 文件命名格式 -->
<fileNamePattern>${LOG_PATH}/http-topic.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!-- 文件保留最大天數(shù) -->
<maxHistory>7</maxHistory>
<!-- 文件大小限制 -->
<maxFileSize>50MB</maxFileSize>
<!-- 文件總大小 -->
<totalSizeCap>500MB</totalSizeCap>
</rollingPolicy>
</appender>
<!-- 打印 sql -->
<appender name="APP_SQL" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--活動日志輸出路徑示例-->
<file>${LOG_PATH}/sql.log</file>
<append>true</append>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
<!-- onMatch:意思是當(dāng)前級別以及以上要怎么處理 -->
<onMatch>ACCEPT</onMatch>
<!-- onMismatch:意思是當(dāng)前級別(不包括當(dāng)前級別)以下要怎么處理 -->
<onMismatch>DENY</onMismatch>
</filter>
<!--存檔日志示例-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/%d{yyyy-MM-dd}/sql.%i.log
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!--日志大小可自定義-->
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--存檔天數(shù)可自定義-->
<maxHistory>90</maxHistory>
</rollingPolicy>
<!--統(tǒng)一日志輸出格式-->
<encoder charset="UTF-8">
<pattern>%date [%thread] %-5level %logger [%L] - %msg%n</pattern>
</encoder>
</appender>
<!-- 配置掃描包路徑,追加日志到service的appender中 -->
<!--若是additivity設(shè)為true,則子Logger不止會在自己的appender里輸出,還會在root的logger的appender里輸出-->
<logger name="com.ycy.service.UserService" level="INFO" additivity="true">
<appender-ref ref="SERVICE"/>
</logger>
<!-- 配置掃描包路徑,追加日志到HTTP-PACKAGE的appender中 -->
<!--若是additivity設(shè)為true,則子Logger不止會在自己的appender里輸出,還會在root的logger的appender里輸出-->
<logger name="com.ycy.config" level="INFO" additivity="false">
<appender-ref ref="HTTP-PACKAGE"/>
</logger>
<!-- 配置掃描包路徑,追加日志到HTTP-TOPIC的appender中 -->
<!--若是additivity設(shè)為true,則子Logger不止會在自己的appender里輸出,還會在root的logger的appender里輸出-->
<logger name="http-log" level="INFO" additivity="false">
<appender-ref ref="HTTP-TOPIC"/>
</logger>
<!--
<logger>用來設(shè)置某一個包或者具體的某一個類的日志打印級別、以及指定<appender>。
<logger>僅有一個name屬性,
一個可選的level和一個可選的addtivity屬性。
name:用來指定受此logger約束的某一個包或者具體的某一個類。
level:用來設(shè)置打印級別,大小寫無關(guān):TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
如果未設(shè)置此屬性,那么當(dāng)前l(fā)ogger將會繼承上級的級別。
-->
<!--
使用mybatis的時候,sql語句是debug下才會打印,而這里我們只配置了info,所以想要查看sql語句的話,有以下兩種操作:
第一種把<root level="INFO">改成<root level="DEBUG">這樣就會打印sql,不過這樣日志那邊會出現(xiàn)很多其他消息
第二種就是單獨給mapper下目錄配置DEBUG模式,代碼如下,這樣配置sql語句會打印,其他還是正常DEBUG級別:
-->
<springProfile name="test">
<!--可以輸出項目中的debug日志,包括mybatis的sql日志-->
<logger name="com.ycy.mapper" level="DEBUG" additivity="false">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="APP_SQL"/>
</logger>
</springProfile>
<!-- 配置輸出級別,加入輸出方式 -->
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<!-- 加入APPLICATION輸出 -->
<appender-ref ref="APPLICATION"/>
<!-- 加入WARN日志輸出 -->
<appender-ref ref="WARN"/>
<!-- 加入ERROR日志輸出 -->
<appender-ref ref="ERROR"/>
<!-- 加入ERROR日志輸出 -->
<appender-ref ref="DEBUG"/>
</root>
</configuration>
參考連接:
很詳細 是干貨
SpringBoot項目從0到1配置logback日志打印
打印 sql
springboot整合logback分文件輸出sql,error等內(nèi)容文章來源地址http://www.zghlxwxcb.cn/news/detail-825991.html
到了這里,關(guān)于springboot+mybatis 配置 logback 日志 并打印sql的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!