1. 程式人生 > >java日誌配置之logback的使用

java日誌配置之logback的使用

 :logback引入

首先引入pom檔案,slf4j+logback需要配合來使用

 

二:logback.xml配置

如果配置檔案logback.xml 不存在,那麼 logback 預設地會用BasicConfigurator自動對自己進行配置,這會導致記錄輸出到控制檯。

我的專案logback.xml配置如下,對於每個節點的作用可以建議去參考其他文件

<?xml version="1.0" encoding="UTF-8"?>
<!--debug: 當此屬性設定為true時,將打印出logback內部日誌資訊,實時檢視logback執行狀態。預設值為false-->
<configuration debug="true">
    <!--定義日誌檔案的儲存地址 勿在 LogBack 的配置中使用相對路徑-->
    <property name="LOG_HOME" value="${catalina.home}/logs" />
    <!-- 控制檯輸出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化輸出:%d表示日期,%thread表示執行緒名,%-5level:級別從左顯示5個字元寬度%msg:日誌訊息,%n是換行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
    </appender>
    <!-- 按照每天生成日誌檔案 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日誌檔案輸出的檔名-->
            <FileNamePattern>${LOG_HOME}/TestWeb.log.%d{yyyy-MM-dd}.log</FileNamePattern>
            <!--日誌檔案保留天數-->
            <MaxHistory>30</MaxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化輸出:%d表示日期,%thread表示執行緒名,%-5level:級別從左顯示5個字元寬度%msg:日誌訊息,%n是換行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
        <!--日誌檔案最大的大小-->
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <MaxFileSize>10MB</MaxFileSize>
        </triggeringPolicy>
    </appender>

    <!-- 日誌輸出級別 -->
    <root level="INFO">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE" />
    </root>

    <!--myibatis log configure-->
    <logger name="com.apache.ibatis" level="TRACE"/>
    <logger name="java.sql.Connection" level="DEBUG"/>
    <logger name="java.sql.Statement" level="DEBUG"/>
    <logger name="java.sql.PreparedStatement" level="DEBUG"/>

</configuration>

三:業務層中的使用 

這裡貼上一個示例的使用程式碼:

public class LogTest {

  private final static Logger logger = LoggerFactory.getLogger(LogTest.class);

    public static void main(String[] args) {
      logger.info("main====logback 成功了=====");
      // todo 業務邏輯
    }
  }

關於logback在專案開發中的簡單使用就介紹到這裡,謝謝你的支援