34 lines
993 B
Python
34 lines
993 B
Python
"""
|
|
HealthSync AI 기본 서비스 클래스
|
|
"""
|
|
from abc import ABC
|
|
from app.config.settings import settings
|
|
import logging
|
|
import time
|
|
from datetime import datetime
|
|
|
|
class BaseService(ABC):
|
|
"""기본 서비스 추상 클래스"""
|
|
|
|
def __init__(self):
|
|
self.settings = settings
|
|
self.logger = logging.getLogger(self.__class__.__name__)
|
|
self._start_time = time.time()
|
|
|
|
def get_uptime(self) -> float:
|
|
"""서비스 가동 시간 반환 (초)"""
|
|
return time.time() - self._start_time
|
|
|
|
def log_operation(self, operation: str, user_id: int = None, **kwargs):
|
|
"""작업 로그 기록"""
|
|
log_data = {
|
|
"operation": operation,
|
|
"timestamp": datetime.now().isoformat(),
|
|
"service": self.__class__.__name__
|
|
}
|
|
if user_id:
|
|
log_data["user_id"] = user_id
|
|
log_data.update(kwargs)
|
|
|
|
self.logger.info(f"Operation: {operation}", extra=log_data)
|