zoukankan      html  css  js  c++  java
  • python3 配置logging日志类

    配置类config_file:

      

     1 from configparser import ConfigParser
     2 
     3 class config_file:
     4 
     5     def __init__(self,conf_filePath,encoding="utf-8"):
     6         #打开配置文件,实例化ConfigParser类,并以默认utf-8的编码格式读取文件
     7         self.cf = ConfigParser()
     8         self.cf.read(conf_filePath,encoding)
     9 
    10     def get_Int_Value(self,section,option):
    11         #获取整数
    12         return self.cf.getint(section,option)
    13 
    14     def get_boolValue(self,section,option):
    15         #获取布尔值
    16         return self.cf.getboolean(section,option)
    17 
    18     def get_strValue(self,section,option):
    19         # 获取字符串类型的值
    20         return self.cf.get(section,option)
    21 
    22     def get_floatValue(self,section,option):
    23         # 获取浮点数值
    24         return self.cf.getfloat(section,option)
    25 
    26     def get_sections(self):
    27         # 获取所有的section
    28         return self.cf.sections()
    29 
    30     def get_options(self,section):
    31         # 获取所有的option
    32         return self.cf.options(section)

    日志类:

      

     1 from configparser import ConfigParser
     2 import logging
     3 from config_file import config_file
     4 class Log_Test(config_file):#继承config_file
     5 
     6     def logging(self):
     7         logger = logging.getLogger(self.get_strValue('log','logger_name')) #从配置文件读取logger名
     8         logger.setLevel(self.get_strValue('log', 'logger_level')) # 设置logger收集器的收集log级别
     9         format_logger = logging.Formatter(self.get_strValue('log','logger_format'))
    10         if(self.get_boolValue('log','logger_out')):
    11             handle = logging.StreamHandler()  # 指定输出到console控制台
    12             handle.setLevel(self.get_strValue('log', 'logger_level'))  # 读取日志等级并设定logging的级别
    13             handle.setFormatter(format_logger) # 指定日志格式
    14         else:
    15             handle = logging.FileHandler(self.get_strValue('log','logger_filepath'), encoding='utf-8')
    16             handle.setLevel(self.get_strValue('log', 'logger_level'))  # 读取日志等级并设定logging的级别
    17             handle.setFormatter(format_logger) # 指定日志格式
    18         logger.addHandler(handle)
    19         return logger

    日志配置文件logging.cfg:

      

    [log]
    #日志收集器
    logger_name=TEST
    #日志级别  级别需要大写  DEBUG-->INFO-->WARNING-->ERROR-->CRITICAL/FATAL
    logger_level=DEBUG
    #日志输出格式   注意转义
    logger_format=%%(asctime)s-%%(filename)s-%%(levelname)s-日志信息:%%(message)s
    #日志是否输出到控制台   True   or   False
    logger_out=False
    #日志输出指定文件地址
    logger_filepath=logging_Test.log

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

  • 相关阅读:
    华章IT图书书讯(2011年第8期)
    iPhone游戏开发实践指南
    【北京讲座】Android系统Framework层源码分析(2011.09.24)
    深入理解Android
    你学或不学,Java就在那里,不离不弃
    近百本精品图书全部免费赠送——仅面向学生
    极限编程(Extreme Programming, XP)
    对任何希望深入理解C#的程序员来说,这本书都是不容错过的经典书籍
    C# 文件操作(转)
    一些数据格式化Eval( " ")和DataBinder.Eval(Container.DataItem, " ")的区别及用法
  • 原文地址:https://www.cnblogs.com/bingoTest/p/10576212.html
Copyright © 2011-2022 走看看