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.1.0.tar.gz (13.6 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.1.0-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for nologger-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b5fe10ca2fc3396869e99492fb6bac9342b31311e4028357e50d0f8f9bd8aa86
MD5 2cffa14d29d5df514c64e82368c31b17
BLAKE2b-256 6f933c0815b9c1e4c3d90949c8ea6d6e2e458cd5195bab3b516005aef726aded

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nologger-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 13.9 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7a1f158d56fe1aa185bb87bd8b214865288973b3a7b26cf41a6ee9f6f17c9ddc
MD5 eea0b1c39ddbb6206b2e194d7c6dac4b
BLAKE2b-256 d235ff4ade6090e74cc4e87c95d31c58ffe15d769a77c8b94b7c35a1980b3c41

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