0

一度に複数のインスタンスを実行できるコンソール アプリケーションがありました。各インスタンスは、コマンド ライン パラメータで指定されたパスに出力ファイルを生成します。コンソール アプリケーションで、出力ファイルと同じディレクトリにログ ファイル (FileAppender) を作成する必要があります。これにより、複数のインスタンスが同じログ ファイルに書き込まれず、インスタンスのログが出力ファイルと同じ場所にあることが保証されます。ロガーを作成して使用する方法は次のとおりです(各クラスとプロジェクトで)

private static readonly ILog Log = 
                        LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

...

// Inside a method
Log.InfoFormat("Output file ({0}) exists, deleting.", _commandLineOptions.OutputFile);

この質問に似たアプローチを使用できることを望んでいました

4

1 に答える 1

0

前のコード....

class Program
{
   private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

   static void Main(string[] args)
   {
     ...
   }
   ...
}

解決

class Program
{
   private static ILog _log;

   static void Main(string[] args)
   {
     var outputPath = Path.GetDirectoryName(_commandLineOptions.OutputFile);
     GlobalContext.Properties["logpath"] = outputPath;
     _log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
     ...
   }
   ...
}
于 2015-05-01T12:31:19.643 に答える