轻量高效的日志库,支持多级别日志记录、日志轮转、流水日志追踪及埋点日志功能,深度集成 Flask 和 Requests 框架。
Project description
simple-channel-log
轻量高效的日志库,支持多级别日志记录、日志轮转、流水日志追踪及埋点日志功能,深度集成 Flask 和 Requests 框架。
主要特性
- 📅 支持按时间轮转日志(天/小时/分钟等)
- 📊 提供多级别日志记录(DEBUG/INFO/WARNING/ERROR/CRITICAL)
- 🌐 内置Flask中间件记录请求/响应流水日志(Journallog-in)
- 📡 集成Requests会话记录外部调用流水日志(Journallog-out)
- 🔍 智能处理长字符串截断(超过1000字符自动标记)
- 📁 自动创建分级日志目录结构
- 💻 支持终端输出与文件存储分离控制
安装
pip install simple_channel_log
快速入门
基础配置
# coding:utf-8
import simple_channel_log as log
# 初始化日志配置
log.__init__("<your_appname>", logdir="/app/logs")
# 初始化后可直接调用日志方法,日志将记录到参数 `logdir` 指定的目录中
log.debug("调试信息", extra_field="value")
log.info("业务日志", user_id=123)
log.warning("异常预警", error_code=500)
log.error("系统错误", stack_trace="...")
# 埋点日志
log.trace(
user_id=123,
action="purchase",
item_count=2
)
Flask 流水日志
# coding:utf-8
import simple_channel_log as log
# 初始化日志配置
log.__init__(..., enable_journallog_in=True)
设置 enable_journallog_in=True 表示启用 Flask 流水日志,将自动记录每个接口的调用信息。
若要在日志中记录接口编码,你需要将接口编码传递给请求对象 flask.request:
# coding:utf-8
from flask import request
@app.get("/index")
def index():
request.method_code = "<method_code>" # 将接口编码传递给请求对象
return jsonify({"msg": "ok"})
如果调用方已经将接口编码传递到请求头 request.headers["Method-Code"],则会自动获取。
Requests 外部调用追踪
# coding:utf-8
import simple_channel_log as log
# 初始化日志配置
log.__init__(..., enable_journallog_out=True)
设置 enable_journallog_out=True 表示启用 Requests 外部调用追踪,将自动记录每个请求的调用信息。
若要在日志中记录接口编码,你需要将接口编码传递到请求头:
# coding:utf-8
import requests
requests.get(..., headers={"Method-Code": "<method_code>"})
详细配置
初始化参数
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| appname | str | 必填 | 应用名称,以服务编码开头 |
| logdir | str | 系统相关默认路径 | 日志存储根目录 |
| when | str | 'D' | 轮转周期:W(周)/D(天)/H(时)/M(分)/S(秒) |
| interval | int | 1 | 轮转频率 |
| backup_count | int | 7 | 历史日志保留数量(0=永久) |
| output_to_terminal | bool | False | 启用后日志将同时输出到控制台 |
| enable_journallog_in | bool | False | 启用Flask请求流水日志 |
| enable_journallog_out | bool | False | 启用Requests外部调用日志 |
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
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 simple_channel_log-1.2.1.tar.gz.
File metadata
- Download URL: simple_channel_log-1.2.1.tar.gz
- Upload date:
- Size: 11.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32bf772492e3c4378760d6e618d710c604dd6575eef15573fb29f906099337c1
|
|
| MD5 |
3b48cc63afd653a12dbbece678885047
|
|
| BLAKE2b-256 |
4c566a42013b96cf73fba2abd88a557114f4856808d5eef7fa243c0e072f876b
|
File details
Details for the file simple_channel_log-1.2.1-py3-none-any.whl.
File metadata
- Download URL: simple_channel_log-1.2.1-py3-none-any.whl
- Upload date:
- Size: 10.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ded3cc79bfd98665c5d7f7c065853973a299dcc0fa6154f146ba17495fc4685f
|
|
| MD5 |
387375cfeedf2f037cf38b1481cabeb7
|
|
| BLAKE2b-256 |
da6c64636a59090ff15ade38f416bedb88378de942dcb2822f9bffb657b1a562
|