跳转到主要内容

Python的一个快速且轻量级的日志库

项目描述

picologging

PyPI - Python Version PyPI Anaconda-Server Badge codecov

警告:该项目处于测试版状态。存在一些不完整的功能(见限制)。

Picologging是一个高性能的Python日志库。picologging比标准库中的logging模块快4-10倍。

Picologging旨在作为现有使用logging的应用程序的直接替换,并支持与logging模块相同的API。

有关更多信息,请参阅文档

安装

Picologging可以通过pip从PyPi安装

pip install picologging

或使用conda从conda forge安装

conda install -c conda-forge picologging

用法

导入picologging as logging以使用picologging而不是标准库中的logging模块。

这将修复所有注册的记录器以使用picologging记录器和格式化程序。

import picologging as logging
logging.basicConfig()

logger = logging.getLogger()

logger.info("A log message!")

logger.warning("A log message with %s", "arguments")

基准测试

使用 richbench CLI 运行 richbench benchmarks/ --markdown 来查看基准测试,以下是在 macOS 11 上的一个示例

基准测试 最小值 最大值 平均值 最小值 (+) 最大值 (+) 平均值 (+)
FileHandler() 0.138 0.151 0.143 0.055 (2.5x) 0.063 (2.4x) 0.058 (2.5x)
WatchedFileHandler() 0.189 0.197 0.193 0.097 (1.9x) 0.101 (1.9x) 0.099 (1.9x)
RotatingFileHandler() 0.287 0.304 0.296 0.174 (1.6x) 0.178 (1.7x) 0.176 (1.7x)
QueueHandler() 1.109 1.195 1.130 0.142 (7.8x) 0.151 (7.9x) 0.147 (7.7x)
QueueListener() + QueueHandler() 0.157 0.167 0.162 0.034 (4.6x) 0.039 (4.3x) 0.037 (4.3x)
MemoryHandler() 0.126 0.144 0.133 0.051 (2.5x) 0.059 (2.5x) 0.054 (2.5x)
LogRecord() 0.225 0.248 0.233 0.026 (8.7x) 0.029 (8.5x) 0.028 (8.4x)
Formatter().format() 0.076 0.086 0.081 0.004 (18.7x) 0.005 (18.9x) 0.004 (19.1x)
Formatter().format() with date 0.298 0.311 0.304 0.081 (3.7x) 0.087 (3.6x) 0.084 (3.6x)
Logger(level=DEBUG).debug() 0.726 0.743 0.734 0.059 (12.3x) 0.061 (12.3x) 0.060 (12.3x)
Logger(level=DEBUG).debug() with args 0.761 0.809 0.777 0.081 (9.4x) 0.087 (9.3x) 0.084 (9.2x)
Logger(level=INFO).debug() 0.016 0.018 0.017 0.004 (4.3x) 0.005 (3.8x) 0.004 (4.1x)
Logger(level=INFO).debug() with args 0.018 0.019 0.018 0.005 (3.8x) 0.005 (3.8x) 0.005 (3.7x)

限制

请参阅 限制

贡献

此项目欢迎贡献和建议。大多数贡献需要您同意贡献者许可协议(CLA),声明您有权并且实际上确实授予我们使用您贡献的权利。有关详细信息,请访问 cla.opensource.microsoft.com

当您提交拉取请求时,CLA 机器人将自动确定您是否需要提供 CLA,并适当装饰 PR(例如,状态检查,评论)。只需遵循机器人提供的说明即可。您只需在整个使用我们 CLA 的存储库中做一次。

此项目已采用 Microsoft Open Source Code of Conduct。有关更多信息,请参阅 Code of Conduct FAQ 或联系 opencode@microsoft.com 有关任何额外的问题或评论。

本地开发

此项目附带一个 dev 容器,该容器设置了适当的环境。如果您为 VS Code 安装了 Dev Containers 扩展,则在此项目中打开 VS Code 应会提示它在 dev 容器中打开。

