システム上のユーザーのアクションをログに記録し、データベースに保存する関数を C# で作成しています。具体的には、ビジネスロジックの特定の機能が呼び出されたときにログに記録したいと考えています。私は次のようなロギング方法を考え出しました:
public static LogMethod(string user, string methodName, object[] parameters, string message)
メソッド内ではToString()
、各パラメーターに対して適切な関数が呼び出されます。たとえば、メソッド Foo の場合、次のように呼び出されます。
void Foo(int a, SomeObject b)
{
Logger.LogMethod(username, "Foo", new object[]{a,b}, "Beginning Foo");
//etc
}
関数呼び出しをログに記録するのは良い方法ですか? この目的を実現するためのベスト プラクティスは何ですか? パフォーマンスに悪い影響を与えますか?