私はこれらの2つの言葉にもっと頻繁に出会ってきましたが、これらに大きな違いは見られませんでしたか?私はそれらが交換可能に使用されているか、またはこれらの2つのいくつかの違いがあることを知りたいのですか?ありがとう。
ロギングとは、通常、プログラムの実行中に発生する実装レベルのイベントの記録を意味します(メソッドの呼び出し、オブジェクトの作成など)。そのため、プログラマーに興味のあることに焦点を当てています
監査とは、ドメインレベルのイベントを記録することです。トランザクションが作成される、ユーザーがアクションを実行するなどです。特定の種類のアプリケーション(バンキング)では、そのようなイベントを記録する法的義務があります。
違いは、テクニックよりも使用法のほうが大きいです。
監査は、「誰が何をしたのか」という質問に答えるために使用されます。そしておそらく理由。ロギングは、何が起きているかに焦点を合わせています。
監査にはしばしば法的要件があるという点で技術的な問題があります。また、監査は多くの場合、アプリケーション内で行われます。たとえば、ユーザー/コンプライアンス部門が確認する必要があるため、誰が何を変更したかを確認するユーザーインターフェイスがあります。また、監査には法的要件がある場合があります(WORMメディアに1回書き込み、操作できないようにし、x年間データを保持します)。
例:取引アプリケーションがあります。注文に対するすべての変更が監査されます-OrderStatusとOrderStatusHistoryがあります。これは技術的なものではありません。履歴はアプリケーションインターフェイスの一部です。
ロギングは純粋に技術的なものです。時々それをオフにしたり、管理者にログファイルを抽出させたりすることは全く問題ありません。
それらは大きく異なります。ロギングは、システムで発生するイベントに関するデータを記録する抽象的なタスクです。情報を記録している場合は、ログを記録しています。
ただし、監査はより複雑です。監査とは、システムが望ましい状態にあることを確認したり、システムが特定の状態に到達した方法に関する質問に答えたりするために、ログを検査することです。監査を行う1つの方法は、もちろんログを確認することですが、ログなしで監査を行うことができます(簡単な例として、ユーザーに特定の変更の責任があるかどうかを直接尋ねることができます)。ロギングは通常、非常に安価な操作であるため、代替手段を考慮する必要がないため、これは素晴らしいアイデアではありません。
監査ログは、このユーザーがこのユーザーによって特定の日時に発生した特定のアクションを確認するためにビジネスで必要な情報として表示されます。ビジネス価値が付加されているため、何が起こったかを確認できます。一般に、監査ログは履歴およびコンプライアンスの目的でアーカイブされます。
一方、通常のロギングでは、テクノロジーパートナーが特定のイベント中に何が発生したか、またはシステムがどのように動作したかを理解するために必要な情報を記録します。メソッドシグネチャ、入力として渡される値、出力として渡される値、および例外が発生した場合は例外に関する詳細情報などを含めることができます。これらの情報はビジネスでは必要なく、オフにしたり、ログに記録される詳細は、ニーズに基づいて削減できます。これらの情報は、基本的に開発チームまたはサポートチームがシステムをデバッグするのに役立ちます。
ロギングは、メソッドが呼び出したクラスのフローをトレースし、A、B、Cの各メソッドを持っています。XクラスAメソッドはYクラスBメソッドに呼び出され、Bメソッドは呼び出されますYクラスcメソッドに..このように制御の流れをトレースします
監査は、ユーザーのアクティビティを追跡します。ロジックを記述する必要があり、システムは監査テーブルにデータを自動的に挿入/保存します。
Login.jspを使用して、ユーザー名とパスワードを入力し、ログインページにアクセスして、コントロールがサービスメソッド内のロジックサーブレットページに移動し、次のようなロジックを記述できるようにします。
httpsession session=reg.getsession();
session.setAttribute("userId",uid);
つまり、データベースでは次のように列を取得します
created_by
created_date
last_modified_by
last_modified_dt
監査は、ロギング、IMHOの積極的なレビューを意味します。ロギングなしで監査することはできませんが、監査なしでロギングすることはできます。