Skip to main content

日志管理平台 Python SDK — FastAPI/Starlette/Flask 中间件,自动采集 HTTP 日志

Project description

日志管理平台 Python SDK

English Documentation | PyPI

logs-sdk 是日志管理平台的 Python SDK,提供 FastAPI/Starlette 和 Flask 中间件,一行代码即可自动采集 HTTP 请求的完整日志,异步批量上报。

功能特性

  • 一行代码接入app.add_middleware(logger.fastapi_middleware)
  • 完整采集:60+ 字段——请求/响应头体、客户端信息、设备信息、TLS 版本
  • 自动识别:客户端类型(Web / 小程序 / App / 服务端)、请求来源
  • 异常捕获:HTTP 5xx + Python 异常堆栈自动采集
  • UUID v7:32 位十六进制无连字符
  • 敏感脱敏:Authorization / Cookie 自动脱敏
  • 异步非阻塞:环形缓冲区 + 后台定时刷新
  • 离线缓存:断网本地存储,恢复自动重传
  • 优雅关闭close() 确保缓冲日志全部上报

安装

pip install logs-sdk

# 或安装 FastAPI 集成
pip install logs-sdk[fastapi]

要求 Python 3.9+。

快速开始

FastAPI / Starlette

from fastapi import FastAPI
from logs_sdk import LogSDK

app = FastAPI()

logger = LogSDK(
    endpoint="https://api.logs.codexs.cn/api/v1/ingest/logs",
    api_key="clog_pk_xxx",
    api_secret="clog_sk_xxx",
    project_slug="my-project",
    environment="production",
)

# 一行代码接入
app.add_middleware(logger.fastapi_middleware)

@app.get("/api/hello")
def hello():
    return {"message": "hello"}

Flask

from flask import Flask
from logs_sdk import LogSDK

app = Flask(__name__)

logger = LogSDK(
    endpoint="https://api.logs.codexs.cn/api/v1/ingest/logs",
    api_key="clog_pk_xxx",
    api_secret="clog_sk_xxx",
    project_slug="my-project",
)

# Flask 中间件
app.wsgi_app = logger.flask_middleware

配置参数

参数 类型 默认值 说明
endpoint str 必填 日志上报地址
api_key str 必填 SDK 认证密钥(公钥)
api_secret str 必填 SDK 认证密钥(私钥)
project_slug str 必填 项目短标识
environment str "production" 运行环境
service_name str "" 微服务名称
buffer_size int 1000 缓冲区容量
flush_interval int 5 刷新间隔(秒)
max_retries int 3 最大重试次数
max_body_size int 4096 请求/响应体最大采集大小

采集字段一览

与 Go/Node.js/Java SDK 完全对齐,详见 LogEntry 类型定义

架构设计

HTTP 请求进入
  │
  ├─ ① FastAPIMiddleware.dispatch()
  │     ├─ 生成 UUID v7
  │     ├─ 读取请求体
  │     └─ 记录开始时间
  │
  ├─ ② await call_next(request)  # 业务处理
  │
  ├─ ③ 构建 LogEntry(60+ 字段)
  │
  ├─ ④ buffer.push(entry)  # 非阻塞
  │
  └─ ⑤ 后台定时刷新 → POST → 重试 → 离线缓存

离线缓存

断网时自动缓存到 $TMPDIR/logs-sdk-offline/,恢复后自动重传。

版本历史

版本 日期 变更
v0.3.0 2026-06-21 初始版本:FastAPI/Flask 中间件、异步缓冲、重试、离线缓存

License

UNLICENSED — 内部使用

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

logs_sdk-0.3.0.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

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

logs_sdk-0.3.0-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file logs_sdk-0.3.0.tar.gz.

File metadata

  • Download URL: logs_sdk-0.3.0.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for logs_sdk-0.3.0.tar.gz
Algorithm Hash digest
SHA256 be2824c91fbb63ad6d23d8775aa1a217daa123f72ecd3d6426c82b9f4fd0deb4
MD5 35cc77feb290faf71fa735b6e9b5c8e0
BLAKE2b-256 18639a7346ef9f09e2c940ca816bf1e9bfa2f7b63b87967f9baf7b2ba412061a

See more details on using hashes here.

File details

Details for the file logs_sdk-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: logs_sdk-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 10.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for logs_sdk-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b72d72f224efea179b2a67b42c4234d67a355f48a9dfa58aad0be0c212ac600b
MD5 aedc65e08d17e9cf30a27bd1d54be10f
BLAKE2b-256 d4641542908691f469f4baa3f2904254755ed4556a4137ec489c3669ecfb4ee7

See more details on using hashes here.

Supported by

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