generated from amazon-archives/__template_MIT-0
-
Notifications
You must be signed in to change notification settings - Fork 38
Open
Labels
enhancementNew feature or requestNew feature or request
Milestone
Description
概要
console.log / console.error を Lambda Powertools Logger に置換し、ESLint no-console ルールを追加する。
背景
現在 webapp/src/ 内(generated/ 除く)に19箇所の console.* 呼び出しがある。CloudWatch Logs Insights での構造化クエリが困難であり、ログレベルの制御もできない。
変更内容
1. @aws-lambda-powertools/logger の導入
pnpm add @aws-lambda-powertools/loggerwebapp/src/lib/logger.ts を新規作成:
import { Logger } from "@aws-lambda-powertools/logger";
export const logger = new Logger({ serviceName: "webapp" });2. サーバーサイドの console.* を logger に置換
以下のファイルが対象:
| ファイル | 箇所数 |
|---|---|
src/lib/prisma.ts |
1 |
src/lib/safe-action.ts |
1 |
src/lib/events.ts |
2 |
src/lib/amplifyServerUtils.ts |
1 |
src/app/auth-callback/page.tsx |
2 |
src/app/api/cognito-token/route.ts |
1 |
src/jobs/migration-runner.ts |
3 |
src/jobs/async-job-runner.ts |
2 |
src/jobs/async-job/translate.ts |
2 |
3. クライアントサイドの console.* は削除またはコメントで抑制
Lambda Powertools Logger はサーバーサイド(Node.js ランタイム)専用のため、以下のファイルでは使用できない:
src/app/(root)/components/CreateTodoForm.tsx(use client)— デバッグログを削除src/hooks/use-event-bus.ts(クライアント hook)— デバッグログを削除、console.errorは// eslint-disable-next-line no-consoleで許可src/proxy.ts(middleware)—// eslint-disable-next-line no-consoleで許可
4. ESLint no-console ルールの追加
eslint.config.mjs に追加:
{
rules: {
"no-console": "error",
},
}検証方法
npx eslint .でconsole.*の使用がエラーになること(明示的に許可した箇所を除く)- Lambda 実行時に CloudWatch Logs に構造化 JSON 形式でログが出力されること
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request