第72回 log4perl
ログ出力のためのモジュール
残念な事にうまく説明する事ができないのだが、
log4perlというログ出力にとても便利なものがある。
設定方法などは、ここ↓に、簡単にであるが書いてある。
ビンゴ中西のほげほげlog4perl
今回は、簡単な説明図を載せることにする。
なお、リンク先は、2つのアペンダを使っているが、
下の図は、簡単にするため、1つのアペンダだけを用いたときの図になっている。
例外とログとテスト
うまくまだ自分でまとめられないのだが、
例外は「業務エラー」と「システムエラー」に別けられることができる。
さらに、そのそれぞれのエラーに対して、「ユーザ向けメッセージ」と「運用時向けメッセージ」と「デバッグ時向けメッセージ」が必要になる。
なお、「運用時向けメッセージ」と「デバッグ向けメッセージ」は同じになる場合もあると考えられる。
テストにおいては、「正常系」と「異常系」を考え、ちゃんと例外を処理できている(ハンドリングできている)つまり、「ユーザ向けメッセージ」と「運用時向けメッセージ」と「デバッグ時向けメッセージ」がうまく生成されていることを確認する必要がある(もちろんこれ以外にも確認する内容はある)。
このように、
例外とログとテストは
密接に関係しているのだが、今の私には体系だって説明できないし、
説明されている本やページも見た事がない。
どなたかご存知だったら本当に教えてほしい。
メッセージのパターンを如何に細かくするのか(「SQLに失敗しました」だけか、「INSERTに失敗しました」「UPDATEに失敗しました」と細かく出すのか ※これはユーザ向けメッセージなのでログとは少し違ってくるのだが...)。
などなど考えることも、とりかかる案件によりさまざまに考える必要があるだろう。
またエラーとは関係なく、関数に入るたびにログに出力する。関数から出るたびにログに出力する。
といったことをして、いったい何時にどの処理が走っていたのかをログっておくといったことも考えないといけないし、このあたりは奥深いというか考えないといけないことが多い。