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

相关推荐
Lovely Ruby25 分钟前
github 上的 CI/CD 的尝试
ci/cd·github
懵逼的小黑子7 小时前
Django 项目的 models 目录中,__init__.py 文件的作用
后端·python·django
小林学习编程8 小时前
SpringBoot校园失物招领信息平台
java·spring boot·后端
蓝婷儿8 小时前
前端面试每日三题 - Day 32
前端·面试·职场和发展
java1234_小锋10 小时前
Spring Bean有哪几种配置方式?
java·后端·spring
柯南二号11 小时前
【后端】SpringBoot用CORS解决无法跨域访问的问题
java·spring boot·后端
每天一个秃顶小技巧12 小时前
02.Golang 切片(slice)源码分析(一、定义与基础操作实现)
开发语言·后端·python·golang
gCode Teacher 格码致知12 小时前
《Asp.net Mvc 网站开发》复习试题
后端·asp.net·mvc
EnticE15213 小时前
[高阶数据结构]二叉树经典面试题
数据结构·算法·面试
Attacking-Coder13 小时前
前端面试宝典---webpack面试题
前端·面试·webpack