原文(日本語訳)
verboseトランスクリプト表示で空白行が表示されていた問題を修正しました。
原文(英語)
Fixed blank lines in verbose transcript view
概要
Claude Code 2.1.39では、verboseモード(詳細トランスクリプト表示)で不要な空白行が大量に挿入され、ログが読みにくくなっていた問題が修正されました。修正後は、適切な間隔で整理された読みやすいトランスクリプトが表示されるようになりました。
verboseモードとは
verboseモードは、Claude Codeの内部動作を詳細に表示するデバッグ機能です。APIリクエスト、ツール呼び出し、内部処理などの詳細なログを確認できます。
bash
# verboseモードの有効化
export CLAUDE_VERBOSE=1
claude
# または起動オプション
claude --verbose発生していた問題
修正前の表示
bash
# 大量の空白行が挿入される
[DEBUG] User prompt received
[DEBUG] Sending API request
[DEBUG] Response received
[DEBUG] Tool execution: Read
[DEBUG] Tool result: Success
[DEBUG] Generating response修正後の表示
bash
# 適切な間隔で表示
[DEBUG] User prompt received
[DEBUG] Sending API request
[DEBUG] Response received
[DEBUG] Tool execution: Read
[DEBUG] Tool result: Success
[DEBUG] Generating response実践例
デバッグセッションでの利用
bash
# 問題のトラブルシューティング
export CLAUDE_VERBOSE=1
claude
# "Read the configuration file and analyze its structure"
# 修正前(空白行で読みにくい):
# [2026-02-11T10:23:45.123Z] DEBUG: Starting session
#
#
# [2026-02-11T10:23:45.234Z] DEBUG: Loading configuration
#
#
#
# [2026-02-11T10:23:45.345Z] DEBUG: Initializing API client
#
#
# ...
# 修正後(コンパクトで読みやすい):
# [2026-02-11T10:23:45.123Z] DEBUG: Starting session
# [2026-02-11T10:23:45.234Z] DEBUG: Loading configuration
# [2026-02-11T10:23:45.345Z] DEBUG: Initializing API client
# [2026-02-11T10:23:45.456Z] DEBUG: API client ready
# [2026-02-11T10:23:45.567Z] DEBUG: Processing user promptAPI呼び出しのデバッグ
bash
export CLAUDE_VERBOSE=1
claude
# API通信の詳細を確認
# 修正後の出力:
[DEBUG] API Request:
Method: POST
Endpoint: /v1/messages
Model: claude-sonnet-4-5
Max tokens: 4096
[DEBUG] Request headers:
anthropic-version: 2024-01-01
content-type: application/json
[DEBUG] Request sent (request_id: req_abc123)
[DEBUG] Waiting for response...
[DEBUG] Response received (234ms)
[DEBUG] Response status: 200 OK
[DEBUG] Token usage: 150 input, 320 outputツール実行のトレース
bash
export CLAUDE_VERBOSE=1
claude
# "Search for all TypeScript files and analyze imports"
# 修正後の詳細ログ:
[DEBUG] Tool call: Glob
Pattern: **/*.ts
Path: /home/user/project
[DEBUG] Glob result: 45 files found
[DEBUG] Tool call: Read
File: src/index.ts
Lines: 1-350
[DEBUG] Read completed: 350 lines
[DEBUG] Tool call: Grep
Pattern: ^import.*from
Files: **/*.ts
[DEBUG] Grep result: 234 matches
[DEBUG] Analysis completeエラートレース
bash
export CLAUDE_VERBOSE=1
claude
# エラー発生時の詳細ログ
# 修正後:
[DEBUG] Processing prompt
[DEBUG] Executing tool: Write
File: /root/config.json
Size: 1234 bytes
[ERROR] Tool execution failed
Error: EACCES: permission denied
Code: EACCES
Path: /root/config.json
[DEBUG] Error handler invoked
[DEBUG] Preparing error response
[DEBUG] Sending error message to userログ出力の最適化
タイムスタンプの整列
bash
# 修正前(タイムスタンプと内容の間に空白行):
[2026-02-11T10:23:45.123Z]
DEBUG: Message
# 修正後(同じ行に表示):
[2026-02-11T10:23:45.123Z] DEBUG: Message複数行メッセージの整形
bash
# 修正前:
[DEBUG] API Response:
{
"id": "msg_123",
"content": "...",
"model": "claude-sonnet-4-5"
}
# 修正後:
[DEBUG] API Response:
{
"id": "msg_123",
"content": "...",
"model": "claude-sonnet-4-5"
}スタックトレースの表示
bash
# 修正前(各行の間に空白):
[ERROR] Stack trace:
at Function.parse
at APIClient.request
at Session.sendPrompt
# 修正後(連続した行で表示):
[ERROR] Stack trace:
at Function.parse (json.js:23)
at APIClient.request (api.js:145)
at Session.sendPrompt (session.js:67)ログファイルへの出力
ファイル出力時の改善
bash
# verboseログをファイルに保存
export CLAUDE_VERBOSE=1
claude 2>&1 | tee claude-debug.log
# 修正前のファイルサイズ:
# -rw-r--r-- 1 user user 15M Feb 11 10:23 claude-debug.log
# (大量の空白行で肥大化)
# 修正後のファイルサイズ:
# -rw-r--r-- 1 user user 3.2M Feb 11 10:23 claude-debug.log
# (約80%のサイズ削減)ログのフィルタリング
bash
# 特定のイベントのみ抽出
# 修正前(空白行が混在して見づらい):
cat claude-debug.log | grep "API"
# 修正後(連続したログで確認しやすい):
cat claude-debug.log | grep "API"
# [10:23:45.123] API Request: POST /v1/messages
# [10:23:45.234] API Response: 200 OK
# [10:23:45.345] API Token usage: 150/320パフォーマンスへの影響
出力速度の向上
bash
# 大量のログ出力時のパフォーマンス
# 修正前:
# - 空白行の処理でオーバーヘッド
# - ターミナルレンダリングが遅延
# - スクロールがカクつく
# 修正後:
# - 不要な出力を削減
# - レンダリング速度向上
# - スムーズなスクロールメモリ使用量の削減
bash
# 長時間セッションのメモリ使用量
# 修正前:
# トランスクリプトバッファ: 450MB(10,000行、大量の空白含む)
# 修正後:
# トランスクリプトバッファ: 95MB(10,000行、空白削減)
# → 約79%のメモリ削減カスタマイズ設定
ログフォーマットの設定
json
// ~/.claude/settings.json
{
"verbose": {
"enabled": true,
"format": "compact", // "compact" or "detailed"
"timestamp": true,
"color": true,
"blank_lines": "minimal" // "none", "minimal", "standard"
}
}ログレベルの調整
bash
# ログレベルを指定
export CLAUDE_LOG_LEVEL=debug # debug, info, warn, error
claude --verbose
# 特定のカテゴリのみ表示
export CLAUDE_VERBOSE_FILTER="api,tools"
claude --verbose注意点
- ログのサイズ: verboseモードでは大量のログが出力されます。ディスク容量に注意してください
- パフォーマンス: ログ出力はわずかにパフォーマンスに影響します。本番環境では無効化を推奨
- 機密情報: verboseログにはAPIキーやファイル内容が含まれる可能性があります。共有時は注意してください
- ターミナルのスクロールバッファ: 大量のログが出力される場合、ターミナルのスクロールバッファ設定を確認してください
トラブルシューティング
まだ空白行が表示される場合
bash
# Claude Codeのバージョンを確認
claude --version
# 2.1.39以降であることを確認
# 設定をリセット
claude config reset
# キャッシュをクリア
rm -rf ~/.claude/cacheログが表示されない場合
bash
# verboseモードが有効か確認
echo $CLAUDE_VERBOSE
# 出力: 1
# 標準エラー出力も表示
claude --verbose 2>&1ログのフォーマットを変更
bash
# JSONフォーマットで出力
export CLAUDE_VERBOSE_FORMAT=json
claude --verbose
# 出力例:
# {"timestamp":"2026-02-11T10:23:45.123Z","level":"debug","message":"API Request sent"}ベストプラクティス
効果的なデバッグ
bash
# 必要な情報のみフィルタリング
export CLAUDE_VERBOSE=1
claude 2>&1 | grep -E "ERROR|WARN"
# タイムスタンプで範囲を絞る
claude 2>&1 | grep "10:23:"ログのアーカイブ
bash
# 日付付きでログを保存
export CLAUDE_VERBOSE=1
LOG_FILE="claude-debug-$(date +%Y%m%d-%H%M%S).log"
claude 2>&1 | tee "$LOG_FILE"CI/CD環境での利用
yaml
# GitHub Actions での使用例
- name: Debug Claude Code
run: |
export CLAUDE_VERBOSE=1
export CLAUDE_VERBOSE_FORMAT=json
claude --non-interactive "analyze codebase" > debug.log 2>&1
- name: Upload debug logs
if: failure()
uses: actions/upload-artifact@v3
with:
name: claude-debug-logs
path: debug.log