import sys
import pathlib
from loguru import logger
# 路径设置
relative_directory = pathlib.Path(__file__).parent.parent # OneForAll代码相对路径
result_save_dir = relative_directory.joinpath('results') # 结果保存目录
log_path = result_save_dir.joinpath('oneforall.log') # OneForAll日志保存路径
# 日志配置
# 终端日志输出格式
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: <18}({thread.id: <5}) | ' \
'{module}.{function}:' \
'{line} - {message}'
logger.remove()
logger.level(name='TRACE', color='', icon='✏️')
logger.level(name='DEBUG', color='', icon='🐞 ')
logger.level(name='INFOR', no=20, color='', icon='ℹ️')
logger.level(name='QUITE', no=25, color='', icon='🤫 ')
logger.level(name='ALERT', no=30, color='', icon='⚠️')
logger.level(name='ERROR', color='', icon='❌️')
logger.level(name='FATAL', no=50, color='', icon='☠️')
# 如果你想在命令终端静默运行OneForAll,可以将以下一行中的level设置为QUITE
# 命令终端日志级别默认为INFOR
logger.add(sys.stderr, level='INFOR', format=stdout_fmt, enqueue=True)
# 日志文件默认为级别为DEBUG
logger.add(log_path, level='DEBUG', format=logfile_fmt, enqueue=True, encoding='utf-8')