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

18 statements  

« prev     ^ index     » next       coverage.py v7.11.0, created at 2025-10-17 05:31 +0900

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

2from abc import ABC 

3from typing import Any, Generic, TypeVar 

4 

5from inheritance_calculator_core.utils.logger import get_logger 

6 

7 

8T = TypeVar('T') 

9 

10 

11class 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)