import sys
import logging
# 默认的配置
LOG_LEVEL = logging.INFO ## 默认等级
LOG_FMT = '%(asctime)s %(filename)s [line:%(lineno)d] %(levelname)s: %(message)s'
LOG_DATEFMT = '%Y-%m-%d %H:%M:%S' # 默认时间格式
LOG_FILENAME = 'Log.Log' # 默认日志文件名称
class Logger(object):
def __init__(self):
# 1。获取一个logger对象
self._logger = logging.getLogger()
# 2,设置format对象
self.formatter = logging.Formatter(fmt=LOG_FMT, datefmt=LOG_DATEFMT)
# 3。设置日志输出
# 了.了 设置文件日志模式
self._logger.addHandler(self._get_file_handler(LOG_FILENAME))
# 3了,2 设置终端日志模式
self._logger.addHandler(self._get_console_handler())
# 4。设置日志等级
self._logger.setLevel(LOG_LEVEL)
def _get_file_handler(self, filename):
# 返回一个文件日志handler
# 1.获取一个文件日志hand1er
filehandler = logging.FileHandler(filename=filename, encoding="utf-8")
# 2.设置日志格式
filehandler.setFormatter(self.formatter)
# 3,返回
return filehandler
def _get_console_handler(self):
# 一个输出到终端日志handler
# 获取一个输出到终端的handler
console_handler = logging.StreamHandler(sys.stdout)
# 2。设置日志格式
console_handler.setFormatter(self.formatter)
# 3。 返回hnandter
return console_handler
@property
def logger(self):
return self._logger
# 初始化并配一个Logger对象,达到单例的
# 使用时,直接导入logger就可以使用
logger = Logger().logger
if __name__ == '__main__':
logger.debug("调试信息")
logger.info("状态信息")
logger.warning("警告信息")
如果本文对你有帮助,欢迎打赏本站

支付宝扫码打赏
微信扫码打赏
