refactor(logging): replace console.error in api-response with logger

This commit is contained in:
SpecialX
2026-07-07 12:06:36 +08:00
parent 2236eb36e7
commit a75fdcd60d

View File

@@ -18,8 +18,11 @@ import {
NotFoundError,
ValidationError,
} from "@/shared/lib/action-utils"
import { createModuleLogger } from "@/shared/lib/logger"
import type { ActionState } from "@/shared/types/action-state"
const log = createModuleLogger("api")
/**
* 标准 API 响应体形状,与 `ActionState<T>` 对齐。
*/
@@ -143,13 +146,13 @@ export function apiFromAction<T>(
* - BusinessError / NotFoundError / ValidationError → 对应状态码
* - 其他 Error → 500 + 通用消息(不泄露内部细节)
*
* 服务端日志通过 `console.error` 输出(仅未预期错误,已知业务错误不记录)。
* 服务端日志通过 `logger.error` 输出(仅未预期错误,已知业务错误不记录)。
*/
export function handleApiError(
error: unknown,
init?: { headers?: HeadersInit }
): NextResponse {
// 已知业务错误:消息可安全暴露,无需 console.error
// 已知业务错误:消息可安全暴露,无需 log.error
if (error instanceof PermissionDeniedError || error instanceof BusinessError) {
return apiError(
error instanceof PermissionDeniedError ? error.message : error.message,
@@ -161,9 +164,9 @@ export function handleApiError(
// 未预期错误:记录服务端日志,不暴露细节
if (error instanceof Error) {
console.error("[ApiError]", error.name, error.message, error.stack)
log.error({ err: error }, "API request failed")
} else {
console.error("[ApiError] Unknown error:", error)
log.error({ err: error }, "Unknown API error")
}
return apiError("请求失败,请稍后重试", 500, "unexpected", init)
}