由於logback性能優,加載速度快,且能自動清理和壓縮等優點。記錄一下個人在使用時配置。
1、去掉pom.xml中所有的log4j2相關的引用(否則配置不生效)
2、配置logback.xml文件
<?xml version="1.0" encoding="utf-8"?>
<!--級別從高到低 OFF -> FATAL -> ERROR -> WARN ->INFO -> DEBUG ->TRACE -> ALL -->
<!--日誌輸出規則,根據root配置級別,日誌輸出時,級別高於root的級別時纔會輸出-->
<!--配置每個filter 過濾掉輸出文件裏面,會出現高級別日誌-》低級別的日誌,通過filter配置日誌輸出級別,-->
<!--scan屬性爲true時,當配置文件發生改變,將會被重新加載,默認爲true
scanPeriod設置檢測配置文件是否有修改的時間間隔,如果沒有給出時間單位,默認是毫秒,當scan爲true時,此屬性生效。默認時間爲1分鐘
debug 當此屬性爲true時,將打印出logback內部日誌信息,實時查看logback運行狀態,默認爲false-->
<configuration scan="true" scanPeriod = "60 seconds" debug = "false">
<!--動態日誌級別-->
<jmxConfigurator/>
<!--定義日誌文件輸出位置-->
<property name="log_dir" value="E:/logs/imoslog/ICM"/>
<!--<property name="log_dir" value="/var/log/imoslog/ICM"/>-->
<!--日誌輸出格式-->
<property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}-%msg%n "/>\
<!--控制檯日誌輸出格式-->
<property name="debug.log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) %boldYellow(%thread) %boldGreen(%logger{50}-%msg%n)"/>
<!--ConsoleAppends控制檯輸出日誌-->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${debug.log.pattern}</pattern>
</encoder>
</appender>
<!--ERROR級別日誌-->
<!--滾動記錄日誌文件,將日誌記錄到日誌文件-->
<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--過濾器,日誌級別等於配置的級別時會根據onMatch 和 onMismatch 接受或拒絕日誌-->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<!--滾動策略,最常用的就是根據時間來制定滾動策略,觸發滾動-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日誌輸出位置,按天滾動並壓縮-->
<fileNamePattern>${log_dir}/info/info.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
<!--可選節點,控制保留的歸檔文件的最大數量,查出數量就刪除舊文件-->
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP" >
<maxFileSize>20MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日誌最大留存期-->
<maxHistory>360</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
<charset>utf8</charset>
</encoder>
</appender>
<!--INFO級別日誌-->
<!--滾動記錄日誌文件,將日誌記錄到日誌文件-->
<appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--過濾器,日誌級別等於配置的級別時會根據onMatch 和 onMismatch 接受或拒絕日誌-->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<!--滾動策略,最常用的就是根據時間來制定滾動策略,觸發滾動-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日誌輸出位置,按天滾動並壓縮-->
<fileNamePattern>${log_dir}/error/error.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
<!--可選節點,控制保留的歸檔文件的最大數量,查出數量就刪除舊文件-->
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP" >
<maxFileSize>20MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日誌最大留存期-->
<maxHistory>360</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
<charset>utf8</charset>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="console"/>
<appender-ref ref="INFO" />
<appender-ref ref="ERROR" />
</root>
</configuration>
3、application.properties配置
logging.config=classpath:spring-logback.xml
4、日誌打印
private final static Logger logger = LoggerFactory.getLogger(StudyApplication.class);
public static void main(String[] args) {
logger.info("項目啓動......................");
SpringApplication.run(StudyApplication.class, args);
logger.info("項目運行中......................");
}