濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > python實(shí)現(xiàn)自定義日志的具體方法

python實(shí)現(xiàn)自定義日志的具體方法

熱門標(biāo)簽:河北防封卡電銷卡 400電話辦理哪種 天津電話機(jī)器人公司 應(yīng)電話機(jī)器人打電話違法嗎 手機(jī)網(wǎng)頁(yè)嵌入地圖標(biāo)注位置 開(kāi)封自動(dòng)外呼系統(tǒng)怎么收費(fèi) 開(kāi)封語(yǔ)音外呼系統(tǒng)代理商 電銷機(jī)器人的風(fēng)險(xiǎn) 地圖標(biāo)注線上如何操作

1、導(dǎo)入logging模塊:

import logging

2、創(chuàng)建日志收集器:

logger = logging.getLogger(“日志收集器的name”)

3、設(shè)置日志收集器的日志級(jí)別:

logger.setLevel(logging.INFO) #設(shè)置收集器的級(jí)別為INFO。

4、給日志收集器創(chuàng)建輸出渠道,根據(jù)第一部分的內(nèi)容知:日志輸出渠道包含控制臺(tái)輸出和文件輸出。

5、設(shè)置日志輸出的內(nèi)容格式。

# 設(shè)置日志的輸出格式
 
fmt = "%(asctime)s %(name)s %(levelname)s %(filename)s-%(lineno)d:%(message)s"
 
formatter = logging.Formatter(fmt)

6、將設(shè)置的日志格式綁定到創(chuàng)建的輸出渠道中,即將日志格式與輸出渠道關(guān)聯(lián)起來(lái)。

7、將設(shè)置好的輸出渠道,添加到日志收集器。

實(shí)例擴(kuò)展:

import os
import time
import logging

#返回一個(gè)logger實(shí)例,如果沒(méi)有指定name,返回root logger。
# 只要name相同,返回的logger實(shí)例都是同一個(gè)而且只有一個(gè),即name和logger實(shí)例是一一對(duì)應(yīng)的。
# 這意味著,無(wú)需把logger實(shí)例在各個(gè)模塊中傳遞。只要知道name,就能得到同一個(gè)logger實(shí)例。
logger = logging.getLogger('mylogger')
# 設(shè)置總?cè)罩炯?jí)別, 也可以給不同的handler設(shè)置不同的日志級(jí)別
#設(shè)置logger的level, level有以下幾個(gè)級(jí)別:
# 級(jí)別高低順序:NOTSET  DEBUG  INFO  WARNING  ERROR  CRITICAL
# 如果把looger的級(jí)別設(shè)置為INFO, 那么小于INFO級(jí)別的日志都不輸出, 大于等于INFO級(jí)別的日志都輸出 
logger.setLevel(logging.DEBUG)

# 控制臺(tái)日志和日志文件使用同一個(gè)formatter,formatter用于描述日志的格式
formatter = logging.Formatter(
	'%(asctime)s - %(filename)s[line:%(lineno)d] - %(threadName)s %(thread)d>' +
	'- Process %(process)d> - %(levelname)s: %(message)s'
)
# asctime:日志產(chǎn)生的時(shí)間;filename:產(chǎn)生日志的腳本文件名;lineno:該腳本文件哪一行代碼產(chǎn)生了日志
# threadName: 當(dāng)前線程名;thread: 當(dāng)前進(jìn)程名;Process進(jìn)程同thread線程
# levelname: logger的級(jí)別;meesage: 具體的日志信息


# 創(chuàng)建Handler, 輸出日志到控制臺(tái)和文件
# 日志文件FileHandler
basedir = os.path.abspath(".") #返回腳本所在的絕對(duì)路徑
log_dir = os.path.join(basedir, 'logs')  # 日志文件所在目錄,即‘腳本路徑/logs'
if not os.path.isdir(log_dir):
	os.mkdir(log_dir)
filename = time.strftime('%Y-%m-%d-%H-%M-%S', time.localtime(time.time())) + '.log'  # 日志文件名,以當(dāng)前時(shí)間命名
file_handler = logging.FileHandler(os.path.join(log_dir, filename))  # 創(chuàng)建日志文件handler
file_handler.setFormatter(formatter)  # 設(shè)置Formatter
file_handler.setLevel(logging.INFO)  # 單獨(dú)設(shè)置日志文件的日志級(jí)別

# 控制臺(tái)日志StreamHandler
stream_handler = logging.StreamHandler()
stream_handler.setFormatter(formatter)
# stream_handler.setLevel(logging.INFO)  # 單獨(dú)設(shè)置控制臺(tái)日志的日志級(jí)別,注釋掉則使用總?cè)罩炯?jí)別

# 將handler添加到logger中

logger.addHandler(file_handler)
logger.addHandler(stream_handler)

到此這篇關(guān)于python實(shí)現(xiàn)自定義日志的具體方法的文章就介紹到這了,更多相關(guān)python自定義日志如何實(shí)現(xiàn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python 第三方日志框架loguru使用
  • python和websocket構(gòu)建實(shí)時(shí)日志跟蹤器的步驟
  • 解決python logging遇到的坑 日志重復(fù)打印問(wèn)題
  • python 實(shí)現(xiàn)多進(jìn)程日志輪轉(zhuǎn)ConcurrentLogHandler
  • python 實(shí)現(xiàn)logging動(dòng)態(tài)變更輸出日志文件名
  • python (logging) 日志按日期、大小回滾的操作
  • 詳解python日志輸出使用配置文件格式
  • python基于pexpect庫(kù)自動(dòng)獲取日志信息
  • Python日志打印里logging.getLogger源碼分析詳解
  • python subprocess pipe 實(shí)時(shí)輸出日志的操作
  • Python中l(wèi)ogging日志的四個(gè)等級(jí)和使用
  • 如何在Python項(xiàng)目中引入日志

標(biāo)簽:蘭州 山東 常州 駐馬店 宿遷 成都 江蘇 六盤水

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python實(shí)現(xiàn)自定義日志的具體方法》,本文關(guān)鍵詞  python,實(shí)現(xià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)文章
  • 下面列出與本文章《python實(shí)現(xiàn)自定義日志的具體方法》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于python實(shí)現(xiàn)自定義日志的具體方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    巴彦淖尔市| 福鼎市| 建德市| 宜章县| 广水市| 公主岭市| 新民市| 澜沧| 仙游县| 太湖县| 遵义县| 嘉定区| 体育| 蓬莱市| 密云县| 钦州市| 通渭县| 潍坊市| 龙州县| 阜城县| 高尔夫| 淮阳县| 和政县| 绥江县| 玉溪市| 紫云| 专栏| 天柱县| 博爱县| 信丰县| 马边| 马关县| 绥芬河市| 玉田县| 蓝山县| 托克托县| 平江县| 二连浩特市| 青河县| 廊坊市| 马山县|