SpringBoot配置SLF4J日志全過程
1 SLF4J日志
SLF4J,即簡單日志門面(Simple Logging Facade for Java),不是具體的日志解決方案,它只服務于各種各樣的日志系統(tǒng)。
SLF4J是為各種loging APIs提供一個簡單統(tǒng)一的接口,從而使得最終用戶能夠在部署的時候配置自己希望的loging APIs實現(xiàn)。
Logging API實現(xiàn)既可以選擇直接實現(xiàn)SLF4J接的loging APIs如: NLOG4J、SimpleLogger。
也可以通過SLF4J提供的API實現(xiàn)來開發(fā)相應的適配器如Log4jLoggerAdapter、JDK14LoggerAdapter。
2 logback.xml(配置文件)
<?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- 日志存放路徑 --> <!-- Linux系統(tǒng)日志存放路徑 --> <!--<property name="log.path" value="/home/logs" />--> <!-- windows系統(tǒng)日志存放路徑 --> <property name="log.path" value="d:/logs" /> <!-- 日志輸出格式 --> <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" /> <!-- 控制臺輸出 --> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>${log.pattern}</pattern> </encoder> </appender> <!-- 系統(tǒng)日志輸出 --> <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.path}/sys-info.log</file> <!-- 循環(huán)政策:基于時間創(chuàng)建日志文件 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 日志文件名格式 --> <fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern> <!-- 日志最大的歷史 60天 --> <maxHistory>60</maxHistory> </rollingPolicy> <encoder> <pattern>${log.pattern}</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <!-- 過濾的級別 --> <level>INFO</level> <!-- 匹配時的操作:接收(記錄) --> <onMatch>ACCEPT</onMatch> <!-- 不匹配時的操作:拒絕(不記錄) --> <onMismatch>DENY</onMismatch> </filter> </appender> <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.path}/sys-error.log</file> <!-- 循環(huán)政策:基于時間創(chuàng)建日志文件 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 日志文件名格式 --> <fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log</fileNamePattern> <!-- 日志最大的歷史 60天 --> <maxHistory>60</maxHistory> </rollingPolicy> <encoder> <pattern>${log.pattern}</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <!-- 過濾的級別 --> <level>ERROR</level> <!-- 匹配時的操作:接收(記錄) --> <onMatch>ACCEPT</onMatch> <!-- 不匹配時的操作:拒絕(不記錄) --> <onMismatch>DENY</onMismatch> </filter> </appender> <!-- 用戶訪問日志輸出 --> <appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.path}/sys-user.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 按天回滾 daily --> <fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern> <!-- 日志最大的歷史 60天 --> <maxHistory>60</maxHistory> </rollingPolicy> <encoder> <pattern>${log.pattern}</pattern> </encoder> </appender> <!-- 系統(tǒng)模塊日志級別控制 --> <logger name="com" level="info" /> <!-- Spring日志級別控制 --> <logger name="org.springframework" level="warn" /> <root level="info"> <appender-ref ref="console" /> </root> <!--系統(tǒng)操作日志--> <root level="info"> <appender-ref ref="file_info" /> <appender-ref ref="file_error" /> </root> <!--系統(tǒng)用戶操作日志--> <logger name="sys-user" level="info"> <appender-ref ref="sys-user"/> </logger> </configuration>
3 application.properties
## 日志配置 logging.config=src/main/resources/logback.xml logging.level.com=trace
4 打印日志
package com; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class TestConfigApplication { private static final Logger logger = LoggerFactory.getLogger(TestConfigApplication.class); public static void main(String[] args) { SpringApplication.run(TestConfigApplication.class, args); logger.error("這是error信息"); logger.warn("這是warn信息"); logger.info("這是info信息"); logger.debug("這是debug信息"); } }
5 調(diào)試結(jié)果
5.1 控制臺打印結(jié)果
5.2 日志文件
找到在logback.xml配置的日志文件路徑,查看日志文件。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java web三件套listener、filter、servelt原理解析
這篇文章主要介紹了Java web三件套listener、filter、servelt原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-03-03spring集成mybatis實現(xiàn)mysql數(shù)據(jù)庫讀寫分離
本文通過實例代碼給大家介紹了spring集成mybatis實現(xiàn)mysql數(shù)據(jù)庫讀寫分離,需要的朋友可以參考下2017-08-08springboot運行到dokcer中 dockerfile的場景分析
這篇文章主要介紹了springboot運行到dokcer中 dockerfile,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03詳解Spring Boot應用的啟動和停止(start啟動)
這篇文章主要介紹了詳解Spring Boot應用的啟動和停止(start啟動),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-12-12