java自定义日志类Logger
程序员文章站
2022-06-06 16:13:13
#coding:utf-8import sysimport loggingclass Logger(object): def __init__(self): # 1. 获取一个logger对象 self._logger = logging.getLogger() # 2. 设置format对象 self.formatter = logging.Formatter(fmt='%(asctime)s %(filename)s...
#coding:utf-8
import sys
import logging
class Logger(object):
def __init__(self):
# 1. 获取一个logger对象
self._logger = logging.getLogger()
# 2. 设置format对象
self.formatter = logging.Formatter(fmt='%(asctime)s %(filename)s [line:%(lineno)d] %(levelname)s: %(message)s', datefmt='%Y-%m-%d %H:%M:%S')
# 3. 设置日志输出
# 3.1 设置文件日志模式
self._logger.addHandler(self._get_file_handler('log.log'))
# 3.2 设置终端日志模式
self._logger.addHandler(self._get_console_handler())
# 4. 设置日志等级
self._logger.setLevel(logging.INFO)
def _get_file_handler(self, filename):
'''返回一个文件日志handler'''
# 1. 获取一个文件日志handler
filehandler = logging.FileHandler(filename=filename)
# 2. 设置日志格式
filehandler.setFormatter(self.formatter)
# 3. 返回
return filehandler
def _get_console_handler(self):
'''返回一个输出到终端日志handler'''
# 1. 获取一个输出到终端日志handler
console_handler = logging.StreamHandler(sys.stdout)
# 2. 设置日志格式
console_handler.setFormatter(self.formatter)
# 3. 返回handler
return console_handler
@property
def logger(self):
return self._logger
# 初始化并配一个logger对象,达到单例模式
# 使用时,直接导入logger就可以使用
logger = Logger().logger
本文地址:https://blog.csdn.net/weixin_44857400/article/details/107084986