| 1 | import os |
| 2 | import sys |
| 3 | |
| 4 | from loguru import logger |
| 5 | |
| 6 | from app.config import config |
| 7 | from app.utils import utils |
| 8 | |
| 9 | |
| 10 | def __init_logger(): |
| 11 | # _log_file = utils.storage_dir("logs/server.log") |
| 12 | _lvl = config.log_level |
| 13 | root_dir = os.path.dirname( |
| 14 | os.path.dirname(os.path.dirname(os.path.realpath(__file__))) |
| 15 | ) |
| 16 | |
| 17 | def format_record(record): |
| 18 | # 获取日志记录中的文件全路径 |
| 19 | file_path = record["file"].path |
| 20 | # 将绝对路径转换为相对于项目根目录的路径 |
| 21 | relative_path = os.path.relpath(file_path, root_dir) |
| 22 | # 更新记录中的文件路径 |
| 23 | record["file"].path = f"./{relative_path}" |
| 24 | # 返回修改后的格式字符串 |
| 25 | # 您可以根据需要调整这里的格式 |
| 26 | _format = ( |
| 27 | "<green>{time:%Y-%m-%d %H:%M:%S}</> | " |
| 28 | + "<level>{level}</> | " |
| 29 | + '"{file.path}:{line}":<blue> {function}</> ' |
| 30 | + "- <level>{message}</>" |
| 31 | + "\n" |
| 32 | ) |
| 33 | return _format |
| 34 | |
| 35 | logger.remove() |
| 36 | |
| 37 | logger.add( |
| 38 | sys.stdout, |
| 39 | level=_lvl, |
| 40 | format=format_record, |
| 41 | colorize=True, |
| 42 | ) |
| 43 | |
| 44 | # logger.add( |
| 45 | # _log_file, |
| 46 | # level=_lvl, |
| 47 | # format=format_record, |
| 48 | # rotation="00:00", |
| 49 | # retention="3 days", |
| 50 | # backtrace=True, |
| 51 | # diagnose=True, |
| 52 | # enqueue=True, |
| 53 | # ) |
| 54 | |
| 55 | |
| 56 | __init_logger() |
| 57 |