Feature/get named logger #29
@ -14,4 +14,15 @@ gitee: @shenjackyuanjie
|
|||||||
|
|
||||||
# from Difficult_Rocket.api import screen, mod, exception
|
# from Difficult_Rocket.api import screen, mod, exception
|
||||||
|
|
||||||
__all__ = ['screen', 'mod', 'exception']
|
__all__ = [
|
||||||
|
'exception',
|
||||||
|
# 错误类定义
|
||||||
|
'screen',
|
||||||
|
# screen api
|
||||||
|
'types',
|
||||||
|
# 类型定义
|
||||||
|
'mod',
|
||||||
|
# mod api
|
||||||
|
'log'
|
||||||
|
# log api
|
||||||
|
]
|
||||||
|
16
Difficult_Rocket/api/log.py
Normal file
16
Difficult_Rocket/api/log.py
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# -------------------------------
|
||||||
|
# Difficult Rocket
|
||||||
|
# Copyright © 2020-2023 by shenjackyuanjie 3695888@qq.com
|
||||||
|
# All rights reserved
|
||||||
|
# -------------------------------
|
||||||
|
|
||||||
|
from Difficult_Rocket.utils.log import (get_named_client_logger,
|
||||||
|
get_named_server_logger,
|
||||||
|
get_named_main_logger)
|
||||||
|
|
||||||
|
|
||||||
|
__all__ = [
|
||||||
|
'get_named_client_logger',
|
||||||
|
'get_named_server_logger',
|
||||||
|
'get_named_main_logger',
|
||||||
|
]
|
@ -12,9 +12,9 @@ gitee: @shenjackyuanjie
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
# system function
|
# system function
|
||||||
|
import warnings
|
||||||
from typing import Tuple, List, Optional, TypeVar, TYPE_CHECKING
|
from typing import Tuple, List, Optional, TypeVar, TYPE_CHECKING
|
||||||
|
|
||||||
|
|
||||||
# from DR
|
# from DR
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from Difficult_Rocket.main import Game
|
from Difficult_Rocket.main import Game
|
||||||
@ -59,9 +59,15 @@ class ModInfo(Options):
|
|||||||
config: Options = Options() # mod 配置存储
|
config: Options = Options() # mod 配置存储
|
||||||
old_mod: Optional["ModInfo"] = None # 旧的mod实例
|
old_mod: Optional["ModInfo"] = None # 旧的mod实例
|
||||||
|
|
||||||
|
def __init__(self, **kwargs):
|
||||||
|
if not self.DR_version[0] <= DR_status.DR_version <= self.DR_version[1]:
|
||||||
|
warnings.warn(f"mod {self.mod_id} version {self.version} is not support by DR {DR_status.DR_version}\nDR {self.DR_version} is required")
|
||||||
|
if not self.DR_Api_version[0] <= DR_status.API_version <= self.DR_Api_version[1]:
|
||||||
|
warnings.warn(f"mod {self.mod_id} version {self.version} is not support by DR {DR_status.API_version}\nDR {self.DR_Api_version} is required")
|
||||||
|
super().__init__(**kwargs)
|
||||||
|
|
||||||
def on_load(self, game: Game, old_self: Optional["ModInfo"] = None) -> bool:
|
def on_load(self, game: Game, old_self: Optional["ModInfo"] = None) -> bool:
|
||||||
""" 加载时调用 """
|
""" 加载时调用 """
|
||||||
print(f'Mod {self.mod_id} loaded')
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def on_client_start(self, game: Game, client: ClientWindow):
|
def on_client_start(self, game: Game, client: ClientWindow):
|
||||||
|
34
Difficult_Rocket/utils/log.py
Normal file
34
Difficult_Rocket/utils/log.py
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
# -------------------------------
|
||||||
|
# Difficult Rocket
|
||||||
|
# Copyright © 2020-2023 by shenjackyuanjie 3695888@qq.com
|
||||||
|
# All rights reserved
|
||||||
|
# -------------------------------
|
||||||
|
|
||||||
|
import logging
|
||||||
|
|
||||||
|
from typing import Callable
|
||||||
|
|
||||||
|
|
||||||
|
__all__ = [
|
||||||
|
'get_named_client_logger',
|
||||||
|
'get_named_server_logger',
|
||||||
|
'get_named_main_logger',
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
def _gen_get_named_logger(from_name: str) -> Callable[[str], logging.Logger]:
|
||||||
|
|
||||||
|
def get_named_logger(name: str) -> logging.Logger:
|
||||||
|
logger = logging.getLogger(from_name)
|
||||||
|
logger.name = f'{from_name}.{name}'
|
||||||
|
return logger
|
||||||
|
|
||||||
|
return get_named_logger
|
||||||
|
|
||||||
|
|
||||||
|
get_named_client_logger = _gen_get_named_logger('client')
|
||||||
|
# 用于获取一个基于 client 配置的 logger
|
||||||
|
get_named_server_logger = _gen_get_named_logger('server')
|
||||||
|
# 用于获取一个基于 server 配置的 logger
|
||||||
|
get_named_main_logger = _gen_get_named_logger('main')
|
||||||
|
# 用于获取一个基于 main 配置的 logger
|
@ -17,6 +17,16 @@
|
|||||||
- `server_running`
|
- `server_running`
|
||||||
- 服务器是否在运行
|
- 服务器是否在运行
|
||||||
- Is server running
|
- Is server running
|
||||||
|
- Mod loader
|
||||||
|
- 添加了对支持版本号的 warnings
|
||||||
|
- Added warnings for supporting version numbers
|
||||||
|
- API
|
||||||
|
- `Difficult_Rocket.api.log`
|
||||||
|
- `get_named_client_logger`
|
||||||
|
- `get_named_server_logger`
|
||||||
|
- `get_named_main_logger`
|
||||||
|
- 分别用于获取 基于 对应名称配置的 logger
|
||||||
|
- Get the logger for the corresponding name configuration
|
||||||
|
|
||||||
### 移动
|
### 移动
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@ import traceback
|
|||||||
|
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
|
from Difficult_Rocket import DR_status
|
||||||
from Difficult_Rocket.main import Game
|
from Difficult_Rocket.main import Game
|
||||||
from Difficult_Rocket.api.mod import ModInfo
|
from Difficult_Rocket.api.mod import ModInfo
|
||||||
from Difficult_Rocket.api.types import Options, Version
|
from Difficult_Rocket.api.types import Options, Version
|
||||||
@ -58,7 +59,7 @@ class DR_mod(ModInfo):
|
|||||||
|
|
||||||
config = DR_mod_runtime
|
config = DR_mod_runtime
|
||||||
|
|
||||||
# DR_version = # DR SDK 兼容版本
|
DR_version = (DR_status.DR_version, DR_status.DR_version) # DR SDK 兼容版本
|
||||||
# 反正是内置 mod 跟着最新版本的 DR 走就行了
|
# 反正是内置 mod 跟着最新版本的 DR 走就行了
|
||||||
# DR_Api_version = # DR Api版本
|
# DR_Api_version = # DR Api版本
|
||||||
# 同理 不管 API 版本 这东西要是不兼容了才是大问题
|
# 同理 不管 API 版本 这东西要是不兼容了才是大问题
|
||||||
|
@ -4,12 +4,11 @@
|
|||||||
# All rights reserved
|
# All rights reserved
|
||||||
# -------------------------------
|
# -------------------------------
|
||||||
|
|
||||||
import math
|
# import math
|
||||||
import time
|
import time
|
||||||
import random
|
import random
|
||||||
import logging
|
|
||||||
import traceback
|
import traceback
|
||||||
from xml.etree import ElementTree
|
# from xml.etree import ElementTree
|
||||||
from xml.etree.ElementTree import Element
|
from xml.etree.ElementTree import Element
|
||||||
from typing import List, TYPE_CHECKING, Union, Dict, Optional, Generator
|
from typing import List, TYPE_CHECKING, Union, Dict, Optional, Generator
|
||||||
|
|
||||||
@ -21,7 +20,7 @@ from pyglet.math import Vec4
|
|||||||
from pyglet.text import Label
|
from pyglet.text import Label
|
||||||
from pyglet.shapes import Line, Rectangle
|
from pyglet.shapes import Line, Rectangle
|
||||||
from pyglet.sprite import Sprite
|
from pyglet.sprite import Sprite
|
||||||
from pyglet.image import Texture
|
# from pyglet.image import Texture
|
||||||
from pyglet.graphics import Batch, Group
|
from pyglet.graphics import Batch, Group
|
||||||
|
|
||||||
from . import DR_mod_runtime
|
from . import DR_mod_runtime
|
||||||
@ -32,6 +31,7 @@ from Difficult_Rocket.utils.translate import tr
|
|||||||
from Difficult_Rocket.api.types import Fonts, Options
|
from Difficult_Rocket.api.types import Fonts, Options
|
||||||
from Difficult_Rocket.command.line import CommandText
|
from Difficult_Rocket.command.line import CommandText
|
||||||
from Difficult_Rocket.client.screen import BaseScreen
|
from Difficult_Rocket.client.screen import BaseScreen
|
||||||
|
from Difficult_Rocket.api.log import get_named_client_logger
|
||||||
from .types import SR1Textures, SR1PartTexture, SR1PartData, SR1Rotation, xml_bool
|
from .types import SR1Textures, SR1PartTexture, SR1PartData, SR1Rotation, xml_bool
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
@ -40,7 +40,7 @@ if TYPE_CHECKING:
|
|||||||
if DR_mod_runtime.use_DR_rust:
|
if DR_mod_runtime.use_DR_rust:
|
||||||
from .Difficult_Rocket_rs import CenterCamera_rs, SR1PartList_rs, SR1Ship_rs
|
from .Difficult_Rocket_rs import CenterCamera_rs, SR1PartList_rs, SR1Ship_rs
|
||||||
|
|
||||||
logger = logging.getLogger('client')
|
logger = get_named_client_logger('dr_game_sr1_ship')
|
||||||
|
|
||||||
|
|
||||||
def get_sr1_part(part_xml: Element) -> Optional[SR1PartData]:
|
def get_sr1_part(part_xml: Element) -> Optional[SR1PartData]:
|
||||||
|
Loading…
Reference in New Issue
Block a user