色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

springboot項(xiàng)目配置logback日志系統(tǒng)的實(shí)現(xiàn)

瀏覽:70日期:2023-03-17 08:15:07

記錄springboot項(xiàng)目配置logback日志文件管理:

logback依賴jar包

SpringBoot項(xiàng)目配置logback理論上需要添加logback-classic依賴jar包:

<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version></dependency>

但是因?yàn)镾pringBoot項(xiàng)目默認(rèn)就是使用的就是logback日志系統(tǒng),創(chuàng)建SpringBoot項(xiàng)目時(shí)引入的spring-boot-starter或者spring-boot-starter-web依賴jar包中已經(jīng)包含了spring-boot-starter-logging的依賴,里面同時(shí)包含多種日志系統(tǒng)依賴,如下圖所示:

springboot項(xiàng)目配置logback日志系統(tǒng)的實(shí)現(xiàn)

包括logback和log4j,所以,無(wú)需額外添加依賴,直接配置logback.xml就可以了。

此外,如果需要切換為log4j2,那么需要在spring-boot-starter-web依賴中排除springboot自帶的commons?logging,然后在引入log4j2的依賴jar包,如下所示:

<!--排除 commons?logging--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>commons?logging</groupId> <artifactId>commons?logging</artifactId> </exclusion> </exclusions></dependency><!--引入log4j2 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId></dependency>logback的默認(rèn)配置

前面說(shuō)到SpringBoot項(xiàng)目默認(rèn)使用logback,那么對(duì)于logback的配置情況,SpringBoot又是如何定義的呢?

首先,SpringBoot會(huì)從resource包下查找logback-test.xml或logback.xml ,如果這兩個(gè)都不存在,則會(huì)調(diào)用BasicConfigurator,創(chuàng)建一個(gè)最小化的基本配置。

最小化配置由一個(gè)關(guān)聯(lián)到根logger的ConsoleAppender組成,默認(rèn)輸出模式為%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n,root logger級(jí)別為DEBUG,所以并不會(huì)生成日志文件,只會(huì)輸出到控制臺(tái)。

創(chuàng)建logback.xml配置文件

通過(guò)自定義logback.xml配置文件來(lái)控制日志輸出情況,通常我們會(huì)配置三個(gè)日志組件:

控制臺(tái)輸出 輸出info級(jí)別日志文件 輸出error級(jí)別日志文件

以下為logback.xml完整配置

<!-- Logback configuration. See http://logback.qos.ch/manual/index.html --><configuration scan='true' scanPeriod='2 seconds'> <!--定義日志文件的存儲(chǔ)地址--> <property name='LOG_PATH' value='./logs' /> <!-- 控制臺(tái)輸出 --> <appender name='STDOUT' class='ch.qos.logback.core.ConsoleAppender'><encoder class='ch.qos.logback.classic.encoder.PatternLayoutEncoder'> <!--格式化輸出:%d表示日期,%-5level:級(jí)別從左顯示5個(gè)字符寬度,%t表示線程名,%msg:日志消息,%n是換行符--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level ${PID:-} --- [%t] %logger{50} - %msg%n</pattern></encoder> </appender> <!-- info級(jí)別日志文件輸出 --> <appender name='INFO_FILE' class='ch.qos.logback.core.rolling.RollingFileAppender'><!-- 日志文件輸出的文件名 --><File>${LOG_PATH}/info.log</File><rollingPolicy class='ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy'> <!-- 每日生成日志文件或日志文件大小超出限制后輸出的文件名模板 --> <fileNamePattern>${LOG_PATH}/info-%d{yyyy-MM-dd}.%i.log</fileNamePattern> <!-- 日志文件保留天數(shù) --> <maxHistory>30</maxHistory> <!-- 日志文件最大大小:100MB --> <maxFileSize>100MB</maxFileSize></rollingPolicy><encoder class='ch.qos.logback.classic.encoder.PatternLayoutEncoder'> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level ${PID:-} --- [%t] %logger{50} - %msg%n</pattern></encoder> </appender> <!-- error級(jí)別日志文件輸出 --> <appender name='ERROR_FILE' class='ch.qos.logback.core.rolling.RollingFileAppender'><!-- 日志輸出級(jí)別,優(yōu)先級(jí) > ’<root level>’ --><filter class='ch.qos.logback.classic.filter.ThresholdFilter'> <level>ERROR</level></filter><File>${LOG_PATH}/error.log</File><rollingPolicy class='ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy'> <fileNamePattern>${LOG_PATH}/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern> <maxHistory>30</maxHistory> <maxFileSize>100MB</maxFileSize></rollingPolicy><encoder class='ch.qos.logback.classic.encoder.PatternLayoutEncoder'> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level ${PID:-} --- [%t] %logger{50} - %msg%n</pattern></encoder> </appender> <!-- 默認(rèn)日志輸出級(jí)別 --> <root level='INFO'><appender-ref ref='STDOUT' /><appender-ref ref='INFO_FILE' /><appender-ref ref='ERROR_FILE' /> </root></configuration>logback配置說(shuō)明根節(jié)點(diǎn)configuration

<configuration scan='true' scanPeriod='2 seconds' debug='false'> </configuration>

configuration包含以下三個(gè)屬性:

scan:配置文件發(fā)生更改時(shí),進(jìn)行重載,默認(rèn)值為true scanPeriod:監(jiān)測(cè)配置文件是否有修改的時(shí)間間隔,默認(rèn)值為6000,默認(rèn)單位為毫秒 debug:打印logback內(nèi)部日志信息,實(shí)時(shí)查看logback運(yùn)行狀態(tài),默認(rèn)值為false子節(jié)點(diǎn)property:

