2

我们需要在集群 glassfish 环境中托管多个 Web 应用程序。Logback 是 Web 应用程序使用的日志框架。修改日志配置(例如日志级别)是一个我想获得一些专家意见和建议的问题。

目前,出于几个原因,我们已将 logback 配置文件放入单独的 war 文件中

  1. 手动将 logback.xml 放在 war 文件之外会为安装程序/升级程序添加一个额外的任务。
  2. 在未来版本的 Web 应用程序中对配置文件所做的任何修改都必须由软件升级程序负责。任何这样的修改都可以是接受日志文件位置作为 JNDI 属性。Web 应用程序的数量增加了这项任务的复杂性。

将配置文件放在战争中的缺点是很难进行任何修改。例如添加新的记录器或更改日志级别。JMX 是 logback 支持的替代方案,但我发现它有两个问题

  1. 通过 JMX 所做的任何更改都无法持久化。任何服务器重新启动都会丢失配置的更改。
  2. logback 提供的 JMX 支持不允许添加新的附加程序,例如新的文件附加程序

如果您能就我上面提到的 logback 配置文件的位置或 JMX 问题提供任何建议,我将不胜感激。

4

1 回答 1

0

我们遇到过类似的问题,不得不使用其他日志记录机制来解决——这确实是一个令人不快的权衡取舍的痛苦。我刚开始使用 LogBack,但我的理解是它允许在配置文件(http://logback.qos.ch/manual/joran.html#variableSubstitution)中进行变量替换。我的计划是使用此功能根据需要使用系统属性路由日志,如链接示例中所示。

至于JMX,同意。我们广泛使用 JMX 来监控和在条件允许时对内部配置进行临时更改,但 JMX 不是进行永久更改的好选择;至少这些应该经过变更控制过程。

我的建议:探索变量替换方法并使用 JMX 进行临时运行时调整。

于 2011-11-05T16:50:15.593 回答