37 lines
1.1 KiB
Python

import datetime
import logging
from zoneinfo import ZoneInfo
from constants import DEFAULT_TIMEZONE, LOG_DATE_FORMAT, LOG_FORMAT
from environments import LOG_LEVEL
class SingletonLogger:
# インスタンス生成
@staticmethod
def __internal_new__() -> logging.Logger:
# logger設定
logger = logging.getLogger()
formatter = logging.Formatter(
LOG_FORMAT,
LOG_DATE_FORMAT
)
formatter.converter = lambda: datetime.datetime.now(ZoneInfo(DEFAULT_TIMEZONE)).timetuple()
for handler in logger.handlers:
handler.setFormatter(formatter)
level = logging.getLevelName(LOG_LEVEL)
print(level)
logger.setLevel(level)
return logger
class MeDaCaLogger:
__unique_instance: logging.Logger = None
@staticmethod
def get_logger():
# インスタンス未生成の場合、唯一のインスタンスを生成する
if not MeDaCaLogger.__unique_instance:
MeDaCaLogger.__unique_instance = SingletonLogger.__internal_new__()
return MeDaCaLogger.__unique_instance