在我的应用程序中,我使用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.LoggingAPI(即LogManager.Reset()方法),但它不能解决问题。
如何强制Common.Logging / Log4Net在新创建的中正常工作AppDomain?请寻求帮助。