python將日志寫入文件超詳細(xì)步驟
1、需求
我們在訓(xùn)練模型的時候,有時候需要將訓(xùn)練日志輸出到一個文件中,方便隨時查看訓(xùn)練日志。
訓(xùn)練模型時候,訓(xùn)練日志在控制臺展示,關(guān)閉控制臺后日志會消失。這時,我們需要將控制臺中的訓(xùn)練日志信息輸出到一個指定文件中,方便我們隨時查看。
將控制臺中的日志信息輸入到當(dāng)前目錄下的application.log文件中
2、方法:python logging模塊
logging 是Python中非常強(qiáng)大且靈活的庫,用于記錄和跟蹤應(yīng)用程序運(yùn)行時發(fā)生的事件。
在Python中,使用 logging 模塊可以寫入日志信息到指定文件。
2.1 basicConfig() 快速配置
- 導(dǎo)入logging模塊
- 設(shè)置全局的日志格式和級別
- 獲取logger
- 創(chuàng)建文件處理器,指定日志文件和日志級別(局部)
- 添加文件處理器到logger
import logging import warnings # 忽略所有 UserWarning 警告 warnings.filterwarnings("ignore", category=UserWarning) # 1、設(shè)置全局的日志格式和級別 logging.basicConfig(format='%(asctime)s - %(levelname)s - %(name)s - %(message)s', datefmt='%m/%d/%Y %H:%M:%S', level=logging.INFO) # 2、獲取logger (給日志器起個名字 "__name__") logger = logging.getLogger(__name__)# __name__內(nèi)置變量模塊名稱,輕松地識別出哪個模塊產(chǎn)生了哪些日志消息(主程序模塊) # 3、創(chuàng)建文件處理器,指定日志文件和日志級別(局部)---文件輸出FileHandle(輸出到指定文件) file_handler = logging.FileHandler('application.log') #指定日志文件名application.log,默認(rèn)在當(dāng)前目錄下創(chuàng)建 file_handler.setLevel(logging.INFO) # 設(shè)置日志級別(只輸出對應(yīng)級別INFO的日志信息) # 設(shè)置日志格式 file_handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(name)s - %(message)s', '%m/%d/%Y %H:%M:%S')) # 4、添加文件處理器到logger logger.addHandler(file_handler) # 訓(xùn)練模型的代碼 epoch = 7 # 記錄日志信息 logger.info("Get better performance at epoch {}".format(epoch)) # 在主類中編寫日志代碼 # 判斷當(dāng)前程序是否為主程序,確保 main() 函數(shù)只在直接運(yùn)行該P(yáng)ython文件時執(zhí)行,如果文件被其他模塊導(dǎo)入,則不執(zhí)行 main() # 主程序內(nèi)置變量 __name__ if __name__ == "__main__": main()
2.2 查看application.log日志文件
2.3、logging知識
- Loggers:應(yīng)用程序中使用的接口,用于發(fā)送日志消息。它們來自logging.getLogger(name),name是用于標(biāo)識logger源的字符串
- Handlers:用于配置日志處理的目的地,如文件、控制臺等。常用的有
StreamHandler
(控制臺輸出)和FileHandle
(文件輸出) - Formatters:定義最終輸出中日志記錄的布局
- Filters:提供更細(xì)粒度的工具來進(jìn)一步控制哪些日志記錄將被輸出
2.4、日志級別
debug,info,warning,error,critical
- DEBUG:詳細(xì)信息,通常只有在診斷問題時才感興趣。
- INFO:證明事情按預(yù)期工作(最常用)
- WARNING:某些還不是錯誤的事情的指示,但是應(yīng)該注意的。
- ERROR:由于某些更嚴(yán)重的問題,軟件已不能執(zhí)行一些功能了
- CRITICAL:嚴(yán)重錯誤,表明程序已不能繼續(xù)運(yùn)行。
總結(jié)
到此這篇關(guān)于python將日志寫入文件的文章就介紹到這了,更多相關(guān)python日志寫入文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
用python按照圖像灰度值統(tǒng)計(jì)并篩選圖片的操作(PIL,shutil,os)
這篇文章主要介紹了用python按照圖像灰度值統(tǒng)計(jì)并篩選圖片的操作(PIL,shutil,os),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06Python移動測試開發(fā)subprocess模塊項(xiàng)目實(shí)戰(zhàn)
這篇文章主要為大家介紹了Python移動測試開發(fā)subprocess模塊項(xiàng)目實(shí)戰(zhàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07使用python求解迷宮問題的三種實(shí)現(xiàn)方法
關(guān)于迷宮問題,常見會問能不能到達(dá)某點(diǎn),以及打印到達(dá)的最短路徑,下面這篇文章主要給大家介紹了關(guān)于如何使用python求解迷宮問題的三種實(shí)現(xiàn)方法,需要的朋友可以參考下2022-03-03Python 實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)-循環(huán)隊(duì)列的操作方法
這篇文章主要介紹了Python 實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)-循環(huán)隊(duì)列的操作方法,需要的朋友可以參考下2019-07-07如何使用Python判斷應(yīng)用是否處于已打包狀態(tài)
在使用 PyInstaller 打包 Python 應(yīng)用時,有時需要在代碼中判斷程序是否處于“打包狀態(tài)”,本文將介紹幾種方法來判斷是否處于打包狀態(tài),感興趣的可以了解下2025-03-03用Python實(shí)現(xiàn)批量生成法務(wù)函代碼
大家好,本篇文章主要講的是用Python實(shí)現(xiàn)批量生成法務(wù)函代碼,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下2022-02-02Python被遠(yuǎn)程主機(jī)強(qiáng)制關(guān)閉后自動重新運(yùn)行進(jìn)程的示例
要實(shí)現(xiàn)Python程序在被遠(yuǎn)程主機(jī)強(qiáng)制關(guān)閉后能夠自動重新運(yùn)行,我們可以采用幾種方法,但最直接且常用的方法之一是結(jié)合操作系統(tǒng)級的工具或腳本,這篇文章主要介紹了Python被遠(yuǎn)程主機(jī)強(qiáng)制關(guān)閉后怎么自動重新運(yùn)行進(jìn)程,需要的朋友可以參考下2024-08-08