我们在Log4J的使用中,偶尔会发生这样的场景:我们明明已经配置了log4j.properties文件 但是有时候就不按预期输出日志。

归其原因,有两种:

1.多种依赖jar包相互干扰。

2.其他的配置文件被加载覆盖了你自己的配置。

对于场景一:可以使用maven的dependency:tree查看依赖的jar包排除相关传递依赖就可以了

对于场景二: 可以打开Log4j的调试模式,运行程序然后通过日志确定加载的配置文件

System.setProperty("log4j.debug","true");
LogLog.setQuietMode(false);
Connected to the target VM, address: '127.0.0.1:51578', transport: 'socket'
log4j: Trying to find [log4j.xml] using context classloader sun.misc.Launcher$AppClassLoader@18b4aac2.
log4j: Trying to find [log4j.xml] using sun.misc.Launcher$AppClassLoader@18b4aac2 class loader.
log4j: Trying to find [log4j.xml] using ClassLoader.getSystemResource().
log4j: Trying to find [log4j.properties] using context classloader sun.misc.Launcher$AppClassLoader@18b4aac2.
log4j: Using URL [file:/Users/shangkuidu/code/Cloud/dcom/alibaba-push-web/target/classes/log4j.properties] for automatic log4j configuration.
log4j: Reading configuration from URL file:/Users/shangkuidu/code/Cloud/dcom/alibaba-push-web/target/classes/log4j.properties
log4j: Parsing for [root] with value=[DEBUG,Console,syslog].
log4j: Level token is [DEBUG].
log4j: Category root set to DEBUG
log4j: Parsing appender named "Console".
log4j: Parsing layout options for "Console".
log4j: Setting property [conversionPattern] to [[%-d{yyyy-MM-dd HH:mm:ss}][%p][%t]%l-%m%n].
log4j: End of parsing for "Console".
log4j: Setting property [immediateFlush] to [true].
log4j: Setting property [target] to [System.out].
log4j: Parsed "Console" options.
log4j: Parsing appender named "syslog".
log4j: Parsing layout options for "syslog".
log4j: Setting property [conversionPattern] to [[%p][%-d{yyyy-MM-dd HH:mm:ssS}][%t]%l-%m%n].
log4j: End of parsing for "syslog".
log4j: Setting property [encoding] to [utf-8].
log4j: Setting property [file] to [logs/syslog.log].
log4j: Setting property [immediateFlush] to [true].
log4j: Setting property [append] to [true].
log4j: Setting property [datePattern] to ['.'yyyy-MM-dd].
log4j: Setting property [threshold] to [ERROR].
log4j: setFile called: logs/syslog.log, true
log4j: setFile ended
log4j: Appender [syslog] to be rolled at midnight.
log4j: Parsed "syslog" options.
log4j: Parsing for [net.sf.hibernate.cache] with value=[ERROR].
log4j: Level token is [ERROR].
log4j: Category net.sf.hibernate.cache set to ERROR
log4j: Handling log4j.additivity.net.sf.hibernate.cache=[null]
log4j: Finished configuring.
[2020-12-09 10:42:14][INFO][main]com.iwhalecloud.dcom.server.AlibabaPushWebApplication.main(AlibabaPushWebApplication.java:60)-initing

打成jar包后我们发现:

dushangkui:~ shangkuidu$ cd /Users/shangkuidu/code/Cloud/dcom/alibaba-push-web/target/
dushangkui:target shangkuidu$ java -jar alibaba-push-web-0.0.1-SNAPSHOT.jar
log4j: Trying to find [log4j.xml] using context classloader org.springframework.boot.loader.LaunchedURLClassLoader@6504e3b2.
log4j: Trying to find [log4j.xml] using sun.misc.Launcher$AppClassLoader@42a57993 class loader.
log4j: Trying to find [log4j.xml] using ClassLoader.getSystemResource().
log4j: Trying to find [log4j.properties] using context classloader org.springframework.boot.loader.LaunchedURLClassLoader@6504e3b2.
log4j: Using URL [jar:file:/Users/shangkuidu/code/Cloud/dcom/alibaba-push-web/target/lib/opentsdb-client-3.1.jar!/log4j.properties] for automatic log4j configuration.
log4j: Reading configuration from URL jar:file:/Users/shangkuidu/code/Cloud/dcom/alibaba-push-web/target/lib/opentsdb-client-3.1.jar!/log4j.properties
log4j: Parsing for [root] with value=[INFO,console].
log4j: Level token is [INFO].
log4j: Category root set to INFO
log4j: Parsing appender named "console".
log4j: Parsing layout options for "console".
log4j: Setting property [conversionPattern] to [[%-5p] %d(%r) --> [%t] %l: %m %x %n].
log4j: End of parsing for "console".
log4j: Setting property [immediateFlush] to [true].
log4j: Setting property [threshold] to [INFO].
log4j: Setting property [target] to [System.out].
log4j: Parsed "console" options.
log4j: Finished configuring.
[INFO ] 2020-12-09 10:43:52,456(0) --> [main] com.iwhalecloud.dcom.server.AlibabaPushWebApplication.main(AlibabaPushWebApplication.java:60): initing
[ERROR] 2020-12-09 10:43:52,458(2) --> [main] com.iwhalecloud.dcom.server.AlibabaPushWebApplication.main(AlibabaPushWebApplication.java:61): inited
[INFO ] 2020-12-09 10:43:52,691(235) --> [background-preinit] org.hibernate.validator.internal.util.Version.<clinit>(Version.java:21): HV000001: Hibernate Validator 6.0.17.Final  

