# 记录日志的模块
from loguru import logger
import pathlib
import sys
import os
# 终端日志输出格式
stdout_fmt = '{time:HH:mm:ss,SSS} ' \
'[{level: <5}] ' \
'{module}:{line} - ' \
'{message}'
# 日志文件记录格式
logfile_fmt = '{time:YYYY-MM-DD HH:mm:ss,SSS} ' \
'[{level: <5}] ' \
'{process.name}({process.id}):' \
'{thread.name: <10}({thread.id: <5}) | ' \
'{module}.{function}:' \
'{line} - {message}'
log_path = pathlib.Path(__file__).parent.resolve().joinpath('logs')
if not log_path.is_dir():
log_path.mkdir()
log_path = log_path.joinpath('web.log').resolve()
logger.remove()
logger.level(name='TRACE', no=5, color='', icon='✏️')
logger.level(name='DEBUG', no=10, color='', icon='🐞 ')
logger.level(name='INFOR', no=20, color='', icon='ℹ️')
logger.level(name='ALERT', no=30, color='', icon='⚠️')
logger.level(name='ERROR', no=40, color='', icon='❌️')
logger.level(name='FATAL', no=50, color='', icon='☠️')
if not os.environ.get('PYTHONIOENCODING'): # 设置编码
os.environ['PYTHONIOENCODING'] = 'utf-8'
logger.add(sys.stderr, level='INFOR', format=stdout_fmt, enqueue=True)
logger.add(log_path, level='DEBUG', format=logfile_fmt, enqueue=True, encoding='utf-8')