FastAPI 学习之路(六十)打造系统的日志输出

我们要搭建日志系统,可以使用loguru,很不错的一个开源日志系统

pip install loguru

我们在common创建log.py,使用方式也很简单

import os
import timefrom 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)

使用起来也很简单

from common.log import loggerdef create_user_method(db: Session, user: UserModel):logger.info("创建用户开始了")db_user = db.query(User).filter(User.email == user.email).first()if db_user:logger.info(f"用户:{user.email}已经存在了!")return response(code=1, message="error", data="this user already exists")from routers.users import get_password_hashhashed_password = get_password_hash(user.password)init_user = User(email=user.email, hashed_password=hashed_password)db.add(init_user)db.commit()db.refresh(init_user)logger.info("创建用户成功了")return resp_200(data={"user": init_user.email})

启动后,如果logs文件夹不存在会自动创建该文件夹

看下请求的输出:(控制台中日志输出的颜色根据你使用的类型不同,对应的日志颜色也不同)

再看下文件中的输出:

也是按照固定的格式给我们输出的,还包含了我们是在哪一行输出的,什么方法中,方便我们后续的排查问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/379541.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据的力量:Facebook如何通过数据分析驱动创新

在当今数字化和信息化的时代,数据被认为是推动企业创新和发展的关键因素之一。作为全球最大的社交媒体平台,Facebook不仅积累了庞大的用户数据,还利用先进的数据分析技术,不断探索和实现新的创新。本文将深入探讨Facebook如何通过…

[iOS]内存分区

[iOS]内存分区 文章目录 [iOS]内存分区五大分区栈区堆区全局区常量区代码区验证内存使用注意事项总结 函数栈堆栈溢出栈的作用 参考博客 在iOS中,内存主要分为栈区、堆区、全局区、常量区、代码区五大区域 还记得OC是C的超类 所以C的内存分区也是一样的 iOS系统中&a…

引领小模型潮流!OpenAI发布功能强大且成本低的GPT-4o mini

GPT-4o mini的成本比GPT-3.5 Turbo低了超过60%,其聊天表现优于Google的Gemini Flash和Anthropic的Claude Haiku。该模型从周四开始对ChatGPT的免费用户、ChatGPT Plus用户和团队订阅用户开放,并将在下周向企业用户开放。OpenAI计划未来将图像、视频和音频…

学懂C#编程:精通C#、.NET开发之核心编程知识学习指南

无论你是编程新手,还是想要深化.NET技能的开发者,本文都将为你提供一条清晰的学习路径,从C#基础到高级特性,每一站都配有详尽解析和实用示例,旨在帮助你建立坚实的知识体系,并激发你对C#及.NET生态的热情。…

【CMU博士论文】结构化推理增强大语言模型(Part 0)

问题 :语言生成和推理领域的快速发展得益于围绕大型语言模型的用户友好库的普及。这些解决方案通常依赖于Seq2Seq范式,将所有问题视为文本到文本的转换。尽管这种方法方便,但在实际部署中存在局限性:处理复杂问题时的脆弱性、缺乏…

成为CMake砖家(5): VSCode CMake Tools 插件基本使用

大家好,我是白鱼。 之前提到过,白鱼的主力 编辑器/IDE 是 VSCode, 也提到过使用 CMake Language Support 搭配 dotnet 执行 CMakeLists.txt 语法高亮。 对于阅读 CMakeLists.txt 脚本, 这足够了。 而在 C/C 开发过程中&#xff…

【Django】网上蛋糕项目商城-注册,登录,修改用户信息,退出功能

概念 通过以上多篇文章的讲解,对该项目的功能已经实现了很多,本文将对该项目的用户注册,登录,修改用户信息,以及退出等功能的实现。 注册功能实现 点击head.html头部页面的注册按钮,触发超链接跳转至use…

开源模型应用落地-FastAPI-助力模型交互-进阶篇(三)

一、前言 FastAPI 的高级用法可以为开发人员带来许多好处。它能帮助实现更复杂的路由逻辑和参数处理,使应用程序能够处理各种不同的请求场景,提高应用程序的灵活性和可扩展性。 在数据验证和转换方面,高级用法提供了更精细和准确的控制&#…

离散数学,汉密尔顿图判定的实际问题,平面图,平面图的判定,欧拉公式,对偶图,五色定理的证明

