佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > Python基礎(chǔ)之logging模塊知識(shí)總結(jié)

Python基礎(chǔ)之logging模塊知識(shí)總結(jié)

熱門標(biāo)簽:Win7旗艦版 硅谷的囚徒呼叫中心 企業(yè)做大做強(qiáng) 呼叫中心市場(chǎng)需求 百度AI接口 客戶服務(wù) 語(yǔ)音系統(tǒng) 電話運(yùn)營(yíng)中心

前言

logging模塊是Python內(nèi)置的標(biāo)準(zhǔn)模塊,主要用于輸出腳本運(yùn)行日志,可以設(shè)置輸出日志的等級(jí)、日志保存路徑等。

  • 可以通過(guò)設(shè)置不同的日志等級(jí),在 release 版本中只輸出重要信息,而不顯示大量的調(diào)試信息
  • logging 可以決定將信息輸出位置和內(nèi)容
  • logging 線程更安全

一、日志級(jí)別

級(jí)別排序:CRITICAL > ERROR > WARNING > INFO > DEBUG

  • debug : 打印全部日志,詳細(xì)信息,通常只出現(xiàn)在診斷問(wèn)題
  • info : 打印info,warning,error,critical級(jí)別的日志,正常輸出
  • warning : 打印warning,error,critical級(jí)別的日志,部分異常,不影響程序
  • error : 打印error,critical級(jí)別的日志,影響程序部分功能
  • critical : 打印critical級(jí)別,影響程序運(yùn)行
import logging  # 引入logging模塊
# 將信息打印到控制臺(tái)上
logging.debug("debug")
logging.info("info")
logging.warning("warning")
logging.error("error")
logging.critical("critical")

[root@zijie ~]# python log.py
WARNING:root:warning
ERROR:root:error
CRITICAL:root:critical

默認(rèn)生成的root logger的level是logging.WARNING,低于該級(jí)別不輸出,如果要展示低于WARNING級(jí)別的內(nèi)容,可以引入logging.basicConfig指定日志級(jí)別logging.basicConfig(level=logging.DEBUG)

二、basicConfig

格式 描述
filename 指定使用指定的文件名而不是 StreamHandler 創(chuàng)建 FileHandler。
filemode 如果指定 filename,則以此模式打開文件(‘r'、‘w'、‘a(chǎn)')。默認(rèn)為“a”。
format 為處理程序使用指定的格式字符串。
datefmt 使用 time.strftime() 所接受的指定日期/時(shí)間格式。
style 如果指定了格式,則對(duì)格式字符串使用此樣式。'%' 用于 printf 樣式、'{' 用于 str.format()、'$' 用于 string。默認(rèn)為“%”。
level 將根記錄器級(jí)別設(shè)置為指定的級(jí)別。默認(rèn)生成的 root logger 的 level 是 logging.WARNING,低于該級(jí)別的就不輸出了。級(jí)別排序:CRITICAL > ERROR > WARNING > INFO > DEBUG。(如果需要顯示所有級(jí)別的內(nèi)容,可將 level=logging.NOTSET)
stream 使用指定的流初始化 StreamHandler。注意,此參數(shù)與 filename 不兼容——如果兩者都存在,則會(huì)拋出 ValueError。
handlers 如果指定,這應(yīng)該是已經(jīng)創(chuàng)建的處理程序的迭代,以便添加到根日志程序中。任何沒(méi)有格式化程序集的處理程序都將被分配給在此函數(shù)中創(chuàng)建的默認(rèn)格式化程序。注意,此參數(shù)與 filename 或 stream 不兼容——如果兩者都存在,則會(huì)拋出 ValueError。
import logging

logging.basicConfig(level=logging.INFO,
                    format='%(asctime)s %(filename)s %(levelname)s %(message)s',
                    datefmt='%a %d %b %Y %H:%M:%S',
                    filename='xuehui.log',
                    filemode='w')

logging.info('This is a info.')
logging.debug('This is a debug message.')
logging.warning('This is a warning.')

三、日志寫文件

import logging
import os.path
import time

#創(chuàng)建logger
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
# 創(chuàng)建handler,用于寫入日志文件
logdate = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
log_path = 'logs/'
log_name = log_path + logdate + '.log'
logfile = log_name
fh = logging.FileHandler(logfile, mode='w')
fh.setLevel(logging.DEBUG)
# 定義輸出格式
formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
fh.setFormatter(formatter)
# 將logger添加到handler
logger.addHandler(fh)
# 日志
logger.debug('this is a logger debug message')
logger.info('this is a logger info message')
logger.warning('this is a logger warning message')
logger.error('this is a logger error message')
logger.critical('this is a logger critical message')

四、traceback記錄

import logging
import os.path
import time

#創(chuàng)建logger
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
# 創(chuàng)建handler,用于寫入日志文件
logdate = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
log_path = 'logs/'
log_name = log_path + logdate + '.log'
logfile = log_name
fh = logging.FileHandler(logfile, mode='w')
fh.setLevel(logging.DEBUG)
# 定義輸出格式
formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
fh.setFormatter(formatter)
# 將logger添加到handler
logger.addHandler(fh)
# 日志
try:
    open('/data/exist', 'rb')
except BaseException as e:
    logger.error('Failed to open file', exc_info=True)

到此這篇關(guān)于Python基礎(chǔ)之logging模塊知識(shí)總結(jié)的文章就介紹到這了,更多相關(guān)Python logging模塊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python日志模塊logging簡(jiǎn)介
  • Python接口自動(dòng)化淺析logging封裝及實(shí)戰(zhàn)操作
  • Python 解決logging功能使用過(guò)程中遇到的一個(gè)問(wèn)題
  • Python的logging模塊基本用法
  • Python logging簡(jiǎn)介詳解

標(biāo)簽:長(zhǎng)沙 崇左 山西 海南 安康 濟(jì)南 喀什 山西

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python基礎(chǔ)之logging模塊知識(shí)總結(jié)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    新乡县| 历史| 龙里县| 仙游县| 山阴县| 通海县| 德江县| 竹溪县| 许昌市| 兴国县| 定襄县| 兴业县| 巴彦淖尔市| 余江县| 宁明县| 连城县| 琼海市| 邢台县| 平阳县| 林周县| 融水| 翁牛特旗| 大洼县| 石城县| 论坛| 嘉义市| 桂林市| 汝阳县| 红桥区| 大连市| 民乐县| 郁南县| 莱芜市| 泊头市| 寻甸| 英德市| 安吉县| 沅江市| 富宁县| 富蕴县| 克拉玛依市|