【问题标题】:Heroku - Change Log Level Runtime with Several DynosHeroku - 使用几个 Dynos 更改日志级别运行时
【发布时间】:2015-03-06 14:30:42
【问题描述】:

你好吗?

我有一个在 Heroku 服务器上运行的 Java Play 框架。我可以在应用程序运行时更改日志级别,它适用于一个 Dyno。 如果我理解得很好,如果一个有多个 Dyno。每个测功机在我的应用程序上运行“一个副本”,但这对我来说是不可见的。因此,当我在运行时更改日志级别时,更改只会影响“一个副本”。对吗?

如何在运行时将日志级别更改为每个测功机。有可能吗?

谢谢!

【问题讨论】:

  • 您现在如何更改日志级别?如果不重新启动测功机,或通过其他方式与所有人进行通信以进行更改,可能是不可能的。
  • 每个 Controller 创建自己的 Logger,基本上是这样的: Logger logger = (ch.qos.logback.classic.Logger) LoggerFactory.getLogger(SomeClass.clas);要更改文件日志级别,请使用:logger.setLevel(Level.INFO);奇迹般有效!。这是文档logback.qos.ch/manual/architecture.html。但是如果有 2 个或更多的测功机,情况就很复杂了。

标签: java heroku playframework-2.2


【解决方案1】:

这里的答案是所有测功机的操作方式完全相同。例如,如果您通过环境变量启用调试,例如:

$ heroku config:set DEBUG=true

然后您拥有的每一个测功机都会立即获得该环境变量集。这意味着所有您的测功机都将启用调试。

【讨论】:

  • 是的,但是 config:set 重启服务器。开关必须是运行时的。另一方面,我可以使用不同的包名创建 Logger,例如 com.package 或 com.package.SomeClass。
  • 在运行时无法更改它。另外:你不应该依赖 dyno 一直在运行。 Heroku 全天非常频繁地重新启动您的测功机。 Heroku 的要点之一是您应该只在其中部署可以在任何时间点重新启动的应用程序。这是该平台的主要优势之一。如果您需要不重启,您需要使用另一台主机。
猜你喜欢
  • 2019-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多