日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

【Python】logging内置模块基本使用

發(fā)布時(shí)間:2025/3/15 python 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python】logging内置模块基本使用 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

logging模塊是Python內(nèi)置的標(biāo)準(zhǔn)模塊,主要用于輸出運(yùn)行日志,可以設(shè)置輸出日志的等級(jí)、日志保存路徑、日志文件回滾等。
print也可以輸入日志,logging相對(duì)print來(lái)說(shuō)更好控制輸出在哪個(gè)地方,怎么輸出及控制消息級(jí)別來(lái)過(guò)濾掉那些不需要的信息。
一條日志信息對(duì)應(yīng)的是一個(gè)事件的發(fā)生,而一個(gè)事件通常需要包括以下幾個(gè)內(nèi)容:
事件發(fā)生時(shí)間
事件發(fā)生位置
事件的嚴(yán)重程度--日志級(jí)別
事件內(nèi)容
上面這些都是一條日志記錄中可能包含的字段信息,當(dāng)然還可以包括一些其他信息,如進(jìn)程ID、進(jìn)程名稱、線程ID、線程名稱等。
日志格式就是用來(lái)定義一條日志記錄中包含那些字段的,且日志格式通常都是可以自定義的。

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' #作者:cacho_37967865 #博客:https://blog.csdn.net/sinat_37967865 #文件:loggingModel.py #日期:2018-11-12 #備注:logging模塊是Python內(nèi)置的標(biāo)準(zhǔn)模塊,主要用于輸出運(yùn)行日志,可以設(shè)置輸出日志的等級(jí)、日志保存路徑、日志文件回滾等。 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''import logging from datetime import datetime import oslogger = logging.getLogger() # 初始化一個(gè)logger# 默認(rèn)生成的root logger的level是logging.WARNING,低于該級(jí)別的就不輸出了 # 級(jí)別排序:CRITICAL>ERROR>WARNING>INFO>DEBUG logger.setLevel(logging.DEBUG) # 總級(jí)別:所有信息都輸出# 將日志存儲(chǔ)到指定目錄的文件 file_name = datetime.now().strftime('%Y%m%d%H%M') # 用時(shí)間當(dāng)成文件名稱,格式:201811111833(年月日時(shí)分) log_path = os.path.dirname(os.path.abspath('.')) + '/logs/' # 指定存儲(chǔ)的絕對(duì)路徑 log_name = log_path + file_name + '.log' # 生成文件信息 save_file = logging.FileHandler(log_name)# 在控制臺(tái)輸出日志 output = logging.StreamHandler() output.setLevel(logging.INFO) # 設(shè)置輸出到控制臺(tái)的級(jí)別# 日志輸出格式設(shè)置 formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s --> %(message)s') save_file.setFormatter(formatter) output.setFormatter(formatter)# 日志處理 logger.addHandler(save_file) logger.addHandler(output)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")

一、日志級(jí)別:

默認(rèn)生成的root logger的level是logging.WARNING,低于該級(jí)別的就不輸出了
級(jí)別排序:CRITICAL > ERROR > WARNING > INFO > DEBUG
debug : 打印全部的日志,詳細(xì)的信息,通常只出現(xiàn)在診斷問(wèn)題上
info : 打印info,warning,error,critical級(jí)別的日志,確認(rèn)一切按預(yù)期運(yùn)行
warning : 打印warning,error,critical級(jí)別的日志,一個(gè)跡象表明,一些意想不到的事情發(fā)生了,或表明一些問(wèn)題在不久的將來(lái)(例如。磁盤(pán)空間低”),這個(gè)軟件還能按預(yù)期工作
error : 打印error,critical級(jí)別的日志,更嚴(yán)重的問(wèn)題,軟件沒(méi)能執(zhí)行一些功能
critical : 打印critical級(jí)別,一個(gè)嚴(yán)重的錯(cuò)誤,這表明程序本身可能無(wú)法繼續(xù)運(yùn)行

二、常用函數(shù):

logging.getLogger() 初始化一個(gè)logger
Logger.setLevel() ??設(shè)置總?cè)罩炯?jí)別
logger.addHandler() 日志處理
logging.FileHandler() ??日志存儲(chǔ)到文件
logging.StreamHandler() 日志輸出到控制臺(tái)
logging.Formatter() ????日志格式
setFormatter() ?????設(shè)置日志格式
setLevel() ? ? ? ? ?設(shè)置具體日志級(jí)別

三、format常用格式說(shuō)明

%(asctime)s: 打印日志的時(shí)間
%(name)s: 打印模塊名稱
%(levelname)s: 打印日志級(jí)別名稱
%(message)s: 打印日志信息

%(levelno)s: 打印日志級(jí)別的數(shù)值
%(pathname)s: 打印當(dāng)前執(zhí)行程序的路徑,其實(shí)就是sys.argv[0]
%(filename)s: 打印當(dāng)前執(zhí)行程序名
%(funcName)s: 打印日志的當(dāng)前函數(shù)
%(lineno)d: 打印日志的當(dāng)前行號(hào)
%(thread)d: 打印線程ID
%(threadName)s: 打印線程名稱
%(process)d: 打印進(jìn)程ID

總結(jié)

以上是生活随笔為你收集整理的【Python】logging内置模块基本使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。