我按照本指南https://firebase.google.com/docs/hosting/cloud-run设置了云运行docker。
然后,我尝试按照本指南https://cloud.google.com/run/docs/logging执行简单的日志。尝试将结构化日志写入标准输出
这是我的代码:

    trace_header = request.headers.get('X-Cloud-Trace-Context')

    if trace_header:
        trace = trace_header.split('/')
        global_log_fields['logging.googleapis.com/trace'] = "projects/sp-64d90/traces/" + trace[0]

    # Complete a structured log entry.
    entry = dict(severity='NOTICE',
                 message='This is the default display field.',
                 # Log viewer accesses 'component' as jsonPayload.component'.
                 component='arbitrary-property',
                 **global_log_fields)

    print(json.dumps(entry))

我无法在Cloud Logs Viewer中看到此日志。每次调用docker时,我都会看到http Get日志。
我有什么想念的吗?我对此很陌生,想知道假设我创建的docker完全符合指南(https://firebase.google.com/docs/hosting/cloud-run)中的步骤,那么记录信息并查看信息的简单方法是什么?

谢谢

最佳答案

我遇到了完全相同的问题。我确实发现,刷新标准输出会导致日志记录在其他情况下不会出现。对我来说,这似乎是Cloud Run中的错误。

print(json.dumps(entry))
import sys
sys.stdout.flush()

Output with flushing

关于python - 从Google Cloud Run执行记录的最简单方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60828641/

10-13 09:29