首页 > 其他 > 详细

自定义日志类

时间:2019-03-20 12:43:09      阅读:157      评论:0      收藏:0      [点我收藏+]

#脚本

#py文件
import logging
from configparser import ConfigParser
import os,time
class Homework():
    def __init__(self,file_path= "Section.cfg",section = "config_homework",Level_option = "level",Format_option = "FORMAT",encoding = "UTF-8"):
        """
        默认初始化读取配置文件
        :param file_path:
        :param encoding:
        """
        self.cf = ConfigParser()
        self.cf.read(file_path,encoding)
        self.Level = self.cf.get(section, Level_option)
        self.fm = logging.Formatter(self.cf.get(section,Format_option))
    def log_homework(self,logger = "My_Logs"):
        """
        log文件创建及读取
        :return:
        """
        #创建日志文件并设定收集信息级别
        my_logger = logging.getLogger(logger)
        my_logger.setLevel(self.Level)
        #编辑日志格式并设定输出信息级别
        ch = logging.StreamHandler()
        ch.setLevel(self.Level)
        ch.setFormatter(self.fm)
        #指定输出到文本渠道
        fh = logging.FileHandler(logger,encoding="UTF-8")
        fh.setLevel(self.Level)
        fh.setFormatter(self.fm)
        #渠道
        my_logger.addHandler(ch)
        my_logger.addHandler(fh)
        #收集日志
        my_logger.debug(‘this is a debug level message‘)
        my_logger.info(‘this is info level message‘)
        my_logger.warning(‘this is warning level message‘)
        my_logger.error(‘this is error level message‘)
        my_logger.critical(‘this is critical level message‘)

if __name__ == ‘__main__‘:
    hw = Homework()
    hw.log_homework()
#配置文本(cfg文件)
[config_homework]
level=DEBUG
FORMAT = ‘%%(asctime)s : %%(levelname)s : %%(message)s‘

输出结果:

2019-03-20 11:44:38,134 : DEBUG : this is a debug level message
2019-03-20 11:44:38,134 : INFO : this is info level message
2019-03-20 11:44:38,135 : WARNING : this is warning level message
2019-03-20 11:44:38,135 : ERROR : this is error level message
2019-03-20 11:44:38,135 : CRITICAL : this is critical level message
2019-03-20 11:48:03,167 : DEBUG : this is a debug level message
2019-03-20 11:48:03,168 : INFO : this is info level message
2019-03-20 11:48:03,168 : WARNING : this is warning level message
2019-03-20 11:48:03,168 : ERROR : this is error level message
2019-03-20 11:48:03,168 : CRITICAL : this is critical level message

这是一个初级的自定义日志类,只不过和配置文件关联起来了,初始化读取配置文件,然后基础的输出log日志及打印

注意点:

    1.决定好需要初始化的参数,像这个文件,因为要读取配置文件中的参数来定义信息等级和输出格式,所以最好初始化读取的方法

    2.因为log的输出格式涉及到%所以转义字符时必须的

    3.尽量模块化方法,提高代码的可重复利用性,只不过常用默认参数而不是main方法传参是我个人习惯

自定义日志类

原文:https://www.cnblogs.com/keima/p/10564081.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!