python操作日志的封装方法(两种方法)

  

  

今天就简单的对日志做个封装,实际工作中直接拿去用吧

  

        ”“”   ------------------------------------   @Time: 2019/5/22 8:12   @Auth: linux超   @File: logfile.py   @IDE: PyCharm   @Motto:真正的勇士,敢于面对惨淡的警告,敢于面对深刻的错误!   ------------------------------------   ”“”   导入日志   类日志(对象):   def __init__(自我、name=__name__=' mylog路径。日志”,级别=暗魇浴?:   自我。__name=名字   自我。__path=路径   自我。__level=水平   自我。__logger=logging.getLogger (self.__name)   self.__logger.setLevel (self.__level)   def __ini_handler(自我):   ”““初始化处理程序”“”   stream_handler=logging.StreamHandler ()   $ file_handle=logging.FileHandler(自我。__path编码=皍tf - 8”)   返回stream_handler, $ file_handle   def __set_handler(自我、stream_handler $ file_handle水平=暗魇浴?:   ”““设置处理程序级别并添加到记录器收集器“”“   stream_handler.setLevel(高度)   file_handler.setLevel(高度)   self.__logger.addHandler (stream_handler)   self.__logger.addHandler ($ file_handle)   def __set_formatter(自我、stream_handler $ file_handle):   ”““设置日志输出格式”“   格式化程序=logging.Formatter (' % (asctime) s - %(名字)s - %(文件名)s -(线:% (lineno) d)”   - % (levelname) s[日志信息):%(消息)',   datefmt=' %, % d % b % Y % H: % M: % S ')   stream_handler.setFormatter (formatter)   file_handler.setFormatter (formatter)   def __close_handler(自我、stream_handler $ file_handle):   ”““关闭处理程序”“”   stream_handler.close ()   file_handler.close ()   @ property   def记录器(自我):   ”““构造收集器,返回looger“”“   stream_handler $ file_handle=self.__ini_handler ()   自我。__set_handler (stream_handler $ file_handle)   自我。__set_formatter (stream_handler $ file_handle)   自我。__close_handler (stream_handler $ file_handle)   返回self.__logger   if __name__==癬_main__”:   日志=日志(__name__ file.log)   记录器=log.Logger   logger.debug(“我是调试消息”)   logger.info(“我信息消息”)   记录器。警告(“我是一个警告消息”)   记录器。错误(“我是一个错误消息”)   记录器。关键(“我是一个关键的消息”)      

初始化方法参数说明

  

名称:自定义日志的名字,默认是根,但是我这里是使用调用文件的__name__作为默认名字

  

路径:生成的日志的文件名

  

水平:日志的级别,我这里把所有的级别都默认设置了水平=调试

  

  

使用logging.fileconfig这个模块实现(不知道这个模块的找度娘恶补一下把)

  

<强> 1。使用配置文件构造日志配置信息

  

logger.ini         (伐木工人)   键=根,example01 example02   (logger_root)   水平=调试   处理程序=hand01 hand02   (logger_example01)   处理程序=hand01 hand02   qualname=example01   传播=0   (logger_example02)   处理程序=hand01 hand03   qualname=example02   传播=0   (处理)   键=hand01 hand02 hand03   (handler_hand01)   类=StreamHandler   水平=信息   格式化程序=form01   args=(sys。stdout,)   (handler_hand02)   类=文件句柄   水平=调试   格式化程序=form01   日志/test_case_log args=('。日志”、“一”)   (handler_hand03)   类=handlers.RotatingFileHandler   水平=信息   格式化程序=form01   日志/test_case_log args=('。日志',' ',10 * 1024 * 1024,3)   (格式器)   键=form01 form02   (formatter_form01)   格式=% (asctime) s - %(文件名)s -(线:% (lineno) d) - % (levelname) s [LogInfoMessage]: % s(消息)   datefmt=%, % d % b H % Y %: % M: % S   (formatter_form02)   格式=%(名字)-12年代:% (levelname) 8 s -(日志信息):% s(消息)   datefmt=%, % d % b H % Y %: % M: % S      

封装python代码

        ”“”   ------------------------------------   @Time: 2019/5/22 37   @Auth: linux超   @File: Log.py   @IDE: PyCharm   @Motto:真正的勇士,敢于面对惨淡的警告,敢于面对深刻的错误!   ------------------------------------   ”“”   导入日志   从日志导入配置   类MyLog(对象):   def __init__(自我):   config.fileConfig (“logger.ini”)   自我。记录器=logging.getLogger (“example01”)   @ property   def my_logger(自我):   返回self.logger   if __name__==癬_main__”:   日志=MyLog ()   log.my_logger.info(“这是我的测试日志消息信息”)

python操作日志的封装方法(两种方法)