fix(#781): 替换print为logging,统一日志输出规范
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 8s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 37s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m3s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m6s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 28s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 3m12s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 9s
AI Code Review / AI Code Review (pull_request) Successful in 3m3s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 3m42s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m10s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 8m47s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 2m40s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m39s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 48m8s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 42s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 1309h38m2s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 1309h38m53s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 1309h38m54s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 1309h38m56s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 1309h44m33s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 1309h44m40s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 1309h44m43s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 1309h44m45s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 1310h6m15s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 1310h6m19s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 1310h11m21s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 1310h17m4s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 1310h38m42s

- redis/session_store.py: 8处print → logger.warning
- auth/password_reset_use_case.py: 2处print → logger.warning/error
- auth/register_user_use_case.py: 2处print → logger.warning/error
- 异常捕获处加exc_info=True保留完整栈信息
- 3个文件,+21/-12
This commit is contained in:
CI Bot
2026-07-24 01:08:02 +08:00
parent f21d981585
commit 3fbb758da3
3 changed files with 21 additions and 12 deletions
+11 -8
View File
@@ -4,6 +4,7 @@ Redis Session 存储
"""
import json
import logging
from datetime import datetime, timedelta, timezone
from typing import Optional
@@ -12,6 +13,8 @@ from redis import Redis
from packages.domain.auth.session_store import SessionStorePort
logger = logging.getLogger(__name__)
class RedisConfig:
"""Redis 配置"""
@@ -147,7 +150,7 @@ class SessionStore(SessionStorePort):
return True
except Exception as e:
print(f"Failed to save session: {e}")
logger.warning(f"Redis session save failed: {e}")
return False
def get_session(self, session_id: str) -> Optional[dict]:
@@ -168,7 +171,7 @@ class SessionStore(SessionStorePort):
return json.loads(data)
return None
except Exception as e:
print(f"Failed to get session: {e}")
logger.warning(f"Redis session get failed: {e}")
return None
def get_session_by_refresh_token(self, refresh_token: str) -> Optional[dict]:
@@ -192,7 +195,7 @@ class SessionStore(SessionStorePort):
# 再获取完整的 session 数据
return self.get_session(session_id)
except Exception as e:
print(f"Failed to get session by refresh_token: {e}")
logger.warning(f"Redis session get by refresh failed: {e}")
return None
def get_refresh_token(self, session_id: str) -> Optional[str]:
@@ -209,7 +212,7 @@ class SessionStore(SessionStorePort):
refresh_token_key = self._refresh_token_key(session_id)
return self.redis.get(refresh_token_key)
except Exception as e:
print(f"Failed to get refresh_token: {e}")
logger.warning(f"Redis refresh token get failed: {e}")
return None
def update_last_active(self, session_id: str) -> bool:
@@ -238,7 +241,7 @@ class SessionStore(SessionStorePort):
return False
except Exception as e:
print(f"Failed to update last active: {e}")
logger.warning(f"Redis session update active failed: {e}")
return False
def delete_session(self, session_id: str) -> bool:
@@ -278,7 +281,7 @@ class SessionStore(SessionStorePort):
return True
except Exception as e:
print(f"Failed to delete session: {e}")
logger.warning(f"Redis session delete failed: {e}")
return False
def get_user_sessions(self, user_id: str) -> list[dict]:
@@ -303,7 +306,7 @@ class SessionStore(SessionStorePort):
return sessions
except Exception as e:
print(f"Failed to get user sessions: {e}")
logger.warning(f"Redis user sessions list failed: {e}")
return []
def delete_all_user_sessions(self, user_id: str) -> int:
@@ -330,7 +333,7 @@ class SessionStore(SessionStorePort):
return count
except Exception as e:
print(f"Failed to delete all user sessions: {e}")
logger.warning(f"Redis user sessions delete failed: {e}")
return 0
def session_exists(self, session_id: str) -> bool:
+5 -2
View File
@@ -2,6 +2,7 @@
密码重置 Use Case
"""
import logging
import secrets
from datetime import datetime, timedelta, timezone
from typing import Optional
@@ -9,6 +10,8 @@ from typing import Optional
from packages.adapters.smtp import get_email_service
from packages.application.auth.password_hasher import password_hasher, password_validator
logger = logging.getLogger(__name__)
class RequestPasswordResetRequest:
"""请求密码重置"""
@@ -82,10 +85,10 @@ class RequestPasswordResetUseCase:
)
if not success:
print(f"Failed to send password reset email: {error}")
logger.warning(f"Password reset email failed: {error}")
# 不返回错误,避免暴露用户存在性
except Exception as e:
print(f"Email service error: {e}")
logger.error(f"Email service error: {e}", exc_info=True)
return True, None
+5 -2
View File
@@ -2,6 +2,7 @@
用户注册 Use Case
"""
import logging
import secrets
from datetime import datetime, timezone
from typing import Optional
@@ -11,6 +12,8 @@ from packages.adapters.smtp import get_email_service
from packages.application.auth.password_hasher import password_hasher, password_validator
from packages.domain.entities import User
logger = logging.getLogger(__name__)
class RegisterUserRequest:
"""注册请求"""
@@ -136,9 +139,9 @@ class RegisterUserUseCase:
email_sent = success
if not success:
print(f"Failed to send verification email: {error}")
logger.warning(f"Verification email failed: {error}")
except Exception as e:
print(f"Email service error: {e}")
logger.error(f"Email service error: {e}", exc_info=True)
# 10. 返回响应(即使邮件发送失败,用户也已创建)
return (