python logging 同时屏幕输出和保存到文件
2020-03-24 本文已影响0人
打出了枫采
日志记录,不同模块使用不同logger分开记录,同时输出到屏幕和文件
日志记录完后,可以使用del 来主动释放日志占用的资源
# -*- coding: utf-8 -*-
import logging
import time
class AppLogger:
def __init__(self, moduleName, logfile):
self._logger = logging.getLogger(moduleName)
handler = logging.FileHandler(logfile)
fmt = "%(asctime)-15s %(levelname)s %(filename)s %(lineno)d %(message)s"
formatter = logging.Formatter(fmt)
handler.setFormatter(formatter)
self._logger.addHandler(handler)
self._logger.setLevel(logging.INFO)
console = logging.StreamHandler()
console.setLevel(logging.INFO)
console.setFormatter(formatter)
self._logger.addHandler(console)
self.warnning = self._logger.warnning
self.error = self._logger.error
self.info = self._logger.info
self.debug = self._logger.debug
if __name__ == "__main__":
moduleA_logfile = "moduleA-" + time.strftime("%Y%m%d%H%M%S") + '.log'
moduleB_logfile = "moduleB-" + time.strftime("%Y%m%d%H%M%S") + '.log'
moduleALogger = AppLogger("moduleA", moduleA_logfile)
moduleBLogger = AppLogger("moduleB", moduleB_logfile)
moduleALogger.info(" start xxxx")
moduleBLogger.error("test error")
...
...
del moduleALogger
del moduleBLogger