在 dev 容器中打开后,运行

pip install -e ".[dev]"
pre-commit install
python setup.py build_ext --inplace --build-type Debug

每次您对文件进行更改时,都运行构建命令。

创建一个类似以下内容的 .vscode/launch.json 文件也很有帮助

{
    "version": "0.2.0",
    "configurations": [
    {
        "name": "(gdb) Launch pytest",
        "type": "cppdbg",
        "request": "launch",
        "program": "/usr/local/bin/python",
        "args": ["-m", "pytest", "tests"],
        "stopAtEntry": false,
        "cwd": "${workspaceFolder}",
        "environment": [],
        "externalConsole": false,
        "MIMode": "gdb",
        "setupCommands": [
            {
                "description": "Enable pretty-printing for gdb",
                "text": "-enable-pretty-printing",
                "ignoreFailures": true
            },
            {
                "description":  "Set Disassembly Flavor to Intel",
                "text": "-gdb-set disassembly-flavor intel",
                "ignoreFailures": true
            },
        ]
    }
}

现在您可以通过按“运行和调试”按钮来运行来自 gdb 调试器的 pytest 并在 C 代码中使用断点调试。

如果您希望在调试时能够深入了解 CPython 代码,那么

  1. 在 devcontainer 的 /workspaces/ 目录中对 devcontainer 的标记分支进行 git checkout,用于 devcontainer 的 Python 版本。您可能需要 sudo

  2. 按照 CPython README 中的说明编译代码。

  3. 将以下密钥添加到 launch.json 的配置中

    "sourceFileMap": { "/usr/src/python": "/workspaces/cpython" },
    
  4. 将以下命令添加到 launch.jsonsetupCommands

    {
        "description": "Find CPython source code",
        "text": "-gdb-set auto-load safe-path /workspaces/cpython"
    },
    

商标

出于兼容性原因,此 Python 包的一些组件来自 CPython 3.11 日志库。

CPython 3.11 采用 PSF 许可证。日志模块的版权为 (C) 2001-2019 Vinay Sajip。版权所有。

本项目可能包含项目、产品或服务的商标或标志。Microsoft 商标或标志的授权使用必须遵守并遵循Microsoft 的商标和品牌指南。在此项目的修改版本中使用 Microsoft 商标或标志时,不得引起混淆或暗示 Microsoft 的赞助。任何第三方商标或标志的使用均受该第三方政策的约束。

项目详情


下载文件

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

源分发

picologging-0.9.3.tar.gz (103.8 kB 查看哈希值)

上传时间

构建分发

picologging-0.9.3-cp312-cp312-win_amd64.whl (87.0 kB 查看哈希值)

上传时间 CPython 3.12 Windows x86-64

picologging-0.9.3-cp312-cp312-win32.whl (78.6 kB 查看哈希值)

上传时间 CPython 3.12 Windows x86

picologging-0.9.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (166.3 kB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ x86-64

picologging-0.9.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (178.1 kB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ i686

picologging-0.9.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (166.2 kB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ ARM64

picologging-0.9.3-cp312-cp312-macosx_10_15_x86_64.whl (99.3 kB 查看哈希值)

上传时间 CPython 3.12 macOS 10.15+ x86-64

picologging-0.9.3-cp312-cp312-macosx_10_15_universal2.whl (164.1 kB 查看哈希值)

上传于 CPython 3.12 macOS 10.15+ universal2 (ARM64, x86-64)

picologging-0.9.3-cp311-cp311-win_amd64.whl (86.7 kB 查看哈希值)

上传于 CPython 3.11 Windows x86-64

picologging-0.9.3-cp311-cp311-win32.whl (78.1 kB 查看哈希值)

上传于 CPython 3.11 Windows x86

picologging-0.9.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (165.4 kB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ x86-64

picologging-0.9.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (177.3 kB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ i686

picologging-0.9.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (165.7 kB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ ARM64

picologging-0.9.3-cp311-cp311-macosx_10_15_x86_64.whl (98.8 kB 查看哈希值)

上传于 CPython 3.11 macOS 10.15+ x86-64

picologging-0.9.3-cp311-cp311-macosx_10_15_universal2.whl (163.4 kB 查看哈希值)

上传于 CPython 3.11 macOS 10.15+ universal2 (ARM64, x86-64)

picologging-0.9.3-cp311-cp311-macosx_10_15_universal2.whl (86.7 kB 查看哈希值)

上传于 CPython 3.10 Windows x86-64

picologging-0.9.3-cp310-cp310-win32.whl (78.1 kB 查看哈希值)

上传于 CPython 3.10 Windows x86

picologging-0.9.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (165.3 kB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64

picologging-0.9.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (177.2 kB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ i686

picologging-0.9.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (165.6 kB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ ARM64

picologging-0.9.3-cp310-cp310-macosx_10_15_x86_64.whl (98.7 kB 查看哈希值)

上传于 CPython 3.10 macOS 10.15+ x86-64

picologging-0.9.3-cp310-cp310-macosx_10_15_universal2.whl (163.2 kB 查看哈希值)

上传于 CPython 3.10 macOS 10.15+ universal2 (ARM64, x86-64)

picologging-0.9.3-cp39-cp39-win_amd64.whl (86.8 kB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

picologging-0.9.3-cp39-cp39-win32.whl (78.1 kB 查看哈希值)

上传于 CPython 3.9 Windows x86

picologging-0.9.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (165.3 kB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

picologging-0.9.3-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (177.1 kB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ i686

picologging-0.9.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (165.5 kB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ ARM64

picologging-0.9.3-cp39-cp39-macosx_10_15_x86_64.whl (98.7 kB 查看哈希值)

上传于 CPython 3.9 macOS 10.15+ x86-64

picologging-0.9.3-cp39-cp39-macosx_10_15_universal2.whl (163.2 kB 查看哈希值)

上传于 CPython 3.9 macOS 10.15+ universal2 (ARM64, x86-64)

picologging-0.9.3-cp38-cp38-win_amd64.whl (86.4 kB 查看哈希值)

上传于 CPython 3.8 Windows x86-64

picologging-0.9.3-cp38-cp38-win32.whl (77.8 kB 查看哈希值)

上传于 CPython 3.8 Windows x86

picologging-0.9.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (165.2 kB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ x86-64

picologging-0.9.3-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (177.0 kB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ i686

picologging-0.9.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (165.4 kB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ ARM64

picologging-0.9.3-cp38-cp38-macosx_10_15_x86_64.whl (98.3 kB 查看哈希值)

上传于 CPython 3.8 macOS 10.15+ x86-64

picologging-0.9.3-cp38-cp38-macosx_10_15_universal2.whl (162.5 kB 查看哈希值)

上传于 CPython 3.8 macOS 10.15+ universal2 (ARM64, x86-64)

picologging-0.9.3-cp37-cp37m-win_amd64.whl (86.2 kB 查看哈希值)

上传于 CPython 3.7m Windows x86-64

picologging-0.9.3-cp37-cp37m-win32.whl (77.6 kB 查看哈希值)

上传于 CPython 3.7m Windows x86

picologging-0.9.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (164.6 kB 查看哈希值)

上传于 CPython 3.7m manylinux: glibc 2.17+ x86-64

picologging-0.9.3-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (176.5 kB 查看哈希值)

上传于 CPython 3.7m manylinux: glibc 2.17+ i686

picologging-0.9.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (165.0 kB 查看哈希值)

上传于 CPython 3.7m manylinux: glibc 2.17+ ARM64

picologging-0.9.3-cp37-cp37m-macosx_10_15_x86_64.whl (97.9 kB 查看哈希值)

上传于 CPython 3.7m macOS 10.15+ x86-64

由以下机构支持

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