# デバッグTips 効率的なデバッグのためのヒントとコツを記載します。 ## ログの活用 効果的なログの使い方について記載します。 ### ログレベルの設定 ```python import logging # ログレベルの設定 logging.basicConfig( level=logging.DEBUG, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' ) logger = logging.getLogger(__name__) # 使用例 logger.debug("デバッグ情報") logger.info("情報") logger.warning("警告") logger.error("エラー") logger.critical("重大なエラー") ``` ### 構造化ログ ```javascript // JavaScript での構造化ログ例 const log = { timestamp: new Date().toISOString(), level: 'info', message: 'User login', userId: 12345, ip: '192.168.1.1' }; console.log(JSON.stringify(log)); ``` ## デバッガーの活用 各言語でのデバッガーの使い方について記載します。 ### Node.js ```javascript // デバッガーの設定 debugger; // ブレークポイント // VS Code での起動設定 (.vscode/launch.json) { "type": "node", "request": "launch", "name": "Debug Program", "program": "${workspaceFolder}/index.js" } ``` ### Python ```python import pdb # ブレークポイントの設定 pdb.set_trace() # Python 3.7以降 breakpoint() ``` ## パフォーマンスデバッグ パフォーマンス問題のデバッグ方法について記載します。 ### プロファイリング ```python import cProfile import pstats # プロファイリングの実行 cProfile.run('your_function()', 'profile_output') # 結果の表示 stats = pstats.Stats('profile_output') stats.sort_stats('cumulative').print_stats(10) ``` ### メモリ使用量の監視 ```python import psutil import os # メモリ使用量の確認 process = psutil.Process(os.getpid()) memory_info = process.memory_info() print(f"Memory usage: {memory_info.rss / 1024 / 1024:.2f} MB") ``` ## リモートデバッグ リモート環境でのデバッグ方法について記載します。 ### SSH ポートフォワーディング ```bash # ローカルポートをリモートサーバーに転送 ssh -L 5678:localhost:5678 user@remote-server # リモートデバッガーの起動 python -m debugpy --listen 0.0.0.0:5678 --wait-for-client app.py ``` ## エラー追跡 エラーの追跡と分析方法について記載します。 ### スタックトレースの読み方 エラーログから問題を特定する方法について記載します。 ### エラー監視 ```javascript // JavaScript でのエラーハンドリング window.addEventListener('error', (event) => { console.error('Global error:', { message: event.message, filename: event.filename, lineno: event.lineno, colno: event.colno, error: event.error }); }); ``` ## 一般的な問題と解決策 よくある問題とその解決方法について記載します。 ### 無限ループの検出 無限ループを検出し、対処する方法について記載します。 ### メモリリークの特定 メモリリークを特定し、修正する方法について記載します。 ### データベース接続問題 データベース接続の問題をデバッグする方法について記載します。 ## デバッグツール 便利なデバッグツールについて紹介します。 - **Chrome DevTools**: ブラウザでのデバッグ - **Postman**: API のテスト - **DB Browser**: データベースの確認 - **Log viewers**: ログの解析