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 回答