【问题标题】:How to change logging level in google app engine python production server?如何更改谷歌应用引擎 python 生产服务器中的日志记录级别?
【发布时间】:2015-08-30 05:24:35
【问题描述】:

我曾尝试在网上搜索此问题的答案,但徒劳无功。我确实看到了“How do set the log level in google app engine python dev server”的答案,知道这很有用 - 但如果我理解正确,这不会自动转换为生产环境,对吧?

使用数百个logging.debug() 语句部署我的开发代码总是会使它们显示在生产服务器日志中。是否有一个简单的开关可以在生产服务器上打开以设置日志记录级别并避免所有调试消息堵塞日志?至少从查看 Google App Engine 的管理控制台来看,我还没有发现有办法做到这一点。这令人难以置信,因为人们会认为 App Engine 开发人员会提供一种超级简单的方法来执行此操作。

【问题讨论】:

  • 您可以简单地将日志过滤器设置为您感兴趣的级别。在日志屏幕上将“任何日志级别”更改为您感兴趣的级别。

标签: python google-app-engine


【解决方案1】:

正如 Paul Collingwood 在评论中所说,在开发者控制台中设置过滤器很容易,以减少视觉混乱。

如果在某些情况下您根本不希望记录调试日志(例如在生产中),您可能希望为日志调用编写一个小包装函数,以检查应用程序是否处于开发状态或生产,并据此决定是否写一些东西来记录。

我在想这样的事情:

import logging
class Logger()
    def debug(*args, **kwargs):
        if not running_in_production(): # needs to be implemented elsewhere.
            logging.debug(*args, **kwargs)

    def info(*args, **kwargs):
        """ any rules here? """
        logging.info(*args, **kwargs)

   # other functions here.

然后,在您的个人文件中,您可以将 import logging 替换为 import logger as logging 以进行直接替换,该替换适用于其运行的环境 - 以及任何其他可以想象的因素。

【讨论】:

  • 感谢您的信息。我不关心开发环境,只关心生产环境。但这似乎又是一个复杂的解决方案,必须自定义实现。这就是我所说的“难以置信”,因为人们会认为 GAE 会为此实施一个超级简单的“开箱即用”解决方案(例如在某些配置文件中设置日志级别等)。他们为什么要让事情变得如此艰难?打败我。
  • 让什么这么难?日志记录是全自动的,您可以过滤到您感兴趣的级别。您还可以在代码中添加其他日志记录语句,并在需要时在日志中查看它们。对我来说,这似乎是一个合理的系统,尤其是您可以下载日志并在需要时在本地处理它们,而且您可以非常便宜地存储许多 GB 的日志。
猜你喜欢
  • 2011-03-17
  • 2011-05-18
  • 1970-01-01
  • 2020-11-19
  • 1970-01-01
  • 1970-01-01
  • 2016-02-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多