log4j控制台不打印日志故障的详细解决方案
前言
接管了别的项目组的一个代码,在IDAE调试程序的过程中,发现log4j日志居然没有打印在控制台上,日志相关代码也没有问题。
在网上搜索了一圈,总结了一下个人解决这个问题的流程。
流程
1. 判断用了什么配置文件
不知道是出于什么目的,项目中居然有log4j的properties和xml两个配置文件。

刚开始我都没有看到xml文件,一直在关注properties文件,发现也没啥问题。后来在Vm options添加了**-Dlog4j.debug**,在启动时打印log4j的信息中发现,log4j用的是xml文件。

2. additivity
其次就是<logger>的additivity属性。
<!-- 打印到控制台 -->
<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>定义了日志以什么样的格式输出到控制台或者文件中。<logger>决定项目中的每个class绑定哪个appender。<root>是根logger,会绑定多个appender。
logger的additivity默认为true,表示此logger要打印的日志也要传给root一份,让root的appender进行打印。
3. 解决方案
方案一
修改additivity为true,或者直接去掉,因为默认值就是true
方案二
在com.test的logger里面将console的appender添加进去。
<!-- logger --> <logger name="com.test" additivity="false"> <level value="INFO" /> <appender-ref ref="fileAppender" /> <appender-ref ref="myConsole" /> </logger>
这样,就解决了在控制台不打印日志的问题了。
总结
到此这篇关于log4j控制台不打印日志故障的详细解决方案的文章就介绍到这了,更多相关log4j控制台不打印日志内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
解决SpringCloud下spring-boot-maven-plugin插件的打包问题
这篇文章主要介绍了SpringCloud下spring-boot-maven-plugin插件的打包问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-03-03
springboot项目读取resources目录下的文件的9种方式
本文主要介绍了springboot项目读取resources目录下的文件的9种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-04-04
Mybatis-plus批量去重插入ON DUPLICATE key update使用方式
这篇文章主要介绍了Mybatis-plus批量去重插入ON DUPLICATE key update使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-12-12
springboot-jta-atomikos多数据源事务管理实现
本文主要介绍了springboot-jta-atomikos多数据源事务管理实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2022-03-03
IDEA 程序包不存在,找不到符号但是明明存在对应的jar包(问题分析及解决方案)
这篇文章主要介绍了IDEA 程序包不存在,找不到符号但是明明存在对应的jar包 的解决方案,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-08-08


最新评论