从日志我们很明显的看到加载的配置文件不是我们自己的

log4j: Using URL [jar:file:/Users/shangkuidu/code/Cloud/dcom/alibaba-push-web/target/lib/opentsdb-client-3.1.jar!/log4j.properties] for automatic log4j configuration.

如果确定了配置被覆盖或者加载的不是自己的配置可以通过以下方式,重新加载配置

URL url = AlibabaPushWebApplication.class.getResource("/config/log4j.properties");
PropertyConfigurator.configure(url);

Log4J日志打印不到文件相关推荐

  1. logback不同业务的日志打印到不同文件

    logback不同业务的日志打印到不同文件 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/mggwct/article/details/777181 ...

  2. log4j日志打印详解实战

    1.为什么要使用log4j? Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件.甚至是套接口服务器.NT的事件记录器.UNI ...

  3. 【log4j2打印日志】指定日志打印到指定文件

    背景:为了更加方便查看针对的某些日志,log4j2记录 某一个类某些方法打印的日志到指定文件. 第一步:配置log4j2.xml <?xml version="1.0" en ...

  4. 关于log4j日志打印堆栈的记录

    ----遇到的一个日志的问题,与这位同学遇到的差不多,遂转载 转自: https://blog.csdn.net/weiweiai123456/article/details/72864838 记录下 ...

  5. log4j日志打印异常堆栈信息。

    https://www.cnblogs.com/lingyejun/p/9366533.html 五.结论 使用Logger.error(e).Logger.error(e.getMessage()) ...

  6. Log4j的日志打印级别理解

    之前对log4j日志打印一直没有在意过,等在自己要用的时候却又似懂非懂的样子,今天特意记录一下: 常用的5种日志级别 按照优先级从高到低排序:FATAL, ERROR.WARN.INFO.DEBUG: ...

  7. java 日志颜色_【Java】+日志打印+日志颜色设置

    先看个效果 一.log4j日志打印配置 1.1.maven依赖 log4j log4j 1.2.17 1.2.新建log4j.properties文件 项目src目录下新建一个文件 "log ...

  8. Mybatis-plus开启和关闭SQL日志打印

    开启日志打印 application.yml文件开启方式: mybatis-plus:mapper-locations: classpath:mapper/*.xmlconfiguration:#关闭 ...

  9. WebLogic 12C服务器无法打印log4j日志问题,与log4j日志动态打印记录

    环境 windows 服务器 weblogic 12C 日志 log4j或log4j2 叙述: 项目打印日志,要求需要用到log4j或log4j2,服务器用weblogic 12c,同时实现动态打印( ...

最新文章

  1. plot与legend画图与图例
  2. php.ini设置相关信息汇总
  3. MYSQL数据库应用优化
  4. java 实现压缩单个文件
  5. 整合Druid---SpringBoot
  6. java 字符串拆分成单个字符放到 list 集合
  7. JAVA利用google的zxing快速生成QRCode
  8. 异常处理-trycatch
  9. java base64 转图片不现实_Base64.decodeBase64将base64转图片的问题
  10. javascript的规范
  11. 【正在完善】高级CSS特效解析其示范案例
  12. 2018上半年区块链安全报告
  13. dsoframer.ocx java_DSOFramer.ocx 控件使用
  14. Cterm里面自动发帖的Python脚本
  15. NUC8i7HNK下ubuntu16.04LTS安装realsense
  16. 数学之美番外篇:进化论中的概率论
  17. 窗口函数深度探索(二):控制窗口大小(UNBOUNDED、CURRENT、PRECEDING、FOLLOWING)
  18. 骨灰级玩家体验带你测试体验天使纪元OL折扣端
  19. 【操作系统】设备管理
  20. 成熟男人和女孩的精彩对白

热门文章

  1. 数据可视化_用Matplotlib绘制折线图
  2. 数据挖掘系列(4)_Excel的数据挖掘插件_预测
  3. Docker部署JiraConfluence
  4. 计算机窗口闪屏,热点:电脑显示器闪屏(电脑屏幕闪烁的解决方法)
  5. android回车键
  6. airpodspro窃听模式_苹果 AirPods Pro 的“通透模式”和“关闭”有什么区别?
  7. win7中怎样现实文件后缀名,以及怎样显示运行功能
  8. 专题三 matlab基础
  9. 企业IT信息化战略规划(附下载)
  10. 品牌出海,海外社媒营销有哪些?