Skip to main content

A collection of Loguru sinks for integrating with third-party cloud logging services like Aliyun SLS, Datadog, Sentry, etc.

Project description

YAI Loguru Support

A collection of Loguru sinks for integrating with third-party cloud logging services.

功能特性

  • 🚀 高性能异步日志传输:基于官方 SDK 的批量、异步日志发送
  • 🔧 即插即用:简单的 API,与现有 loguru 配置无缝集成
  • 🌥️ 多云支持:支持阿里云 SLS、Datadog、Sentry 等主流云服务
  • 🛡️ 生产级可靠性:优雅停机、错误重试、连接保活
  • 📊 内置监控:性能指标、错误率统计、健康检查

支持的云服务

服务 状态 安装命令
阿里云 SLS ✅ 已实现 pip install yai-loguru-support[sls]
Datadog 🚧 开发中 pip install yai-loguru-support[datadog]
Sentry 🚧 开发中 pip install yai-loguru-support[sentry]

快速开始

1. 安装

# 基础安装
pip install yai-loguru-support

# 安装阿里云 SLS 支持
pip install yai-loguru-support[sls]

# 安装所有支持的云服务
pip install yai-loguru-support[all]

2. 阿里云 SLS 集成

import os
from loguru import logger
from yai_loguru_support.sls import AliyunSlsSink

# 创建 SLS sink
sls_sink = AliyunSlsSink(
    endpoint=os.environ['SLS_ENDPOINT'],
    access_key_id=os.environ['SLS_AK_ID'],
    access_key=os.environ['SLS_AK_KEY'],
    project=os.environ['SLS_PROJECT'],
    logstore=os.environ['SLS_LOGSTORE']
)

# 添加到 loguru
logger.add(sls_sink, serialize=True, level="INFO")

# 正常使用 loguru
logger.info("Hello from Aliyun SLS!", user_id="123", action="login")

# 优雅停机
import atexit
atexit.register(sls_sink.stop)

3. 在 FastAPI 中使用

from fastapi import FastAPI
from yai_loguru_support.sls import AliyunSlsSink
from yai_nexus_agentkit.core.logging import logger

app = FastAPI()

# 生产环境自动启用 SLS
if os.getenv("ENV") == "production":
    sls_sink = AliyunSlsSink(
        endpoint=os.environ['SLS_ENDPOINT'],
        access_key_id=os.environ['SLS_AK_ID'],
        access_key=os.environ['SLS_AK_KEY'],
        project=os.environ['SLS_PROJECT'],
        logstore=os.environ['SLS_LOGSTORE']
    )
    logger.add(sls_sink, serialize=True, level="INFO")
    
    @app.on_event("shutdown")
    async def shutdown_event():
        sls_sink.stop()

@app.get("/")
async def root():
    logger.info("API called", endpoint="/", method="GET")
    return {"message": "Hello World"}

环境变量

# 阿里云 SLS 配置
SLS_ENDPOINT=cn-hangzhou.log.aliyuncs.com
SLS_AK_ID=your_access_key_id
SLS_AK_KEY=your_access_key_secret
SLS_PROJECT=your_log_project
SLS_LOGSTORE=your_log_store

开发

# 克隆项目
git clone https://github.com/yai-nexus/yai-nexus-agentkit.git
cd yai-nexus-agentkit/packages/loguru-support

# 安装开发依赖
pip install -e ".[dev,all]"

# 运行测试
pytest

# 代码格式化
black .
ruff check .

许可证

MIT License

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

yai_loguru_support-0.2.0.tar.gz (19.2 kB view details)

Uploaded Source

Built Distribution

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

yai_loguru_support-0.2.0-py3-none-any.whl (19.9 kB view details)

Uploaded Python 3

File details

Details for the file yai_loguru_support-0.2.0.tar.gz.

File metadata

  • Download URL: yai_loguru_support-0.2.0.tar.gz
  • Upload date:
  • Size: 19.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for yai_loguru_support-0.2.0.tar.gz
Algorithm Hash digest
SHA256 0f8617a6e1aef8d67450f34f9721b7c169861f4889ef39996702aad70bc1cf84
MD5 15afe30999da3d918c38b7aa01eda6a7
BLAKE2b-256 e296201505475a4d0d1bf3a26d973fc70c5ea1e99c28600a84da5df8bbca8dd0

See more details on using hashes here.

Provenance

The following attestation bundles were made for yai_loguru_support-0.2.0.tar.gz:

Publisher: publish-all.yml on yai-nexus/yai-nexus-agentkit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file yai_loguru_support-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for yai_loguru_support-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 201616367c34924e0baf2408eb115d1cdf803b6b4843f416b3a106ac6ee83fb3
MD5 d083d9b6163fad983ebac23735668d84
BLAKE2b-256 291e4e0a916f6bc91c2b24cd086ddf6f7e8494cf979cef5fd57fe696f2b9f2f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for yai_loguru_support-0.2.0-py3-none-any.whl:

Publisher: publish-all.yml on yai-nexus/yai-nexus-agentkit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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