在我的应用程序中,我使用Common.Logging
库来抽象日志记录功能。在启动程序集中,它被配置(在app.config
文件中)以针对Log4Net
库工作。建立了一些 Appender:ConsoleAppender
, RollingFileAppender
, TraceAppender
. 在单曲中一切正常AppDomain
。但是我发现日志记录在新创建的AppDomain
. IE:
Logger.Info( "Logging works here" ); // Logging works here
var appDomain = AppDomain.CreateDomain(
"AppDomain." + componentHost.FullName,
AppDomain.CurrentDomain.Evidence,
AppDomain.CurrentDomain.SetupInformation );
var proxy = (IComponentHost) appDomain.CreateInstanceAndUnwrap(
componentHost.Assembly.FullName,
componentHost.FullName,
false,
BindingFlags.Default,
null,
new object[] { },
null,
null );
proxy.Init(); // Logging does not work in Init() method stack
我试图找到一个解决方案,既使用app.config
配置又使用Common.Logging
API(即LogManager.Reset()
方法),但它不能解决问题。
如何强制Common.Logging / Log4Net
在新创建的中正常工作AppDomain
?请寻求帮助。