logback + slf4j idea配置使用技巧

pcaddos發表於2018-04-09

logback 效能的優越性小編就不在此綴述了,本編內容詳細 介紹使用方式,已經配置項語法說明。

1.pom.xml 工程匯入依賴:

<dependency>  
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.2</version>
</dependency>

2.接下來在自己的工程resources 目錄下新建一個 logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--
configuration 主標籤 有以下三大屬性。
scan: 當此屬性設定為true時,配置檔案如果發生改變,將會被重新載入,預設值為true。
    scanPeriod: 設定監測配置檔案是否有修改的時間間隔,如果沒有給出時間單位,預設單位是毫秒。
當scan為true時,此屬性生效。預設的時間間隔為1分鐘。
    debug: 當此屬性設定為true時,將列印出logback內部日誌資訊,實時檢視logback執行狀態。預設值為false。
本人閒麻煩一律預設!
   -->
<property name="logs-folder" value="logs"/>
<property name="contextName" value="spring-mybatis"/>
<!--
子節點<property> :用來定義變數值,它有兩個屬性name和value,通過<property>定義的值會被插入到logger上下文中,可以使“${}”來使用變數。
-->
<contextName>${contextName}</contextName>
<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!--格式化輸出:%d表示日期,%thread表示執行緒名,%-5level:級別從左顯示5個字元寬度%msg:日誌訊息,%n是換行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%-5level] %X{hiContext} %logger{50}:%L - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!--
子節點<appender>:負責寫日誌的元件,它有兩個必要屬性name和class。name指定appender名稱,class指定appender的全限定名
ConsoleAppender 把日誌輸出到控制檯。

-->
<appender name="FileLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${logs-folder}/${contextName}/${contextName}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${logs-folder}/${contextName}/${contextName}-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxHistory>30</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 100MB -->
<maxFileSize>100mb</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%-5level] %X{hiContext} %logger{50}:%L - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!--
RollingFileAppender:滾動記錄檔案,先將日誌記錄到指定檔案,當符合某個條件時,將日誌記錄到其他檔案
-->

<!-- 日誌輸出級別 -->
<logger name="com.org.controller" level="DEBUG" additivity="false">
<appender-ref ref="Console"/>
<appender-ref ref="FileLog"/>
</logger>
<logger name="com.org.dao" level="DEBUG" additivity="false">
<appender-ref ref="Console"/>
<appender-ref ref="FileLog"/>
</logger>

<root level="DEBUG">
<appender-ref ref="Console"/>
</root>

</configuration>
3.注意點說明
1.小編在第一次使用logback 配置好屬性後 控制檯列印日誌,出現中文亂碼, 按照網上各種步驟操作還是不行。
網上操作步驟
  <charset>UTF-8</charset>
或則 tomcat  catalina.out檔案 set 某某屬性。
其實不然 主要原因 還是在於,idea自己新建的專案工程使用的編碼格式 預設的是gbk

file -> settings  下 看圖 ,找到自己新建的工程檔案就能發現問題了。

所以當你logback.xml 設定 UTF-8 還會出現亂碼,那就不妨看看。

解決方案:

<charset>GBK</charset>





































相關文章