目录 1.汉密尔顿图判定的实际问题 判断是否是汉密尔顿图 思考:下图中哪些是汉密尔顿图 例子 2.平面图 平面图的基本概念 并非所有的图都能嵌入平面 平面图的面与次数 欧拉公式 欧拉公式的证明 3.平面图的判定 同胚 kuratowski定理 ​4.对偶图 四…

从0到1搭建数据中台(4):neo4j初识及安装使用

在数据中台中,neo4j作为图数据库,可以用于数据血缘关系的存储 图数据库的其他用于主要用于知识图谱,人物关系的搭建,描述实体,关系,以及实体属性 安装 在官网 https://neo4j.com/ 下载安装包 neo4j-co…

TikTok内嵌跨境商城全开源_搭建教程/前端uniapp+后端源码

多语言跨境电商外贸商城 TikTok内嵌商城,商家入驻一键铺货一键提货 全开源完美运营,接在tiktok里面的商城内嵌,也可单独分开出来当独立站运营 二十一种语言,可以做很多国家的市场,支持商家入驻,多店铺等等…

基于Python+Django+MySQL的心理咨询预约系统

心理咨询预约系统 DjangoMySQL 基于PythonDjangoMySQL的心理咨询预约系统 项目主要依赖Django3.2,MySQL 支持随机验证码生成与登录验证 简介 基于PythonDjangoMySQL的心理咨询预约系统通过连接数据库获取数据,登录新增随机数字验证码验证。具体可以看…

[Python库](4) time库

1.time库简介 time库可以进行时间相关的处理,如访问当前日期和时间,输出不同格式的时间以及等待指定的时间等。time不需要下载,直接导入就可以用( 因为它是Python自带的 )。更多功能可以看另一篇文章[Python库](3) Arrow库。 2.使用 2.1.返…

大数据之数据抽取架构演变过程

架构演变之Flink架构的演变过程 一、 起初搭建整个大数据平台是基于CDH这一套资源管理和整合的CM资源管理器搭建的 整个平台包括了: HDFS,YARN,HIVE,zoozie,FLINK,Spark,Zookeeper等组件搭建而成, 刚开始搭建的时候&am…

如何通过企业微信会话存档保护企业利益?

赵总: 张经理,最近行业内频发数据泄露事件,我们的客户资料和内部沟通记录安全吗? 张经理: 赵总,我们已经采取了一系列措施来加强数据安全。特别是针对企业微信的沟通记录,我们最近引入了安企神软件,它能很…

实践致知第16享:设置Word中某一页横着的效果及操作

一、背景需求 小姑电话说:现在有个word文档,里面有个表格太长(如下图所示),希望这一个设置成横的,其余页还是保持竖的! 二、解决方案 1、将鼠标放置在该页的最前面闪烁,然后选择“页面”》“↘…

记录些MySQL题集(16)

MySQL 存储过程与触发器 一、初识MySQL的存储过程 Stored Procedure存储过程是数据库系统中一个十分重要的功能,使用存储过程可以大幅度缩短大SQL的响应时间,同时也可以提高数据库编程的灵活性。 存储过程是一组为了完成特定功能的SQL语句集合&#x…

C语言 ——— 实用调试技巧(Visual Studio)

目录 Debug 和 Release 的区别 F10 --- 逐过程调试 & F11 --- 逐语句调试 F9 --- 新建/切换断点 & F5 --- 开始调试 shift F5 & ctrl F5 Debug 和 Release 的区别 Debug:通常为调试版本,它包含调试信息,并且不作任何优化…

vscode通过ssh链接远程服务器上的docker

目录 1 编译docker image1.1 编译镜像1.2 启动镜像 2 在docker container中启动ssh服务2.1 确认是否安装ssh server2.2 修改配置文件2.3 启动ssh服务 3 生成ssh key4 添加ssh公钥到docker container中5 vscode安装插件Remote - SSH6 在vscode中配置 1 编译docker image 一般来…

使用 XPath 定位 HTML 中的 img 标签

引言 随着互联网内容的日益丰富,网页数据的自动化处理变得愈发重要。图片作为网页中的重要组成部分,其获取和处理在许多应用场景中都显得至关重要。例如,在社交媒体分析、内容聚合平台、数据抓取工具等领域,图片的自动下载和处理…