Python 之 logging日誌模塊
阿新 • • 發佈:2019-02-18
login lag 日誌文件 添加 log文件 %d odin process 異常 代碼
#Author Kang import logging logging.basicConfig(filename="app.log",level=logging.WARNING,format=‘%(asctime)s %(levelname)s: %(message)s‘, datefmt=‘%m/%d/%Y %I:%M:%S %p‘) logging.info("app info test") logging.warning("app warning message") logging.error("app error message") #filename:app.log文件,用於保存日誌輸出信息 #level:日誌級別 #format:日誌輸出的格式
結果:app.log文件信息
02/18/2019 06:27:10 PM WARNING: app warning message
02/18/2019 06:27:10 PM ERROR: app error message
日誌格式
應用代碼
#Author Kang import logging def loginlog(log_str): ‘‘‘定義了兩個日誌文件,正常登陸信息寫入到access.log,異常登陸信息寫入到error.log中‘‘‘ #create logger logger_access_log = logging.getLogger("Access-log") #創建一個logger(logger_access_log) logger_access_log.setLevel(logging.INFO) #設置該logger級別,info以上都能接受 logger_error_log = logging.getLogger("Error-log") #創創建一個logger(logger_error_log) logger_error_log.setLevel(logging.WARNING) #設置該logger級別,warning以上才接受 #create file access.log handler and set level to waring fh = logging.FileHandler("access.log",encoding="utf-8") #創建一個文件handler(fh) #create file error.log handler and set level to error ch = logging.FileHandler("error.log",encoding="utf-8") #創建一個文件handler (ch) #create formatter fh_formatter = logging.Formatter(‘%(asctime)s %(levelname)s: %(message)s‘) #fh handler 格式化輸出 ch_formatter = logging.Formatter(‘%(asctime)s %(levelname)s: %(message)s‘) #ch handler 格式化出輸 #add formatter to fh handler fh.setFormatter(fh_formatter) #往fh handler 關聯格式化 ch.setFormatter(ch_formatter) #往ch handler 關聯格式化 #add fh handler to logger logger_access_log.addHandler(fh) #往logger上添加fh handler logger_error_log.addHandler(ch) #往logger 上添加ch handler if "welcome" in log_str: logger_access_log.info(log_str) #寫入日誌 else: logger_error_log.error(log_str) #寫入日誌 def login(): count = 0 Flag = True while count < 3: username = input("請輸入你的帳號:") userpasswd = input("請輸入你的密碼:") if username == "root" and userpasswd == "Password1": print("welcom to %s" %(username)) loginlog("welcome to %s login successful" %(username)) break else: print("輸入有誤,請重新輸入") count+=1 if count == 2: loginlog("%s login fail" %(username)) login()
Python 之 logging日誌模塊