4.2.2 Python-Logging模块-自定义模块MyLog

**重点内容
#!/usr/bin/env python
#-*- coding: GBK -*-
__author__ = 'DiaoHuabin'

import logging
import getpass
import sys

#定义MyLog类
class MyLog(object):
    '''这个类用于创建一个自用的log'''
    def __init__(self):  #类MyLog的构造函数
        user = getpass.getuser()  #返回用户的登录名
        self.logger = logging.getLogger(user)  #返回一个特定名字的日志
        self.logger.setLevel(logging.DEBUG)   #对显示的日志信息设置一个阈值低于DEBUG级别的不显示
        logFile = './'+sys.argv[1][0:-3] + '.log'  # 日志文件名
        formatter = logging.Formatter('%(asctime)-12s $(levelname)-8s %(name)-10s %(message)-12s')

        '''日志显示到屏幕上并输出到日志文件内'''
        logHand = logging.FileHandler(logFile)  #输出日志文件,文件名是logFile
        logHand.setFormatter(formatter)  #为logHand以formatter设置格式
        logHand.setLevel(logging.ERROR) #只有错误才被记录到logfile中

        logHandSt = logging.StreamHandler() #class logging.StreamHandler(stream=None)
        # 返回StreamHandler类的实例,如果stream被确定,使用该stream作为日志输出,反之,使用
        #sys.stderr
        logHandSt.setFormatter(formatter) #为logHandSt以formatter设置格式

        self.logger.addHandler(logHand) #添加特定的handler logHand到日志文件logger中
        self.logger.addHandler(logHandSt) #添加特定的handler logHandSt到日志文件logger中

        '''日志的5个级别对应以下的五个函数'''
    def debug(self,msg):
        self.logger.debug(msg)  #Logs a message with level DEBUG on this logger.
        # The msg is the message format string

    def info(self,msg):
        self.logger.info(msg)

    def warn(self,msg):
        self.logger.warn(msg)

    def error(self,msg):
        self.logger.error(msg)

    def critical(self,msg):
        self.logger.critical(msg)

if __name__ == '__main__':
    mylogw = MyLog()
    mylogw.debug("I'm debug")
    mylogw.info("I'm info")
    mylogw.warn("I'm warn")
    mylogw.error("I'm error")
    mylogw.critical("I'm critical")

参考书:Python网络爬虫实战胡松涛编著

这里写图片描述

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_30614451/article/details/82025363