xmi-logger 0.0.1__tar.gz → 0.0.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,211 @@
1
+ Metadata-Version: 2.4
2
+ Name: xmi_logger
3
+ Version: 0.0.2
4
+ Summary: An enhanced logger based on Loguru
5
+ Home-page: https://github.com/wang-zhibo/xmi_logger
6
+ Author: gm.zhibo.wang
7
+ Author-email: gm.zhibo.wang@gmail.com
8
+ Project-URL: Bug Reports, https://github.com/wang-zhibo/xmi_logger/issues
9
+ Project-URL: Source, https://github.com/wang-zhibo/xmi_logger
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Operating System :: OS Independent
12
+ Requires-Python: >=3.6
13
+ Description-Content-Type: text/markdown
14
+ Requires-Dist: loguru==0.7.3
15
+ Requires-Dist: requests
16
+ Dynamic: author
17
+ Dynamic: author-email
18
+ Dynamic: classifier
19
+ Dynamic: description
20
+ Dynamic: description-content-type
21
+ Dynamic: home-page
22
+ Dynamic: project-url
23
+ Dynamic: requires-dist
24
+ Dynamic: requires-python
25
+ Dynamic: summary
26
+
27
+ # XmiLogger
28
+
29
+ 基于 Loguru 的增强日志记录器,支持多语言、异步操作和高级统计功能。
30
+
31
+ ## 特性
32
+
33
+ - 🚀 高性能:使用 LRU 缓存和异步处理
34
+ - 🌐 多语言支持:支持中文和英文日志输出
35
+ - 📊 高级统计:支持日志分类统计和趋势分析
36
+ - 🔄 异步支持:支持异步函数日志记录
37
+ - 📝 自定义格式:支持自定义日志格式
38
+ - 🔒 安全性:内置错误处理和配置验证
39
+ - 📦 日志轮转:支持按大小和时间轮转
40
+ - 🌍 远程日志:支持异步远程日志收集
41
+
42
+ ## 安装
43
+
44
+ ```bash
45
+ pip install xmi-logger
46
+ ```
47
+
48
+ ## 快速开始
49
+
50
+ ### 基本使用
51
+
52
+ ```python
53
+ from xmi_logger import XmiLogger
54
+
55
+ # 创建日志记录器实例
56
+ logger = XmiLogger(
57
+ file_name="app",
58
+ log_dir="logs",
59
+ language="zh" # 使用中文输出
60
+ )
61
+
62
+ # 记录不同级别的日志
63
+ logger.info("这是一条信息日志")
64
+ logger.warning("这是一条警告日志")
65
+ logger.error("这是一条错误日志")
66
+ ```
67
+
68
+ ### 异步函数支持
69
+
70
+ ```python
71
+ import asyncio
72
+
73
+ @logger.log_decorator()
74
+ async def async_function():
75
+ await asyncio.sleep(1)
76
+ return "异步操作完成"
77
+
78
+ # 使用异步函数
79
+ async def main():
80
+ result = await async_function()
81
+ logger.info(f"异步函数结果: {result}")
82
+
83
+ asyncio.run(main())
84
+ ```
85
+
86
+ ### 远程日志收集
87
+
88
+ ```python
89
+ logger = XmiLogger(
90
+ file_name="app",
91
+ remote_log_url="https://your-log-server.com/logs",
92
+ max_workers=3
93
+ )
94
+ ```
95
+
96
+ ### 日志统计功能
97
+
98
+ ```python
99
+ # 启用统计功能
100
+ logger = XmiLogger(
101
+ file_name="app",
102
+ enable_stats=True
103
+ )
104
+
105
+ # 获取统计信息
106
+ stats = logger.get_stats()
107
+ print(logger.get_stats_summary())
108
+
109
+ # 获取错误趋势
110
+ error_trend = logger.get_error_trend()
111
+
112
+ # 获取分类分布
113
+ category_dist = logger.get_category_distribution()
114
+ ```
115
+
116
+ ## 高级配置
117
+
118
+ ### 完整配置示例
119
+
120
+ ```python
121
+ logger = XmiLogger(
122
+ file_name="app", # 日志文件名
123
+ log_dir="logs", # 日志目录
124
+ max_size=14, # 单个日志文件最大大小(MB)
125
+ retention="7 days", # 日志保留时间
126
+ remote_log_url=None, # 远程日志服务器URL
127
+ max_workers=3, # 远程日志发送线程数
128
+ work_type=False, # 工作模式(False为测试环境)
129
+ language="zh", # 日志语言(zh/en)
130
+ rotation_time="1 day", # 日志轮转时间
131
+ custom_format=None, # 自定义日志格式
132
+ filter_level="DEBUG", # 日志过滤级别
133
+ compression="zip", # 日志压缩格式
134
+ enable_stats=False, # 是否启用统计
135
+ categories=None, # 日志分类列表
136
+ cache_size=128 # 缓存大小
137
+ )
138
+ ```
139
+
140
+ ### 自定义日志格式
141
+
142
+ ```python
143
+ custom_format = (
144
+ "<green>{time:YYYY-MM-DD HH:mm:ss}</green> | "
145
+ "<level>{level: <8}</level> | "
146
+ "ReqID:{extra[request_id]} | "
147
+ "<cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - "
148
+ "<level>{message}</level>"
149
+ )
150
+
151
+ logger = XmiLogger(
152
+ file_name="app",
153
+ custom_format=custom_format
154
+ )
155
+ ```
156
+
157
+ ## 主要功能
158
+
159
+ ### 1. 日志记录
160
+ - 支持所有标准日志级别(DEBUG, INFO, WARNING, ERROR, CRITICAL)
161
+ - 支持自定义日志级别
162
+ - 支持带标签和分类的日志记录
163
+
164
+ ### 2. 日志管理
165
+ - 自动日志轮转
166
+ - 日志压缩
167
+ - 日志保留策略
168
+ - 多文件输出(按级别分文件)
169
+
170
+ ### 3. 统计功能
171
+ - 日志总数统计
172
+ - 错误率统计
173
+ - 按类别统计
174
+ - 按时间统计
175
+ - 错误趋势分析
176
+
177
+ ### 4. 远程日志
178
+ - 异步远程日志发送
179
+ - 自动重试机制
180
+ - 线程池管理
181
+ - 错误处理
182
+
183
+ ### 5. 装饰器支持
184
+ - 函数执行时间记录
185
+ - 异常捕获和记录
186
+ - 支持同步和异步函数
187
+
188
+ ## 错误处理
189
+
190
+ ```python
191
+ try:
192
+ logger = XmiLogger("app", log_dir="/path/to/logs")
193
+ except RuntimeError as e:
194
+ print(f"日志配置失败: {e}")
195
+ ```
196
+
197
+ ## 注意事项
198
+
199
+ 1. 确保日志目录具有写入权限
200
+ 2. 远程日志URL必须是有效的HTTP(S)地址
201
+ 3. 建议在生产环境中启用统计功能
202
+ 4. 异步操作时注意正确处理异常
203
+
204
+ ## 贡献
205
+
206
+ 欢迎提交 Issue 和 Pull Request!
207
+
208
+ ## 许可证
209
+
210
+ MIT License
211
+
@@ -0,0 +1,185 @@
1
+ # XmiLogger
2
+
3
+ 基于 Loguru 的增强日志记录器,支持多语言、异步操作和高级统计功能。
4
+
5
+ ## 特性
6
+
7
+ - 🚀 高性能:使用 LRU 缓存和异步处理
8
+ - 🌐 多语言支持:支持中文和英文日志输出
9
+ - 📊 高级统计:支持日志分类统计和趋势分析
10
+ - 🔄 异步支持:支持异步函数日志记录
11
+ - 📝 自定义格式:支持自定义日志格式
12
+ - 🔒 安全性:内置错误处理和配置验证
13
+ - 📦 日志轮转:支持按大小和时间轮转
14
+ - 🌍 远程日志:支持异步远程日志收集
15
+
16
+ ## 安装
17
+
18
+ ```bash
19
+ pip install xmi-logger
20
+ ```
21
+
22
+ ## 快速开始
23
+
24
+ ### 基本使用
25
+
26
+ ```python
27
+ from xmi_logger import XmiLogger
28
+
29
+ # 创建日志记录器实例
30
+ logger = XmiLogger(
31
+ file_name="app",
32
+ log_dir="logs",
33
+ language="zh" # 使用中文输出
34
+ )
35
+
36
+ # 记录不同级别的日志
37
+ logger.info("这是一条信息日志")
38
+ logger.warning("这是一条警告日志")
39
+ logger.error("这是一条错误日志")
40
+ ```
41
+
42
+ ### 异步函数支持
43
+
44
+ ```python
45
+ import asyncio
46
+
47
+ @logger.log_decorator()
48
+ async def async_function():
49
+ await asyncio.sleep(1)
50
+ return "异步操作完成"
51
+
52
+ # 使用异步函数
53
+ async def main():
54
+ result = await async_function()
55
+ logger.info(f"异步函数结果: {result}")
56
+
57
+ asyncio.run(main())
58
+ ```
59
+
60
+ ### 远程日志收集
61
+
62
+ ```python
63
+ logger = XmiLogger(
64
+ file_name="app",
65
+ remote_log_url="https://your-log-server.com/logs",
66
+ max_workers=3
67
+ )
68
+ ```
69
+
70
+ ### 日志统计功能
71
+
72
+ ```python
73
+ # 启用统计功能
74
+ logger = XmiLogger(
75
+ file_name="app",
76
+ enable_stats=True
77
+ )
78
+
79
+ # 获取统计信息
80
+ stats = logger.get_stats()
81
+ print(logger.get_stats_summary())
82
+
83
+ # 获取错误趋势
84
+ error_trend = logger.get_error_trend()
85
+
86
+ # 获取分类分布
87
+ category_dist = logger.get_category_distribution()
88
+ ```
89
+
90
+ ## 高级配置
91
+
92
+ ### 完整配置示例
93
+
94
+ ```python
95
+ logger = XmiLogger(
96
+ file_name="app", # 日志文件名
97
+ log_dir="logs", # 日志目录
98
+ max_size=14, # 单个日志文件最大大小(MB)
99
+ retention="7 days", # 日志保留时间
100
+ remote_log_url=None, # 远程日志服务器URL
101
+ max_workers=3, # 远程日志发送线程数
102
+ work_type=False, # 工作模式(False为测试环境)
103
+ language="zh", # 日志语言(zh/en)
104
+ rotation_time="1 day", # 日志轮转时间
105
+ custom_format=None, # 自定义日志格式
106
+ filter_level="DEBUG", # 日志过滤级别
107
+ compression="zip", # 日志压缩格式
108
+ enable_stats=False, # 是否启用统计
109
+ categories=None, # 日志分类列表
110
+ cache_size=128 # 缓存大小
111
+ )
112
+ ```
113
+
114
+ ### 自定义日志格式
115
+
116
+ ```python
117
+ custom_format = (
118
+ "<green>{time:YYYY-MM-DD HH:mm:ss}</green> | "
119
+ "<level>{level: <8}</level> | "
120
+ "ReqID:{extra[request_id]} | "
121
+ "<cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - "
122
+ "<level>{message}</level>"
123
+ )
124
+
125
+ logger = XmiLogger(
126
+ file_name="app",
127
+ custom_format=custom_format
128
+ )
129
+ ```
130
+
131
+ ## 主要功能
132
+
133
+ ### 1. 日志记录
134
+ - 支持所有标准日志级别(DEBUG, INFO, WARNING, ERROR, CRITICAL)
135
+ - 支持自定义日志级别
136
+ - 支持带标签和分类的日志记录
137
+
138
+ ### 2. 日志管理
139
+ - 自动日志轮转
140
+ - 日志压缩
141
+ - 日志保留策略
142
+ - 多文件输出(按级别分文件)
143
+
144
+ ### 3. 统计功能
145
+ - 日志总数统计
146
+ - 错误率统计
147
+ - 按类别统计
148
+ - 按时间统计
149
+ - 错误趋势分析
150
+
151
+ ### 4. 远程日志
152
+ - 异步远程日志发送
153
+ - 自动重试机制
154
+ - 线程池管理
155
+ - 错误处理
156
+
157
+ ### 5. 装饰器支持
158
+ - 函数执行时间记录
159
+ - 异常捕获和记录
160
+ - 支持同步和异步函数
161
+
162
+ ## 错误处理
163
+
164
+ ```python
165
+ try:
166
+ logger = XmiLogger("app", log_dir="/path/to/logs")
167
+ except RuntimeError as e:
168
+ print(f"日志配置失败: {e}")
169
+ ```
170
+
171
+ ## 注意事项
172
+
173
+ 1. 确保日志目录具有写入权限
174
+ 2. 远程日志URL必须是有效的HTTP(S)地址
175
+ 3. 建议在生产环境中启用统计功能
176
+ 4. 异步操作时注意正确处理异常
177
+
178
+ ## 贡献
179
+
180
+ 欢迎提交 Issue 和 Pull Request!
181
+
182
+ ## 许可证
183
+
184
+ MIT License
185
+
@@ -13,7 +13,7 @@ with open("README.md", "r", encoding="utf-8") as fh:
13
13
 
14
14
  setup(
15
15
  name='xmi_logger',
16
- version='0.0.1',
16
+ version='0.0.2',
17
17
  author='gm.zhibo.wang',
18
18
  author_email='gm.zhibo.wang@gmail.com',
19
19
  description='An enhanced logger based on Loguru',