Skip to main content

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.Path
  • all.log:记录 INFO 及以上级别,按日轮转,保留最近 30 个文件
  • 如果已经创建过命名 logger,其文件 handler 会切换到新目录

get_logger(name="default", level="INFO", formatter=None)

获取带有独立文件 handler 的 Loguru logger。

  • name:logger 名称,同时作为日志文件名;只允许普通文件名,不允许传入路径
  • level:该命名日志文件的最低记录级别
  • formatter:可选的 Loguru 格式字符串
  • 命名日志按日轮转并压缩,保留最近 7 个文件
  • 重复调用会复用同名 logger;修改 levelformatter 时会替换旧文件 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

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

nltlog-1.1.5-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file nltlog-1.1.5-py3-none-any.whl.

File metadata

  • Download URL: nltlog-1.1.5-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

Hashes for nltlog-1.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 991006c07a52a1559fa5701e17180de3a06ca71fdcb72ecb84277a7b0595d5fb
MD5 22c6308f4ef9f289fc670336a00b429c
BLAKE2b-256 07db8b3b3702308275ee1a5f124565c337a36484033ffa0c8c8ab664f0b7b99c

See more details on using hashes here.

Release history Release notifications | RSS feed

1.1.6

1 file

This release

1.1.5 This release

1 file

1.1.4

1 file

1.1.3

1 file

1.0.14

1 file

1.0.13

1 file

1.0.12

1 file

1.0.11

2 files

1.0.9

2 files

1.0.8

2 files

Supported by

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