我有两个应用程序:一个WPF和一个控制台应用程序。
在这两个应用程序上,我都安装了log4net库(同一版本),但有单独的
logging.config
每个应用程序的文件,它们的初始化方式如下:
对于WPF(App.xaml.cs):
protected override void OnStartup(StartupEventArgs e)
{
var repo = LogManager.CreateRepository(Assembly.GetEntryAssembly(), typeof(log4net.Repository.Hierarchy.Hierarchy));
log4net.Config.XmlConfigurator.Configure(repo, new FileInfo("logging.config"));
base.OnStartup(e);
}
日志记录.config
将日志文件存储为
wpf_debug.log
.
static void Main(string[] args)
{
var repo = LogManager.CreateRepository(Assembly.GetEntryAssembly(), typeof(log4net.Repository.Hierarchy.Hierarchy));
log4net.Config.XmlConfigurator.Configure(repo, new FileInfo("logging.config"));
}
日志记录.config
将日志文件存储为
console_debug.log
那么,如果我从WPF应用程序运行一个进程
var startInfo = new ProcessStartInfo();
startInfo.FileName = "PathToConsoleExe";
...
using (Process pr = new Process())
{
pr.StartInfo = startInfo;
pr.Start();
pr.WaitForExit();
}
.log
控制台应用程序的文件。我不知道为什么。仅对于WPF,日志创建得很好。
如果我通过命令提示符运行控制台应用程序,它可以正常工作。