我正在创建一个控制台应用程序(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配置文件?这使得将可执行文件单独移动到其他机器上变得更容易。
注意: log4net.config文件是可执行文件中嵌入的资源。
发布于 2017-03-02 19:13:35
要从嵌入式文件加载配置,最好的方法是使用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);
}https://stackoverflow.com/questions/42547720
复制相似问题