Flask中使用日志库loguru

2024-02-27 12:36
文章标签 使用 日志 flask loguru

本文主要是介绍Flask中使用日志库loguru,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • README.md
  • app.py
  • config.py
  • 参考资料

关于日志记录库loguru的介绍,具体可参见之前的博客:Python日志记录库——loguru

今天来介绍下,如何在Flask中使用loguru日志库。

README.md

This is a simple example of how to use loguru in your flask application
Just create a new InterceptHandler and add it to your app. Different settings should be configured in your config file, so that it is easy to change settings.

这是如何在您的Flask应用程序中使用 loguru 的简单示例
只需创建一个新的 InterceptHandler 并将其添加到您的应用程序中即可。需要在配置文件中配置不同的设置,以便于后续更改应用的设置。

Logging is then as easy as:

from loguru import loggerlogger.info("I am logging from loguru!")

app.py

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from config import config
from loguru import logger
import loggingdb = SQLAlchemy()# create a custom handler
class InterceptHandler(logging.Handler):def emit(self, record):logger_opt = logger.opt(depth=6, exception=record.exc_info)logger_opt.log(record.levelno, record.getMessage())# application factory pattern 
def create_app(config_name):app = Flask(__name__)app.config.from_object(config[config_name])config[config_name].init_app(app)db.init_app(app)# logging properties are defined in config.pylogger.start(app.config['LOGFILE'], level=app.config['LOG_LEVEL'], format="{time} {level} {message}",backtrace=app.config['LOG_BACKTRACE'], rotation='25 MB')#register loguru as handlerapp.logger.addHandler(InterceptHandler())# register Blueprints here# ...return app

config.py

import osbasedir = os.path.abspath(os.path.dirname(__file__))class Config(object):SECRET_KEY = os.environ.get('SECRET_KEY') or 'SUPER-SECRET'LOGFILE = "log.log"class DevelopmentConfig(Config):DEBUG = TrueLOG_BACKTRACE = TrueLOG_LEVEL = 'DEBUG'class ProductionConfig(Config):LOG_BACKTRACE = FalseLOG_LEVEL = 'INFO'config = {'development': DevelopmentConfig,'production': ProductionConfig,'default': DevelopmentConfig
}

参考资料

  • https://gist.github.com/M0r13n/0b8c62c603fdbc98361062bd9ebe8153
  • flask loguru简单示例
  • Python自动化之使用loguru优雅输出日志

这篇关于Flask中使用日志库loguru的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/752406

相关文章

springboot3.x使用@NacosValue无法获取配置信息的解决过程

《springboot3.x使用@NacosValue无法获取配置信息的解决过程》在SpringBoot3.x中升级Nacos依赖后,使用@NacosValue无法动态获取配置,通过引入SpringC... 目录一、python问题描述二、解决方案总结一、问题描述springboot从2android.x

SpringBoot整合AOP及使用案例实战

《SpringBoot整合AOP及使用案例实战》本文详细介绍了SpringAOP中的切入点表达式,重点讲解了execution表达式的语法和用法,通过案例实战,展示了AOP的基本使用、结合自定义注解以... 目录一、 引入依赖二、切入点表达式详解三、案例实战1. AOP基本使用2. AOP结合自定义注解3.

Python中Request的安装以及简单的使用方法图文教程

《Python中Request的安装以及简单的使用方法图文教程》python里的request库经常被用于进行网络爬虫,想要学习网络爬虫的同学必须得安装request这个第三方库,:本文主要介绍P... 目录1.Requests 安装cmd 窗口安装为pycharm安装在pycharm设置中为项目安装req

使用Python将PDF表格自动提取并写入Word文档表格

《使用Python将PDF表格自动提取并写入Word文档表格》在实际办公与数据处理场景中,PDF文件里的表格往往无法直接复制到Word中,本文将介绍如何使用Python从PDF文件中提取表格数据,并将... 目录引言1. 加载 PDF 文件并准备 Word 文档2. 提取 PDF 表格并创建 Word 表格

使用Python实现局域网远程监控电脑屏幕的方法

《使用Python实现局域网远程监控电脑屏幕的方法》文章介绍了两种使用Python在局域网内实现远程监控电脑屏幕的方法,方法一使用mss和socket,方法二使用PyAutoGUI和Flask,每种方... 目录方法一:使用mss和socket实现屏幕共享服务端(被监控端)客户端(监控端)方法二:使用PyA

Python使用Matplotlib和Seaborn绘制常用图表的技巧

《Python使用Matplotlib和Seaborn绘制常用图表的技巧》Python作为数据科学领域的明星语言,拥有强大且丰富的可视化库,其中最著名的莫过于Matplotlib和Seaborn,本篇... 目录1. 引言:数据可视化的力量2. 前置知识与环境准备2.1. 必备知识2.2. 安装所需库2.3

Python数据验证神器Pydantic库的使用和实践中的避坑指南

《Python数据验证神器Pydantic库的使用和实践中的避坑指南》Pydantic是一个用于数据验证和设置的库,可以显著简化API接口开发,文章通过一个实际案例,展示了Pydantic如何在生产环... 目录1️⃣ 崩溃时刻:当你的API接口又双叒崩了!2️⃣ 神兵天降:3行代码解决验证难题3️⃣ 深度

Linux内核定时器使用及说明

《Linux内核定时器使用及说明》文章详细介绍了Linux内核定时器的特性、核心数据结构、时间相关转换函数以及操作API,通过示例展示了如何编写和使用定时器,包括按键消抖的应用... 目录1.linux内核定时器特征2.Linux内核定时器核心数据结构3.Linux内核时间相关转换函数4.Linux内核定时

python中的flask_sqlalchemy的使用及示例详解

《python中的flask_sqlalchemy的使用及示例详解》文章主要介绍了在使用SQLAlchemy创建模型实例时,通过元类动态创建实例的方式,并说明了如何在实例化时执行__init__方法,... 目录@orm.reconstructorSQLAlchemy的回滚关联其他模型数据库基本操作将数据添

Spring配置扩展之JavaConfig的使用小结

《Spring配置扩展之JavaConfig的使用小结》JavaConfig是Spring框架中基于纯Java代码的配置方式,用于替代传统的XML配置,通过注解(如@Bean)定义Spring容器的组... 目录JavaConfig 的概念什么是JavaConfig?为什么使用 JavaConfig?Jav