log4net xmlconfigurator.configure需要使用dll嵌入式xml文件

时间:2017-03-02 05:47:08

标签: c# .net windows log4net

我正在创建一个控制台应用程序(exe)并尝试使用log4net记录错误。如果我在main方法中给出以下任何命令,则记录器工作正常:

XmlConfigurator.Configure(new FileInfo(@"filepath\log4net.config")); 

using (FileStream fs = new FileStream("..\\..\\log4net.config",FileMode.Open))
              { XmlConfigurator.Configure(fs); }

但我需要单独使用log4net.config文件。所以我的问题是 - 如何在我的main方法中引用log4net.config文件(嵌入在exe中)来启用记录器,这样我就不需要拥有除exe之外的单独的log4net配置文件文件?将exe单独移动到其他机器更容易。

注意:log4net.config文件是exe中的嵌入式资源。

1 个答案:

答案 0 :(得分:3)

要从嵌入式文件加载配置,最好的方法是使用overload of Configure that takes a stream,例如:

 var assembly = Assembly.GetExecutingAssembly(); // or GetEntryAssembly()
 var resourceName = "log4net.config";

 using (Stream stream = assembly.GetManifestResourceStream(resourceName))
 {
        XmlConfigurator.Configure(stream);
 }