Skip to main content

Python Flask 日志记录处理程序,用于在 Google Cloud Platform 上对消息进行分组

项目描述

Flask 扩展,允许在请求处理程序中发出的日志行一起显示/渲染。

通常,当使用 Google Cloud Logging 库(google-cloud-loggingCloudLoggingHander)时,发出的每个日志条目都会在 Logging UI 中单独显示。但是,希望将逻辑上属于 HTTP 请求中的所有日志组合在一起。对于到 FLask 的给定 HTTP 请求,此扩展在父请求下方“一起”显示所有日志。

如在

https://raw.githubusercontent.com/salrashid123/flask-gcp-log-groups/master/images/log_entry.png

配置参数

  • GCPHandler

    • 应用程序:烧瓶处理程序

    • parentLogName : 'request' 的 parentLogger 名称(默认值:request')

    • childLogName : '应用程序日志的 childLogger 名称(默认值:“应用程序”)

    • traceHeaderName:要解析为跟踪标头的标头名称。(在 GCP 上,它的X-Cloud-Trace-Context

    • 标签:标签字典应用于所有日志(默认=无),

    • resource:要记录的 Cloud Logging 资源(默认值='global')

from flask import Flask
import logging, json

from flask_gcp_log_groups import GCPHandler

app = Flask(__name__)

g = GCPHandler(app, parentLogName="request",
    childLogName="application",
    traceHeaderName='X-Cloud-Trace-Context',
    labels= {'foo': 'bar', 'baz': 'qux'},
    resource= {
              "type": "gce_instance",
              "labels": { "instance_id": "5160310737730769780",
                          "zone": "us-central1-a"
                        }
    })
g.setLevel(logging.INFO)
app.logger.addHandler(g)

@app.route('/')
def default():
  app.logger.setLevel(logging.INFO)
  app.logger.info("I met a traveller from an antique land,")
  return 'ok'

if __name__ == '__main__':
  app.run(host='0.0.0.0', port=8080, debug=False)
  • 仅带有痕迹

    curl -v  -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.89 Safari/537.36" \
    -H "X-Cloud-Trace-Context: `python -c "import uuid; print uuid.uuid4()"`" \
    http://localhost:8080/

下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

flask-gcp-log-groups-0.2.2.tar.gz (5.9 kB 查看哈希

已上传 source