バグ原因調査の手順を考える
ログを確認する
ログを確認するとかなり原因を絞り込める。
(エラーが起きていないか確認したり、想定されているアクセスが発生しているのかの確認など。)
なんかのバッチ処理とかの場合、
だいたい「~~処理開始」とかがログに書き込まれているのでそれを足がかりにしたり、
“Started POST “~~~" for 127.0.0.1 at 2019-04-04 17:19:42 +0900”
みたいなのを足がかりして確認し、どのあたりのコードが怪しいのかを確認する。
ログファイルは段落分けとかされてなくてすぐどこを見ているのかわからなくなるので、 grepなどをつかって見やすいように工夫する。
運用や調査でログを確認するときによく使うコマンド集 - Qiita
↓この辺が便利そうな予感
grep [string] -A N 該当する行のN行後も出力 grep [string] -B N 該当する行のN行前から出力 grep [string] -C N 該当する行の前後N行出力
railsのログの場合、lessで内容をみると"ESC[1m”とかが表示されて見にくかったが、なんか表示カラーリングのための情報らしくてless -R
で表示させるときれいに表示できた。
コードを確認する
原因が馴染みの無いコード部分の場合
初めて目にする部分であった場合などはそもそも何をやっている部分なのかわからなかったりする。
局所的にコード詳細を追っていっても迷子になってなかなか理解できないので、 全体像から始めて徐々に詳細を理解していくようにする。