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

相关推荐
知其然亦知其所以然4 分钟前
SpringAI + Groq 实战:3 分钟教你搭建超快聊天机器人!
java·后端·openai
M1A116 分钟前
诺贝尔奖得主的终极学习法:西蒙学习法全解读
后端
PetterHillWater44 分钟前
基于AI互联网系统架构分析与评估
后端·aigc
南篱1 小时前
JavaScript原型链没那么难:一文彻底搞懂
javascript·面试
MaxHua1 小时前
多数据源与分库分表方案设计
后端·面试
季风11321 小时前
17.Axon框架-消息
后端·领域驱动设计
苏三说技术1 小时前
Token续期的5种方案
后端
小森林81 小时前
分享一次Guzzlehttp上传批量图片优化的经历
后端·php
码事漫谈1 小时前
一文彻底搞懂缓存:从菜鸟到专家的完全指南
后端
华仔啊1 小时前
final在Java中到底有啥用?5个实际场景告诉你
java·后端