代碼
#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()