log4j控制臺(tái)不打印日志故障的詳細(xì)解決方案
前言
接管了別的項(xiàng)目組的一個(gè)代碼,在IDAE調(diào)試程序的過程中,發(fā)現(xiàn)log4j日志居然沒有打印在控制臺(tái)上,日志相關(guān)代碼也沒有問題。
在網(wǎng)上搜索了一圈,總結(jié)了一下個(gè)人解決這個(gè)問題的流程。
流程
1. 判斷用了什么配置文件
不知道是出于什么目的,項(xiàng)目中居然有l(wèi)og4j的properties和xml兩個(gè)配置文件。
剛開始我都沒有看到xml文件,一直在關(guān)注properties文件,發(fā)現(xiàn)也沒啥問題。后來在Vm options添加了**-Dlog4j.debug**,在啟動(dòng)時(shí)打印log4j的信息中發(fā)現(xiàn),log4j用的是xml文件。
2. additivity
其次就是<logger>的additivity屬性。
<!-- 打印到控制臺(tái) --> <appender name="myConsole" class="org.apache.log4j.ConsoleAppender"> <param name="Target" value="System.out" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="[%d{dd HH:mm:ss,SSS\} %-5p] [%t] %c{2\} - %m%n" /> </layout> </appender> <!-- 打印到文件中 --> <appender name="fileAppender" class="org.apache.log4j.DailyRollingFileAppender"> <param name="File" value="${logfileName}.log" /> <param name="DatePattern" value="'.'yyyy-MM-dd'.log'" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="[%d{MMdd HH:mm:ss SSS\} %-5p] [%t] %c{3\} - %m%n" /> </layout> </appender> <!-- logger --> <logger name="com.test" additivity="false"> <level value="INFO" /> <appender-ref ref="fileAppender" /> </logger> <!-- root --> <root> <priority value ="INFO"/> <appender-ref ref="myConsole"/> </root>
在xml配置文件中,<appender>定義了日志以什么樣的格式輸出到控制臺(tái)或者文件中。<logger>決定項(xiàng)目中的每個(gè)class綁定哪個(gè)appender。<root>是根logger,會(huì)綁定多個(gè)appender。
logger的additivity默認(rèn)為true,表示此logger要打印的日志也要傳給root一份,讓root的appender進(jìn)行打印。
3. 解決方案
方案一
修改additivity為true,或者直接去掉,因?yàn)槟J(rèn)值就是true
方案二
在com.test的logger里面將console的appender添加進(jìn)去。
<!-- logger --> <logger name="com.test" additivity="false"> <level value="INFO" /> <appender-ref ref="fileAppender" /> <appender-ref ref="myConsole" /> </logger>
這樣,就解決了在控制臺(tái)不打印日志的問題了。
總結(jié)
到此這篇關(guān)于log4j控制臺(tái)不打印日志故障的詳細(xì)解決方案的文章就介紹到這了,更多相關(guān)log4j控制臺(tái)不打印日志內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springboot+AOP實(shí)現(xiàn)時(shí)間參數(shù)格式轉(zhuǎn)換
前端傳過來的時(shí)間參數(shù),后端可以自定義時(shí)間格式轉(zhuǎn)化使用,這樣想轉(zhuǎn)成什么就轉(zhuǎn)成什么。本文將利用自定義注解AOP實(shí)現(xiàn)時(shí)間參數(shù)格式轉(zhuǎn)換,感興趣的可以了解一下2022-04-04解決SpringCloud下spring-boot-maven-plugin插件的打包問題
這篇文章主要介紹了SpringCloud下spring-boot-maven-plugin插件的打包問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03springboot項(xiàng)目讀取resources目錄下的文件的9種方式
本文主要介紹了springboot項(xiàng)目讀取resources目錄下的文件的9種方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04Mybatis-plus批量去重插入ON DUPLICATE key update使用方式
這篇文章主要介紹了Mybatis-plus批量去重插入ON DUPLICATE key update使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12springboot-jta-atomikos多數(shù)據(jù)源事務(wù)管理實(shí)現(xiàn)
本文主要介紹了springboot-jta-atomikos多數(shù)據(jù)源事務(wù)管理實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03Java編程實(shí)現(xiàn)基于TCP協(xié)議的Socket聊天室示例
這篇文章主要介紹了Java編程實(shí)現(xiàn)基于TCP協(xié)議的Socket聊天室,結(jié)合實(shí)例形式詳細(xì)分析了java基于TCP協(xié)議的Socket聊天室客戶端與服務(wù)器端相關(guān)實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下2018-01-01IDEA 程序包不存在,找不到符號(hào)但是明明存在對(duì)應(yīng)的jar包(問題分析及解決方案)
這篇文章主要介紹了IDEA 程序包不存在,找不到符號(hào)但是明明存在對(duì)應(yīng)的jar包 的解決方案,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08Java實(shí)現(xiàn)的AES256加密解密功能示例
這篇文章主要介紹了Java實(shí)現(xiàn)的AES256加密解密功能,結(jié)合完整實(shí)例形式分析了Java實(shí)現(xiàn)AES256加密解密功能的步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-02-02