Difficult-Rocket/libs/lib_not_dr/logger/structers.py

58 lines
1.4 KiB
Python
Raw Normal View History

2023-10-13 22:58:42 +08:00
# -------------------------------
# Difficult Rocket
# Copyright © 2020-2023 by shenjackyuanjie 3695888@qq.com
# All rights reserved
# -------------------------------
import time
from types import FrameType
2023-10-23 23:41:22 +08:00
from typing import List, Optional, Tuple, Dict
2023-10-13 22:58:42 +08:00
2023-10-13 23:07:08 +08:00
from lib_not_dr.types.options import Options
2023-10-13 22:58:42 +08:00
2023-10-23 23:41:22 +08:00
__all__ = ['LogMessage',
'FormattingMessage']
2023-10-13 22:58:42 +08:00
class LogMessage(Options):
name = 'LogMessage'
# 消息内容本身的属性
messages: List[str] = []
end: str = '\n'
split: str = ' '
# 消息的属性
flush: bool = True
level: int = 20
2023-10-14 20:02:42 +08:00
log_time: float = None # time.time_ns()
2023-10-13 22:58:42 +08:00
logger_name: str = 'root'
logger_tag: Optional[str] = None
stack_trace: Optional[FrameType] = None
2023-10-13 23:04:32 +08:00
2023-10-14 15:36:43 +08:00
def init(self, **kwargs) -> bool:
if self.log_time is None:
self.log_time = time.time_ns()
return False
2023-10-13 23:04:32 +08:00
2023-10-24 00:02:24 +08:00
def format_message(self) -> str:
return self.split.join(self.messages) + self.end
def format_for_message(self) -> Dict[str, str]:
basic_info = self.option()
if self.logger_tag is None:
basic_info['logger_tag'] = ' '
basic_info['messages'] = self.format_message()
return basic_info
2023-10-14 20:02:42 +08:00
@property
def create_msec_3(self) -> int:
return int(self.log_time / 1000000) % 1000
2023-10-23 23:41:22 +08:00
FormattingMessage = Tuple[LogMessage, Dict[str, str]]