当前位置:网站首页>Flask框架配置loguru日志库
Flask框架配置loguru日志库
2022-07-06 09:28:00 【叻斯哩_LeslieWu】
项目场景:
loguru日志库是一个很不错的第三方日志库。它即插即用,具备多种方式滚动日志、自动压缩日志文件、定时删除等功能。除此之外,多线程安全、高亮日志、日志告警等功能也不在话下。
目前项目采用的是flask框架,以往采用的是系统原生的logging,想看看能否把loguru整合到flask里。
问题描述
通过网上查阅资料,找到了一些github上面分享配置的方法,不过在配置了rotation参数后(日志按照时间或大小,满足一定的条件切割日志),出现日志写入的进程问题。
PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。
原因分析:
原因初步分析,rotation参数,作用是一旦日志文件大小超过指定大小,就会产生新的日志文件。在修改原来日志文件的名字的时候,flask应用正在写入当前日志文件,导致无法操作。
解决方案:
给初始化的日志的配置参数LOGFILE,添加{time}
LOGFILE = "./files/logs/log_{time}.log"
之后就可以顺利的在flask中使用loguru,并且日志会根据对应的参数生效。
下面分享一下关于rotation参数的使用指南:
按时间滚动
比如按时间滚动,我们只需要在 logger.add 参数中添加一个 rotation 参数:
from loguru import logger
logger.add("file_2.log", rotation="12:00") # 每天12:00会创建一个新的文件
logger.debug("That's it, beautiful and simple logging!")
这样,如果当前时间过了这个设定的时间,它就会生成一个新的日志文件。如果没有则使用原来的日志文件:
如图所示,过了设定的时间,则将原来的 file_2.log 重命名,并添加一个新的 file_2.log 文件。
按大小滚动
除了按时间滚动日志外,Loguru 还可以按日志大小滚动:
from loguru import logger
logger.add("file_1.log", rotation="1 MB") # 滚动大日志文件
logger.debug("That's it, beautiful and simple logging!")
这样,一旦日志文件大小超过 1 MB 就会产生新的日志文件。
压缩日志
如果你不想删除原有日志文件,Loguru 还支持将日志直接压缩:
from loguru import logger
logger.add("file_Y.log", compression="zip") # 压缩日志
边栏推荐
- X-Forwarded-For详解、如何获取到客户端IP
- Perform general operations on iptables
- Truck History
- [exercise 4-1] cake distribution
- Information security - threat detection - detailed design of NAT log access threat detection platform
- mysql导入数据库报错 [Err] 1273 – Unknown collation: ‘utf8mb4_0900_ai_ci’
- CEP used by Flink
- Opencv learning log 29 -- gamma correction
- Nodejs crawler
- Understand what is a programming language in a popular way
猜你喜欢
[teacher Gao UML software modeling foundation] collection of exercises and answers for level 20 cloud class
Vs2019 initial use
Ball Dropping
1005. Maximized array sum after K negations
【练习-5】(Uva 839)Not so Mobile(天平)
409. Longest palindrome
Information security - threat detection engine - common rule engine base performance comparison
Information security - Epic vulnerability log4j vulnerability mechanism and preventive measures
Penetration test (1) -- necessary tools, navigation
Openwrt build Hello ipk
随机推荐
渗透测试 ( 5 ) --- 扫描之王 nmap、渗透测试工具实战技巧合集
Luogu P1102 A-B number pair (dichotomy, map, double pointer)
TCP's three handshakes and four waves
605. Planting flowers
Shell Scripting
Web based photo digital printing website
MySQL grants the user the operation permission of the specified content
Information security - Epic vulnerability log4j vulnerability mechanism and preventive measures
Ball Dropping
Research Report of exterior wall insulation system (ewis) industry - market status analysis and development prospect prediction
China's peripheral catheter market trend report, technological innovation and market forecast
【练习-6】(Uva 725)Division(除法)== 暴力
Opencv learning log 28 -- detect the red cup cover
Opencv learning log 15 count the number of solder joints and output
Information security - threat detection engine - common rule engine base performance comparison
Auto.js入门
“鬼鬼祟祟的”新小行星将在本周安全掠过地球:如何观看
1605. Sum the feasible matrix for a given row and column
7-1 understand everything (20 points)
If you want to apply for a programmer, your resume should be written like this [essence summary]