<property name='LOG_PATH' value='./logs' />

用來(lái)定義變量值,包含以下兩個(gè)屬性

name:變量名稱 value:變量定義的值

通過(guò)property定義的值會(huì)被插入到logger上下文中,可以使${}來(lái)使用變量,這里定義了log的保存位置根目錄。

子節(jié)點(diǎn)appender:

<appender name='STDOUT' class='ch.qos.logback.core.ConsoleAppender'></appender>

是負(fù)責(zé)寫日志的組件,通過(guò)自定義日志組件控制日志輸出的情況,包含以下兩個(gè)屬性:

name:組件名稱 class:組件class指定的類名

不同的class,對(duì)應(yīng)不同的功能:

如ch.qos.logback.core.ConsoleAppender會(huì)把日志輸出到控制臺(tái)

ch.qos.logback.core.rolling.RollingFileAppender把日志內(nèi)容輸出到指定文件

File節(jié)點(diǎn):日志文件輸出的文件名

<File>${LOG_PATH}/info.log</File>

filter節(jié)點(diǎn):過(guò)濾器,用來(lái)指定日志組件的日志輸出級(jí)別,優(yōu)先級(jí)高于root節(jié)點(diǎn)的level。

<filter class='ch.qos.logback.classic.filter.ThresholdFilter'> <level>ERROR</level></filter>rollingPolicy節(jié)點(diǎn):

滾動(dòng)日志文件配置,涉及日志文件的移動(dòng)和重命名,只有一個(gè)class屬性,用來(lái)指定滾動(dòng)策略,這里使用的是ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy

包含以下三個(gè)屬性:

fileNamePattern:發(fā)生滾動(dòng)時(shí)的日志命名方式 maxHistory:日志文件的最大保留時(shí)間,超過(guò)設(shè)定時(shí)間后會(huì)自動(dòng)刪除 maxFileSize:每份日志文件的最大限制,超出限制后會(huì)重新生成,并將舊的日志文件按照f(shuō)ileNamePattern設(shè)定的日志命名方式進(jìn)行命名

<rollingPolicy class='ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy'> <fileNamePattern>${LOG_PATH}/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern> <maxHistory>30</maxHistory> <maxFileSize>100MB</maxFileSize></rollingPolicy>子節(jié)點(diǎn)encoder

<encoder class='ch.qos.logback.classic.encoder.PatternLayoutEncoder'> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level ${PID:-} --- [%t] %logger{50} - %msg%n</pattern></encoder>

對(duì)記錄事件進(jìn)行格式化,負(fù)責(zé)兩件事,一是把日志信息轉(zhuǎn)換成字節(jié)數(shù)組,二是把字節(jié)數(shù)組寫入到輸出流。PatternLayoutEncoder 是唯一有用的且默認(rèn)的encoder ,有一個(gè)節(jié)點(diǎn),用來(lái)設(shè)置日志的輸入格式。使用“%”加“轉(zhuǎn)換符”方式,如果要輸出“%”,則必須用“”對(duì)“%”進(jìn)行轉(zhuǎn)義。

子節(jié)點(diǎn)root

根loger,是所有l(wèi)oger的最上級(jí),且只有一個(gè)level節(jié)點(diǎn),用類設(shè)置打印日志的級(jí)別,默認(rèn)值為debug,通常設(shè)置為info,此外還有trace、warn、error、all、off級(jí)別。子節(jié)點(diǎn)appender-ref的ref屬性指定日志組件名稱,即appender的name屬性值。

使用logback

在yml文件中增加logging.config指定配置文件地址,命名為logback時(shí)可以不需要配置,SpringBoot`會(huì)自動(dòng)查找。

level設(shè)置指定路徑下的日志輸出級(jí)別。

logging: config: classpath:logback.xml level: com: springboot: debug

如圖所示,項(xiàng)目啟動(dòng)后,訪問(wèn)接口輸出日志內(nèi)容并生成指定日志文件:

springboot項(xiàng)目配置logback日志系統(tǒng)的實(shí)現(xiàn)

內(nèi)容參考

博客園-ryelqy-logback的使用和logback.xml詳解

到此這篇關(guān)于springboot項(xiàng)目配置logback日志系統(tǒng)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)springboot配置logback日志系統(tǒng)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 九九免费精品视频在这里 | 成年人免费网站视频 | 九九九九九九 | 99久久国产免费福利 | 亚洲一级网站 | 男女性高爱潮免费网站 | 影音先锋色先锋女同另类 | 黄色国产免费观看 | 欧美一级毛片日韩一级 | 在线观看成年人免费视频 | 国产三级日产三级韩国三级 | 日韩在线欧美在线 | 亚洲丝袜另类 | 午夜国产精品不卡在线观看 | 国产久视频 | 6一12呦女精品 | 成人亚洲国产精品久久 | 美女黄影院 | 久久这里一区二区精品 | 亚洲天堂2018av | 91亚洲自偷手机在线观看 | 九九在线精品视频xxx | 久久国产精品免费网站 | 欧美成人亚洲高清在线观看 | 在线欧美色 | 精品免费久久久久欧美亚一区 | 在线观看亚洲视频 | 久久伊人网站 | 国产精品亚洲精品 | 日韩黄色免费观看 | 黄在线观看在线播放720p | 色樱桃影院亚洲精品影院 | 亚洲日本一区二区三区在线 | 成人一级黄色片 | 免费看亚洲| 国产精品久久久天天影视香蕉 | 亚洲成年人专区 | 日韩三级观看 | 91免费网站在线看入口黄 | 亚洲精选在线观看 | 欧洲一级毛片 |