logging
Log層級(輕至重):debug --> info --> warning --> error --> critical
import logging
# 輸出log檔案
log_file = 'log_file.log'
level = logging.INFO
logging.basicConfig(level=level,
format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
datefmt='%Y-%m-%d %H:%M:%S',
handlers=[logging.FileHandler(log_file, 'a', 'utf-8')])
# 在cmd中顯示
console = logging.StreamHandler()
console.setLevel(level)
formatter = logging.Formatter('%(asctime)s %(name)-12s %(levelname)-8s %(message)s') # 設定輸出格式
console.setFormatter(formatter) # handler 設定輸出格式
logging.getLogger('').addHandler(console) # 加入 handler 到 root logger
# 設定新的name,否則全部都會是root
logger_ = logging.getLogger(os.path.basename(__file__).replace('.py', '')) # 將檔案名稱設定為name
參考資料: http://zwindr.blogspot.com/2016/08/python-logging.html
multiprocessing-logging
https://hant.helplib.com/GitHub/article_124489
如果在multiprocessing時使用logging,需在全域位置宣告logger
http://hk.voidcc.com/question/p-voslmrpl-ru.html
或者用queue來存放訊息,然後統一輸出
https://stackoverflow.com/questions/11515944/how-to-use-multiprocessing-queue-in-python
https://morvanzhou.github.io/tutorials/python-basic/multiprocessing/3-queue/
Last updated
Was this helpful?