首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >针对log4j1编写的组件在log4j2升级后不进行日志记录

针对log4j1编写的组件在log4j2升级后不进行日志记录
EN

Stack Overflow用户
提问于 2016-06-30 07:52:55
回答 3查看 4K关注 0票数 3

几天来我一直在想这件事,却弄不清楚。如果添加Log4j2兼容性库,则log4j1是向后兼容的。

我的\lib有:

  • slf-api
  • log4j-1.2-api (反向计算)。图书馆)
  • log4j-api (log4j2)
  • Log4j核(log4j2)
  • log4j-web (用于web应用程序的自动布线)

我的web.xml有:

代码语言:javascript
运行
AI代码解释
复制
<!-- log4j2 auto-wiring -->
<context-param>
    <param-name>log4jConfiguration</param-name>
    <param-value>file:///${catalina.base}/conf/log4j2.xml</param-value>
</context-param>

我的tomcat/conf/log4j2.xml是:

代码语言:javascript
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="debug">
    <Appenders>
        <!-- Appends to CONSOLE -->
        <Console name="consoleAppender" target="SYSTEM_OUT">
            <ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY" />
            <PatternLayout pattern="%5p (%F:%L) - %m%n" />
        </Console>
    </Appenders>
    <Loggers>
        <Logger name="com.mycompany.componentA" level="WARN" />
        <Logger name="com.mycompany.componentA.QueryLogger" level="DEBUG" />
        <Logger name="com.mycompany.mycode" level="DEBUG" />
        <Root level="WARN">
            <AppenderRef ref="consoleAppender" />
        </Root>
    </Loggers>
</Configuration>

我已经将我控制下的代码(com.mycompany.mycode)升级到log4j2 API,它们工作/日志非常完美。不受我控制但是针对log4j1 (com.mycompany.componentA)编写的代码根本就没有登录。没有错误,没有调试,什么都没有。

但有趣的是..。启动应用程序时,当应用程序启动时,会收到关于不正确配置的log4j1警告。这也阻碍了我,因为WAR中没有log4j1库(兼容性API除外)。警告是:

代码语言:javascript
运行
AI代码解释
复制
log4j:WARN No appenders could be found for logger (com.mycompany.componentB) 
log4j:WARN Please initialize the log4j system properly. 
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-08-01 07:09:46

编辑:我(终于)弄清楚了到底发生了什么。我的一个依赖项做了一件可怕的坏事,将log4j1类捆绑到它的最后一个jar中。因此,类路径上没有log4j1 jars,但类路径上有log4j1类。

我能做到这一点的唯一方法是:

  1. 同时创建一个log4j1和log4j2 XML配置文件(即使log4j2配置包含我想要的所有记录器)
  2. 让Log4j2通过'log4j-web‘工件+ 'log4jConfiguration’web.xml参数自动连接自己
  3. 通过调用不推荐的log4j1 (.)手动连接Log4jConfigurer.initLogging服务器启动时的API

这可能是可怕的不正确,但如上所述,这是唯一的方式,我让它工作了几个星期左右。

我对lo4j1桥的理解是,连接log4j2并包含该桥是应该需要的(例如,不需要手动连接log4j1)。在实践中,这种情况似乎没有发生。

票数 3
EN

Stack Overflow用户

发布于 2016-06-30 12:32:45

该错误消息意味着您的应用程序中仍然有log4j-1.xjar。在您的WEB/lib中查找并删除它,然后它就可以工作了。

票数 1
EN

Stack Overflow用户

发布于 2016-06-30 14:46:57

如果不在web /lib中,那么可能在您的web容器中(Tomcat?)共享库文件夹?拉尔夫是对的,这个错误消息是由Log4j-1.2生成的,所以它在某个地方的类路径上。如有必要,请尝试打印系统属性java.class.path的值。

更新:另一种查找Log4j1 jar位置的方法是从应用程序中打印org.apache.log4j.AppenderSkeleton.class.getResource("/org/apache/log4j/AppenderSkeleton.class")值。

