springboot日誌配置Logback

日誌信息是一個應用幾乎必須的選項,運維人員以及相關人員能夠經過此類信息對應用運行狀態進行把控或者對過往錯誤進行定位。springboot框架固然也有關於日誌的配置。html

 

1、日誌配置java

當不須要過多個性化配置時,可直接在springboot的配置文件(application.yml或者application.properties)中配置以下內容便可spring

#日誌文件位置配置,相對於jarsql

logging.file=log/logger.log安全

#包路徑對應日誌級別配置
logging.level.com.inspur=error
logging.level.com.ibatis=info
logging.level.org.java.sql=info
logging.level.org.springframework=debugspringboot

當須要更具體的個性化日誌配置時,也能夠在springboot的配置中進行以下配置,而後參照第二大點進行個性化配置app

#logback日誌配置xml存放路徑配置
logging.config=classpath:logback.xml
#日誌文件存儲位置
logging.path=/workspace/rock/jpa-test/log框架

 

2、logback.xml日誌結構運維

<configuration>
  <!-- 日誌輸出根配置 -->
  <root level="INFO">
    <!-- 生效的appender -->
    <appender-ref ref="INFO_FILE" />
  </root>
spa

  <!-- 日誌輸出過濾配置 -->
  <logger name="com.inspur" level="error"></logger>
  <logger name="com.ibatis" level="info"></logger>

  <!-- 日誌輸出方式配置 -->
  <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>

  <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${log.path}</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>${log.path}.%d{yyyy-MM-dd}.zip</fileNamePattern>
    </rollingPolicy>

    <encoder>
      <pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n</pattern>
    </encoder>
  </appender>

</configuration>

root和logger的屬性就沒什麼能夠說的了,appender的屬性說一下:

FileAppender:把日誌添加到文件,有如下子節點:
  <file>:被寫入的文件名,能夠是相對目錄,也能夠是絕對目錄,若是上級目錄不存在會自動建立,沒有默認值。
  <append>:若是是 true,日誌被追加到文件結尾,若是是 false,清空現存文件,默認是true。
  <encoder>:對記錄事件進行格式化。(具體參數稍後講解 )
  <prudent>:若是是 true,日誌會被安全的寫入文件,即便其餘的FileAppender也在向此文件作寫入操做,效率低,默認是 false。

RollingFileAppender:滾動記錄文件,先將日誌記錄到指定文件,當符合某個條件時,將日誌記錄到其餘文件。有如下子節點:
  <file>:被寫入的文件名,能夠是相對目錄,也能夠是絕對目錄,若是上級目錄不存在會自動建立,沒有默認值。
  <append>:若是是 true,日誌被追加到文件結尾,若是是 false,清空現存文件,默認是true。  
  <rollingPolicy>:當發生滾動時,決定RollingFileAppender的行爲,涉及文件移動和重命名。屬性class定義具體的滾動策略類
  class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy": 最經常使用的滾動策略,它根據時間來制定滾動策略,既負責滾動也負責出發滾動。有如下子節點:
  <fileNamePattern>:必要節點,包含文件名及「%d」轉換符,「%d」能夠包含一個java.text.SimpleDateFormat指定的時間格式,如:%d{yyyy-MM}。
若是直接使用 %d,默認格式是 yyyy-MM-dd。RollingFileAppender的file字節點無關緊要,經過設置file,能夠爲活動文件和歸檔文件指定不一樣位置,當前日誌老是記錄到file指定的文件(活動文件),活動文件的名字不會改變;
若是沒設置file,活動文件的名字會根據fileNamePattern 的值,每隔一段時間改變一次。「/」或者「\」會被當作目錄分隔符。  
  <maxHistory>:可選節點,控制保留的歸檔文件的最大數量,超出數量就刪除舊文件。假設設置每月滾動,且<maxHistory>是6,則只保存最近6個月的文件,刪除以前的舊文件。注意,刪除舊文件是,那些爲了歸檔而建立的目錄也會被刪除。


例如:  
<configuration>
  <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern>
      <maxHistory>30</maxHistory>
    </rollingPolicy>
    <encoder>
      <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
    </encoder>
  </appender>

  <root level="DEBUG">
    <appender-ref ref="FILE" />
  </root>
</configuration>
上述配置表示天天生成一個日誌文件,保存30天的日誌文件。

<configuration>
  <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>test.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
      <fileNamePattern>tests.%i.log.zip</fileNamePattern>
      <minIndex>1</minIndex>
      <maxIndex>3</maxIndex>
    </rollingPolicy>
    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
      <maxFileSize>5MB</maxFileSize>
    </triggeringPolicy>
    <encoder>
      <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
    </encoder>
  </appender>

  <root level="DEBUG">
    <appender-ref ref="FILE" />
  </root>
</configuration>
上述配置表示按照固定窗口模式生成日誌文件,當文件大於20MB時,生成新的日誌文件。窗口大小是1到3,當保存了3個歸檔文件後,將覆蓋最先的日誌。

 

更多詳細內容參照

(1)logback標籤屬性詳解

  http://blog.csdn.net/yingxiake/article/details/51274426

  https://www.jianshu.com/p/f29748aca9c0

(2)springboot如何使用logback

  https://www.cnblogs.com/zb38/p/5411701.html

(3)logback原理詳解

  https://www.cnblogs.com/warking/p/5710303.html

相關文章
相關標籤/搜索