Springboot允許logger.debug輸出日志方式
Springboot允許logger.debug輸出日志
說(shuō)實(shí)話對(duì)日志這東西一直只是太膚淺的懂,就會(huì)用logger.info和logger.error輸出,今天在寫LemonRobot項(xiàng)目的時(shí)候,決定把調(diào)試信息也打出來(lái),然后根據(jù)日志級(jí)別控制讓上線的時(shí)候不顯示debug級(jí)別的日志。
但是運(yùn)行后發(fā)現(xiàn),默認(rèn)logger.debug產(chǎn)生的日志也沒有輸出到控制臺(tái),經(jīng)過(guò)一番研究,是由于logback的配置問題。
在sr/main/resources文件夾中新建logback.xml,然后復(fù)制下面的配置到文件中:
logback.xml會(huì)被自動(dòng)加載,如果名字不一樣,我們需要在application.yml或者是application.properties中配置:
#配置日志 logging: #此處存放日志的路徑 ? path: ? ? config: classpath:config/logback-spring.xml #指定不同目錄下的日志的級(jí)別 ? level: ? ? com.shimain.springboot.mapper: DEBUG
<?xml version="1.0" encoding="UTF-8" ?>
<configuration scan="true" scanPeriod="3 seconds">
? ? <!--設(shè)置日志輸出為控制臺(tái)-->
? ? <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
? ? ? ? <encoder>
? ? ? ? ? ? <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] [%logger{32}] %msg%n</pattern>
? ? ? ? </encoder>
? ? </appender>
? ? <!--設(shè)置日志輸出為文件-->
? ? <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
? ? ? ? <File>logFile.log</File>
? ? ? ? <rollingPolicy ?class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
? ? ? ? ? ? <FileNamePattern>logFile.%d{yyyy-MM-dd_HH-mm}.log.zip</FileNamePattern>
? ? ? ? </rollingPolicy>
? ? ? ? <layout class="ch.qos.logback.classic.PatternLayout">
? ? ? ? ? ? <Pattern>%d{HH:mm:ss,SSS} [%thread] %-5level %logger{32} - %msg%n</Pattern>
? ? ? ? </layout>
? ? </appender>
? ? <root>
? ? ? ? <level value="DEBUG"/>
? ? ? ? <appender-ref ref="STDOUT"/>
? ? ? ? <appender-ref ref="FILE"/>
? ? </root>
</configuration>這段配置文件可以讓日志同時(shí)輸出到控制臺(tái)和本地文件,同時(shí)將日志文件打成zip壓縮包。
如果這個(gè)時(shí)候項(xiàng)目上線了,不需要debug日志了,只需要修改root標(biāo)簽下面的level級(jí)別為INFO即可。
SpringBoot啟動(dòng)debug級(jí)別日志報(bào)錯(cuò)
Tomcat Native library could not be found using names [tcnative-1, libtcnative-1]
錯(cuò)誤截圖

原因
tomcat沒有找到JNI動(dòng)態(tài)鏈接庫(kù)。Apache Tomcat下是有這個(gè)dll的,但是啟動(dòng)時(shí)在Springboot中內(nèi)嵌Tomcat下沒有找到。
這是因?yàn)門omcat中的connector為了提高性能,采用了加載與操作系統(tǒng)綁定(非跨平臺(tái))的本地庫(kù)的方式,比如Windows系統(tǒng)中就是.dll動(dòng)態(tài)鏈接庫(kù)。
上述異常中找不到的兩個(gè).dll庫(kù)文件,默認(rèn)會(huì)去Tomcat的bin目錄下去找,但是由于SpringBoot的Tomcat是嵌入式的,沒有這兩個(gè).dll。
解決辦法
可以忽略這個(gè)報(bào)錯(cuò),因此SpringBoot把這個(gè)錯(cuò)誤的日志級(jí)別設(shè)置為debug。
如果有強(qiáng)迫癥者,也可以按如下方式解決:
直接將tomcat下的tcnative-1.dll和libtcnative-1.dll放到C:\Windows\System32下,重新啟動(dòng)項(xiàng)目即可。
可到官方地址下載。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java 高并發(fā)十: JDK8對(duì)并發(fā)的新支持詳解
本文主要介紹Java 高并發(fā)JDK8的支持,這里整理了詳細(xì)的資料及1. LongAdder 2. CompletableFuture 3. StampedLock的介紹,有興趣的小伙伴可以參考下2016-09-09
springboot整合webservice使用簡(jiǎn)單案例總結(jié)
WebService是一個(gè)SOA(面向服務(wù)的編程)的架構(gòu),它是不依賴于語(yǔ)言,平臺(tái)等,可以實(shí)現(xiàn)不同的語(yǔ)言間的相互調(diào)用,下面這篇文章主要給大家介紹了關(guān)于springboot整合webservice使用的相關(guān)資料,需要的朋友可以參考下2024-07-07
Java while(scanner.hasNext())無(wú)法跳出的解決方案
這篇文章主要介紹了Java while(scanner.hasNext())無(wú)法跳出的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10
MyBatis關(guān)閉一級(jí)緩存的兩種方式(分注解和xml兩種方式)
這篇文章主要介紹了MyBatis關(guān)閉一級(jí)緩存的兩種方式(分注解和xml兩種方式),mybatis默認(rèn)開啟一級(jí)緩存,執(zhí)行2次相同sql,但是第一次查詢sql結(jié)果會(huì)加工處理這個(gè)時(shí)候需要關(guān)閉一級(jí)緩存,本文給大家詳細(xì)講解需要的朋友可以參考下2022-11-11
bug解決Failed_to_execute_goal_org.springframework
這篇文章主要為大家介紹了bug解決Failed_to_execute_goal_org.springframework,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
Java函數(shù)式編程(一):你好,Lambda表達(dá)式
這篇文章主要介紹了Java函數(shù)式編程(一):你好,Lambda表達(dá)式,本文講解了新老函數(shù)式編程的一些變化,需要的朋友可以參考下2014-09-09
SpringBoot3和ShardingSphere5框架實(shí)現(xiàn)數(shù)據(jù)分庫(kù)分表
這篇文章主要介紹了SpringBoot3和ShardingSphere5框架實(shí)現(xiàn)數(shù)據(jù)分庫(kù)分表的相關(guān)資料,需要的朋友可以參考下2023-08-08
Java面試題沖刺第四天--數(shù)據(jù)庫(kù)
這篇文章主要為大家分享了最有價(jià)值的三道數(shù)據(jù)庫(kù)面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目、經(jīng)典面試編程題等,感興趣的小伙伴們可以參考一下2021-07-07

