当前位置: 首页 > 知识库问答 >
问题:

Log4j2 Glassfish NetBeans:如何在编辑和保存Log4j2时实现自动重新配置。xml(部署到位时)

董哲
2023-03-14

编辑:报告为:https://issues.apache.org/jira/browse/LOG4J2-1586

Log4j2: v2.5
Glassfish: v4.1
NetBeans IDE: 8.1beta

通过项目的构建文件夹(而不是单独部署的WAR)部署NetBeans web应用程序。

从…起https://logging.apache.org/log4j/2.x/manual/configuration.html#AutomaticReconfiguration:

当从文件配置时,Log4j能够自动检测配置文件的更改并重新配置自己。如果在配置元素上指定了监测间隔属性并将其设置为非零值,则将在下次计算和/或记录日志事件时检查该文件,并且监测间隔自上次检查以来已经过去。下面的示例演示了如何配置属性,以便仅在至少30秒之后才检查配置文件的更改。最小间隔为5秒。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="30">
...
</Configuration>

但是当我编辑和保存 /build/web/WEB-INF/classes/log4j2.xml什么都没发生时,自动重构魔法失败了。log4j2.xml在其他方面被发现,似乎工作正常。

共有1个答案

文寒
2023-03-14

回答自我:这回答了最初的问题:

如何在编辑和保存log4j2时实现自动重新配置。xml(从NetBeans就地部署到Glassfish时)

但这只是一种解决方案,因为它没有解释为什么文档化的技术

当我在项目Run VM args中使用此系统参数时没有问题:

-Dlog4j.configurationFile=/Users/.../webapp/build/web/WEB-IN‌​F/classes/log4j2.xml‌​

我可以在glassfish日志中清楚地看到捕获到的文件更改和重新配置:

Info:   2016-09-16 10:47:24,669 Log4j2-Log4j2Scheduled-2 INFO File  /Users/.../webapp/build/web/WEB-IN‌​F/classes/log4j2.xml‌​ was modified
Info:   2016-09-16 10:47:24,670 Log4j2-1 DEBUG Reconfiguration started for context  
....

然后捕获通过编辑该文件对日志级别所做的更改。

 类似资料:
  • 我正在开发一个运行在Tomcat上的Java/JavaScript webapp。 我们正在使用IDEA,我已经设法同时为客户端和服务器代码设置了调试,这很棒。在手动运行Tomcat时,我确实重新部署了javascript的设置,但是我发现在通过IDEA运行Tomcat时,这并不起作用,因为它正在我的用户文件夹中的某个地方设置东西。 我本来要设置一个部署配置去那个文件夹,但是我看不到里面的任何ja

  • 有些代码编辑器,比如WebStorm,在编辑器失去焦点时可以自动保存。我在Atom编辑器中搜索过类似的选项,但还没有找到任何内容。 原子编辑器是否有允许在失去焦点时自动保存已编辑文件的设置?如果是,这可以设置在哪里?如果没有,人们将如何着手编写一个插件,做到这一点?

  • 在我的spring boot应用程序中,我在< code > application . properties 中指定了: 该文件位于下,我将其配置为maven pom.xml中的源文件夹: 这在独立运行应用程序时很正常。但是在构建-File并将其部署到tomcat时,会忽略logback配置。 使用作为文件名(或)可以正常工作,但我想使用(用于分离不同环境的日志配置)。 如何在我的< code

  • 我有一个类似于卡桑德拉表的实体。我正在使用火花将数据保存/更新到卡桑德拉中。这里的实体是提供案例类 我将这些数据保存如下 cassandra表的模式是 问题是在保存/更新cassandra表时,将Offer实体的writeTime字段配置为写入时间戳。这是在《税务》中提到的-https://github.com/datastax/spark-cassandra-connector/blob/mas

  • 我有一个带有CardViews的RecyclerView列表,它运行良好。当用户在名为ActActivity的输入UI上输入数据时,创建CardViews。当用户稍后单击CardView以编辑原始数据时,onItemClick方法使用捕获适配器中正确CardView项位置的start方法再次启动ActActivity。 当用户单击UI上的Save按钮以保存编辑的数据时,ActActivity UI

  • 现在我花了几天时间在java logger:log4j2上。如果您决定使用一个java logger,那么这种方法相对容易。xml文件。但是,如果您想通过代码创建配置,并通过java进行调整,那么这就有点复杂了。 下面的代码我现在可以管理。我没有成功地重新配置日志级别 每次深度在错误级别停止 您能否帮助指定如何重新加载已编程的log4j2配置? 谢谢