Python 之 logging日誌模塊

代碼

#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

日誌格式

Python 之 logging日誌模塊

應用代碼

#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()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章