(我最初建议使用Category,但这也存在于Log4j 1桥中,因此AppenderSkeleton更好。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38128035

复制
相关文章
matlab 稀疏矩阵 乘法,Matlab 矩阵运算[通俗易懂]
说明:这一段时间用Matlab做了LDPC码的性能仿真,过程中涉及了大量的矩阵运算,本文记录了Matlab中矩阵的相关知识,特别的说明了稀疏矩阵和有限域中的矩阵。Matlab的运算是在矩阵意义下进行的,这里所提到的是狭义上的矩阵,即通常意义上的矩阵。
全栈程序员站长
2022/09/12
3.1K0
LeetCode 311. 稀疏矩阵的乘法
给你两个 稀疏矩阵 A 和 B,请你返回 AB 的结果。 你可以默认 A 的列数等于 B 的行数。
Michael阿明
2020/07/13
1.8K0
伴随矩阵求逆矩阵(已知A的伴随矩阵求A的逆矩阵)
在之前的文章《线性代数之矩阵》中已经介绍了一些关于矩阵的基本概念,本篇文章主要就求解逆矩阵进行进一步总结。
全栈程序员站长
2022/07/28
1.8K0
伴随矩阵求逆矩阵(已知A的伴随矩阵求A的逆矩阵)
稀疏矩阵
在矩阵中,如果数值为0的元素数目远远多于非0元素的数目,并且非0元素分布无规律时,则称该矩阵为稀疏矩阵(sparse matrix);与之相反,若非0元素数目占大多数时,则称该矩阵为稠密矩阵。 当一个矩阵中含有大量的0值时,可以将矩阵以稀疏矩阵的方式存储以解决资源。在R中,可以用Matrix这个包, 它可以将矩阵转化为稀疏矩阵。
生信编程日常
2020/11/24
7960
稀疏矩阵
java矩阵类,矩阵的乘法
问题如下 矩阵成积.jpg 我采用的是3重循环,先计算的列的结果,应该还可以先计算行的结果,然后求出矩阵的乘法。没有过多的技巧,就是循环的使用。 相关的code package day20180
热心的社会主义接班人
2018/08/02
1.6K0
java矩阵类,矩阵的乘法
[每日一题]矩阵乘法
本次的题目来源于C语言网比赛栏目八月月赛第一题,记得去试试看看自己能不能AC哦!!! 题目描述 给定一个N阶矩阵A,输出A的M次幂(M是非负整数) 例如: A = 1 2 3 4 A的2次幂 7 10 15 22 输入 第一行是一个正整数N、M(1< =N< =30, 0< =M< =5),表示矩阵A的阶数和要求的幂数 接下来N行,每行N个绝对值不超过10的非负整数,描述矩阵A的值 输出 输出共N行,每行N个整数,表示A的M次幂所对应的矩阵。相邻的数之间用一个空格隔开
编程范 源代码公司
2018/04/18
1.3K0
矩阵乘法
#include <stdio.h> #include <stdlib.h> #include <math.h> #define LEN 3
WindCoder
2018/09/20
8220
矩阵范数求导规则_矩阵逆的范数和矩阵范数的逆
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/10/05
8440
矩阵范数求导规则_矩阵逆的范数和矩阵范数的逆
矩阵运算_逆矩阵的运算
矩阵就是由多组数据按方形排列的阵列,在3D运算中一般为方阵,即M*N,且M=N,使用矩阵可使计算坐标3D坐标变得很方便快捷。下面就是一个矩阵的实例:
全栈程序员站长
2022/09/20
1.6K0
稀疏矩阵计算器(三元组实现矩阵加减乘法)
稀疏矩阵是指那些多数元素为零的矩阵。利用“稀疏”特点进行存储(只存储非零元)和计算可以大大节省存储空间,提高计算效率。实现一个能进行稀疏矩阵基本运算的运算器。
glm233
2020/09/28
2.2K0
[数据结构] 稀疏矩阵的存储
稀疏矩阵是指那些多数元素为零的矩阵。利用“稀疏”特点进行存储和计算可以大大节省存储空间,提高计算效率。实现一个能进行稀疏矩阵基本运算的运算器。
泰坦HW
2020/07/22
1.2K0
[数据结构] 稀疏矩阵的存储
矩阵分析(十四)矩阵的广义逆
若A\in \mathbb{C}^{m\times n}, X\in \mathbb{C}^{m\times m},以下矩阵方程称为Penrose方程
mathor
2021/04/02
2.1K0
理解矩阵乘法
大多数人在高中,或者大学低年级,都上过一门课《线性代数》。这门课其实是教矩阵。 刚学的时候,还蛮简单的,矩阵加法就是相同位置的数字加一下。 矩阵减法也类似。 矩阵乘以一个常数,就是所有位置都乘以这个数
ruanyf
2018/04/13
1.5K0
理解矩阵乘法
高斯约旦消元法求逆矩阵的思想(分块矩阵的逆矩阵)
求一个 N × N N×N N×N的矩阵的逆矩阵。答案对 1 0 9 + 7 10^9+7 109+7取模。
全栈程序员站长
2022/07/29
1.1K0
如何求逆矩阵_副对角线矩阵的逆矩阵怎么求
作为一只数学基础一般般的程序猿,有时候连怎么求逆矩阵都不记得,之前在wikiHow上看了一篇不错的讲解如何求3×3矩阵的逆矩阵的文章,特转载过来供大家查询以及自己备忘。当然这个功能在matlab里面非常容易实现,只要使用inv函数或A^-1即可,但是有时候参加个考试什么的还是要笔算的哈哈~
全栈程序员站长
2022/09/25
1.6K0
如何求逆矩阵_副对角线矩阵的逆矩阵怎么求
09:矩阵乘法
09:矩阵乘法 总时间限制: 1000ms 内存限制: 65536kB描述 计算两个矩阵的乘法。n*m阶的矩阵A乘以m*k阶的矩阵B得到的矩阵C 是n*k阶的,且C[i][j] = A[i][0]*B[0][j] + A[i][1]*B[1][j] + …… +A[i][m-1]*B[m-1][j](C[i][j]表示C矩阵中第i行第j列元素)。 输入第一行为n, m, k,表示A矩阵是n行m列,B矩阵是m行k列,n, m, k均小于100 然后先后输入A和B两个矩阵,A矩阵n行m列,B矩阵m行k列,
attack
2018/04/03
1.6K0
非满秩矩阵也能求逆矩阵吗_广义逆矩阵的性质
在实际应用的时候,发现返回值都是0,于是跟踪到这里,发现了这个问题:JtJ不是满秩,因此JtJN保持初始化的零值。
全栈程序员站长
2022/11/17
1K0
非满秩矩阵也能求逆矩阵吗_广义逆矩阵的性质
求矩阵的逆
回到学校,整理完行李,再收拾一下U盘里的东西。看到刚学线代那会儿瞎整的求矩阵的逆的代码。
饶文津
2020/06/02
6640
算法系列-----矩阵(四)-------------矩阵的乘法
而如果该函数被下面调用了,已经判断了a的长度和b的长度是相等的,所以这里只是单独的抽出来而已
wust小吴
2022/03/04
5060
矩阵乘法问题
问题描述 给定n个矩阵:A1,A2,...,An,其中Ai与Ai+1是可乘的,i=1,2...,n-1。确定计算矩阵连乘积的计算次序,使得依此次序计算矩阵连乘积需要的数乘次数最少。 ---- 矩阵乘法
我没有三颗心脏
2018/04/26
1.5K0
矩阵乘法问题

相似问题

JSON数据未在AJAX POST请求中发送

12

android json post数据未在php中显示/接收

10

JSON未在rails post中解析

14

使用$.post发送JSON数据

20

ClojureScript AJAX POST发送json数据

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档