3

私の現在の C# アプリケーションは、単一の実行可能ファイル (EXE) といくつかの DLL (複数のバイナリ) であり、LOGGER (どこから呼び出されても単一のテキスト ファイルに書き込む単純なカスタム ロガー) を作成したいと考えています。すべてのバイナリ (exe および dll) で使用できる必要があります。これはシングル スレッド アプリケーションであることに注意してください。

現在、DLL (Logger) があり、ログに記録するメソッド (トレース) を持つクラス (Log) があり、各プロジェクトはこの DLL (Logger) への参照を追加し、独自のインスタンス (ファイル名を渡す) を作成します。次に .Trace(...) 関数を呼び出します-正常に動作します...

しかし、多くの異なるトレース ファイル (プロジェクトごとに最低 1 つ) を作成する必要はなく、毎回 Logger の新しいインスタンスを作成する必要があるのは繰り返しのようです...そのため、STATIC ロガー クラスを作成するか、 SINGLTON を使用することを検討していました。 .. どちらが最適で、その理由がよくわかりません ...

多くのプロジェクトで使用される (参照される) ロガー クラス (それ自体の DLL) を作成する最良の方法は何ですか。同じログファイル...?

どんな助けでも大歓迎です。ありがとう、

4

1 に答える 1

4

Singletonとlogger のどちらかを常に選択するのと同じ方法で選択します。メソッドをオーバーライドStaticできるようにしたいですか(またはインターフェースを使用したいですか)? シングルトンを使用する場合、メソッドをオーバーライドして機能を変更する機会があります。インターフェイスの背後にある動作を抽象化することもできます。Logging

静的クラスを使用すると、そのクラスに今も永遠に結び付けられ、変更はすべての人に影響します。

自分のシステムを扱うときは、シングルトン インスタンス化されたオブジェクトに移行しました。これにより、静的クラスでは利用できないレベルの柔軟性が得られます。

于 2012-12-10T20:28:25.940 に答える