nltlog
nltlog 是一个轻量的 Loguru 辅助库,用于按名称拆分日志文件,并提供开箱即用的按日轮转、压缩和保留策略。
特性
- 导入包时不创建目录、不写文件,也不修改 Loguru 的全局 handler
- 每个 logger 名称对应一个独立日志文件
- 日志按日轮转,历史文件自动使用 gzip 压缩
- 可选生成聚合日志
all.log,同时统一控制台输出格式 - 重复获取同名 logger 不会重复添加 handler
- 兼容旧接口
getLogger
环境要求
- Python 3.9 或更高版本
安装
pip install nltlog
快速开始
仅使用命名日志
直接调用 get_logger() 会保留应用已有的 Loguru handler,并在默认的 logs/ 目录中创建命名日志文件。
from nltlog import get_logger
log = get_logger("worker")
log.info("任务开始")
生成的文件:
logs/
└── worker.log
配置控制台和聚合日志
需要统一控制台格式或生成 all.log 时,在应用启动阶段显式调用 configure():
from nltlog import configure, get_logger
configure("logs")
log = get_logger("worker", level="DEBUG")
log.debug("调试信息")
log.info("任务开始")
生成的文件:
logs/
├── all.log
└── worker.log
configure() 会替换 Loguru 的全局 handler。未绑定 module_name 的普通 Loguru 日志仍可正常输出,并在格式中显示为 -。
API
configure(log_dir="logs")
配置彩色控制台输出和聚合日志,并设置后续命名日志使用的目录。
log_dir:日志目录,支持字符串或pathlib.Pathall.log:记录INFO及以上级别,按日轮转,保留最近 30 个文件- 如果已经创建过命名 logger,其文件 handler 会切换到新目录
get_logger(name="default", level="INFO", formatter=None)
获取带有独立文件 handler 的 Loguru logger。
name:logger 名称,同时作为日志文件名;只允许普通文件名,不允许传入路径level:该命名日志文件的最低记录级别formatter:可选的 Loguru 格式字符串- 命名日志按日轮转并压缩,保留最近 7 个文件
- 重复调用会复用同名 logger;修改
level或formatter时会替换旧文件 handler
非法名称会抛出 ValueError:
get_logger("../outside") # ValueError
旧接口仍然可用:
from nltlog import getLogger
log = getLogger("worker")
开发
运行回归测试和静态检查:
python -m unittest discover -s tests -v
ruff check .
许可证
本项目使用 MIT License。
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
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
File details
Details for the file nltlog-1.1.4-py3-none-any.whl.
File metadata
- Download URL: nltlog-1.1.4-py3-none-any.whl
- Upload date:
- Size: 5.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
146de905e1899e1c9226ae8283e2e9e27d9fbff500b0495a10fc74752e72f1b9
|
|
| MD5 |
6d59f62d7f694792e6d1d1af25d85dad
|
|
| BLAKE2b-256 |
f1415c1f9294ad9edce757c59c1a067601c62fdbba4d48f9990f2c5de468c70b
|