ログの見方 — エラーの原因を探す
プログラムが終了したりおかしな動作をしたりするとき、原因はほぼ必ずログに書かれています。実行方法によってログを見る場所が異なるので、自分のプログラムをどのように実行したかに合わせて確認してください。
ログを読むコツ
- 一番下から見ます。最新の記録が下にあります。
Error、Exception、Traceback、failed、deniedなどの単語を探します。- エラーが複数行ある場合は、最初に出たエラーが本当の原因であることが多いです。
- エラーの文をそのままコピーして検索すると、たいてい解決方法が見つかります。
pm2で実行したプログラム (Node.jsのボット・アプリ)
pm2 logs my-bot # リアルタイムのログ(Ctrl + Cで終了)
pm2 logs my-bot --lines 200 # 直近200行
pm2 logs my-bot --err # エラーのみ
systemdで実行したプログラム (Pythonのボット・アプリなど)
journalctl -u my-bot -f # リアルタイムのログ
journalctl -u my-bot -n 100 --no-pager # 直近100行
journalctl -u my-bot --since "1 hour ago" # 直近1時間
sudo systemctl status my-bot # 実行状態と最後のログ数行
Dockerコンテナ
docker ps -a # コンテナの一覧(停止中のものも含む、STATUSを確認)
docker logs --tail 100 name # 直近100行
docker logs -f name # リアルタイムのログ
screen・tmuxの中で実行したプログラム
プログラムが画面に直接出力するので、ウィンドウに再び入って確認します。(screen -r name、tmux attach -t name)マインクラフトサーバーは、サーバーフォルダーのlogs/latest.logにも記録されます。
tail -n 100 ~/minecraft/logs/latest.log
Nginx (Webサイト)
sudo tail -n 50 /var/log/nginx/error.log # エラー(502、権限の問題など)
sudo tail -f /var/log/nginx/access.log # リアルタイムのアクセス記録
システム全体
journalctl -p err -b --no-pager | tail -n 50 # 今回の起動以降のエラー
sudo dmesg | grep -i "out of memory" # メモリ不足で強制終了された記録
journalctl --list-boots | tail -n 5 # 最近の再起動の記録
メモリ不足の記録がある場合は、メモリが不足しているときを参考にしてください。
Windowsサーバー
- 自分で実行したプログラムは、コンソールウィンドウに出力される内容を確認します。ウィンドウがすぐに閉じて見られない場合は、
.batファイルの最後の行にpauseを入れてください。 - システムの記録は、スタートメニュー → イベント ビューアー → Windows ログ → アプリケーション / システムで確認できます。
お問い合わせの際は
技術サポートにお問い合わせいただく際に、ログのエラー部分もあわせて送っていただくと、はるかに早くお手伝いできます。ただし、ログにトークン・パスワードが記録されている場合は削除してから送ってください。