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

2023-10-31

一、SSH在使用Log4j进行日志管理时常会遇到这个异常:

log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
log4j:WARN Please initialize the log4j system properly.

网上也有很多解决方案,我在此总结了一下,出现这个问题时应该按以下思路来排查:

1. 确保log4j的配置文件log4j.properties或log4j.xml已经存在(在classpath路径或其他路径下都行,文件内容可参考后面的内容)

2. 没有在web.xml中配置log4j的监听器,如果没有按以下方式配置:

 <!-- log4j配置文件地址 -->
  <context-param>
   <param-name>log4jConfigLocation</param-name>
   <param-value>/WEB-INF/log4j/log4j.properties</param-value>
 </context-param>
 <!-- spring配置文件地址 -->
  <context-param>
  	<param-name>contextConfigLocation</param-name>
  	<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
  </context-param>
  
   <!-- Log4j的监听器要放在spring监听器前面 -->
   <listener>
	<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
  </listener>
  <!-- spring的监听器 -->
  <listener>
  	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>


注意:Log4j的监听器要放在spring监听器前面

3. 确保log4j.properties中没有明显的错误存在,如logger或appender配置有误

二、实践验证中的疑似小问题

经过上述几个步骤的排查和修改,日志输出应该没异常了,但实际运行中,还存在一个疑似的问题,就是设置输出到文件中的日志,同时在控制台也会输出,而控制台并没有设置相应的logger,log4j.properties配置如下:

log4j.rootLogger = WARN,C1
log4j.addivity.org.apache=true
 
#category
log4j.category.org.hibernate.tool.hbm2ddl =DEBUG,F1
log4j.category.org.hibernate.SQL =DEBUG,A1 
 
#应用于控制台  
log4j.appender.C1=org.apache.log4j.ConsoleAppender
#log4j.appender.C1.Threshold=WARNING
log4j.appender.C1.Target=System.out
#log4j.appender.C1.Encoding=UTF-8
log4j.appender.C1.layout=org.apache.log4j.PatternLayout
log4j.appender.C1.layout.ConversionPattern=[CONSOLE] %d - %c -%-4r [%t] %-5p %c %x - %m%n   
  
#每天建新日志   
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File=E:\\JavaEE workspace\\Spring\\logs\\log4j_daily.log
#log4j.appender.A1.Encoding=UTF-8   
#log4j.appender.A1.Threshold=DEBUG   
log4j.appender.A1.DatePattern=.yyyy-MM-dd   
log4j.appender.A1.layout=org.apache.log4j.PatternLayout   
log4j.appender.A1.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L : %m%n
  
#应用于文件
log4j.appender.F1=org.apache.log4j.FileAppender   
log4j.appender.F1.File=E:\\JavaEE workspace\\Spring\\logs\\Spring.log   
log4j.appender.F1.Append=true 
#log4j.appender.F1.Threshold=DEBUG  
#log4j.appender.F1.Encoding=UTF-8  
log4j.appender.F1.layout=org.apache.log4j.PatternLayout 
log4j.appender.F1.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n


操作数据库,有SQL输出到文件log4j_daily.log时,控制台也同样输出(控制台并没有这个logger的输出设置):

[CONSOLE] 2013-07-16 17:19:00,953 - org.hibernate.SQL -8235 [http-8080-2] DEBUG org.hibernate.SQL  - select cat0_.id as id0_, cat0_.create_date as create2_0_, cat0_.description as descript3_0_, cat0_.mother_id as mother5_0_, cat0_.name as name0_ from tb_cat cat0_
   Hibernate: select cat0_.id as id0_, cat0_.create_date as create2_0_, cat0_.description as descript3_0_, cat0_.mother_id as mother5_0_, cat0_.name as name0_ from tb_cat cat0_

不知这种情况算不算是正常。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

