使用logging.yml文件进行易于使用的日志配置。
项目描述
概述
libranet_logging 是一个易于使用的日志配置工具,从logging.yml文件中读取日志记录器、处理程序、过滤器及格式化程序的配置。
概述链接
变更日志: <url>
sphinx文档: <url>
代码覆盖率: <url>
PyPI: <url>
为什么使用日志?
日志文件是您的最佳伙伴
在开发过程中,调试模式是开发模式
更重要的是:在PRD运行时,它显示了应用程序是如何被使用的,由谁使用,以及如果成功——允许采取主动措施。无需等待用户提交的bug报告。
最重要的是:在PRD的紧急故障排除(又称恐慌模式)中——海森堡虫,难以复现。
libranet_logging的目标
使启用并正确使用python日志框架的全部功能尽可能简单
- python日志模块包含
记录器,分层
处理程序 - 格式化程序 - 过滤器
将记录器视为消息通道,处理程序视为通道的订阅者
最小化修改代码的需求
将所有配置移出代码,放入配置文件“logging.yml”
- 将日志记录到文件应该像
>>> import logging >>> logging.getLogger('panicmode')
特性
从yaml-config文件加载日志配置
验证yaml文件中缺失的键和无效的值
可通过环境变量配置 - 如果未设置环境变量,则使用合理的默认值
当将日志输出到控制台时,具有彩色日志,但其他地方不使用彩色 - 可配置颜色(避免蓝色背景)
集成python-warnings
添加示例电子邮件日志记录器
添加示例syslog日志记录器
避免创建始终为空的文件 - 根据root-loglevel清理专用的文件处理器
未来想法:- 与kibana集成 - 以json、structlog格式记录日志
在代码中,删除所有 - 格式化、- 处理器配置、- 设置日志级别 - 调试标志,例如
if DEBUG: log.debug(....)
变更日志
1.3 (2023-01-24)
不再尝试智能地处理交互模式或非交互模式。您可以通过设置环境变量LOG_HANDLERS来设置活动日志处理器
从libranet_logging.initialize()的输入参数中移除disable_console
将默认分隔符从;更改为|。使用环境变量LOG_HANDLERS设置
1.2 (2021-06-06)
修复徽标。[WVH]
添加.gitlab-ci.yml [WVH]
1.1 (2020-02-13)
修复错误ModuleNotFoundError: No module named 'libranet_logging.version'。[WVH]
1.0 (2020-02-12)
将__version__属性移动到__init__。[WVH]
从WVH未发布的包中分叉的libranet_logging包。[WVH]
0.5 (2019-08-19)
添加文档字符串和类型提示。
修复了pylint报告的一系列问题。
更改libranet_logging.yaml.read_yml的函数签名:将vars更改为variables,以避免覆盖内置的vars()函数
>>> config = read_yaml(path, vars=None) >>> config = read_yaml(path, variables=None)
0.4 (2019-07-31)
添加version.py,包含__version__属性,并重新设计版本管理。
在setup.py中设置cerberus的最低要求为>=1.3.1。[WVH]
0.3 (2019-05-28)
在sphinx-docs中,添加到https://example.com/docs/libranet_logging-coverage的链接。[WVH]
在Makefile中添加步骤“copy-cov”,将覆盖率报告复制到apache-web目录。[WVH]
在libranet_logging.yaml.read_yaml中,如果未提供,将默认变量设置为空字典。[WVH]
在libranet_logging.logconfig.logging_schema中将valueschema重命名为valuesrules,以避免DeprecationWarnings。[WVH]
0.2 (2019-03-28)
使libranet_logging.yaml.read_yaml与PyYAML 5.1兼容,但保持与旧版本的向后兼容。[WVH] 参考
- https://github.com/yaml/pyyaml/blob/master/CHANGES - https://github.com/yaml/pyyaml/pull/257 - https://github.com/yaml/pyyaml/wiki/PyYAML-yaml.load(input)-Deprecation
0.1 (2019-03-28)
在logging.yml中添加对简单字符串格式的支持。[WVH]
使用isort管理导入。将isort配置添加到setup.cfg。[WVH]
引入环境变量PYTHON_CONSOLE_FORMATTER以选择要使用的控制台格式化程序。[WVH]
将colored-控制台格式化程序重命名为console_color,并添加console_bw-格式化程序以在控制台中进行简单的黑白日志记录。[WVH]
在默认的logging.yml中添加flask_wtf处理器。[WVH]
如果日志目录尚不存在,我们现在将创建它。[WVH]
我们应该有一个用户特定的默认位置以避免用户之间的干扰。日志目录将首先从直接函数参数中获取,然后从存在的logging.yml中获取。如果不存在,则从环境变量PYTHON_LOG_CONFIG中获取,如果没有环境变量,则默认为$HOME/logs而不是var/tmp/python。[WVH]
通过initialize函数支持设置日志目录。[WVH]
修复失败的测试 test_initialize_without_logging_tree。当环境变量 PYTHON_ENABLE_LOGGING_TREE 未设置时,该测试会失败。[WVH]
修复 click 命令 cli.print_logging_tree 的失败测试。[WVH]
添加新的测试依赖 pytest-click。[WVH]
将 cli.print_logging_tree 转换为接受可选 path 参数的 click 命令。如果环境变量 PYTHON_LOG_CONFIG 已设置,则使用该值作为路径默认值。[WVH]
添加新的依赖 click。[WVH]
添加有关单元测试的文档。[WVH]
我们现在支持环境变量中的数组。包含 ; 的环境变量现在被转换为与默认值相似的列表,如果该环境变量未设置的话。[WVH]
修复 filters.RegexFilter 以使用 search() 代替 match()。参考 https://docs.pythonlang.cn/3/library/re.html#search-vs-match [WVH]
添加通过单元测试。[WVH]
在 initialize() 中允许以路径参数作为输入,而不是仅接受字符串路径。[WVH]
在加载具有模式错误的 logging.yml 时,通常使代码更加健壮。[WVH]
添加控制台入口点 libranet-logging-print-logging-tree 来初始化日志并将日志树打印到标准输出。在新的 libranet_logging.cli 模块中添加相应的函数。[WVH]
向 logconfig.show_logging_tree 添加函数参数 use_print=False 以启用将输出打印到标准输出而不是记录到配置的日志记录器。[WVH]
如果我们调用 initialize() 而不提供路径或设置环境变量 PYTHON_LOG_CONFIG,我们现在使用此 libranet_logging-包中提供的默认 logging.yml。[WVH]
将记录器 libranet_logging 添加到我们的默认 logging.yml。[WVH]
使用 __name__ 实例化正确的记录器,而不是记录到根记录器。[WVH]
添加 recommonmark 并更新 docs.conf.py 以允许文档中使用 markdown。参考 https://recommonmark.readthedocs.io/en/latest/[WVH]
在 setup.py 和 docs/pip-requirements 中添加与 Sphinx 相关的依赖项。[WVH]
简化公共 API
将函数 loglevel.create_loglevel 重命名为 loglevel.create。
将函数 logconfig.initialize_logging 重命名为 logconfig.initialize。
[WVH]
在代码上运行 Black。 Black 是一个 Python 代码格式化工具。参考 https://github.com/ambv/black [WVH]
添加一些基于 Sphinx 的基本文档。[WVH]
将创建新日志级别提取到其自己的 loglevel-模块中。[WVH]
将日志过滤器提取到其自己的 filters-模块中。[WVH]
添加第三方依赖项 colorlog。这不是代码依赖项,而是 logging.yml 的依赖项。[WVH]
添加第三方依赖项 cerberus、logging_tree 和 PyYAML。[WVH]
将与日志相关的代码从 libdl.utils 移动到其自己的 libranet_logging-包中。[WVH]
通过 cookiecutter templates/cookiecutter-libranet-python-package 创建的包。[Wouter Vanden Hove <wouter@wvhconsulting.org>]
贡献者
Wouter Vanden Hove <wouter@wvhconsulting.org>
项目详情
libranet_logging-1.3.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a44a693ec541476c90061d54565d3e2501fc52df599bc94b35ed464a7fe00dd1 |
|
MD5 | 893108a10c4c9bbc41b9196ae90f2c1d |
|
BLAKE2b-256 | 2b7b251a9fc30d8117c14863a180b666cd5a5ea16ca82a30235458a1271becd0 |