diff --git a/lib_not_dr/logger/formatter.py b/lib_not_dr/logger/formatter.py index 34c9dc4..58c365c 100644 --- a/lib_not_dr/logger/formatter.py +++ b/lib_not_dr/logger/formatter.py @@ -25,12 +25,17 @@ class BaseFormatter(Options): @classmethod def info(cls) -> str: - cache = "## Base Formatter\n" - cache += BaseFormatter._info() - cache += f"## {cls.name}\n" - cache += cls._info() + infos = {BaseFormatter.name: BaseFormatter._info()} + # cache = "## Base Formatter\n" + # cache += BaseFormatter._info() + # cache += f"## {cls.name}\n" + # cache += cls._info() + cache = '' for formatter in cls.sub_formatter: - cache += formatter.info() + infos[formatter.name] = formatter._info() + for name, info in infos.items(): + cache += f"## {name}\n" + cache += info return cache @classmethod @@ -149,9 +154,23 @@ class LevelFormatter(BaseFormatter): return message +class StdFormatter(BaseFormatter): + name = 'StdFormatter' + + sub_formatter = [TimeFormatter(), LevelFormatter()] + + @classmethod + def _info(cls) -> str: + return '' + + + if __name__ == '__main__': print(TimeFormatter.info()) print(TimeFormatter().format_message(LogMessage(messages=['Hello World!']))) print(LevelFormatter.info()) print(LevelFormatter().format_message(LogMessage(messages=['Hello World!'], level=10))) + + print(StdFormatter.info()) + print(StdFormatter().format_message(LogMessage(messages=['Hello World!'], level=10))) diff --git a/test/logger/formatter.py b/test/logger/formatter.py index fe10ed9..eae65ed 100644 --- a/test/logger/formatter.py +++ b/test/logger/formatter.py @@ -7,6 +7,7 @@ import unittest from lib_not_dr.logger.formatter import BaseFormatter, TimeFormatter, LevelFormatter +from lib_not_dr.logger.structers import LogMessage class FormatterTest(unittest.TestCase): @@ -22,3 +23,7 @@ class FormatterTest(unittest.TestCase): def test_level_formatter(self): formatter = LevelFormatter() formatter.info() + + def test_std_formatter(self): + formatter = BaseFormatter() + formatter.info()