如何解决动态加载的 dll 上的 log4net 不记录
> 我有一个在运行时动态加载的 DLL。我的 log4net 在加载 DLL 之前和之后都记录良好,但不是 在 DLL 中记录任何内容都是它自己的。我创建了一个测试存根 使用相同 DLL 的应用程序,它将正常记录。有没有 具体在我需要设置的配置中才能让 log4net 在什么时候工作 动态加载?
/// <summary>
/// Setting the Scanning Module
/// </summary>
private MyAPpLibrary.Helpers.LoaderAssembly _executingModule;
public MyAPpLibrary.Helpers.LoaderAssembly executingModule
{
get
{
if(_executingModule == null)
{
try
{
_executingModule = (MyAPpLibrary.Helpers.LoaderAssembly)appDomain
.CreateInstanceAndUnwrap(typeof(MyAPpLibrary.Helpers.LoaderAssembly).Assembly.FullName,typeof(MyAPpLibrary.Helpers.LoaderAssembly).FullName);
_executingModule.ModuleName = ScanModuleAssembly;
_executingModule.LoadAssembly(Path.Combine(Path.Combine(System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath,"Bin",ScanModuleAssembly)));
}
catch(Exception er)
{
log.Error(er);
}
}
return _executingModule;
}
set
{
if ((_executingModule != value))
{
_executingModule = value;
}
}
}
调用动态加载DLL
executingModule.ExecuteStaticMethod(ScanModuleAssembly,"FormOCRProcess",objParams);
在加载的 DLL 中设置 log4net。
private static ILog _log;
public static ILog log
{
get
{
if (_log == null)
{
log4net.Config.XmlConfigurator.Configure();
_log = LogManager.GetLogger("ScanningModule");
}
return _log;
}
}
动态加载的模块 .confg 文件
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="itextsharp" publicKeyToken="8354ae6d2174ddca" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.5.13.0" newVersion="5.5.13.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<log4net debug="true">
<!-- Define some output appenders -->
<appender name="MyApp" type="log4net.Appender.FileAppender,log4net">
<param name="File" value="Logs/CertifiTracWeb.log" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyy.MM.dd" />
<param name="maximumFileSize" value="1MB" />
<param name="maxSizeRollBackups" value="5" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c %logger %property{user} - %m%n" />
</layout>
</appender>
<!-- Setup the root category,add the appenders and set the default priority -->
<root>
<priority value="INFO" />
</root>
<logger name="ScanningModule" additivity="true">
<level value="ON" />
<appender-ref ref="MyApp" />
</logger>
</configuration>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。