跳转到主要内容

Python日志配置:为可能在前台或后台运行的程序正确完成

项目描述

https://github.com/rpatterson/service-logging/workflows/Run%20linter,%20tests%20and,%20and%20release/badge.svg

TL;DR

logging.basicConfig() 通常不足以满足需求,会导致DRY违规。使用 service-logging 在后台运行时记录syslog或Windows事件日志,在前台运行时记录到stderr,都带有良好格式的消息。

正确使用日志通常是特定于使用和操作系统的。对于特定于使用的示例,当开发或调试守护程序和服务时,通常在shell中前台运行时使用一种日志配置,在后台运行时使用另一种配置。对于特定于操作系统的示例,当在后台运行守护程序和服务时,应使用该系统的适当日志服务,以确保日志元数据正确(严重性、设施等),但正确的方式是特定于操作系统的。此外,决定这些配置需要逻辑,而Python的 logging.config 提供的简单配置机制无法完成。

鉴于这些现实情况,日志记录往往不是按照“正确的方式”进行的,并且/或者难以在调试/测试与后台之间进行调整。《service-logging》旨在通过提供选择不同用途和操作系统正确日志配置的逻辑来解决这一问题。它还提供了多种使用这些配置的方法,使承诺的深度可选。

安装

使用安装标准Python 3分布的任何工具进行安装,例如 pip

$ sudo pip3 install service-logging

用法

使用 servicelogging.basicConfig() 添加特定于操作系统和用途的根日志处理程序

>>> import servicelogging
>>> servicelogging.basicConfig()

命令行脚本还支持将配置了日志的另一个Python脚本包装起来

$ python -m servicelogging foreground_demo.py
$ service-logging foreground_demo.py

有关选项和参数的详细信息,请参阅命令行帮助

$ service-logging --help
usage: service-logging [-h] [--level LEVEL] script

python logging configurations done The Right Way, top-level package.

positional arguments:
  script         The Python script to run after configuring logging

optional arguments:
  -h, --help     show this help message and exit
  --level LEVEL  The level of messages to log at or above (default: 20)

或者,如果您只想使用您在代码中希望使用的适当处理程序和格式化程序,可以使用 servicelogging.choose_handler()

>>> import servicelogging
>>> handler = servicelogging.choose_handler()

待办事项

未来版本的功能

支持替代日志配置选项

确保该方法与各种Python logging.config 选项兼容。

您发现自己反复做的事情

提交一个PR,并说明为什么这种改变在大多数情况下都会有用。

项目详情


下载文件

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

源分布

service-logging-0.1.1.tar.gz (9.6 kB 查看散列)

上传时间

构建分布

service_logging-0.1.1-py3-none-any.whl (7.9 kB 查看散列)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面