国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:38日期:2022-06-18 09:37:05

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)起來。

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

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

import osimport timeimport logging#返回一個(gè)logger實(shí)例,如果沒有指定name,返回root logger。# 只要name相同,返回的logger實(shí)例都是同一個(gè)而且只有一個(gè),即name和logger實(shí)例是一一對(duì)應(yīng)的。# 這意味著,無需把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)和文件# 日志文件FileHandlerbasedir = 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)建日志文件handlerfile_handler.setFormatter(formatter) # 設(shè)置Formatterfile_handler.setLevel(logging.INFO) # 單獨(dú)設(shè)置日志文件的日志級(jí)別# 控制臺(tái)日志StreamHandlerstream_handler = logging.StreamHandler()stream_handler.setFormatter(formatter)# stream_handler.setLevel(logging.INFO) # 單獨(dú)設(shè)置控制臺(tái)日志的日志級(jí)別,注釋掉則使用總?cè)罩炯?jí)別# 將handler添加到logger中l(wèi)ogger.addHandler(file_handler)logger.addHandler(stream_handler)

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

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 西吉县| 凤凰县| 铅山县| 崇义县| 佛坪县| 清流县| 同江市| 新竹市| 临湘市| 明溪县| 汶川县| 汤阴县| 凭祥市| 临洮县| 田东县| 子洲县| 永福县| 新乐市| 南宫市| 汾西县| 德清县| 阿拉善盟| 曲沃县| 肥乡县| 廉江市| 额尔古纳市| 绥德县| 富平县| 镇原县| 武夷山市| 板桥市| 三门峡市| 收藏| 竹溪县| 永新县| 镶黄旗| 绥宁县| 桐庐县| 加查县| 鹤庆县| 南投县|