| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- import time
- from .handler import handler
- from .levels import levels
- class logger:
- def __init__(self) -> None:
- self.__handlers = set()
- def _get_handlers(self) -> tuple:
- return tuple(self.__handlers)
- def _get_message(self, level: levels, *args, **kwargs) -> str:
- if len(args) < 1:
- raise RuntimeError("Message or message format is not specified.")
- return ( \
- self.__level_name(level) + " " + \
- self.time_stamp + " " + \
- self.__formater(*args, **kwargs) \
- )
- @property
- def time_stamp(self) -> str:
- now = time.localtime()
- formated = time.strftime("%Y-%m-%d %H:%M:%S")
-
- return formated
- def __level_name(self, level: levels) -> str:
- name = ""
- if level == levels.info:
- name = "info"
- if level == levels.warning:
- name = "warning"
- if level == levels.error:
- name = "error"
- if level == levels.critical:
- name = "CRITICAL"
- return ("[" + name + "]")
- def __formater(self, *args, **kwargs) -> str:
- base = args[0]
- args = args[1:]
- if len(args) == 0 and len(kwargs) == 0:
- return base
-
- return base.format(*args, **kwargs)
- def use_handler(self, target: handler) -> None:
- self.__handlers.add(target)
|