如何解决由标准输出处理的日志被 StackDriver 显示为错误
我在 this 教程中读到,默认情况下,stdout 和 stderr 中捕获的日志消息不会与严重性元数据一起捕获。因此,如果我将 stdout 设置为我的应用程序的唯一处理程序,那么是否期望 google stackdriver 将每个日志显示为错误,而不管其严重性?我想知道我的假设是否正确,以及对有关处理程序的 gcloud 文档的一些参考。我正在使用 python3.7 和 python-json-logger
我的 default.json
文件:
{
"DEFAULT": {
"LOGGER": {
"formatters": {
"default": {
"format": "%(asctime)s %(threadName)s: %(lineno)d %(levelname)-8s %(message)s"
},"stackdriver": {
"()": "digesto_common.logging.StackdriverJsonFormatter","format": "%(asctime)s %(threadName)s %(scriptcalled)s %(filename)s:%(lineno)d %(levelname)-8s %(message)s"
}
},"loggers": {
"default": {
"level": "INFO","handlers": [
"stdout"
]
}
},"handlers": {
"file": {
"formatter": "default","class": "logging.handlers.RotatingFileHandler","filename": "data.log","mode": "w","maxBytes": 10000000,"backupCount": 5,"level": "INFO"
},"stdout": {
"formatter": "default","class": "logging.StreamHandler","stackdriver": {
"level": "INFO"
}
}
}
},"PROD": {
"LOGGER": {
"formatters": {
"default": {
"format": "%(asctime)s %(threadName)s %(scriptcalled)s %(filename)s:%(lineno)d %(levelname)-8s %(message)s"
},"loggers": {
"prod": {
"level": "INFO","handlers": ["stackdriver"]
},"default": {
"level": "INFO","urllib3": {
"propagate": false,"level": "WARNING","handlers": ["stackdriver"]
}
}
}
}
}
我的应用程序当前将每条消息记录为 PROD 中的错误,但我不知道是否是上述问题的原因。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。