python学习-日志(logging的定义、参数、format、示例代码、创建logging对象、设置Handler)
文章目錄
- logging介紹
- logging.basicConfig定義
- logging.basicConfig參數說明
- logging.basicConfig日志等級說明
- logging.basicConfig示例代碼
- logging.basicConfig 的level設置
- 創建新的logging對象
- 示例代碼
- 說明
logging介紹
logging.basicConfig定義
首先查看一下函數提示信息截圖:
logging.basicConfig參數說明
logging.basicConfig函數參數詳細介紹:
filename: 指定日志文件名
filemode: 和file函數意義相同,指定日志文件的打開模式,默認為’a’
format: 指定輸出的格式和內容,format可以輸出很多有用信息:
%(levelno)s: 打印日志級別的數值
%(levelname)s: 打印日志級別名稱
%(pathname)s: 打印當前執行程序的路徑,其實就是sys.argv[0]
%(filename)s: 打印當前執行程序名
%(funcName)s: 打印日志的當前函數
%(lineno)d: 打印日志的當前行號
%(asctime)s: 打印日志的時間
%(thread)d: 打印線程ID
%(threadName)s: 打印線程名稱
%(process)d: 打印進程ID
%(message)s: 打印日志信息
datefmt: 指定時間格式,同time.strftime()
level: 設置日志級別,默認為logging.WARNING
stream: 指定將日志的輸出流,可以指定輸出到sys.stderr,sys.stdout或者文件,默認輸出到sys.stderr,當stream和filename同時指定時,stream被忽略
logging.basicConfig日志等級說明
日志level說明:
設置level的作用就是過濾等級低的日志。
logging.basicConfig示例代碼
import logging# 設置文件名,設置文件寫模式:append,設置文件輸出登記:info # 設置日志打印格式:打印日志級別,日志時間,打印當前模塊名,打印當前行號,打印日志信息 # 設置時間格式 logging.basicConfig(filename='testLog.txt', filemode='a', level=logging.DEBUG,format='%(levelname)s %(asctime)s %(filename)s %(lineno)d : %(message)s',datefmt='%a, %d %b %Y %H:%M:%S')logging.debug('This is a debug message.') logging.info('This is a info.') logging.warning('This is a warning.') logging.error('This is a error.') logging.critical('This is a critical.')logging.basicConfig 的level設置
當我設置:level=logging.DEBUG,打印結果為:
當我設置:level=logging.WARN,打印結果為:
我們可以通過這種方式設置打印的日志級別。發布前,可以把debug信息打印出來,對外發布就打印warn及以上就好。
創建新的logging對象
示例代碼
# 自定義logger對象,設置對象名:test,默認logger的level是warning,并且format為空 logger = logging.getLogger(name='test') logger.setLevel(logging.DEBUG) # 默認WARN,修改成DEBUG,INFO才能打印出來 cHandler = logging.StreamHandler() fHandler = logging.FileHandler("fileLog.txt") cHandler.setLevel(logging.ERROR) fHandler.setLevel(logging.INFO)cFormat = logging.Formatter('%(name)s - %(levelname)s - %(message)s') fFormat = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') cHandler.setFormatter(cFormat) fHandler.setFormatter(fFormat) logger.addHandler(cHandler) logger.addHandler(fHandler)def func():logger.debug('This is a debug message.')logger.info('This is a info.')logger.warning('This is a warning.')logger.error('This is a error.')logger.critical('This is a critical.')if __name__ == "__main__":func()結果:
說明
自定義對象logger ,可以給logger 添加多個addHandler,并且針對不同的handler,可以設置不同的format,level等。
在寫代碼時,可以把需要輸出的信息,打印到文件中,一些其他信息打印到控制臺里面,方便查看,并且方便控制。
總結
以上是生活随笔為你收集整理的python学习-日志(logging的定义、参数、format、示例代码、创建logging对象、设置Handler)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 联想拯救者刃 9000K 台式机新配置今
- 下一篇: 远古宝石怎么合成