Coverage for src/inheritance_calculator_core/services/base.py: 0%

1"""サービス層の基底クラス"""

2 from abc import ABC

3 from typing import Any, Generic, TypeVar

4

5 from inheritance_calculator_core.utils.logger import get_logger

6

7

8 T = TypeVar('T')

9

10

11 class BaseService(ABC, Generic[T]):

12 """サービスの基底クラス"""

13

14 def __init__(self) -> None:

15 """サービスを初期化"""

16 self.logger = get_logger(self.__class__.__name__)

17

18 def log_operation(self, operation: str, **kwargs: Any) -> None:

19 """

20 操作をログに記録

21

22 Args:

23 operation: 操作名

24 **kwargs: ログに含める追加情報

25 """

26 self.logger.info(f"{operation}: {kwargs}")

27

28 def log_error(self, error: Exception, context: str = "") -> None:

29 """

30 エラーをログに記録

31

32 Args:

33 error: 発生した例外

34 context: エラーのコンテキスト情報

35 """

36 error_msg = f"Error in {context}: {error}" if context else f"Error: {error}"

37 self.logger.error(error_msg, exc_info=True)

38

39 def log_info(self, message: str, **kwargs: Any) -> None:

40 """

41 情報をログに記録

42

43 Args:

44 message: 情報メッセージ

45 **kwargs: ログに含める追加情報

46 """

47 self.logger.info(f"{message}: {kwargs}" if kwargs else message)

48

49 def log_warning(self, message: str, **kwargs: Any) -> None:

50 """

51 警告をログに記録

52

53 Args:

54 message: 警告メッセージ

55 **kwargs: ログに含める追加情報

56 """

57 self.logger.warning(f"{message}: {kwargs}" if kwargs else message)

58

59 def log_debug(self, message: str, **kwargs: Any) -> None:

60 """

61 デバッグ情報をログに記録

62

63 Args:

64 message: デバッグメッセージ

65 **kwargs: ログに含める追加情報

66 """

67 self.logger.debug(f"{message}: {kwargs}" if kwargs else message)