An enhanced logger based on Loguru
Project description
XmiLogger
基于 Loguru 的增强日志记录器,支持多语言、异步操作和高级统计功能。
特性
- 🚀 高性能:使用 LRU 缓存和异步处理
- 🌐 多语言支持:支持中文和英文日志输出
- 📊 高级统计:支持日志分类统计和趋势分析
- 🔄 异步支持:支持异步函数日志记录
- 📝 自定义格式:支持自定义日志格式
- 🔒 安全性:内置错误处理和配置验证
- 📦 日志轮转:支持按大小和时间轮转
- 🌍 远程日志:支持异步远程日志收集
安装
pip install xmi-logger
快速开始
基本使用
from xmi_logger import XmiLogger
# 创建日志记录器实例
logger = XmiLogger(
file_name="app",
log_dir="logs",
language="zh" # 使用中文输出
)
# 记录不同级别的日志
logger.info("这是一条信息日志")
logger.warning("这是一条警告日志")
logger.error("这是一条错误日志")
异步函数支持
import asyncio
@logger.log_decorator()
async def async_function():
await asyncio.sleep(1)
return "异步操作完成"
# 使用异步函数
async def main():
result = await async_function()
logger.info(f"异步函数结果: {result}")
asyncio.run(main())
远程日志收集
logger = XmiLogger(
file_name="app",
remote_log_url="https://your-log-server.com/logs",
max_workers=3
)
日志统计功能
# 启用统计功能
logger = XmiLogger(
file_name="app",
enable_stats=True
)
# 获取统计信息
stats = logger.get_stats()
print(logger.get_stats_summary())
# 获取错误趋势
error_trend = logger.get_error_trend()
# 获取分类分布
category_dist = logger.get_category_distribution()
高级配置
完整配置示例
logger = XmiLogger(
file_name="app", # 日志文件名
log_dir="logs", # 日志目录
max_size=14, # 单个日志文件最大大小(MB)
retention="7 days", # 日志保留时间
remote_log_url=None, # 远程日志服务器URL
max_workers=3, # 远程日志发送线程数
work_type=False, # 工作模式(False为测试环境)
language="zh", # 日志语言(zh/en)
rotation_time="1 day", # 日志轮转时间
custom_format=None, # 自定义日志格式
filter_level="DEBUG", # 日志过滤级别
compression="zip", # 日志压缩格式
enable_stats=False, # 是否启用统计
categories=None, # 日志分类列表
cache_size=128 # 缓存大小
)
自定义日志格式
custom_format = (
"<green>{time:YYYY-MM-DD HH:mm:ss}</green> | "
"<level>{level: <8}</level> | "
"ReqID:{extra[request_id]} | "
"<cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - "
"<level>{message}</level>"
)
logger = XmiLogger(
file_name="app",
custom_format=custom_format
)
主要功能
1. 日志记录
- 支持所有标准日志级别(DEBUG, INFO, WARNING, ERROR, CRITICAL)
- 支持自定义日志级别
- 支持带标签和分类的日志记录
2. 日志管理
- 自动日志轮转
- 日志压缩
- 日志保留策略
- 多文件输出(按级别分文件)
3. 统计功能
- 日志总数统计
- 错误率统计
- 按类别统计
- 按时间统计
- 错误趋势分析
4. 远程日志
- 异步远程日志发送
- 自动重试机制
- 线程池管理
- 错误处理
5. 装饰器支持
- 函数执行时间记录
- 异常捕获和记录
- 支持同步和异步函数
错误处理
try:
logger = XmiLogger("app", log_dir="/path/to/logs")
except RuntimeError as e:
print(f"日志配置失败: {e}")
注意事项
- 确保日志目录具有写入权限
- 远程日志URL必须是有效的HTTP(S)地址
- 建议在生产环境中启用统计功能
- 异步操作时注意正确处理异常
贡献
欢迎提交 Issue 和 Pull Request!
许可证
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
xmi_logger-0.0.2.tar.gz
(13.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
File details
Details for the file xmi_logger-0.0.2.tar.gz.
File metadata
- Download URL: xmi_logger-0.0.2.tar.gz
- Upload date:
- Size: 13.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
71da5d95b7263e1614ab4bccd448a67ef8ca16cb72435785c0ed6c70cf9d8045
|
|
| MD5 |
786a2db02c29592fa4835b1e115eccdb
|
|
| BLAKE2b-256 |
30ae1928381245b3caae462bb2a8ff475216671744075abe788abcdb10d08386
|
File details
Details for the file xmi_logger-0.0.2-py3-none-any.whl.
File metadata
- Download URL: xmi_logger-0.0.2-py3-none-any.whl
- Upload date:
- Size: 12.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e8857b5f00dbf956f75a3e05bb55b357c5812e83a5d4a1e57b11e06e29e6267a
|
|
| MD5 |
13f7999610a60ae131390d9542c0579f
|
|
| BLAKE2b-256 |
dfd4baae50e8d8e08991a4db9b5ed9eb6948430586d6b2742371c8ab2b5042c7
|