使用标准引擎

时间:2018-02-09 14:17:31

标签: python google-app-engine stackdriver

我很难理解为什么以及如何在谷歌应用引擎标准中,有时我得到了我想要的所有日志级别,有时这个范围是"跳过"特别是在响应是500错误之后。

重现我创建了这两条路线:

@app.route('/testlogger')
def testlogger():
    print(logging.getLogger().getEffectiveLevel())
    logger.critical(logging.CRITICAL)
    logger.error(logging.ERROR)
    logger.warning(logging.WARNING)
    logger.info(logging.INFO)
    logger.debug(logging.DEBUG)
    return 'ok', 200


@app.route('/testlogger500')
def testlogger500():
    print(logging.getLogger().getEffectiveLevel())
    logger.critical(logging.CRITICAL)
    logger.error(logging.ERROR)
    logger.warning(logging.WARNING)
    logger.info(logging.INFO)
    logger.debug(logging.DEBUG)
    return toto

第二个故意失败。

然后,我会两次触发两条路线

在下方,您将看到stackdriver控制台的屏幕截图。

在/ testlogger的前三次点击中,整个日志范围按预期报告。

然后这变得很奇怪!

/ testlogger500上的前3次点击会在第一次点击时报告整个日志范围,但不会在第二次点击后报告。

然后在每次后续命中时,只有ERROR和CRITICAL范围被发送到stackdriver控制台,WARNING,INFO和DEBUG都被搞砸到宇宙中:)

对于每个路由命中logging.getLogger()。getEffectiveLevel()在10处打印,但就好像生成500错误一样,stackdriver拒绝在ERROR下面显示日志。

stackdriver logging stackdriver logging caret

这是打算的吗?一旦你得到一个后端错误500,没有发出ERROR以下的日志,或者我在这里做了一些真正可疑的事情?

0 个答案:

没有答案