springboot支付項目之日誌配置

日誌框架spring

本節主要內容:app

1:常見的幾種日誌框架框架

2:Logback的使用ide

3:怎麼配置info和error級別日誌到不一樣文件中而且按照日期天天一個文件。spa

document_image_rId9.png

document_image_rId10.png


以上幾個框架能夠分類以下:插件

document_image_rId11.png

document_image_rId12.png

SLF4J和Logback的使用日誌

日誌級別:code

document_image_rId13.png

級別越大越嚴重。orm

一:Java類中使用日誌兩種方式:

方式一:在每一個類中添加日誌對象:

private  final Logger logger = LoggerFactory.getLogger(LoggerTest.class);xml

document_image_rId14.png

方法二:使用lombok插件:

在pom.xml文件中添加lombok依賴:

<dependency>

  <groupId>org.projectlombok</groupId>

  <artifactId>lombok</artifactId>

  <optional>true</optional>

</dependency>

而後再類上面使用@slf4j註解

document_image_rId15.png

推薦使用第二種,註解方式。這樣就不用再每一個類中添加了。

二:變量的打印

方式一:使用字符串+的方式。

document_image_rId16.png

直接使用字符串+的。若是變量多,+就須要不少了。

方式二:使用佔位符的方式。

document_image_rId17.png

兩個運行的結果:

document_image_rId18.png

推薦使用第二種,這樣一看及明白。

Logback的配置

兩種配置方式:

application.yml和logback-spring.xml

也就是一種基於yml文件一種基於xml文件配置的

來看下項目中常常遇到的日誌需求:

區分info和error日誌;天天產生一個日誌文件。

document_image_rId19.png

方式一:再yml文件中配置

document_image_rId20.png

咱們能夠看到,logging相關配置還不少的。如console打印的日誌格式、日期格式、文件、日誌級別、日誌最大大小等等。均可以配置的。

如:咱們配置在控制檯輸出時間-信息換行。這個怎麼配置呢?

document_image_rId21.png

查看運行結果:

document_image_rId22.png

配置日誌輸出位置:

document_image_rId23.png

運行後,能夠在C盤下看到一個aa文件夾,打開就是日誌文件了。以下圖:

document_image_rId24.png

默認日誌文件名稱是spring.log。若是想修改爲本身的能夠使用file。以下圖

document_image_rId25.png

運行後:

document_image_rId26.png

修改日誌級別:

document_image_rId27.png

日誌級別還能夠綁定到指定的類上面。如:

document_image_rId28.png

第二種方式:使用xml文件配置

1:控制檯輸出:

document_image_rId29.png

2:根據不一樣日誌級別輸出到不一樣日誌文件中。文件名帶上日期

能夠看到,文件滾動方式有不少,能夠安裝大小和時間、能夠按照時間的。以下圖:

document_image_rId30.png

配置後文件以下:

document_image_rId31.png

基於XML配置的全部配置信息:

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

   <!-- 控制檯輸入日誌格式配置-->

   <appender name="consolelogg" class="ch.qos.logback.core.ConsoleAppender">

       <layout class="ch.qos.logback.classic.PatternLayout">

           <pattern>

               %d -%msg%n

           </pattern>

       </layout>

   </appender>


   <!-- info日誌 天天一個日誌文件配置-->

   <appender name="infoFileLog" class="ch.qos.logback.core.rolling.RollingFileAppender">

       <filter class="ch.qos.logback.classic.filter.LevelFilter">

           <level>ERROR</level>

           <onMatch>DENY</onMatch>

           <onMismatch>ACCEPT</onMismatch>

       </filter>

       <encoder>

           <pattern>

               %msg%n

           </pattern>

       </encoder>

       <!-- 配置日誌滾動策略-->

       <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

           <!-- 文件路徑.文件名稱中帶有日期-->

           <fileNamePattern>c:/aa/info.%d.log</fileNamePattern>

       </rollingPolicy>

   </appender>



   <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">

       <filter class="ch.qos.logback.classic.filter.ThresholdFilter">

           <level>ERROR</level>

       </filter>

       <encoder>

           <pattern>

               %msg%n

           </pattern>

       </encoder>

       <!--滾動策略-->

       <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

           <!--路徑-->

           <fileNamePattern>c:/aa/error.%d.log</fileNamePattern>

       </rollingPolicy>

   </appender>



   <root level="info">

       <appender-ref ref="consolelogg"/>

       <appender-ref ref="infoFileLog"/>

       <appender-ref ref="fileErrorLog"/>

   </root>

</configuration>

各位有什麼更好的日誌框架介紹下唄

相關文章
相關標籤/搜索