各クラスがロガー クラスの単一のインスタンスを共有する必要があるクラス ライブラリを使用しています。ロガーは私のものではありません。つまり、私が参照している dll です。ロガーがインスタンス化されるときに作成される単一のログ メッセージ ファイルの末尾にすべてのメッセージを追加する必要があるため、共有が必要です。
インスタンス化された後、ロガークラスを参照渡しすることを考えましたが、これは非常に醜い依存関係につながります。
私は銃の下にいて、実験する時間があまりありません。これを達成するための最良の方法に関する提案はありますか? 私は静的クラスが答えかもしれないと考えていますが、私が行う実装には時間がかかるので、袋小路に行きたくありません。
======================= 更新 ==================
これを処理する最も迅速でクリーンな方法は次のとおりです。
public class Logger
{
private static LoggerTool _loggerTool;
public static void WriteLogMessage(string message)
{
if (_loggerTool == null)
{
// Create a new log file
string logFileName = "LogFile-" + DateTime.Now.ToString("HHmmss");
_loggerTool = new LoggerTool(logFileName);
}
_loggerTool.LogMessage(message);
}
}