【问题标题】:Logging DEBUG logs are not shown when executing the Python Azure Functions执行 Python Azure Functions 时不显示日志记录调试日志
【发布时间】:2019-07-23 11:09:47
【问题描述】:

我创建了一个 Python Azure Functions 应用程序。在这个应用程序中,我想检查日志详细信息,如DEBUGINFO 等。我已经编写了一些用于日志记录的代码,但是在执行我的 azure 函数应用程序后我无法获取任何日志。

我已经编写了用于日志记录的基本代码,但在执行 Azure Functions 后,我无法在控制台上看到日志。

    import logging
    import azure.functions as func

    data = "Hello"
    logging.basicConfig(level=logging.DEBUG)
    logging.debug(data)

对于上述问题,还有其他解决方案或变通方法吗?

【问题讨论】:

  • 可能 azure 弄乱了根记录器的级别。使用logger = logging.getLogger(name) 获取不同的记录器并使用该记录器。
  • @blues 我试过logger = logging.getLogger(name) 但没有得到任何结果,你能帮帮我吗?

标签: python azure logging azure-functions


【解决方案1】:

很可能根记录器被 azure 弄乱了,basicConfig 只创建了一个具有一些正常默认值的根记录器。要解决此问题,请创建您自己的独立记录器。

import logging

logger = logging.getLogger('akshay')
logger.setLevel(logging.DEBUG)
sh = logging.StreamHandler()
sh.setLevel(logging.DEBUG)
logger.addHandler(sh)
logger.debug('Hello')
# Outputs 'Hello'

【讨论】:

    【解决方案2】:

    This GitHub issue 解释解决方案:

    至于这里提到的原始问题,可以通过两个步骤的组合来实现所需的行为:

    1. 在用户代码中设置根记录器以使用调试级别(默认设置为 info)。
    2. 配置 host.json 以记录调试消息:[...]

    具体来说,这是您在脚本中需要的代码:

    import logging
    logging.Logger.root.level = 10
    logging.debug("Debug message here")
    

    【讨论】:

      【解决方案3】:

      对我来说,工作:

      导入日志

      logging.getLogger().setLevel(logging.DEBUG)

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多