我使用的日誌框架是logback。我們的目的是把INFO日誌和ERROR分開到不同的文件中,並且能夠每日形成一個日誌文件。
第一步,使用idea創建一個Spring-Boot的項目
一直默認,有關SpringBoot基礎創建都不清楚的話,可以先去看看入門教程,到這步的時候選擇web就行。
創建成功
第一步,在resources下面新建一個xml文件,文件名是logback-spring.xml,內容如下。需要替換的只需要替換一下路徑的保存地址。
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>
%d - %msg%n
</pattern>
</layout>
</appender>
<!--每天生成一個日誌文件-->
<appender name="fileInfoLog" 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>
/Users/Cdy1234/Desktop/project/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>
/Users/Cdy1234/Desktop/project/error.%d.log
</fileNamePattern>
</rollingPolicy>
</appender>
<root level="info">
<appender-ref ref="consoleLog"/>
<appender-ref ref="fileInfoLog"/>
<appender-ref ref="fileErrorLog"/>
</root>
</configuration>
生成效果文件如下
想要測試的同學可以自己寫一下測試文件。
在test文件中增加一個測試類。這裏用到了@Slf4j,不懂的可以直接百度一下,我這裏就不多解釋。
package com.chuzhong;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
/**
* Created by Cdy1234 on 2018/9/13.
*/
@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
public class LoggerTest {
// private final Logger logger= LoggerFactory.getLogger(LoggerTest.class);
@Test
public void test1(){
// logger.debug("debug...");
// logger.info("info...");
// logger.error("error");
String name="imooc";
String password="12344";
log.debug("debug...");
log.info("name={},password={}",name,password);
log.error("error..");
}
}