今天就简单的对日志做个封装,实际工作中直接拿去用吧
”“” ------------------------------------ @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操作日志的封装方法(两种方法)