mirror of
https://github.com/Genshin-bots/gsuid_core.git
synced 2025-05-12 06:55:49 +08:00
🎨 优化日志显示
This commit is contained in:
parent
95e0b65856
commit
9cf7c4b997
1
.gitignore
vendored
1
.gitignore
vendored
@ -668,3 +668,4 @@ GsData.db
|
|||||||
GenshinUID
|
GenshinUID
|
||||||
data
|
data
|
||||||
plugins
|
plugins
|
||||||
|
logs
|
||||||
|
@ -56,12 +56,8 @@ class _Bot:
|
|||||||
async def _process(self):
|
async def _process(self):
|
||||||
while True:
|
while True:
|
||||||
data = await self.queue.get()
|
data = await self.queue.get()
|
||||||
task = asyncio.create_task(data)
|
asyncio.create_task(data)
|
||||||
self.bg_tasks.add(task)
|
self.queue.task_done()
|
||||||
try:
|
|
||||||
task.add_done_callback(lambda _: self.bg_tasks.discard(task))
|
|
||||||
except Exception as e:
|
|
||||||
logger.error(e)
|
|
||||||
|
|
||||||
|
|
||||||
class Bot:
|
class Bot:
|
||||||
|
@ -34,17 +34,22 @@ class GsClient:
|
|||||||
async def send_msg(self):
|
async def send_msg(self):
|
||||||
while True:
|
while True:
|
||||||
intent = await self._input()
|
intent = await self._input()
|
||||||
if intent == '全匹配测试':
|
if intent == '图片测试':
|
||||||
user_id = '55551111'
|
content = [
|
||||||
|
Message(
|
||||||
|
type='file',
|
||||||
|
data='xxx.json|XAclpWfLF5d66dtrHx8cqq8E+',
|
||||||
|
)
|
||||||
|
]
|
||||||
else:
|
else:
|
||||||
user_id = '51'
|
content = [Message(type='text', data=intent)]
|
||||||
msg = MessageReceive(
|
msg = MessageReceive(
|
||||||
bot_id='Nonebot',
|
bot_id='Nonebot',
|
||||||
user_type='direct',
|
user_type='direct',
|
||||||
user_pm=2,
|
user_pm=2,
|
||||||
group_id=None,
|
group_id=None,
|
||||||
user_id=user_id,
|
user_id='51',
|
||||||
content=[Message(type='text', data=intent)],
|
content=content,
|
||||||
)
|
)
|
||||||
msg_send = msgjson.encode(msg)
|
msg_send = msgjson.encode(msg)
|
||||||
await self.ws.send(msg_send)
|
await self.ws.send(msg_send)
|
||||||
|
@ -1,9 +1,16 @@
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
gs_data_path = Path(__file__).parents[1] / 'data'
|
gs_data_path = Path(__file__).parents[1] / 'data'
|
||||||
|
|
||||||
|
|
||||||
def get_res_path() -> Path:
|
def get_res_path(_path: Optional[str] = None) -> Path:
|
||||||
if not gs_data_path.exists():
|
if _path:
|
||||||
gs_data_path.mkdir()
|
path = gs_data_path / _path
|
||||||
return gs_data_path
|
else:
|
||||||
|
path = gs_data_path
|
||||||
|
|
||||||
|
if not path.exists():
|
||||||
|
path.mkdir()
|
||||||
|
|
||||||
|
return path
|
||||||
|
@ -65,7 +65,7 @@ async def handle_event(ws: _Bot, msg: MessageReceive):
|
|||||||
# 获取用户权限,越小越高
|
# 获取用户权限,越小越高
|
||||||
user_pm = await get_user_pml(msg)
|
user_pm = await get_user_pml(msg)
|
||||||
event = await msg_process(msg)
|
event = await msg_process(msg)
|
||||||
logger.info(f'[收到事件] {event}')
|
logger.info('[收到事件]', event=event)
|
||||||
valid_event: Dict[Trigger, int] = {}
|
valid_event: Dict[Trigger, int] = {}
|
||||||
pending = [
|
pending = [
|
||||||
_check_command(
|
_check_command(
|
||||||
|
@ -6,13 +6,15 @@ from typing import TYPE_CHECKING
|
|||||||
import loguru
|
import loguru
|
||||||
|
|
||||||
from gsuid_core.config import core_config
|
from gsuid_core.config import core_config
|
||||||
|
from gsuid_core.models import Event, Message
|
||||||
|
from gsuid_core.data_store import get_res_path
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
# avoid sphinx autodoc resolve annotation failed
|
# avoid sphinx autodoc resolve annotation failed
|
||||||
# because loguru module do not have `Logger` class actually
|
# because loguru module do not have `Logger` class actually
|
||||||
from loguru import Logger
|
from loguru import Logger
|
||||||
|
|
||||||
logger: "Logger" = loguru.logger
|
logger: 'Logger' = loguru.logger
|
||||||
|
|
||||||
|
|
||||||
# https://loguru.readthedocs.io/en/stable/overview.html#entirely-compatible-with-standard-logging
|
# https://loguru.readthedocs.io/en/stable/overview.html#entirely-compatible-with-standard-logging
|
||||||
@ -33,23 +35,59 @@ class LoguruHandler(logging.Handler): # pragma: no cover
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
FORMAT = (
|
def format_event(record):
|
||||||
"<g>{time:MM-DD HH:mm:ss}</g> "
|
if 'event' in record['extra']:
|
||||||
"[<lvl>{level}</lvl>] "
|
event: Event = record['extra']['event']
|
||||||
"<c><u>{name}</u></c> | "
|
if event.file and event.file_type != 'url':
|
||||||
# "<c>{function}:{line}</c>| "
|
file = f'{event.file[:20]}...(base64)'
|
||||||
"{message}"
|
content = [Message('file', f'{event.file_name}|{file}')]
|
||||||
|
else:
|
||||||
|
file = event.file
|
||||||
|
content = event.content
|
||||||
|
message = (
|
||||||
|
f'<m><b>[Event]</b></m> '
|
||||||
|
f'raw_text={event.raw_text}, '
|
||||||
|
f'command={event.command}, '
|
||||||
|
f'text={event.text}, '
|
||||||
|
f'image={event.image}, '
|
||||||
|
f'at={event.at}, '
|
||||||
|
f'image_list={event.image}, '
|
||||||
|
f'at_list={event.at_list}, '
|
||||||
|
f'is_tome={event.is_tome}, '
|
||||||
|
f'reply={event.reply}, '
|
||||||
|
f'file_name={event.file_name}, '
|
||||||
|
f'file_type={event.file_type}, '
|
||||||
|
f'file={file}'
|
||||||
|
f' | <m><b>[Receive]</b></m> '
|
||||||
|
f'bot_id={event.bot_id}, '
|
||||||
|
f'bot_self_id={event.bot_self_id}, '
|
||||||
|
f'msg_id={event.msg_id}, '
|
||||||
|
f'user_type={event.user_type}, '
|
||||||
|
f'group_id={event.group_id}, '
|
||||||
|
f'user_id={event.user_id}, '
|
||||||
|
f'user_pm={event.user_pm}, '
|
||||||
|
f'content={content}, '
|
||||||
)
|
)
|
||||||
|
else:
|
||||||
|
message = '{message}'
|
||||||
|
|
||||||
LEVEL: str = core_config.get_config("log").get("level", "INFO")
|
time = '<g>{time:MM-DD HH:mm:ss}</g>'
|
||||||
|
level = '[<lvl>{level}</lvl>]'
|
||||||
|
def_name = '<c><u>{name}</u></c>'
|
||||||
|
return f'{time} {level} {def_name} | {message} \n'
|
||||||
|
|
||||||
|
|
||||||
|
LEVEL: str = core_config.get_config('log').get('level', 'INFO')
|
||||||
|
|
||||||
logger.remove()
|
logger.remove()
|
||||||
logger_id = logger.add(sys.stdout, level=LEVEL, diagnose=False, format=FORMAT)
|
logger_id = logger.add(
|
||||||
|
sys.stdout, level=LEVEL, diagnose=False, format=format_event
|
||||||
|
)
|
||||||
|
|
||||||
logger.add(
|
logger.add(
|
||||||
"logs/{time:YYYY-MM-DD}.log",
|
sink=get_res_path() / 'logs/{time:YYYY-MM-DD}.log',
|
||||||
|
format=format_event,
|
||||||
rotation=datetime.time(),
|
rotation=datetime.time(),
|
||||||
level=LEVEL,
|
level=LEVEL,
|
||||||
diagnose=False,
|
diagnose=False,
|
||||||
format=FORMAT,
|
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user