Solr是否可以在没有Solr重启的情况下加载新的log4j.properties配置文件?

时间:2017-04-18 13:27:51

标签: java solr log4j solr5

我将log4j.properties与Solr 5.2一起使用。我的Solr正在生产环境中工作,所以除非真的有必要,否则我不想重新启动它。

我改变了什么:

log4j.appender.file=org.apache.log4j.RollingFileAppender 

为:

log4j.appender.APP=path.to.class.CustomRollingFileAppender
log4j.appender.APP.DatePattern='.'yyyy-MM-dd
log4j.appender.APP.TimeInterval=1

我希望Solr在没有重新启动Solr进程的情况下使用更改的log4j.properties文件。

有可能吗?

2 个答案:

答案 0 :(得分:0)

不,您将需要重新启动Solr,以便log4j.properties中的新设置启动。

如果不重新启动更改任何类的级别日志记录,您可以执行的操作。你在

中这样做
  1. 转到Solr仪表板
  2. 进入Logging / Level(在本地安装中为http://localhost:8983/solr/#/~logging/level
  3. 重新启动Solr时,任何更改都将被重置。这对你的情况没有帮助,只是提到完整性,对某些人来说可能已经足够了。

答案 1 :(得分:0)

据我所知,不可能在Solr中自动重新加载log4j配置,或者至少没有实现这样的行为。

所以你需要重启你的Solr实例。

但是考虑到Solr使用Log4J 1.2版进行日志记录,请看一下(取自Log4j FAQ):

  

Is there a way to get log4j to automatically reload a configuration file if it changes?

     

是。 DOMConfigurator和PropertyConfigurator都支持   通过configureAndWatch方法自动重新加载。请参阅API   文档了解更多详情。

这意味着您可以开发自己的组件,以实现所需的行为。