谷歌云对焦格式化器

flask-google-cloud-logger的Python项目详细描述


flask_google_cloud_logger

CircleCIPyPI versionMaintainabilityTest Coverage

flask扩展,根据google cloud v2规范格式化日志

根据v2 specification使用python-json-logger格式化程序,google cloud的python日志格式化程序

由灵药logger_json

激发

安装

pipenv

    pipenv install flask_google_cloud_logger 

PIP

    pip install flask_google_cloud_logger 

用法

importloggingfromloggingimportconfigfromflaskimportFlask,request,gfromflask_google_cloud_loggerimportFlaskGoogleCloudLoggerLOG_CONFIG={"version":1,"formatters":{"json":{"()":"flask_google_cloud_logger.FlaskGoogleCloudFormatter","application_info":{"type":"python-application","application_name":"Example Application"},"format":"[%(asctime)s] %(levelname)s in %(module)s: %(message)s"}},"handlers":{"json":{"class":"logging.StreamHandler","formatter":"json"}},"loggers":{"root":{"level":"INFO","handlers":["json"]},"werkzeug":{"level":"WARN",# Disable werkzeug hardcoded logger"handlers":["json"]}}}config.dictConfig(LOG_CONFIG)# load log config from dictlogger=logging.getLogger("root")# get root logger instanceapp=Flask("test_app")FlaskGoogleCloudLogger(app)@app.route("/")defhello_world():return"Hello, World!"@app.teardown_request#log request and response info after extension's callbacksdeflog_request_time(_exception):logger.info(f"{request.method}{request.path} - Sent {g.response.status_code}"+" in {g.request_time:.5f}ms")

示例输出:

{"timestamp":"2018-11-04T22:07:42.687000Z","severity":"INFO","message":"GET / - Sent 200 in {g.request_time:.5f}ms","labels":{"type":"python-application","application_name":"Example Application","client":{"user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36","ip":"127.0.0.1","version":null},"connection":{"method":"GET","path":"/","request_id":"afc4c6d5-5f30-4f02-b66a-e97e87841073","status":200},"latency":0.13828277587890625},"metadata":{"userLabels":{}},"sourceLocation":{"file":"test_app.py","line":52,"function":"log_request_time"}}

学分

谢谢@thulio@robsonpeixoto@ramondelemos

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
我可以用C++代码使用java代码吗?   java使用JSR303在派生类中提供更具体的约束   java在这个查找唯一路径数算法中我做错了什么?   java如何为2个不同的服务提供商使用2个不同的SSL证书?   java在Gridview上绘制文本   java使用连接for循环构建字符串名   java StringBuilder拆分无法处理某些文件   java事件关注EditText   Java Web Start“找不到URL的缓存资源”   java程序从命令行运行的速度比在Eclipse中慢   java为什么HttpServletRequest会截断#字符上的url输入?   java自定义折叠工具栏平滑标题大小调整   使用Mockito对安卓 java中调用另一个静态函数的函数进行单元测试   http在java客户机中使用cachecontrol头   java如何使用。是否使用Delimiter从输入文件中排除标点符号和数字?   使用上下文作为参数/参数的java   java更有效地从Jar中提取文件   java为多个JButton提供相同的actionListener