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
« 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
5from inheritance_calculator_core.utils.logger import get_logger
8T = TypeVar('T')
11class BaseService(ABC, Generic[T]):
12 """サービスの基底クラス"""
14 def __init__(self) -> None:
15 """サービスを初期化"""
16 self.logger = get_logger(self.__class__.__name__)
18 def log_operation(self, operation: str, **kwargs: Any) -> None:
19 """
20 操作をログに記録
22 Args:
23 operation: 操作名
24 **kwargs: ログに含める追加情報
25 """
26 self.logger.info(f"{operation}: {kwargs}")
28 def log_error(self, error: Exception, context: str = "") -> None:
29 """
30 エラーをログに記録
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)
39 def log_info(self, message: str, **kwargs: Any) -> None:
40 """
41 情報をログに記録
43 Args:
44 message: 情報メッセージ
45 **kwargs: ログに含める追加情報
46 """
47 self.logger.info(f"{message}: {kwargs}" if kwargs else message)
49 def log_warning(self, message: str, **kwargs: Any) -> None:
50 """
51 警告をログに記録
53 Args:
54 message: 警告メッセージ
55 **kwargs: ログに含める追加情報
56 """
57 self.logger.warning(f"{message}: {kwargs}" if kwargs else message)
59 def log_debug(self, message: str, **kwargs: Any) -> None:
60 """
61 デバッグ情報をログに記録
63 Args:
64 message: デバッグメッセージ
65 **kwargs: ログに含める追加情報
66 """
67 self.logger.debug(f"{message}: {kwargs}" if kwargs else message)