本文主要是介绍log4j:WARN Please initialize the log4j system properly的解决办法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
背景:很多次创建新项目log4j都出现以下2个警告:
log4j:WARN No appenders could be found for logger (org.springframework.boot.ApplicationServletEnvironment).
log4j:WARN Please initialize the log4j system properly
网上查询都是在说缺少以下jar包,要么缺少logback-core 要么缺少 logback-classic要么缺少slf4j-log4j12,结果全加了都无效
最终解决办法:把以上3个jar包都干掉,根本不需要,只需配置一个xml:
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false"><!-- 监听器,指定日志文件存放目录 --><contextName>logback</contextName><!--控制台输出内容的颜色转换以及格式--><substitutionProperty name="logging.pattern.console"value="%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/><!--日志文件输出内容的格式--><substitutionProperty name="logging.pattern.file"value="%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/><!-- 彩色日志依赖的渲染类 --><conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/><conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/><conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/><!--输出到控制台--><appender name="console" class="ch.qos.logback.core.ConsoleAppender"><!--控制台使用layout节点--><layout class="ch.qos.logback.classic.PatternLayout"><pattern>${logging.pattern.console}</pattern></layout><!--输出哪个类第几行--><encoder> <!-- 日志格式 --><pattern>%date-%level-[%F:%L]-[%thread]-%msg%n</pattern> ##F 类名 L 行数</encoder></appender><!--按天生成日志--><appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"><Prudent>true</Prudent><!--滚动策略,我配置了按天生成日志文件--><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!--相对路径,生成的文件就在项目根目录下--> <!--不添加 D:/就不会在d盘下生成,就会在jar包同盘下生成--><FileNamePattern>/项目名Log/%d{yyyy-MM}/%d{yyyy-MM-dd}.log</FileNamePattern><!--注意超过30天的日志文件会被删除,即使已经按天分开也会删除--><MaxHistory>30</MaxHistory></rollingPolicy><!--日志文件里只保存ERROR及以上级别的日志--><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>ERROR</level></filter><!--文件使用encoder节点--><encoder><Pattern>${logging.pattern.file}</Pattern></encoder></appender><!--这个logger里的配置相当于之前yml里的logging.level.com.xxx: trace--><!--additivity的作用true,则子Logger不止会在自己的appender里输出,还会在root的logger的appender里输出--><!--而这个logger里没配置appender,所以得交给root打印--><!--所以com.xxx 包里的日志从TRACE级别开始--><!--其他包里的日志根据root的配置从INFO级别开始打印--><logger name="com.xxx" level="TRACE" additivity="true"></logger><!--com.xxx的xxx记得改成自己实际项目根路径 --><root level="INFO"><appender-ref ref="console"/><appender-ref ref="file"/></root></configuration>
如果使用了mybatis,就在application.properties或yml中加上个:
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
如果是mybatis-plus就改为:
mybatis-plus:mapper-locations: classpath:mapper/*.xml
#打印sqlconfiguration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
再次启动项目发现警告信息没了
这篇关于log4j:WARN Please initialize the log4j system properly的解决办法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!