前言
接管了別的項(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)不打印日志的問題了。文章來源:http://www.zghlxwxcb.cn/news/detail-442117.html
95后小程序員,寫的都是日常工作中的親身實(shí)踐,置身于初學(xué)者的角度從0寫到1,詳細(xì)且認(rèn)真。文章會(huì)在公眾號(hào) [入門到放棄之路] 首發(fā),期待你的關(guān)注。文章來源地址http://www.zghlxwxcb.cn/news/detail-442117.html
到了這里,關(guān)于log4j控制臺(tái)不打印日志的故障解決方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!