python 日誌模組的例子
阿新 • • 發佈:2018-12-18
import os, shutil import time import logging def simple_log(log_dir=None, log_name=None): if log_dir == None: log_dir = "log_dir" path = os.path.join(os.path.abspath("."), log_dir) if os.path.exists(path): print("日誌檔案已存在") # shutil.rmtree(path) # 遞迴刪除資料夾 else: os.makedirs(path) print("建立日誌檔案成功") # 配置日誌資訊 if log_name == None: log_name = "demo.log" log_name = os.path.join(path, log_name) # 建立一個日誌 logger 例項 logger = logging.getLogger() logging.debug("DEBUG") # 設定日誌級別為 DEBUG, 覆蓋掉預設的日誌級別 Warning # 建立一個 handler,用於寫入日誌檔案, handler 可以把日誌寫到不同的地方 fh = logging.FileHandler(log_name, "w+", encoding="utf-8") # 將日誌寫在檔案中 fh.setLevel(logging.INFO) # 設定日誌的級別為 INFO # 再建立一個 handler, 用於輸出控制檯 ch = logging.StreamHandler() ch.setLevel(logging.INFO) # 設定日誌的級別為 INFO # 定義handler的格式輸出 log_format = logging.Formatter("%(asctime)s - %(filename)s - %(levelname)s - %(name)s - %(message)s") # 時間,檔名稱,日誌級別, 日誌器名稱, 欄位資訊 fh.setFormatter(log_format) # handler 載入設定的格式輸出 ch.setFormatter(log_format) # handler 載入設定的格式輸出 # 為 logger 新增handler logger.addHandler(fh) logger.addHandler(ch) return logger if __name__ == '__main__': logging = simple_log() if 2 > 10: logging.warning("你好啊!!!") else: logging.warning("我不好!!!")