昨今のシステムでログ取りを要件としていますよね?の4回目
ログというのは非常に厄介で、前提で挙げたような構成の場合、Webサーバは2台あるし、DB、帳票と様々なところを経由して画面は表示されますし、WebサーバAとBに同時にアクセスして、HTML情報とjs情報を取得するなんてことになります。
同時にアクセスされた場合に、各々のWebサーバでログを記載していると、実際の結果はAとBとマージしないとわからないことになります。
時間も厄介な要素です。サーバ群をドメイン環境に組んでいる場合にはある程度あちらのサーバも、こちらのサーバも同じ時間といえるのですが、ドメインを組んでいない場合に10分とかずれていたりしたりします。
この場合問題が発生した状況を時系列に並び替えようと思っても、時系列に並べられないという問題があります。
次にテキストファイルであるという問題点があります。
大多数のログは人がみてわかるようにとテキストファイルで書かれています。
コマンドシェルVSパワーシェルとおなじく、ただのテキストファイルは人の目にはやさしいのですが、機械には著しくやさしくありません。
DBにログを残せばいいじゃないかという意見も挙がることでしょう。
確かにある程度の規模までは有力な解だといえます。
気をつけるべきポイントは絶対にロールバックさせてはいけないということです。
処理に失敗した場合にでもロールバックさせてしまうとその処理自体がなくなってしまいます。それはログとはいえないでしょう。
また大量のINSERTにさらされるので、読み取る際には注意が必要です。特にSQLServerのばあいにはダーティリードなり、スナップショット分離レベルで除くように心掛けないといけません。とくにログを覗くのは人手が多いので、忘れがちです。
つづく