python3配置日志日志类的操作

  

配置类config_file:

        从configparser进口configparser      类config_file:      def __init__(自我、conf_filePath编码=皍tf - 8”):   #打开配置文件,实例化ConfigParser类,并以默认utf - 8的编码格式读取文件   自我。cf=ConfigParser ()   self.cf.read (conf_filePath编码)      def get_Int_Value(自我、部分选项):   #获取整数   返回self.cf.getint(部分,选项)      def get_boolValue(自我、部分选项):   #获取布尔值   返回self.cf.getboolean(部分,选项)      def get_strValue(自我、部分选项):   #获取字符串类型的值   返回self.cf.get(部分,选项)      def get_floatValue(自我、部分选项):   #获取浮点数的值   返回self.cf.getfloat(部分,选项)      def get_sections(自我):   #获取所有的部分   返回self.cf.sections ()      def get_options(自我,部分):   #获取所有的选项   返回self.cf.options(部分)      

日志类:

        从configparser进口configparser   导入日志   从config_file进口config_file   类Log_Test (config_file): #继承config_file      def日志(自我):   记录器=logging.getLogger (self.get_strValue(‘日志’,‘logger_name)) #从配置文件读取日志程序名   logger.setLevel(自我。get_strValue(‘日志’,‘logger_level)) #设置记录器收集器的收集日志级别   format_logger=logging.Formatter (self.get_strValue(“日志”、“logger_format”))   如果(self.get_boolValue(‘日志’,‘logger_out)):   处理=logging.StreamHandler() #指定输出到控制台控制台   handle.setLevel(自我。get_strValue(‘日志’,‘logger_level)) #读取日志等级并设定日志的级别   handle.setFormatter (format_logger) #指定日志格式   其他:   处理=logging.FileHandler (self.get_strValue(‘日志’,‘logger_filepath’),编码=皍tf - 8”)   handle.setLevel(自我。get_strValue(‘日志’,‘logger_level)) #读取日志等级并设定日志的级别   handle.setFormatter (format_logger) #指定日志格式   logger.addHandler(处理)   返回日志      

日志配置文件logging.cfg:

        (日志)   #日志收集器   logger_name=测试   #日志级别级别需要大写调试,在信息——在警告——祝辞/致命的错误——在至关重要的   logger_level=调试   #日志输出格式注意转义   logger_format=% % (asctime) s - % %(文件名)s - % % (levelname) s -日志信息:% %(消息)   #日志是否输出到控制台真或假   logger_out=False   #日志输出指定文件地址   logger_filepath=logging_Test.log      

将读取配置文件类进行封装,日志类继承配置类。

  

<强> Python2/Python3自定义日志类教程

  

<强>一、说明

  

1.1背景说明

  

Python的日志记录功能是比较丰富的支持不同层次的日志输出,但或是我们想在日志前输出时间,或是我们想要将日志输入到文件,我们还是想要自定义日志类。

  

之前自己也尝试写过但感觉文档太乱看不懂怎么写,今天有人拿个半成品来问为什么代码报的错,在其基础上改造了一下。

  

  

1.2日志级别说明

  

日志日志级别及对应值如下,默认情况下直接运行只有信息及以上级别才会输出(本质上是大于等于20才会输出),调试模式运行调试日志才会输出。

  

可以通过自定义输出日志级别,指定直接运行输出什么级别的日志,不过调试模式打印的日志应该是不可以修改的。

     指定表格中<坳/> <坳/> 指定表格中            

水平         

数值                     关键

        50

              

错误         

40               

警告         

30               

信息         20

              

调试         

10               

NOTSET         

0

              

<强>二,实现代码

  

2.1 Python2实现代码

        # - * -编码:utf - 8 - *   进口操作系统   进口日期时间   导入日志      类LogConfig:   def __init__(自我,log_type=翱刂铺ā?:   #指定日志输出到控制台时的初始化   如果log_type==翱刂铺ā?=logging.INFO logging.basicConfig(水平,   格式=' % (asctime) % (levelname) %(消息)年代',   datefmt=' % Y - % m - H % d %: % m: % S的,   )   #指定日志输出到文件的初始化   elif log_type==拔募?   #创建存放日志的目录   如果不是os.path.exists(“。/日志”):   os.mkdir(’。/日志”)      #操作系统本身不允许文件名包含:等特殊字符,所以这里也不要用,不然赋给文件名时会报的错   nowTime=datetime.datetime.now () .strftime (Y ' % - % - % d ')   file_name='。/日志/% s。日志' % nowTime      # python2.7也有logging.basicConfig(),但只直接用logging.basicConfig(),写中文时会报的错   #所以为风格统一,我们这里不使用logging.basicConfig(),全通过组设置   root_logger=logging.getLogger ()   root_logger.setLevel (logging.INFO)   处理程序=日志记录。文件句柄(文件名=file_name编码=皍tf - 8”模式=' a ')   格式化程序=logging.Formatter (“% (asctime) % (levelname) %(消息)年代”)   handler.setFormatter (formatter)   root_logger.addHandler(处理器)      def getlog(自我):   记录器=logging.getLogger ()   返回日志记录器      if __name__==癬_main__”:   # log_type=翱刂铺ā?   log_type="文件"   记录器=LogConfig (log_type) .getLogger ()   logger.debug(由调试打印)   logger.info(的打印信息”)   记录器。警告(打印警告)

python3配置日志日志类的操作