zoukankan      html  css  js  c++  java
  • 自定义日志类

    #脚本

    #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方法传参是我个人习惯

  • 相关阅读:
    Java Web 网络留言板2 JDBC数据源 (连接池技术)
    Java Web 网络留言板3 CommonsDbUtils
    Java Web ConnectionPool (连接池技术)
    Java Web 网络留言板
    Java Web JDBC数据源
    Java Web CommonsUtils (数据库连接方法)
    Servlet 起源
    Hibernate EntityManager
    Hibernate Annotation (Hibernate 注解)
    wpf控件设计时支持(1)
  • 原文地址:https://www.cnblogs.com/keima/p/10564081.html
Copyright © 2011-2022 走看看