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

相关推荐
__NK42 分钟前
【字节跳动高频面试题】不超过 N 的最大数拼接
面试·大厂·字节跳动·手撕
秋千码途44 分钟前
小架构step系列07:查找日志配置文件
spring boot·后端·架构
李大玄1 小时前
Google浏览器拓展工具 "GU"->google Utils
前端·javascript·github
蓝倾1 小时前
京东批量获取商品SKU操作指南
前端·后端·api
每天吃饭的羊1 小时前
github上部署自己的静态项目
github
爱学习的茄子1 小时前
React Hooks进阶:从0到1打造高性能Todo应用
前端·react.js·面试
泰勒朗斯2 小时前
如何在新机器上设置github完成内容git push
git·github
开心就好20252 小时前
WebView远程调试全景指南:实战对比主流工具优劣与适配场景
后端
用户21411832636022 小时前
AI 一键搞定!中医药科普短视频制作全流程
后端
SimonKing2 小时前
告别传统读写!RandomAccessFile让你的Java程序快人一步
java·后端·程序员