是否可以在命令行上配置 logback 记录器级别?

新手上路,请多包涵

Log4J 允许您传递您希望应用程序中的特定记录器从命令行登录的级别,例如“-Dlog4j.logger.com.whatever.MyClass=DEBUG”。我在 Logback 中找不到任何类似的工具。根据 FAQ,它似乎允许您做的就是使用变量替换为根记录器设置级别。有没有我遗漏的东西或者 Logback 不支持这个?谢谢。

原文由 bfancher 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 658
1 个回答

是的,好像没有这个功能。据我了解,部分原因是 logback 配置更复杂,因此很难通过扁平字符串属性实现合理的配置灵活性。部分原因是,恕我直言,它鼓励不良做法 - 放置太多系统属性 - 导致运行脚本或命令行臃肿,比单独的日志记录配置文件更难管理。

但是,我可以建议几个选项:

  • 在 logback.xml 配置文件中使用 ${sys.prop.var.name} 替换
  • 在本地复制 logback.xml,使用所需的记录器级别修改它并指定 -Dlogback.configurationFile=/path/to/customised/logback.xml 。请记住,“Logback-classic 可以扫描其配置文件中的更改,并在配置文件更改时自动重新配置”。因此,您甚至不需要重新启动流程来更改日志记录级别。
  • DIY:在您的应用程序中添加一个代码,该代码将读取系统属性并将这些属性应用于启动期间的日志记录级别。

原文由 kan 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题