log4j:WARN No appenders could be found for logger 的解决方法 的相关文章

  • 关闭 log4j Logger 以释放文件描述符

    我编写了一个服务器来接收 RMI 请求并执行一些操作 对于每个请求 都会创建一个 Log4J Logger 实例 以下是用于创建 Logger 实例的代码片段 Logger log Logger getLogger log requestI
  • 集群部署模式下的 Spark-Submit 将应用程序 ID 获取到控制台

    我陷入了一个需要快速解决的问题 我已经阅读了许多关于 Spark 集群部署模式的帖子和教程 但我对这种方法一无所知 因为我被困了几天 我的用例 我有很多使用 spark2 submit 命令提交的 Spark 作业 提交后我需要在控制台中打
  • 覆盖 WildFly 中的日志记录

    我使用 tomcat 并简单地覆盖默认日志系统 如何在我的 Spring 应用程序中启用 Wildfly 上的 logback 日志记录 我的 Logback xml 在 tomcat 上工作
  • 使用 log4j 记录到数据库

    由于在 log4j 中javadoc http logging apache org log4j 1 2 apidocs org apache log4j jdbc JDBCAppender html is 警告 这个版本的 JDBCApp
  • log4j:记录包,但不包括其子包

    您好 我想排除某些子包被我的一个记录器记录 因为它们正在被另一个记录器记录 例如 com mysite app logger1 com mysite app news logger2 com mysite app events logger
  • 使用log4j2,如何记录键值对

    我需要创建带有键值对的日志 如下所示 PatternLayout 是否支持使用 log4j2 xml 对线程中的静态字段 如 log level class name event id 等 执行此操作 日志样本 2014 06 18 11
  • 使用 JAR 加载 log4j.properties [重复]

    这个问题在这里已经有答案了 我有一个包含以下清单的 jar 文件 Manifest Version 1 0 Created By 1 7 0 07 Oracle Corporation Main Class test Main Class
  • 如何使用 log4j2 Commons 日志桥

    我想将 log4j2 Commons Logging Bridge 与 commons 1 2 一起使用 我尝试使用如下内容 import org apache logging log4j jcl LogFactoryImpl public
  • 如何仅在 log4j 中记录警告

    在 Struts 2 应用程序中 我们使用 log4j 进行日志记录 我只想记录警告 但是当我尝试在 log4j properties 中使用时 log4j rootLogger warn stdout 它也打印错误和致命日志 我只想要警告
  • 将 System.out.println 记录到单个应用程序的日志文件

    我们在 tomcat 上有多个应用程序 它们使用 System out println 语句记录到 catalina out 有一个应用程序会创建大量日志语句 因此我想将这些应用程序输出记录到单独的日志文件中 我创建了一个 log4j xm
  • 记录多线程应用程序中的活动

    我有一个 Java 分层应用程序 它有一个从不同点调用的多线程数据访问层 对该层的一次调用可能会产生多个线程来并行化对数据库的请求 我正在寻找的是一个日志记录工具 它允许我定义由各种线程组成的 活动 因此 数据访问层中的相同方法应根据其调用
  • maven install 仅在第二次尝试后抛出“打开 zip 文件时出错”

    我尝试在我的项目上运行 Maven install 并带有一些依赖项
  • Java 优化器会删除空方法调用的参数构造吗?

    假设我有这样的代码 log info Now the amount amount seems a bit high 我将用虚拟实现替换 log 方法 例如 class Logger public void info 如果没有检测到副作用 优
  • 用户主目录中的 log4j 日志文件

    我正在开发一个可以在 OSX 和 Windows 上运行的应用程序 我希望将日志写入用户主目录 对于 OSX 它将位于 Users Library Application Support MyApp log 目录下 而在 Windows 下
  • 无法让 grizzly 日志记录工作,没有任何内容写入我的 log4j 日志文件

    我有一个简单的 Java Spring 程序 使用标准 log4j properties 文件来控制日志记录 工作正常 当我们通过以下方式添加 Grizzly 时 GrizzlyHttpServerFactory createHttpSer
  • 从 Glassfish 取消部署 Grails 应用程序会发生类不变性违规

    我有一个在 Glassfish 中运行的 Grails 应用程序 但是当我取消部署时 它会出现 违反类不变性 快速查看堆栈跟踪并在网络上搜索报告 这是 Log4j 的问题 我当时使用的是最新的log4jlog4j 1 2 16 jar 任何
  • 使用Log4j在日志中输出Spark应用程序id

    我有一个用于 Spark 应用程序的自定义 Log4j 文件 我想输出 Spark 应用程序 ID 以及消息和日期等其他属性 因此 JSON 字符串结构如下所示 name time date level thread message app
  • log4j 中的异常深度

    我的 Myfaces 2 应用程序遇到实例化异常 但是通过 log4j 打印的异常会切断堆栈跟踪的其余部分 这是我所看到的 javax faces FacesException java lang InstantiationExceptio
  • 压缩 Log4j 文件

    是否可以压缩日志文件 我通过 RollingFileAppender 进行 log4j 附加功能 http logging apache org log4j extras 对此表示支持 只需将以下内容添加到您的RollingFileAppe
  • Spark 执行器 STDOUT 到 Kubernetes STDOUT

    我在 Spark Worker 中运行的 Spark 应用程序将执行程序日志输出到特定文件路径 worker home directory app xxxxxxxx 0 stdout I used log4j properties将日志从

