gpt4 book ai didi

python - 在 cloudbuild 中从 python 进行日志记录不起作用

转载 作者:行者123 更新时间:2023-12-01 06:54:47 26 4
gpt4 key购买 nike

我正在通过以下步骤之一运行云构建:

- name: "gcr.io/something"
id: DO-STUFF
entrypoint: python
args: ['some_script.py']
waitFor:
- WHATEVER

在我的 some_script.py 中,我有一些日志语句:

...
LOGGER = logging.getLogger(__name__)
...
LOGGER.info('Did work.')
...

运行cloudbuild成功运行了脚本,但我在cloudbuild日志中没有看到任何日志。我怎样才能将它们添加到那里?

最佳答案

您必须配置记录器以打印标准输出流中的日志。像这样更新您的代码:

...
LOGGER = logging.getLogger(__name__)
...
import sys
out_hdlr = logging.StreamHandler(sys.stdout)
# Format the output as you want. Let only the message if you don't care about other fields
out_hdlr.setFormatter(logging.Formatter('%(asctime)s %(message)s'))
out_hdlr.setLevel(logging.INFO)
LOGGER.addHandler(out_hdlr)
...
LOGGER.info('Did work.')
...

更新

这是我的确切测试过程

执行脚本script_log.py

import logging
import sys
print("line0")
log = logging.getLogger()
out_hdlr = logging.StreamHandler(sys.stdout)
out_hdlr.setFormatter(logging.Formatter('%(message)s'))
out_hdlr.setLevel(logging.INFO)
log.addHandler(out_hdlr)
log.setLevel(logging.INFO)

log.info("THIS IS AN ERROR")

Cloud Build 文件定义(cloudbuild.yaml 文件)

steps:
- name: gcr.io/cloud-builders/gcloud
entrypoint: "bash"
args:
- "-c"
- |
python3 script_log.py

这里是命令gcloud builds Submit的结果

Operation completed over 1 objects/415.0 B.
BUILD
Already have image (with digest): gcr.io/cloud-builders/gcloud
line0
THIS IS AN ERROR
PUSH
DONE

以及 stackdriver 日志记录中的日志

enter image description here

唯一的区别是我在 getLogger() 中没有 __name__

关于python - 在 cloudbuild 中从 python 进行日志记录不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58859097/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com