log4j 告警:log4j:WARN No appenders could be found for logger

Posted 笑虾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了log4j 告警:log4j:WARN No appenders could be found for logger相关的知识,希望对你有一定的参考价值。

log4j 告警:log4j:WARN No appenders could be found for logger

可能原因

  1. 未添加 src/main/resources/log4j.properties 日志。
  2. 没放默认位置。

$log4j.logFileBasePath 是 pom.xml 中定义的环境变量。表示存log文件的根目录。

参考

log4j.rootLogger=ERROR,stdout,errorfile,infofile

# debug
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%p] %-dyyyy-MM-dd HH:mm:ss [%t] [%l]--> %m %x %n
log4j.appender.stdout.Threshold=DEBUG

# error
log4j.appender.errorfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.errorfile.layout=org.apache.log4j.PatternLayout
log4j.appender.errorfile.layout.ConversionPattern=[%p] %-dyyyy-MM-dd HH:mm:ss [%t] [%l]--> %m %x %n
log4j.appender.errorfile.Threshold=ERROR
log4j.appender.errorfile.encoding=UTF-8
log4j.appender.errorfile.File = $log4j.logFileBasePath/error_
log4j.appender.errorfile.DatePattern=yyyy-MM-dd'.log'

# info 
log4j.appender.infofile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.infofile.layout=org.apache.log4j.PatternLayout
log4j.appender.infofile.layout.ConversionPattern=[%p] %-dyyyy-MM-dd HH:mm:ss [%t] [%l]--> %m %x %n
log4j.appender.infofile.Threshold=INFO
log4j.appender.infofile.encoding=UTF-8
log4j.appender.infofile.File = $log4j.logFileBasePath/info_
log4j.appender.infofile.DatePattern=yyyy-MM-dd'.log'
log4j.appender.infofile.filter.F1=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.infofile.filter.F1.LevelMin=INFO
log4j.appender.infofile.filter.F1.LevelMax=WARN

# 指定要输出日志的包
log4j.logger.org.springframework=DEBUG
log4j.logger.com.ibatis=DEBUG
log4j.logger.org.mybatis=DEBUG
  1. log4j.rootLogger=ERROR 表示只输出ERROR等级及更严重的日志(小问题别烦我)。
  2. stdout,errorfile,infofile:是定义了三个 Appender (按需求可以定义不同的输出行为,位置效果等)
  3. 指定使用何种 Appender 的写法:log4j.appender.上面定义的Appender名称=具体Appender类名
    3.1. org.apache.log4j.ConsoleAppender:默认向控制台输出日志。
    3.2. org.apache.log4j.DailyRollingFileAppender:按用户制定的策略滚动输出日志。
  4. org.apache.log4j.PatternLayout 继承自 org.apache.log4j.Layout,提供格式化日志的能力:
    4.1. ConversionPattern=[%p] %-dyyyy-MM-dd HH:mm:ss [%t] [%l]--> %m %x %n 设置格式化样式。
  5. log4j.appender.infofile.Threshold=INFO 覆盖 log4j.rootLogger=ERROR 根的设置将日志输出登记改为 INFO
  6. log4j.appender.errorfile.encoding=UTF-8:日志文件编码格式。
  7. log4j.appender.errorfile.File = $log4j.logFileBasePath/error_:日志文件位置。(我这里用到了占位符号)
  8. log4j.appender.errorfile.DatePattern=yyyy-MM-dd'.log':日志文件后缀。(不变的部分用引号引起来。)
  9. log4j.logger.org.mybatis=DEBUG:指定此包及以下的日志需要输出。可以加多个。

参数含义日志等级之类的说明可以看参考资料。

参考资料

Java 学习笔记 - 日志体系 SLF4J + Log4j2

以上是关于log4j 告警:log4j:WARN No appenders could be found for logger的主要内容,如果未能解决你的问题,请参考以下文章

log4j:WARN No appenders could be found for logger

log4j:WARN No appenders could be found for logger

log4j:WARN No appenders could be found for logger错误

log4j:WARN No appenders could be found for logger

解决log4j:WARN No appenders could be found for logger

idea提示log4j:WARN No appenders could be found for logger