很多web應(yīng)用在日志輸出上一般不會(huì)選擇python內(nèi)置的log模塊,而是使用第三方日志框架,這樣可以獲得更多的私有化定制以及更好的操作體驗(yàn)。loguru是python的第三方日志框架中比較優(yōu)秀的一款,今天我們就來介紹一下python怎么使用loguru來進(jìn)行日持輸出和管理吧。
解決中文亂碼問題
項(xiàng)目地址 github: https://github.com/Delgan/loguru
文檔:https://loguru.readthedocs.io/en/stable/index.html
安裝
pip install loguru
1、輸出日志
from loguru import logger
logger.debug("這是一條debug日志")
終端執(zhí)行后出現(xiàn)帶顏色的日志,挺酷的
2、輸出到文件
from loguru import logger
logger.add("file_{time}.log")
logger.debug("這是一條debug日志")
logger.info("這是一條info日志")
目錄下多出一個(gè)日志文件 :file_2019-03-14_19-53-25_661314.log
3、日志規(guī)則
設(shè)置日志格式,過濾器,日志級(jí)別
from loguru import logger
logger.add("file.log", format="{time} {level} {message}", filter="", level="INFO")
logger.debug("這是一條debug日志")
logger.info("這是一條info日志")
輸出
2019-03-14T20:01:25.392454+0800 INFO 這是一條info日志
4、日志文件
文件管理方式
logger.add("file_1.log", rotation="500 MB") # 文件過大就會(huì)重新生成一個(gè)文件
logger.add("file_2.log", rotation="12:00") # 每天12點(diǎn)創(chuàng)建新文件
logger.add("file_3.log", rotation="1 week") # 文件時(shí)間過長(zhǎng)就會(huì)創(chuàng)建新文件
logger.add("file_X.log", retention="10 days") # 一段時(shí)間后會(huì)清空
logger.add("file_Y.log", compression="zip") # 保存zip格式
5、其他參數(shù)
logger.add("somefile.log", enqueue=True) # 異步寫入
logger.add("somefile.log", serialize=True) # 序列化為json
6、時(shí)間格式化
logger.add("file.log", format="{time:YYYY-MM-DD at HH:mm:ss} | {level} | {message}")
配合notifiers模塊
github: https://github.com/notifiers/notifiers
文檔:https://notifiers.readthedocs.io/en/latest/
7、在工程中創(chuàng)建多個(gè)文件處理器對(duì)象并解決中文亂碼問題
# coding=utf-8
import os
import sys
from loguru import logger
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
log_file_path = os.path.join(BASE_DIR, 'Log/my.log')
err_log_file_path = os.path.join(BASE_DIR, 'Log/err.log')
logger.add(sys.stderr, format="{time} {level} {message}", filter="my_module", level="INFO")
# logger.add(s)
logger.add(log_file_path, rotation="500 MB", encoding='utf-8') # Automatically rotate too big file
logger.add(err_log_file_path, rotation="500 MB", encoding='utf-8',
level='ERROR') # Automatically rotate too big file
logger.debug("That's it, beautiful and simple logging!")
logger.debug("中文日志可以不")
logger.error("嚴(yán)重錯(cuò)誤")
以上就是Python 第三方日志框架loguru使用的詳細(xì)內(nèi)容,更多Python學(xué)習(xí)資料請(qǐng)關(guān)注W3Cschool其它相關(guān)文章!