import logging
import os.path
import time
import colorlog
from logging.handlers import RotatingFileHandler
default_formats = {
# 终端输出格式
'color_format': '%(log_color)s%(asctime)s-%(name)s-%(filename)s-'
'[line:%(lineno)d]-%(levelname)s-[log-messge]: %(message)s',
# 日志输出格式
'log_format': '%(asctime)s-%(name)s-%(filename)s-[line:%(lineno)d]'
'-%(levelname)s-[log-messge]: %(message)s'
}
log_colors_config = {
# 终端输出日志颜色配置
'DEBUG': 'white',
'INFO': 'cyan',
'WARNING': 'yellow',
'ERROR': 'red',
'CRITICAL': 'bold_red',
}
def get_logger(module_name='logger', max_megabyte=50, log_count=3):
# 构建日志记录器
logger = logging.getLogger(module_name)
# 构建日志文件处理器
time_temp = time.strftime(" %Y-%m-%d %H.%M.%S", time.localtime())
logdir = os.path.join(os.path.dirname(__file__), 'logdir',
module_name + time_temp + '.log')
file_handler = RotatingFileHandler(
filename=logdir, maxBytes=max_megabyte*1024*1024,
encoding='utf-8', backupCount=log_count)
file_handler.setLevel(logging.DEBUG)
file_handler.setFormatter(default_formats.get('log_format'))
# 构建日志控制台输出处理器
stream_handler = colorlog.StreamHandler()
stream_handler.setLevel(logging.DEBUG)
stream_handler.setFormatter(
colorlog.ColoredFormatter(
default_formats.get('color_format'), log_colors=log_colors_config))
# 组合处理器和记录器
logger.addHandler(file_handler)
logger.addHandler(stream_handler)
logger.setLevel(logging.DEBUG)
return logger
if __name__ == '__main__':
mylogger = get_logger()
mylogger.debug('this is debug log msg')
mylogger.info('this is info log msg')
mylogger.error('this is error log msg')
这是样式:
日志文件存放样式:
当日志文件特别大时,是这样的:
过程中遇到的一些参数的值可以怎么给,可以参考:
https://www.cnblogs.com/mrlayfolk/p/12120239.html