使用Logtail将FastAPI应用日志上传到阿里云SLS的简单步骤

使用Logtail将FastAPI应用的日志上传到阿里云SLS是一个非常实用的日志管理方案。以下是具体的配置步骤,旨在帮助你快速上手使用Logtail和SLS。

步骤1:安装Logtail

1.1 安装依赖

确保服务器上已安装curl工具,因为Logtail的自动诊断工具需要它。

1.2 下载Logtail安装包

从阿里云文档中获取Logtail的安装包,并按照文档的指引进行安装。

1.3 安装Logtail

对于Linux系统,可以使用以下命令安装Logtail:

bash 复制代码
wget http://logtail-release.oss-cn-hangzhou.aliyuncs.com/linux64/logtail.sh
chmod 744 logtail.sh
./logtail.sh install

步骤2:配置阿里云SLS

2.1 创建SLS Project和Logstore

登录阿里云控制台,进入SLS控制台,创建一个新的Project和Logstore。

2.2 获取AccessKey ID和AccessKey Secret

创建一个RAM用户,并授予该用户对Project和Logstore的写入权限,获取AccessKey ID和AccessKey Secret。

步骤3:配置Logtail

3.1 创建Logtail配置

在SLS控制台中创建一个Logtail配置,指定日志文件路径、日志格式等参数。例如:

json 复制代码
{
  "configName": "fastapi-logs",
  "inputType": "file",
  "inputDetail": {
    "logPath": "/path/to/your/fastapi/logs/*.log",
    "logType": "text",
    "filePattern": "regex",
    "logSample": ""
  },
  "outputType": "LogService",
  "outputDetail": {
    "projectName": "your-project-name",
    "logstoreName": "your-logstore-name"
  }
}

3.2 应用配置

将配置应用到相应的机器组中,确保Logtail能够采集日志并发送到SLS。

步骤4:配置FastAPI日志输出

4.1 配置日志输出到文件

使用Python的logging模块将FastAPI应用的日志输出到文件。例如:

python 复制代码
from fastapi import FastAPI
from logging.handlers import RotatingFileHandler
import logging

app = FastAPI()

logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)

file_handler = RotatingFileHandler('/path/to/your/fastapi/logs/app.log', maxBytes=1024*1024*10, backupCount=5)
file_handler.setLevel(logging.INFO)

formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)

logger.addHandler(file_handler)

@app.get("/")
def read_root():
    logger.info("访问根路径")
    return {"Hello": "World"}

4.2 使用loguru配置日志

如果你更喜欢使用loguru,可以这样配置:

python 复制代码
import os
import time
from loguru import logger

log_path = os.path.join(os.getcwd(), 'logs')
if not os.path.exists(log_path):
    os.mkdir(log_path)

log_path_error = os.path.join(log_path, f'{time.strftime("%Y-%m-%d")}_error.log')
logger.add(log_path_error, rotation="12:00", retention="5 days", enqueue=True)

# 在需要的地方使用logger
logger.info("创建用户")

步骤5:测试日志上传

5.1 生成测试日志

确保FastAPI应用正在生成日志,并且日志文件位于配置的路径中。

5.2 检查SLS日志

登录阿里云SLS控制台,进入你的Logstore查看是否成功上传了日志。

示例代码:使用loguru输出日志

python 复制代码
from fastapi import FastAPI
from common.logs import logger

app = FastAPI()

@app.get("/")
def read_root():
    logger.info("访问根路径")
    return {"Hello": "World"}

通过这些步骤,你应该能够成功地使用Logtail将FastAPI应用的日志上传到阿里云SLS中。

相关推荐
CSDN官方博客36 分钟前
GitHub Copilot 新手极速上手指南
github·copilot
野生技术架构师1 小时前
2026 Java 面试全套总结,八股 + 场景 + AI 相关面试考点
java·人工智能·面试
狗头大军之江苏分军2 小时前
《潮水漫过十七岁》开学了
后端
苏三说技术3 小时前
如何看待GPT-6在UP主众测中碾压夺冠?它是现在最强大模型吗?
后端
mldong3 小时前
一份 JSON,一条能跑的审批流:把报销流程送上工作流引擎
后端·架构
wno7043 小时前
Spring Boot WebFlux增删改查
java·spring boot·后端
Captaincc3 小时前
AI用量v0.1.11更新发布 新增 jusage doctor 诊断指令 托盘展示token 和余额 新增 AutoClaw 支持
前端·后端·vibecoding
aramae4 小时前
模拟实现strlen()函数 (C语言)
c语言·开发语言·后端
kyriewen5 小时前
我让 AI 当面试官面了我一轮:第 3 个追问我就卡住了(附 10 道追问清单)
前端·面试·ai编程
IT_陈寒5 小时前
Python的GIL把我坑惨了,多线程跑得比单线程还慢
前端·人工智能·后端