「なんか動いてないんです」。
サポート窓口でも、AIへの相談でも、この一言から先に進めない。いつから止まっているのか、何をしたときに止まったのか、聞かれても答えられない・・・。
第10講のエラーは、向こうから報告してくれる親切な故障でした。この講で扱うのは、報告が来ない故障です。そのときに頼れるのが、機械が黙々と残している日誌・・・ログ(プログラムが動作のたびに残す記録)です。この講のゴールは、「なんか動いてない」を「昨夜2時の実行から失敗している」に変えられるようになることです。
ドライブレコーダーにたとえます。
ドラレコは、運転中ずっと録画しています。何事もない日は、誰も見返しません。価値が出るのは事故の日です。「ぶつかる直前、何が起きていたか」を、記憶ではなく記録で確かめられる。
ログもまったく同じです。プログラムは動くたびに「何時何分、何を始めた、何が終わった、何に失敗した」を書き残しています。正常な日は誰も読まない。でも止まった日、ログだけが目撃者です。
ここで、この講でいちばん大事な話をします。事故の映像を見て「異常だ」と分かるのは、普段の運転風景を知っているからです。ログも同じで、異常を見つける力の正体は、正常を知っていることなのです。
止まってから初めてログを開くと、どの行が普段どおりで、どの行が異変なのか、区別がつきません。全部が怪しく見えて、全部を疑うことになる。逆に、正常な日のログの"顔"を一度でも見ておけば、異変は違和感として浮かび上がります。いつもは10行で終わるのに、今日は3行で切れている。いつも最後にある「完了」の行が無い。それだけで、どの工程まで進んで、どこで倒れたかの見当がつく。毎日会う人の顔色と同じで、いつもの顔を知っているから、今日の異変に気づけるのです。
だからこの講の演習は、壊れる前の今日、正常なログを見ておくことです。
自動処理やアプリを動かしている人は、その実行ログを開いてください。置き場所が分からなければ、AIに「このプロジェクトのログはどこで見られるか」と聞けば案内してもらえます。
まだ自分の一枚しかない人は、ブラウザのConsole・・・第10講でエラーを見たあの場所が、"客席側のログ"です。自分の一枚を開いて、Consoleを見てください。
見るのは1つだけ。正常なとき、何が出るか(何も出ないか)。
自分の一枚なら、おそらく何も出ていない、静かな画面のはずです。それが平常の顔です。「正常=赤い文字が1つも無い、静かなConsole」。この顔を覚えておく。いつかページの様子がおかしい日に開いて、赤い行があれば、それが異変だと即座に言えます。
ログを持っている人は、正常な1回分を眺めて、「開始の行」「完了の行」「毎回だいたい何行か」の3点をメモしてください。
そのまま貼って使えます。
3つ目が、ログ活用の完成形です。正常と異常の2枚を並べて渡せると、AIの推理の精度は跳ね上がります。
ログに、パスワードや個人情報を出力すること。
ログは便利なので、慣れてくると「とりあえず全部記録しておこう」と思うようになります。そこで事故が起きます。動作確認のつもりで、利用者の入力内容を丸ごとログに出す。その中にパスワードやメールアドレスが混ざる。ログは長く残り、コピーされ、AIへの相談で貼り付けられ・・・気づけば、金庫に入れるべきものが日誌に書き写されて回覧されている状態になります。
ルールはこうです。ログに書いてよいのは「何が起きたか」まで。「誰の、どんな中身か」は書かない。そして、第10講でやった貼る前の10秒チェックは、エラー文だけでなくログにも適用です。誰かに見せる前に、伏せるべきものが混ざっていないか、ひと目通してください。