Skip to main content

A powerful, structured logging solution for Python designed for production environments.

Project description

nologger

—— 专为生产环境设计的 Python 全栈日志解决方案

📖 简介

[nologger] 是基于 Python 标准库 logging 深度封装的增强型日志工具。它解决了原生 logging 配置繁琐、JSON 序列化困难及多进程写入不安全等痛点。旨在通过一行代码实现从“控制台开发调试”到“生产环境结构化采集”的无缝切换。

✨ 核心特性 (Key Features)

1. 🚀 零配置启动与配置热加载 (Zero-Config & Hot Reload)

  • 默认最佳实践: 引入即用,默认开启 INFO 级别与标准化控制台格式,无需编写繁琐的 formatter/handler 代码。
  • 多源配置加载: 支持从 dictJSONYAML 文件或环境变量 (ENV_LOG_LEVEL) 加载配置,适应容器化部署。
  • 配置热更新: (可选高级功能)支持监听配置文件变化,无需重启服务即可动态调整日志级别。

2. 🎨 沉浸式控制台体验 (Developer Experience)

  • 语义化着色: 对不同级别(DEBUG/INFO/ERROR)及关键字段(时间、模块名)进行 ANSI 智能着色,视觉干扰降至最低。
  • 异常高亮: 优化 Traceback 显示,自动缩短标准库冗长路径,高亮错误代码行,让调试聚焦核心逻辑。

3. 💾 企业级文件管理 (Advanced File Management)

  • 智能轮转 (Smart Rotation): 同时支持 TimeBased(按天/小时)和 SizeBased(按 100MB)的双重切割策略。
  • 自动清理 (Retention Policy): 内置过期清理机制(例如:retention="30 days"),自动删除陈旧日志文件,防止磁盘写满。
  • 多进程安全: 集成文件锁或多进程安全的 Handler,彻底解决多进程并发写入时的日志丢失与文件错乱问题。

4. 📊 结构化与序列化 (Structured & Serialization)

  • JSON First: 一键切换至 JSON 模式,自动展平嵌套对象。
  • 智能序列化: 内置增强型 Encoder,自动处理 datetimeUUIDDecimal 及自定义 Object,不仅是记录字符串,更是记录数据。
  • 标准化字段: 自动注入 service_namehost_iptimestamp_iso,完美适配 ELK (Elasticsearch)、Splunk 或 Filebeat 采集标准。

5. 🕵️ 上下文感知与全链路追踪 (Context & Tracing)

  • 自动化元数据: 每一条日志自动携带 filenamelinenofuncNamethread/process_id
  • TraceID 注入: 支持通过 ContextVar 传递 Trace-ID,将同一个请求跨越多层调用的日志串联起来,解决微服务/异步任务难以追踪的问题。

6. 🛠️ AOP 切面与装饰器 (Decorators & Hooks)

  • @log_execution 装饰器:
    • 全景记录: 自动记录函数入参 (args/kwargs)、返回值、执行耗时及异常信息。
    • 异常保护: 可配置 suppress=True 模式,在记录错误日志的同时吞掉异常,防止非关键逻辑(如发通知)导致主程序崩溃。
  • 上下文管理器: 使用 with logger.catch(): 优雅地捕获代码块内的所有潜在错误。

7. ⚡ 异步非阻塞架构 (Async & High Performance)

  • 后台队列写入: 采用 QueueHandler + QueueListener 模式,将日志写入操作从主业务线程剥离。
  • 低延迟保证: 在高并发场景下(QPS > 5000),确保业务逻辑不受磁盘 IO 抖动影响,真正做到“日志记录零感知的”。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nologger-0.3.0.tar.gz (15.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nologger-0.3.0-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

File details

Details for the file nologger-0.3.0.tar.gz.

File metadata

  • Download URL: nologger-0.3.0.tar.gz
  • Upload date:
  • Size: 15.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nologger-0.3.0.tar.gz
Algorithm Hash digest
SHA256 a44906b3412a1b54e5e0506bbfcbc19c3931ed2f67b4cc26de3dc0910a9cd631
MD5 fe31a8d9873303edd1b71892a8218f0a
BLAKE2b-256 09e101e11fe9b9c19c76b469e4254f391ab0d6f1c69f23789a59222a1c10618c

See more details on using hashes here.

File details

Details for the file nologger-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: nologger-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 15.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nologger-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dac522ec4a178289866b784382b3247cf1511d4abd93648232af70ac2f7a6464
MD5 1a300232cd07460b45ba3f861c5aaedc
BLAKE2b-256 f8ffebb2e1e1c8dd631b48b18c19f9bdfe2ab39a395412e6babcc6299017914c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page