最近把接口自動化的框架做了一個全新的編寫,2.0版本功能更強大了,不過在運行的時候log位置出現了使用log會重復打印
調用一次log輸出一次,調用兩次log輸出兩次,依次類推,這個事情着實讓我頭疼了一陣
后來進多方查找並咨詢其他人找到了,
最開始是這樣寫的
這樣書寫的時候就會出現每次調用就會重復打印,原因:
logger.handlers
最初是一個空列表,執行‘logger.addHandler(ch)’添加一個‘StreamHandler、FileHandler’,輸出一條日志- 在第二次被調用時,
logger.handlers
已經存在一個‘StreamHandler’,再次執行‘logger.addHandler(ch)’就會再次添加一個‘StreamHandler’,此時的logger有兩個‘StreamHandler’,輸出兩條重復的日志 - 在第三次被調用時,
logger.handlers
已經存在兩個‘StreamHandler’,再次執行‘logger.addHandler(ch)’就會再次添加一個,此時的logger有三個‘StreamHandler’,輸出三條重復的日志
所以解決的辦法就是在console函數中,創建handlers前面加一個判斷,如果有則不新添加一個handlers
,這樣在調用log函數時,就不會出現重復打印的情況。