diff --git a/README.md b/README.md index 54506f0..9db07ae 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ A python lib came from [Difficult Rocket](https://github.com/shenjackyuanjie/Dif ## Information/信息 -- Version / 版本: 0.3.7 +- Version / 版本: 0.3.8 - Author / 作者: shenjackyuanjie <3695888@qq.com> [shenjackyuanjie](https://github.com/shenjackyuanjie) diff --git a/docs/change_logs/0-3.md b/docs/change_logs/0-3.md index a3dd666..ba7db28 100644 --- a/docs/change_logs/0-3.md +++ b/docs/change_logs/0-3.md @@ -1,5 +1,10 @@ # lndl 0.3 +## 0.3.8 + +- 为 `logger` 添加了 `default_tag` 属性 + - 详情请查看 `0.4` 文档 + ## 0.3.7 - lndl-nuitka 现在不会再输出那一堆 debug 信息了 diff --git a/docs/change_logs/0-4.md b/docs/change_logs/0-4.md index a154684..9a4616b 100644 --- a/docs/change_logs/0-4.md +++ b/docs/change_logs/0-4.md @@ -12,6 +12,17 @@ - 添加了 `get_logger_from_old` - 用于从现有 logger 中获取一个新的 logger - 现在 `info` 级别的默认颜色更白了 (255, 255, 255) +- `Logger` + - 添加了 `default_tag` 属性 (已经在 `0.3.8` 中添加) + - 用于设置默认的 tag + - 默认为 `None` (无默认 tag) + - 可以通过 `logger.tag = "tag"` 来设置 + - 或者 `logger.set_tag("tag")` 来设置 + - 可以链式调用 + - 类似 + - `self.logger = config.get_logger("root").set_tag("tag")` + - 也可以通过 `logger.tag = None` 来取消默认 tag + - 或者 `logger.clear_tag()` 来清除默认 tag ## Nuitka Compiler Helper diff --git a/src/lib_not_dr/__init__.py b/src/lib_not_dr/__init__.py index c52f73e..307163d 100644 --- a/src/lib_not_dr/__init__.py +++ b/src/lib_not_dr/__init__.py @@ -9,7 +9,7 @@ from typing import TYPE_CHECKING if TYPE_CHECKING: from lib_not_dr import loggers, nuitka, types, command -_version_ = "0.3.7" +_version_ = "0.3.8" # fmt: off __all__ = [ diff --git a/src/lib_not_dr/loggers/logger.py b/src/lib_not_dr/loggers/logger.py index b940f39..9c92994 100644 --- a/src/lib_not_dr/loggers/logger.py +++ b/src/lib_not_dr/loggers/logger.py @@ -21,6 +21,7 @@ class Logger(Options): outputs: List[BaseOutputStream] = [StdioOutputStream()] logger_name: str = "root" + default_tag: Optional[str] = None enable: bool = True level: int = 20 # info @@ -37,6 +38,7 @@ class Logger(Options): enable=self.enable, level=self.level, outputs=self.outputs.copy(), + default_tag=self.default_tag, ) def log_for(self, level: int) -> bool: @@ -54,29 +56,54 @@ class Logger(Options): def add_output(self, output: BaseOutputStream) -> None: """ Add an output to the list of outputs. - - Args: - output (BaseOutputStream): The output to be added. - - Returns: - None + :param output: + :return: """ self.outputs.append(output) self.level = min(self.level, output.level) def remove_output(self, output: BaseOutputStream) -> None: """ - Removes the specified output from the list of outputs. - - Args: - output (BaseOutputStream): The output to be removed. - - Returns: - None + Remove an output from the list of outputs. + :param output: BaseOutputStream + :return: """ self.outputs.remove(output) self.level = max(self.level, *[output.level for output in self.outputs]) + @property + def tag(self): + """ + Get the default tag. + :return: + """ + return self.default_tag + + @tag.setter + def tag(self, tag: str) -> None: + """ + Set the default tag. + :param tag: str + :return: None + """ + self.default_tag = tag + + def set_tag(self, tag: str) -> "Logger": + """ + Set the default tag. + :param tag: str + :return: None + """ + self.default_tag = tag + return self + + def clear_tag(self) -> None: + """ + Clear the default tag. + :return: + """ + self.default_tag = None + @property def global_level(self) -> int: """ @@ -131,6 +158,9 @@ class Logger(Options): stack_trace = up_stack else: stack_trace = stack + # 处理标签 + if tag is None and self.default_tag is not None: + tag = self.default_tag message = LogMessage( messages=messages, # type: ignore