编辑:报告为:https://issues.apache.org/jira/browse/LOG4J2-1586
volcano.df = as.data.frame(volcano)
volcano.list <- list(x = 1:nrow(volcano),
y = 1:ncol(volcano),
z = volcano)
is.list(volcano.df) # TRUE
is.list(volcano.list) #TRUE !!
在项目的构建文件夹(而不是单独部署的WAR)上部署NetBeans Web应用程序。
来自https://logging.apache.org/log4j/2.x/manual/configuration.html#AutomaticReconfiguration:
从文件配置时,Log4j可以自动执行 检测配置文件的更改并重新配置自身。如果 在配置中指定了monitorInterval属性 如果将element设置为非零值,则将检查该文件 下次评估和/或记录日志事件时 自上次检查后已经过了monitorInterval。以下示例 显示如何配置属性以使配置文件 只有在至少30秒后才会检查更改 过去。最小间隔为5秒。
Log4j2: v2.5
Glassfish: v4.1
NetBeans IDE: 8.1beta
但是当我编辑并保存/build/web/WEB-INF/classes/log4j2.xml没有任何反应时,自动重新配置魔法失败。否则找到了log4j2.xml,似乎工作正常。
答案 0 :(得分:0)
回答自己:这回答了最初的问题:
如何在编辑和保存log4j2.xml时(在从NetBeans部署到Glassfish时)自动重新配置工作
但这只是一种解决方法,因为它无法解释为什么记录的技术<Configuration monitorInterval="5">
不起作用,因此仍然欢迎其他答案。
在项目Run VM args:
中使用此系统参数时没有问题-Dlog4j.configurationFile=/Users/.../webapp/build/web/WEB-INF/classes/log4j2.xml
然后我可以清楚地看到文件更改被捕获并且在glassfish日志中发生了重新配置:
Info: 2016-09-16 10:47:24,669 Log4j2-Log4j2Scheduled-2 INFO File /Users/.../webapp/build/web/WEB-INF/classes/log4j2.xml was modified
Info: 2016-09-16 10:47:24,670 Log4j2-1 DEBUG Reconfiguration started for context
....
然后捕获通过编辑该文件对日志级别所做的更改。