如果想在dll文件中使用日志记录功能,仅按照下面的方法是不行的
log4net在WinForm和Window Service等.net程序下的使用
如果按照上面的方法,只是在配置AssemblyInfo.cs文件中配置
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
会发现当dll被调用时,是无法输出日志的。
解决办法:
请在dll被初始化,或者被调用的方法所属类的构造函数中加入以下代码
if (!log4net.LogManager.GetRepository().Configured) { var configFileDirectory = (new DirectoryInfo(TraceExtension.AssemblyDirectory)).Parent; 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); }把log4net.config文件路径重新配置一遍即可!
已有 2699 位网友参与,快来吐槽:
发表评论