37 lines
1.1 KiB
Python
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
|