Python 之 logging日志模块

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

日志格式

技术图片

应用代码

#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日志模块的主要内容,如果未能解决你的问题,请参考以下文章

Python 之 logging日志模块

python日志之logging模块--理解

常用python日期日志获取内容循环的代码片段

Python入门之logging日志模块以及多进程日志

Python之logging日志模块

Python之配置日志模块logging