python單個腳本的日誌記錄功能簡單使用
在工作中,常遇到編寫單個腳本來運行實現某個功能,運行過程中需要記錄運行日誌,那麼就來說說這種情況下採用python內置模塊logging,實現日誌記錄功能的簡單使用。
首先說明一下,python的內置模塊logging,具有很強的靈活性,比如支持線程安全,配置上支持多個logger、handler、formatter、filter等。但該文章講述的是如何簡單的使用logging模塊。
代碼如下:
import osnimport loggingnimport timenndef init_log(log_path=None):n """n log_path is the path of log file.n """n current_date = time.strftime("%Y_%m_%d")nn # make log file name, like scriptName_2017_03_24.logn file_dir, file_name = os.path.split(os.path.abspath(sys.argv[0]))n if file_name.endswith(".py"):n file_name = file_name.replace(".py", "")n log_file_name = "%s_%s.log" % (file_name, current_date)nn # make log file path,default is ./log/n if log_path is None:n log_path = os.path.normpath(os.path.join(file_dir, "log"))nn if not os.path.exists(log_path):n os.makedirs(log_path)nn log_file = os.path.normpath(n os.path.join(log_path, log_file_name))nn logging.basicConfig(n level = logging.INFO,n format = "%(asctime)s %(levelname)s %(message)s",n filename = log_filen filemode = "a"n )nn return logging.getLogger() n
使用說明:
1. 在腳本中,應該盡量早的進行執行該函數,以使其他函數能實現日誌記錄功能。
2. 關於日誌文件存放路徑,默認的是存放到和腳本相同路徑下的/log目錄中。
3. 如果提供的日誌路徑log_path不存在,則會自主創建,會涉及到許可權問題。
使用示例:
# some_script.pynnLOG = init_log()nnLOG.info("this is a info message")nLOG.warning("this is a warning message")nLOG.error("this is a error message")nntry:n assert 0, "test error"nexcept:n # save Traceback info to logfilen LOG.exception("this is a exception message")n
推薦閱讀:
※[爬蟲,python]應用requests,正則表達式抓取貓眼電影TOP100
※python
※ELEMENTARY.01.Say Hi
※跟黃哥學Python爬蟲抓取代理IP。
TAG:Python |