【问题标题】:Change logging level for all Connexion loggers at once一次更改所有 Connexion 记录器的记录级别
【发布时间】:2021-08-23 19:09:46
【问题描述】:

有没有办法停止或减少日志记录?

你可以

  • 将所有应用程序日志记录限制在某个级别(DEBUG、INFO、WARNING、...) - 这太宽泛了,不适合
  • 将具体的连接记录器(即connexion.operations.abstract)限制在某个级别 - 这太窄了,连接有很多不同的记录器,这可能有利于连接本身的开发,但在其他方面很麻烦
    • 通过这种方式,我设法创建了许多connexion.* 记录器的列表并将记录减少到一定数量(使用structlog.get_logger(logger_name).setLevel(logging.WARNING)),但在调试级别上仍有一些以
      • Attaching x-scope to {
      • Ref #/components/
      • Dereferencing {

有没有办法摆脱这些日志?或者甚至更好地通过通配符选择记录器?即connexion.*?

感谢您的回答。

迈克尔

PS:在 Connexion Github 上问过同样的问题:https://github.com/zalando/connexion/issues/1417

【问题讨论】:

    标签: python logging connexion structlog


    【解决方案1】:

    AFAIK connexion 不使用 structlog,因此在具体记录器上设置级别对您没有多大好处。

    您将不得不使用 stdlib 的全局配置。比如:

    [loggers]
    keys = root, connexion, ...
    
    [handlers]
    keys = console
    
    [formatters]
    keys = generic
    
    [handler_console]
    class = StreamHandler
    args = (sys.stdout,)
    level = NOTSET
    formatter = generic
    
    [formatter_generic]
    format = %(message)s
    
    [logger_root]
    level = INFO
    handlers = console
    
    [logger_connexion]
    level = WARN
    handlers =
    qualname = connexion
    

    然后您使用 logging.config.fileConfig() 加载它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-19
      • 2014-09-01
      • 2023-04-11
      • 1970-01-01
      • 2016-06-30
      • 1970-01-01
      相关资源
      最近更新 更多