我在Google App Engine上的Flexible(VM)环境中使用了以下代码,将具有特定格式要求的自定义日志与其他应用程序日志分开:
import logging as std_logging
std_logging.basicConfig()
custom_formatter = std_logging.Formatter('%(created)f\t%(message)s')
custom_handler = std_logging.FileHandler('/var/log/app_engine/custom_logs/custom.log')
custom_handler.setFormatter(custom_formatter)
custom_logging = std_logging.getLogger('custom')
custom_logging.addHandler(custom_handler)
在正常的Python环境中,它们将以指定格式的纯文本行的形式写入日志文件。在
然而,在将appengine生成的日志转储到云存储之后,我注意到appengine已经用其他信息包装了每个日志。在
例如(格式清晰)
^{2}$textPayload
字段的值是我生成的实际日志,但由appengine包装。在
有没有办法防止这种行为?不希望重新处理这些日志以正确格式化它们。在
这些额外的信息实际上非常方便,尤其是在appengine环境中,对模块/服务、版本或实例的筛选可以真正帮助您调查问题。在
如果重新处理日志是您的问题,我建议在export to BigQuery functionality上使用图灵。日志将不断地流式传输到BigQuery并立即可查询。这里的好处是您可以只查询text_payload属性,并轻松地将这个结果集导出为csv、text、json等
至于只从日志中导出几行文本,我不认为这是可能的。在
相关问题 更多 >
编程相关推荐