【问题标题】:Reading Application Logs on Google App Engine from Developer Console从开发者控制台读取 Google App Engine 上的应用程序日志
【发布时间】:2017-04-22 09:45:34
【问题描述】:

Reading and Writing Application Logs 讨论了Request logs vs application logs 之间的区别。

在 App Engine 上运行的 main.py 中,我导入 logging 并获取一个记录器(因为它被命名为 options_log,所以我没有使用根记录器):

import logging

log = logging.getLogger('options_log')
log.setLevel(logging.INFO)
...

log.info('Hello Log!')

我在开发者控制台中找不到有关在何处查看我的应用程序日志的任何信息。我只看到request_logactivity

request_log 包含来自main.py 的日志记录,但我如何记录到应用程序日志而不是request_log

【问题讨论】:

    标签: python google-app-engine stackdriver


    【解决方案1】:

    您不需要设置记录器选项,只需导入 logging 模块并调用其功能就足够了,就像您引用的页面上的示例一样:

    import logging
    
    import webapp2
    
    
    class MainPage(webapp2.RequestHandler):
        def get(self):
            logging.debug('This is a debug message')
            logging.info('This is an info message')
    

    您还应该注意,应用程序日志不能单独查看,它们始终附加到请求日志的请求日志中,以响应生成它们的请求。从您引用的文档中:

    每个请求日志都包含一个应用程序日志列表 (AppLog) 与该请求相关联,在 RequestLog.app_logs 中返回 财产。每个应用程序日志都包含写入日志的时间、日志 消息和日志级别。

    Note: A request log can only hold 1000 app logs. If you add more than 1000,
    the older logs will not be retained.
    

    您需要单击最左侧的插入符号以展开请求日志条目以显示相应的应用日志:

    如果在扩展请求日志后您仍然看不到您的应用程序日志,我怀疑您尝试在 特定 记录器上设置选项 - 'options_log' 之一 - 可能 em> 是你的问题。如果您仍想设置选项,请尝试为默认记录器(根记录器?)而不是指定一个。或者完全放弃这些选项。

    【讨论】:

    • 接受这个,因为它完美地回答了我的问题。但是,如果应用程序日志与request_logs 交错,如何使用filters 仅提取应用程序日志,例如创建到sinks 的导出?
    • 过滤正常工作,每当某些应用程序日志与过滤器匹配时,它们将与它们附加到的相应“携带”请求日志一起显示
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-05
    • 1970-01-01
    • 2021-10-01
    相关资源
    最近更新 更多