使用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中。

相关推荐
调试人生的显微镜3 分钟前
flutter ios 自定义ios插件
后端
仰望星空的打工人7 分钟前
windows11家庭版安装docker
后端
iOS开发上架哦8 分钟前
iOS开发自定义flutter插件
后端
Luckyfif10 分钟前
🗣️面试官:有一个比较经典的 case 也想探讨一下 「页面白屏如何排查?」❤️✨
前端·面试·开源
开心猴爷11 分钟前
Flutter 插件开发:以微信SDK为例
后端
uhakadotcom12 分钟前
Coroot:零代码侵入的开源应用性能监控与可观测性平台
后端·面试·github
Mintopia12 分钟前
Node.js 学习第一天:入门指南
javascript·后端·node.js
爱上大树的小猪13 分钟前
【前端进阶】深入解析 Flexbox 布局中的 flex-shrink 与 gap 兼容性问题
前端·css·面试
南囝coding14 分钟前
做Docx预览,一定要做这个神库!!
前端·vue.js·面试
逝水年华QAQ16 分钟前
IDEA 2025.1更新-AI助手试用和第三方模型集成方案
后端