我有一个控制台应用程序,可能是一次运行多个实例。每个实例都在命令行参数中指定的路径中生成输出文件。我希望控制台应用程序在与输出文件相同的目录中创建日志文件(FileAppender)。这将确保多个实例不会写入同一日志文件,并且实例的日志与输出文件位于同一位置。以下是我创建和使用记录器的方法(在每个类和项目中)
private static readonly ILog Log =
LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
...
// Inside a method
Log.InfoFormat("Output file ({0}) exists, deleting.", _commandLineOptions.OutputFile);
我希望我可以使用类似于this question
的方法答案 0 :(得分: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);
...
}
...
}