Skip to content

4.5. ロギング

4.5.1. ロギングフレームワーク

  • SLF4J + Logback を使用します。(Spring Boot 標準提供)
  • System.out.println() をロギング目的で使用しません。

4.5.2. ログレベルポリシー

レベル使用基準
ERROR即時対応が必要なシステム障害
WARN潜在的な問題、異常だがサービス運用は可能
INFO主要なビジネスイベント、アプリケーション状態の変更
DEBUG開発中のデバッグ情報(プロダクションでは無効化)
TRACE詳細なフロー追跡(プロダクションでは無効化)

4.5.3. ログ記述規則

  • ロガーはクラスごとに宣言します。
java
private static final Logger log = LoggerFactory.getLogger(UserService.class);
  • または Lombok @Slf4j アノテーションを使用します。
  • ログメッセージにはパラメータバインディングを使用します。
java
// 悪い例
log.info("ユーザー作成: " + userId);

// 良い例
log.info("ユーザー作成: userId={}", userId);
  • 例外ロギング時にはスタックトレースを含めます。
java
log.error("ユーザー検索失敗: userId={}", userId, exception);

4.5.4. プロダクションログフォーマット

xml
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>

TIENIPIA QUALIFIED STANDARD