Python日志配置:为可能在前台或后台运行的程序正确完成
项目描述
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 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 6229711149b6148188d94d95218bf82df53543821d4c16c0103e692613cebf4b |
|
MD5 | dc3455b824eeb716685450aa0ce3eab4 |
|
BLAKE2b-256 | 27b869bc65a853cc39147fca807b107ba35cad7e04b36384c3018ff4a7bb9b8d |
service_logging-0.1.1-py3-none-any.whl 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 83a73adb21e345b86e29f2b627fd01cefd9b0c843659dc9c60eb713c08a5b0dd |
|
MD5 | 35090ed43de9ad89c4e8ca7dabc59286 |
|
BLAKE2b-256 | 2cbf8addcff9ca4acda3cf115ff27d478291b430b6de6db2ba61f9b6e15e3aa3 |