我按照本指南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/