我有一個現有的程式(一個 python 可執行程式),但是當我運行它時,它有時會無緣無故地停止。因此,為了嘗試看看問題出現在哪里,我的目標是在 python 應用程式中添加日志概念,這樣我就可以確切地看到問題出現的原因和時間。
下面是我的代碼,檔案log.txt正在被創建,這是好事。現在為了測驗,我通過改變資料庫的密碼故意制造了一個錯誤。根據經驗,我知道它應該給我一個mysql.connector.errors error,它在我的終端中確實如此。但是當我打開logfile.txt時,我得到的是一個空檔案......
我的目的是要捕捉到資料庫中的錯誤。
我的目的是捕捉所有不同型別的錯誤,這就是為什么我使用Exception方法。
我期望在log.txt中看到的是,例如:
2021-09-16 09:04: 29,827 ERROR __main__ 1045 (28000)。拒絕訪問 for 用戶 'root'@'localhost' (使用密碼: YES)
這是我的代碼:
logging.basicConfig(filename='log.text', level=logging.DEBUG,
format='%(asctime)s %(levelname)s %(name)s %(message)s')
logger=logging.getLogger(__name__)
def main()。
mp_list = get_mp_list() #<--獲取創建的串列。
pool = Pool(min(cpu_count(), len(mp_list)) #<--創建一個池。
results = pool.imap_unordered(process_mp, mp_list) #<-- 創建pool.imap物件。
while True:
try:
result = next(results) #<--運行程式。
except StopIteration。
break
except Exception as err: #<--出錯時寫到日志檔案。
logger.error(err)
raise
if __name__ == '__main__'/span>:
main()
uj5u.com熱心網友回復:
你似乎在使用多行程,如果多個行程記錄到同一個檔案,它可能無法作業--原因在記錄檔案中描述。基本上,你需要使用不同的策略來確保只有一個行程寫到某個特定的檔案。由于篇幅太長,無法在此重現細節--詳情請參考鏈接資訊。
uj5u.com熱心網友回復:
添加filemode,它應該可以作業
logging.basicConfig(filename='log.text'/span>, level=logging.DEBUG, filemode="w"/span>,
format='%(asctime)s %(levelname)s %(name)s %(message)s')
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/306625.html
標籤:
上一篇:<p>我用laravel和js做了一個工資系統。 我可以像這樣獲取工資表。<ahref="https://i.stack.imgur.com/XjOaM.png"
下一篇:如何在pandas中復制資料幀
