在dll中配置log4net日志
本文关键字:log4net 日志 配置 dll | 更新日期: 2023-09-27 18:07:10
我正在设置一个dll,作为不同应用程序的第三方dll。我希望这个dll有自己的日志记录,这样外部应用程序就不必处理设置任何东西(我不相信他们使用与我们相同的日志记录)。我读到过,这可能不是最好的解决方案,但这是我的任务。我们希望使用log4net。我看过这里的其他一些问题,他们提到它可以通过代码进行配置,但是,我遇到的主要问题是,在我们的代码中没有明确的入口点来配置log4net。我很好奇我是否应该放弃让dll配置自己,并有一个方法,由二级应用程序调用,配置dll的日志记录,或者如果有一个更好的方法去做这件事。如有任何意见,不胜感激
您可以通过编程方式配置log4net。也许可以将此代码添加到DLL的构造函数中。
if (!log4net.LogManager.GetRepository().Configured)
{
// my DLL is referenced by web service applications to log SOAP requests before
// execution is passed to the web method itself, so I load the log4net.config
// file that resides in the web application root folder
var configFileDirectory = (new DirectoryInfo(TraceExtension.AssemblyDirectory)).Parent; // not the bin folder but up one level
var configFile = new FileInfo(configFileDirectory.FullName + "''log4net.config");
if (!configFile.Exists)
{
throw new FileLoadException(String.Format("The configuration file {0} does not exist", configFile));
}
log4net.Config.XmlConfigurator.Configure(configFile);
}