随机推荐

  • 深度学习去运动模糊----《DeblurGAN》

    前言 现实生活中 大多数图片是模糊不清的 试想一下 追剧时视频不清晰 看着都很捉急 何况现实中好端端的一幅美景 美女也可以 被抓拍得不忍直视 瞬间暴躁 拍照时手抖 或者画面中的物体运动都会让画面模糊 女友辛辛苦苦摆好的各种Pose也将淹没在
  • 海湾主机汉字注释表打字出_海湾报警主机(JB-QG-GST5000)操作手册

    报警主机正面示意图 报警主机内部结构图 控制器 模块总线 通讯总线 联动电源输出端子示意图 A1 B1 An Bn RS 485有极性通讯线端子 接火灾报警显示盘 GND 24V LD D02电源盘对外输出端子 保护地 此端子与机壳相连 接
  • NLP技术中的Tokenization

    作者 Gam Waiciu 单位 QTrade AI研发中心 研究方向 自然语言处理 前言 今天我们来聊一聊 NLP 技术中的 Tokenization 之所以想要聊这个话题 是因为 一方面在 NLP 技术中 Tokenization 是非
  • 网络知识:光纤收发器TX、RX介绍以及两者的区别

    当我们远距离传输时 通常会使用光纤来传输 因为光纤的传输距离很远 一般来说单模光纤的传输距离在10千米以上 而多模光纤的传输距离最高也能达到2千米 而在光纤网络中 我们常常会使用到光纤收发器 那么光纤收发器怎么连 我们一起来了解下 一 光纤
  • 自媒体月入过万的运营攻略,轻松上手

    很多自媒体新手羡慕大V月入过万 同是做自媒体运营 为什么自己不能实现营收过万呢 给大家分享一套月入过万的运营攻略 适合新手们去操作 收藏起来直接套用到运营哦 1 账号定位 清晰的定位是影响后期变现的关键因素 选一个后期容易变现的领域能帮自己
  • ajax net::err_connection_refused,javascript - How to handle net::ERR_CONNECTION_REFUSED in jquery aj...

    It appears that when jqXHR readyState i e the readyState field of the first parameter to the ajax fail method is 0 that
  • 调用织梦搜索功能

    织梦默认的搜索框
  • 使用C对TOML文件的解析

    使用C对TOML文件的解析 toml书写语法 解析toml文件 测试输出内容如下 TOML是前GitHub CEO Tom Preston Werner 于2013年创建的语言 其目标是成为一个小规模的易于使用的语义化配置文件格式 TOML
  • HJT212协议

    HJ T212是由国家环保行业制定的数据传输标准协议 目前广泛使用的是HJ T212 2005通信协议 该协议在2005年制定 并于2006年2月1日正式实施 HJ T212标准不规定数据采集传输仪与监控仪器仪表的通讯方式 可以采用RS23
  • Mali GPU OpenGL ES 应用性能优化--基本概念

    1 基本概念 1 1 Mali GPU家族 Mali GPU家族都包含以下通用的硬件 基于分块的延迟渲染 Mali GPU把framebuffer分成许多块 16 x 16像素 然后一块一块地进行渲染 基于分块的渲染是有效的 因为像素值使用
  • matlab中if elseif语句,Matlab if…elseif…elseif…else…end语句

    if语句后面可以有一个 或多个 可选elseif 和一个else语句 这对于测试各种条件非常有用 当使用if elseif else语句时 请记住几点 if可以有零个或一个else 它必须在elseif之后 if可以有零到多个elseif
  • (python编程)k-shell的实现

    一 k shell 算法 改错 他发的代码报错 def kshell graph importance dict ks 1 while graph nodes temp node degrees dict for i in graph de
  • python之标准库使用

    目录 一 标准库 二 字符串操作 三 字符串类型 四 时间操作 五 文件基本方法及操作 文件基本方法 文件操作 一 标准库 Python 标准库非常庞大 所提供的组件涉及范围十分广泛 正如以下内容目录所显示的 这个库包含了 Python中的
  • Activiti7 监听器【十四】

    Activiti 7系列文章目录 文章代码下载 Activiti7 工作流设计器 一 Activiti7 创建表 二 Activiti7 表结构介绍 三 Activiti7 设计器创建流程 四 Activiti7 部署流程 五 Activi
  • maven打包出错:Failed to execute goal org.sp

    Failed to execute goal org springframework boot spring boot maven plugin 2 2 13 RELEASE repackage default on project bla
  • 数学建模——数据分析方法

    一 常见数据分析软件 Excel office三件套之一 R语言 Eviews origin 图形分析工具 SPSS 统计分析与数据挖掘 MATLAB 墙裂推荐 python 墙裂推荐 SAS 二 统计性描述 均值 mean x
  • 第一次参加蓝桥杯的心得

    随着我的4道题的答案提交后 蓝桥杯第十届比赛落下帷幕 这其中我也是参赛者 对于这次比赛 虽然我是一位小白 但是我也有不少的感悟 因为这一次也是我从小到大参加的第一次大型竞赛 所以我做了以下的总结 这次的比赛是在长沙理工大学比赛 所以对于我来
  • Swin-Unet:Swin Transformer在医学分割上的首次尝试

    Swin Unet Swin Transformer在医学分割上的首次尝试 前言 最近小编主要在搞一些医学图像分割的工作 也跑了一下Swin Unet 之前看到也看到过这篇Swin Unet 其实五月份就看到了hhhh 决定搬运过来 实际上
  • 前端报错500

    后台代码错误无法返回值 检查后台代码
  • log4j:WARN No appenders could be found for logger 的解决方法

    一 SSH在使用Log4j进行日志管理时常会遇到这个异常 log4j WARN No appenders could be found for logger org springframework web context ContextLo