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.2.0.tar.gz (13.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.2.0-py3-none-any.whl (14.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: nologger-0.2.0.tar.gz
  • Upload date:
  • Size: 13.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for nologger-0.2.0.tar.gz
Algorithm Hash digest
SHA256 99c0264b5e97d243cf49c3d5cb4ebdcdc67c876d577171d9d57d8010718c5bf8
MD5 1459600bbc71dd3bf4386da36a1f82a6
BLAKE2b-256 b711c058cf6bf2bbbcc19a7265b1b611254f6a3008c24a18f79d988a4d83056f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nologger-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 14.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for nologger-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c7bdf2e79fb8019ac467ef80ceceb697d8a049f90c684d04839448478a684f27
MD5 cab603b8978adb653347d6fceb0bcaa3
BLAKE2b-256 c644056f40e4b8e853898f6baab72dfb0f0d28d484c5a79cbff8a45c0422e575

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