当前位置:网站首页>Flask框架配置loguru日志庫
Flask框架配置loguru日志庫
2022-07-06 16:09: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") # 壓縮日志
边栏推荐
- 信息安全-威胁检测引擎-常见规则引擎底座性能比较
- 1005. Maximized array sum after K negations
- Understand what is a programming language in a popular way
- 读取和保存zarr文件
- Penetration test (7) -- vulnerability scanning tool Nessus
- pytorch提取骨架(可微)
- 【高老师UML软件建模基础】20级云班课习题答案合集
- (POJ - 3685) matrix (two sets and two parts)
- 【练习-11】4 Values whose Sum is 0(和为0的4个值)
- Suffix expression (greed + thinking)
猜你喜欢
Frida hook so layer, protobuf data analysis
pytorch提取骨架(可微)
b站 实时弹幕和历史弹幕 Protobuf 格式解析
Information security - Epic vulnerability log4j vulnerability mechanism and preventive measures
1689. Ten - the minimum number of binary numbers
Differential (one-dimensional, two-dimensional, three-dimensional) Blue Bridge Cup three body attack
【高老师UML软件建模基础】20级云班课习题答案合集
Borg maze (bfs+ minimum spanning tree) (problem solving report)
信息安全-安全编排自动化与响应 (SOAR) 技术解析
Penetration test (4) -- detailed explanation of meterpreter command
随机推荐
Penetration test (4) -- detailed explanation of meterpreter command
【练习-10】 Unread Messages(未读消息)
[exercise -11] 4 values why sum is 0 (and 4 values of 0)
Openwrt source code generation image
7-1 understand everything (20 points)
信息安全-威胁检测引擎-常见规则引擎底座性能比较
1689. Ten - the minimum number of binary numbers
[exercise-7] crossover answers
China exterior wall cladding (EWC) market trend report, technical dynamic innovation and market forecast
Information security - threat detection - Flink broadcast stream broadcaststate dual stream merging application in filtering security logs
If you want to apply for a programmer, your resume should be written like this [essence summary]
1855. Maximum distance of subscript alignment
mysql导入数据库报错 [Err] 1273 – Unknown collation: ‘utf8mb4_0900_ai_ci’
Differential (one-dimensional, two-dimensional, three-dimensional) Blue Bridge Cup three body attack
【练习-6】(PTA)分而治之
Research Report of cylindrical grinder industry - market status analysis and development prospect forecast
1013. Divide the array into three parts equal to and
Gartner:关于零信任网络访问最佳实践的五个建议
Penetration testing (5) -- a collection of practical skills of scanning King nmap and penetration testing tools
HDU - 6024 building shops (girls' competition)