草庐IT

java - log4j2 输出未写入日志文件

我是第一次尝试使用log4j2。我从各个站点复制了一些配置示例,但似乎都没有生成日志文件的输出。输出到STDOUT/控制台工作正常。我可以从控制台输出中看到已找到log4j2.xml文件。关于如何让它写入日志文件的任何想法。我在Windows7上使用Java8和log4j2.5。Java源代码packagelog4j2Demo;importorg.apache.logging.log4j.LogManager;importorg.apache.logging.log4j.Logger;publicclassLogDemo{privatestaticfinalLoggerlogger=L

Log4j2漏洞复现(CVE-2021-44228)

引言        ApacheLog4j是一个基于Java的日志记录组件,通过重写Log4j引入了丰富的功能特性,该日志组件被广泛应用于业务系统开发,用以记录程序输入输出日志信息。ApacheLog4j2存在远程代码执行漏洞,攻击者可利用该漏洞向目标服务器发送精心构造的恶意数据,触发Log4j2组件解析缺陷,实现目标服务器的任意代码执行,获得目标服务器权限。影响范围:ApacheLog4j2.x实验环境虚拟机运行,Win10,Java版本8u.191,Log4j2版本为2.12.1;靶机ip地址:192.168.142.129;攻击机ip地址:192.168.142.130。漏洞原理触发漏洞

J2EE,Java EE,Jakarta EE 命名之间的恩恩怨怨

介绍 简单来说,上面所有的名字指的都是一个东西JavaPlatform,EnterpriseEdition上面的几个名词都是下面的内容的简写:J2EE(Java2Platform,EnterpriseEdition)JavaEE(JavaPlatform,EnterpriseEdition)JakartaEE(JakartaEnterpriseEdition)上面的排序是按照时间演进来进行排序。 为什么叫J2EE1998年12月,SUN公司发布了JDK1.2,开始使用Java2这一名称。第二年Sun公司联合IBM、Oracle、BEA等大型企业应用系统开发商共同制订了一个基于Java组件技术的

java - 如何将遗留 Java/J2EE 网站移植到现代脚本语言(PHP、Python/Django 等)?

我想将遗留的Java网络应用程序(J2EE)迁移到脚本语言-任何脚本语言-以提高编程效率。最简单的方法是什么?是否有任何自动化工具可以转换大部分业务逻辑? 最佳答案 这是您必须做的。首先,请确保您在运行之前可以走路。构建一些简单的东西,可能与您的主要项目无关。不要构建最终项目的一部分并希望它将“演化”为最终项目。这永远不会奏效。为什么?你会犯愚蠢的错误。但是您不能删除或返工它们,因为您应该将这个错误发展到最终项目中。接下来,选择一个框架。什么?第二?是的。第二。在您实际使用某些脚本语言和框架做某事之前,您对自己正在做的事情没有真正有

java - 如何在 TestNG 报告中包含 Log4j2 消息

我想在所有测试用例的TestNG报告中提供Log4j2日志记录信息。TestNG使用一个名为Reporter.java的特殊记录器类来跟踪日志输出并将其保存在结果XML中。在log4j中,可以简单地创建一个路由到Reporter并注册它的appender实现。使用Log4j2中的新LoggerAPI,很难找到有关如何完成此操作的信息。我有一些信息可以使用Log4j而不是Log4j2来完成这项工作。 最佳答案 据我所知,您只需要实现一个简单的Appender。像这样的东西:@Plugin(name="Reporter",categor

java - LOG4J2 - 如何以编程方式创建文件附加程序?

我需要以编程方式设置文件附加程序。我想在log4j2.xml上设置我的附加程序,但我想在运行时(以编程方式)仅写入这些附加程序之一。示例:if(condition.equals("A")){//writelogonFile_1}elseif(condition.equals("B")){//writelogonFile_2}else{//writelogonFile_3}查看Internet上的各种教程,他们解释了如何在运行时以编程方式添加附加程序;有没有办法选择在运行时只有xml配置文件中定义的附加程序之一?第一个解决方案:我已尝试通过以下方式解决问题,但我对我的解决方案并不满意,因

java - 在 J2ME 中将缓冲区旋转到播放器的替代方法?

由于许多J2ME手机的(非常烦人的)限制,音频文件在完全下载之前无法播放。因此,为了播放直播流,我不得不一次下载block,并构建ByteArrayInputStream,然后将其提供给播放器。这很好用,除了每次一个流结束并且需要一个新的流时会有大约1/4秒的令人讨厌的间隔。有什么办法可以解决这个问题,或者上面的问题吗? 最佳答案 使用J2MEJSR135播放长(3分钟或更长时间)轨道的唯一好方法是在创建播放器时使用“文件://”URL,或者让输入流实际上来自FileConnection。最近的黑莓手机只有在有可用的大Java堆内存

java - 在 J2ME 中测量 AttributedString 的宽度

我正在针对JavaPersonalBasisProfile编写代码在J2ME中。我需要测量AttributedString的宽度以像素为单位。在JavaSE中,我会得到一个AttributedCharacterIterator从我的AttributedString并将其传递给FontMetrics#getStringBounds,但在J2MEPBP中,FontMetrics没有getStringBounds方法,也没有任何其他接受CharacterIterator的方法。我该怎么办? 最佳答案 我为此非常努力。我需要将面板的大小调整

java - Log4j2 保存文件(使用 RollingFile appender)

我正在尝试使用log4j2为我正在开发的系统创建日志文件,我已经按照他们site上的说明进行操作当我运行它时没有发生错误,但日志没有保存在我设置的位置(例如“D:\logs\app.log”)。这是我的log4j.xml%d%p%C{1.}[%t]%m%n我试过:删除app.log以查看我的配置(D:\logs\app.log)是否有效。当我运行应用程序时,它会创建app.log,所以我认为这意味着它看到了配置,唯一的问题是它没有保存我在java应用程序中所做的log.info将根级别更改为“TRACE”,并打印log.info。[编辑:]我的类路径中也有这些库log4j-api-2.

java - 在 log4j2 中按类名过滤

我正在使用log4j2,但我不知道如何按类名进行过滤。我试过使用RegexFilter但它只过滤文本消息。在旧的log4j中,标签'filter'就足够了有人知道现在该怎么做吗?提前致谢!更新:好的,我做到了!我需要定义一个记录器并在属性“名称”中设置类名: 最佳答案 如果您遵循记录器的命名约定,这在Log4j中会自动工作。在您的代码中,使用类名声明记录器:Loggerlogger=LogManager.getLogger(MyClass.class);记录器自动分配名称fully.qualified.class.name.of.M