1.flask框架中--如何配置logger日志文件
2.Python oltp OpenTelemetry 跟踪、指标和日志,试试使用 Aspire 仪表板docker镜像
3.gunicorn部署flask的log处理
flask框架中--如何配置logger日志文件
在flask框架中配置logger日志文件的步骤如下:
首先,在utils工具文件夹内建立名为logging.py的文件。
随后,在Shopping/__init__.py文件中引入日志处理工具。
若需输出日志信息,外挂卡密注入源码可调用相应的日志输出方法。
Python oltp OpenTelemetry 跟踪、指标和日志,试试使用 Aspire 仪表板docker镜像
在构建Python应用程序时,实时查看后端调用、错误、跟踪和监视数据变得非常有用。OpenTelemetry是风刚麻将源码一个由云原生计算基金会(CNCF)维护的开源项目,旨在满足这些需求,并提供了一系列用于检测Python中常见库和框架(如Flask、Django、Requests和FastAPI)的扩展。本教程将指导您如何在小Flask项目中设置OpenTelemetry,并使用Aspire仪表板进行配置。
首先,通过PyPi安装OpenTelemetry及其相关包,如opentelemetry-distro和opentelemetry-exporter-otlp-proto-grpc,以开始使用。这些包与一组通用库和检测工具捆绑在一起,能够检测常见的无痕注入源码Python框架。为了将数据导出到指定端点,您需要安装用于将所有OpenTelemetry数据通过gRPC方式发送到目标服务的包。
将要求添加到requirements.txt文件中,开始使用这些包。然后,您需要配置OpenTelemetry导出器以将数据发送到后端。这通常涉及创建TracerProvider、MeterProvider和LoggerProvider对象,并配置导出器。配置示例可以放置在单独的文件中,如otel_grpc.py,然后在应用程序入口点调用此文件以配置OTLP导出器。消费理财源码对于Flask,仪器的配置如下所示。
Aspire仪表板是一个用于构建可观察的、生产就绪的分布式应用程序的“固执己见的云就绪堆栈”。虽然与Python关系不大,但Aspire提供了一个简单的、与OTLP兼容的服务,该服务在Docker容器中运行,并具有用于本地开发和测试的Web UI。无需身份验证或设置,非常适合开始使用OpenTelemetry。由于它在Docker中运行,易优网站源码因此容易启动和停止,并且无需安装.NET即可使用。启动Aspire仪表板的命令如下:
这将端口转发gRPC端点,这是OTLP导出器配置中使用的端点,UI将运行在http://localhost:。运行Python应用程序后,您可以在Aspire仪表板中查看跟踪和指标。
此示例设置允许仪表板在无身份验证的情况下运行。对于生产环境,建议保护仪表板。在浏览器中访问http://localhost:,您将看到Aspire仪表板。导航到“跟踪”、“指标”和“日志”选项卡以查看Python应用程序中的数据。对于日志,您将捕获发送到OpenTelemetry记录器的任何日志。Python日志记录较为复杂,通过在根记录器上设置日志记录,或配置Django记录器以捕获日志(在示例项目中),可以查看它们在仪表板中的显示方式。
在跟踪中,默认视图是时间线,您可以通过展开查看其他属性,这些属性取决于检测包。例如,可以为SQL查询、HTTP请求、gRPC调用等添加检测,以获取更多详细信息。在示例项目中,添加了一些自定义指标来展示在仪表板中的显示方式。您可以查看请求的计数、持续时间、状态代码,以及指标随时间推移的细分。
完成探索或调试后,停止Docker容器,仪表板将消失。可以使用相同的命令再次启动它,它将是一个新实例。总之,当开发具有大量后端调用的应用程序或尝试调试性能问题时,OpenTelemetry是一个强大的工具,它易于上手,并且有许多可用的仪器包。Aspire仪表板是可视化OpenTelemetry捕获的数据的好方法,并且在本地运行非常方便。希望此教程对您有所帮助,您可以开始在Python应用程序中使用OpenTelemetry和Aspire仪表板。
gunicorn部署flask的log处理
部署使用Gunicorn与Flask结合时,日志处理成为关键步骤。Gunicorn性能出众,配置相对简单,尤其搭配Nginx实现反向代理,增强系统性能。gevent作为异步worker进程,适用于一般并发场景。下面重点阐述Gunicorn部署Flask项目时的日志配置:
启动项目时,确保app.py文件包含以下代码片段,运行后通过访问http://:,即可在终端中观察到输出的日志。
所显示的日志源自Flask内置的开发服务器(Werkzeug的wsgi),由Flask app的logger和handler处理。在使用Gunicorn部署Flask项目时,由于Gunicorn拥有自己的日志logger,因此需将两者进行关联,以确保输出的日志正常。
解决此问题的策略如下:
在app.py文件的末尾添加代码段,此代码主要实现以下功能:
参考资源: