【Python】FastAPI 配置日志即 logging 模块使用

目录

1. 日志

2. FastAPI 示例


1. 日志

日志是对软件执行时所发生事件的一种追踪方式。软件开发人员对他们的代码添加日志调用,借此来指示某事件的发生。一个事件通过一些包含变量数据的描述信息来描述(比如:每个事件发生时的数据都是不同的)。开发者还会区分事件的重要性,重要性也被称为 等级 或 严重性

日志功能应以所追踪事件级别或严重性而定。各级别适用性如下(以严重性递增):

 

Python logging 模块 日志常用指引 — Python 3.11.3 文档作者, Vinay Sajip ,. 日志基础教程: 日志是对软件执行时所发生事件的一种追踪方式。软件开发人员对他们的代码添加日志调用,借此来指示某事件的发生。一个事件通过一些包含变量数据的描述信息来描述(比如:每个事件发生时的数据都是不同的)。开发者还会区分事件的重要性,重要性也被称为 等级 或 严重性 。 什么时候使用日志...https://docs.python.org/zh-cn/3/howto/logging.html

2. FastAPI 示例

  • main.py
from fastapi import FastAPI
import logging


app = FastAPI()

# 日志记录器
logger = logging.getLogger()

# 设置日志级别,只有大于等于这个级别的日志才能输出
logger.setLevel(logging.ERROR)

# 设置日志格式
formatter = logging.Formatter(
    "%(asctime)s - %(module)s - %(funcName)s - line:%(lineno)d - %(levelname)s - %(message)s"
)

# 输出到控制台
to_console = logging.StreamHandler()
to_console.setFormatter(formatter)
logger.addHandler(to_console)

# 输出到文件中
to_file = logging.FileHandler(filename="log.txt")
to_file.setFormatter(formatter)
logger.addHandler(to_file)


@app.get("/")
async def main():
    logger.critical("call")
    logger.error("call")
    logger.warn("call")
    logger.info("call")
    logger.debug("call")
    return {"hello": "world"}

启动:

uvicorn main:app

Python中,可以使用logging模块来记录日志信息,方便程序员在开发和生产环境中进行调试和问题排查。logging模块提供了全局配置方法,可以通过配置来控制日志的格式、输出方式和级别等。 下面是一个简单的例子,展示如何使用logging模块进行全局配置: ``` import logging # 配置日志格式 formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s') # 创建一个StreamHandler,用于输出到控制台 console_handler = logging.StreamHandler() console_handler.setFormatter(formatter) # 创建一个FileHandler,用于输出到文件 file_handler = logging.FileHandler('example.log') file_handler.setFormatter(formatter) # 创建一个Logger实例 logger = logging.getLogger('example') logger.setLevel(logging.DEBUG) # 将StreamHandler和FileHandler添加到Logger实例中 logger.addHandler(console_handler) logger.addHandler(file_handler) ``` 在上面的例子中,首先创建了一个Formatter对象,用于配置日志的格式。然后,创建了一个StreamHandler和FileHandler,分别用于将日志输出到控制台和文件中。接下来,创建了一个Logger实例,并设置了日志级别为DEBUG。最后,将StreamHandler和FileHandler添加到Logger实例中。 通过全局配置,可以方便地控制日志的输出方式和级别。在程序中,只需要使用logger对象来记录日志即可,例如: ``` logger.debug('debug message') logger.info('info message') logger.warning('warning message') logger.error('error message') logger.critical('critical message') ``` 通过上述配置日志信息将输出到控制台和文件中,并且可以根据需要调整日志级别。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Encarta1993

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值