feat: ロガークラスとエラークラスを追加
This commit is contained in:
parent
e1acd610b0
commit
f5d6e6b525
@ -1,5 +1,21 @@
|
||||
"""
|
||||
Viewセキュリティオプション付与チェック用Lambda関数のエントリーポイント
|
||||
"""
|
||||
|
||||
from src.error.file_not_found_exception import FileNotFoundException
|
||||
from src.error.madaca_exception import MeDaCaException
|
||||
from src.logger.logger import MeDaCaLogger
|
||||
|
||||
|
||||
def handler(event, context):
|
||||
logger = MeDaCaLogger.get_logger()
|
||||
try:
|
||||
print('lambda handle')
|
||||
except Exception as e:
|
||||
print('exception')
|
||||
logger.info('lambda handle')
|
||||
raise FileNotFoundException('E-02-01', 'ファイル見つかりません')
|
||||
except MeDaCaException as e:
|
||||
logger.exception(f'exception: {e.error_id} {e}')
|
||||
|
||||
|
||||
# ローカル実行用
|
||||
if __name__ == '__main__':
|
||||
handler({}, {})
|
||||
|
||||
@ -0,0 +1,5 @@
|
||||
from .madaca_exception import MeDaCaException
|
||||
|
||||
|
||||
class FileNotFoundException(MeDaCaException):
|
||||
pass
|
||||
@ -0,0 +1,7 @@
|
||||
from abc import ABCMeta
|
||||
|
||||
|
||||
class MeDaCaException(Exception, metaclass=ABCMeta):
|
||||
def __init__(self, error_id: str, message) -> None:
|
||||
super().__init__(message)
|
||||
self.error_id = error_id
|
||||
36
lambda/check-view-secutiry-option/src/logger/logger.py
Normal file
36
lambda/check-view-secutiry-option/src/logger/logger.py
Normal file
@ -0,0 +1,36 @@
|
||||
import datetime
|
||||
import logging
|
||||
from zoneinfo import ZoneInfo
|
||||
|
||||
from ..system_vars.constants import (DEFAULT_TIMEZONE, LOG_DATE_FORMAT,
|
||||
LOG_FORMAT)
|
||||
from ..system_vars.environments import LOG_LEVEL
|
||||
|
||||
|
||||
class SingletonLogger:
|
||||
# インスタンス生成
|
||||
@staticmethod
|
||||
def __internal_new__() -> logging.Logger:
|
||||
# logger設定
|
||||
formatter = logging.Formatter(
|
||||
LOG_FORMAT,
|
||||
LOG_DATE_FORMAT
|
||||
)
|
||||
formatter.converter = lambda: datetime.datetime.now(ZoneInfo(DEFAULT_TIMEZONE)).timetuple()
|
||||
level = logging.getLevelName(LOG_LEVEL)
|
||||
|
||||
logging.basicConfig(level=level, format=LOG_FORMAT, datefmt=LOG_DATE_FORMAT)
|
||||
# logger.setLevel(level)
|
||||
logger = logging.getLogger()
|
||||
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
|
||||
@ -0,0 +1,3 @@
|
||||
LOG_FORMAT = '[%(levelname)s]\t%(asctime)s\t%(message)s\n'
|
||||
LOG_DATE_FORMAT = '%Y-%m-%d %H:%M:%S'
|
||||
DEFAULT_TIMEZONE = "Asia/Tokyo"
|
||||
@ -0,0 +1,3 @@
|
||||
import os
|
||||
|
||||
LOG_LEVEL = os.environ.get('LOG_LEVEL', 'INFO')
|
||||
Loading…
x
Reference in New Issue
Block a user