feat: 이벤트 로깅 시스템 추가 및 주요 컴포넌트 로깅 통합
This commit is contained in:
@@ -5,6 +5,7 @@ from googleapiclient.http import MediaFileUpload
|
||||
from google.oauth2.credentials import Credentials
|
||||
from google_auth_oauthlib.flow import InstalledAppFlow
|
||||
from google.auth.transport.requests import Request
|
||||
from event_logger import get_logger
|
||||
|
||||
class GoogleDriveUploader:
|
||||
def __init__(self, config_path='./config.json'):
|
||||
@@ -52,6 +53,7 @@ class GoogleDriveUploader:
|
||||
"""
|
||||
파일을 Google Drive에 업로드
|
||||
"""
|
||||
logger = get_logger()
|
||||
if self.service is None:
|
||||
raise RuntimeError('Google Drive API가 초기화되지 않았습니다. credentials.json과 folder_id를 설정하세요.')
|
||||
|
||||
@@ -71,11 +73,15 @@ class GoogleDriveUploader:
|
||||
media_body=media,
|
||||
fields='id'
|
||||
).execute()
|
||||
|
||||
print(f'파일 업로드 완료: {file_name} (ID: {file.get("id")})')
|
||||
return file.get('id')
|
||||
fid = file.get('id')
|
||||
print(f'파일 업로드 완료: {file_name} (ID: {fid})')
|
||||
if logger:
|
||||
logger.log_event("drive_upload", name=file_name, id=fid)
|
||||
return fid
|
||||
except Exception as e:
|
||||
print(f'업로드 실패: {e}')
|
||||
if logger:
|
||||
logger.log_event("drive_upload_error", name=file_name, error=str(e))
|
||||
return None
|
||||
|
||||
def upload_data_as_json(self, data, filename='collected_data.json'):
|
||||
@@ -83,6 +89,7 @@ class GoogleDriveUploader:
|
||||
데이터를 JSON 파일로 변환하여 업로드
|
||||
"""
|
||||
import tempfile
|
||||
logger = get_logger()
|
||||
|
||||
with tempfile.NamedTemporaryFile(mode='w', suffix='.json', delete=False) as f:
|
||||
json.dump(data, f, ensure_ascii=False, indent=2)
|
||||
@@ -90,9 +97,19 @@ class GoogleDriveUploader:
|
||||
|
||||
try:
|
||||
file_id = self.upload_file(temp_path, filename)
|
||||
logger = get_logger()
|
||||
if logger and logger.preview_saved_files:
|
||||
try:
|
||||
with open(temp_path, 'r', encoding='utf-8') as rf:
|
||||
content = rf.read(logger.preview_limit)
|
||||
logger.log_event("file_preview", name=filename, preview=content)
|
||||
except Exception:
|
||||
pass
|
||||
return file_id
|
||||
finally:
|
||||
os.unlink(temp_path)
|
||||
if logger:
|
||||
logger.log_event("tempfile_cleanup", path=temp_path)
|
||||
|
||||
def list_files(self):
|
||||
"""
|
||||
@@ -109,9 +126,15 @@ class GoogleDriveUploader:
|
||||
).execute()
|
||||
|
||||
items = results.get('files', [])
|
||||
logger = get_logger()
|
||||
if logger:
|
||||
logger.log_event("drive_list", count=len(items))
|
||||
return items
|
||||
except Exception as e:
|
||||
print(f'파일 목록 조회 실패: {e}')
|
||||
logger = get_logger()
|
||||
if logger:
|
||||
logger.log_event("drive_list_error", error=str(e))
|
||||
return []
|
||||
|
||||
class SimpleDriveSaver:
|
||||
@@ -132,9 +155,22 @@ class SimpleDriveSaver:
|
||||
with open(filepath, 'w', encoding='utf-8') as f:
|
||||
json.dump(data, f, ensure_ascii=False, indent=2)
|
||||
print(f'데이터 저장 완료: {filepath}')
|
||||
logger = get_logger()
|
||||
if logger:
|
||||
logger.log_event("file_saved", path=filepath, bytes=os.path.getsize(filepath))
|
||||
if logger.preview_saved_files:
|
||||
try:
|
||||
with open(filepath, 'r', encoding='utf-8') as rf:
|
||||
preview = rf.read(logger.preview_limit)
|
||||
logger.log_event("file_preview", path=filepath, preview=preview)
|
||||
except Exception:
|
||||
pass
|
||||
return filepath
|
||||
except Exception as e:
|
||||
print(f'저장 실패: {e}')
|
||||
logger = get_logger()
|
||||
if logger:
|
||||
logger.log_event("file_save_error", path=filepath, error=str(e))
|
||||
return None
|
||||
|
||||
def save_text_data(self, data, filename='collected_data.txt'):
|
||||
@@ -150,9 +186,15 @@ class SimpleDriveSaver:
|
||||
else:
|
||||
f.write(str(data))
|
||||
print(f'텍스트 데이터 저장 완료: {filepath}')
|
||||
logger = get_logger()
|
||||
if logger:
|
||||
logger.log_event("file_saved", path=filepath, bytes=os.path.getsize(filepath))
|
||||
return filepath
|
||||
except Exception as e:
|
||||
print(f'저장 실패: {e}')
|
||||
logger = get_logger()
|
||||
if logger:
|
||||
logger.log_event("file_save_error", path=filepath, error=str(e))
|
||||
return None
|
||||
|
||||
def save_to_drive_simple(data, filename='collected_data.json', mount_path='/content/drive/MyDrive/AI_Data'):
|
||||
|
||||
Reference in New Issue
Block a user