這篇的啟程是過去利用jupyter notebook
用簡單的語法就可以build 好一個log檔案
還可以為log分類是python 內包的logging 套件很棒的地方
如果把log寫在file也可以不斷的複寫檔案
但不知道為何的某一天
利用spyder import logging 建立,compiler沒問題卻沒有反應的狀態
上網查了一會兒一直沒查到關鍵解決方法,但倒學了不少
以下是原始可以run ,之後再run卻失敗的程式碼
import logging
logging.basicConfig(
filename = "plog.log",
filemode="w",
level = logging.DEBUG)
logging.warning(dt.now().strftime("%Y/%m/%d %H:%M:%S"))
logging.warning('get personinfo json:file is not exist')
基本上python 內建logging 套件 import 後
給他檔名,應該是可以成功的(曾經成功過)
而這回卻一直run沒反應
查了許多stack overflow d issue 後
才找到一篇關鍵文 python logging does not work at all
關鍵文的作者提到,因為上述的寫法會重覆load basicConfig(),而第一次的basicConfig() 是沒有filename的
所以要在前面加上一段「logging.getLogger('').handlers=[],把handlers清掉,在走自已設好的logging.basicConfig
logging.getLogger('').handlers = []
logging.basicConfig(
filename = "plog.log",
filemode="w",
level = logging.DEBUG)
logging.warning(dt.now().strftime("%Y/%m/%d %H:%M:%S"))
logging.warning('get personinfo json:file is not exist')
而也可以另外開一個function去呼叫logging
import logging
logger = logging.getLogger(__name__)
logger.setLevel(logging.WARNING)
# new file handler
handler = logging.FileHandler('plogging.log')
handler.setLevel(logging.WARNING)
# set logging format
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
# add the handlers to the logger
logger.addHandler(handler)
# print log
#logger.info('YAYA')
參考連結
python logging does not work at all