当前位置:网站首页>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") # 压缩日志
边栏推荐
- 对iptables进行常规操作
- Nodejs+vue online fresh flower shop sales information system express+mysql
- [exercise-8] (UVA 246) 10-20-30== simulation
- 1323. Maximum number of 6 and 9
- Truck History
- 【练习-2】(Uva 712) S-Trees (S树)
- 信息安全-威胁检测引擎-常见规则引擎底座性能比较
- 渗透测试 ( 1 ) --- 必备 工具、导航
- HDU - 6024 building shops (girls' competition)
- Vs2019 initial use
猜你喜欢
X-Forwarded-For详解、如何获取到客户端IP
PySide6 信号、槽
1855. Maximum distance of subscript alignment
树莓派4B安装opencv3.4.0
Analysis of protobuf format of real-time barrage and historical barrage at station B
信息安全-威胁检测引擎-常见规则引擎底座性能比较
Ball Dropping
b站 實時彈幕和曆史彈幕 Protobuf 格式解析
Openwrt source code generation image
B - Code Party (girls' competition)
随机推荐
Sword finger offer II 019 Delete at most one character to get a palindrome
[exercise-4] (UVA 11988) broken keyboard = = (linked list)
1013. Divide the array into three parts equal to and
Opencv learning log 16 paperclip count
【练习-3】(Uva 442)Matrix Chain Multiplication(矩阵链乘)
Gartner:关于零信任网络访问最佳实践的五个建议
[exercise-2] (UVA 712) s-trees
渗透测试 ( 3 ) --- Metasploit Framework ( MSF )
B - Code Party (girls' competition)
Penetration test (3) -- Metasploit framework (MSF)
对iptables进行常规操作
Gartner: five suggestions on best practices for zero trust network access
栈的经典应用—括号匹配问题
Shell Scripting
信息安全-威胁检测引擎-常见规则引擎底座性能比较
What is the difficulty of programming?
[exercise-7] crossover answers
2027. Minimum number of operations to convert strings
Information security - threat detection - detailed design of NAT log access threat detection platform
[exercise -11] 4 values why sum is 0 (and 4 values of 0)