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代码。 - 多源配置加载: 支持从
dict、JSON、YAML文件或环境变量 (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,自动处理
datetime、UUID、Decimal及自定义 Object,不仅是记录字符串,更是记录数据。 - 标准化字段: 自动注入
service_name、host_ip、timestamp_iso,完美适配 ELK (Elasticsearch)、Splunk 或 Filebeat 采集标准。
5. 🕵️ 上下文感知与全链路追踪 (Context & Tracing)
- 自动化元数据: 每一条日志自动携带
filename、lineno、funcName及thread/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.2.tar.gz
(14.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
nologger-0.2.2-py3-none-any.whl
(14.8 kB
view details)
File details
Details for the file nologger-0.2.2.tar.gz.
File metadata
- Download URL: nologger-0.2.2.tar.gz
- Upload date:
- Size: 14.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06a7ac82de76ebdd502df8cfd6a66fc67e81b85d42b3f983af033e4f76ccbb3e
|
|
| MD5 |
8a17ded363ff33094d76653dc722c61d
|
|
| BLAKE2b-256 |
e5f826cbd2cbd0f88e73a816ea9e599bda9c4f8b5e2033e18d9aec6d83ea9a49
|
File details
Details for the file nologger-0.2.2-py3-none-any.whl.
File metadata
- Download URL: nologger-0.2.2-py3-none-any.whl
- Upload date:
- Size: 14.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d2e1975b4fdfc676ad47f2a79cf1a49f563da1c9e765bec1ceb89cffd14c587
|
|
| MD5 |
03f731ac943eef56ea757f128b55c843
|
|
| BLAKE2b-256 |
899b51f308eeac54182ff4f7c6af73ffcbf0b0be13dd0999ae490c6bc4aac550
|