PRISM记录到GUI

时间:2012-02-04 19:08:17

标签: wpf logging prism

使用WPF / PRISM我想通过ILoggerFacade将我的消息记录到我的GUI(状态栏和记录窗口)。问题是CreateLogger()函数在引导过程中很早就被调用了,我无法解析IEventAggregator

使用所有可用的ILoggerFacade

来记录GUI的正确方法是什么?

谢谢, 马蒂厄

1 个答案:

答案 0 :(得分:0)

shell在引导过程中很晚才创建,因此甚至没有窗口显示来自引导程序的初始日志消息。

如果要将任何以后的消息记录到GUI,可以覆盖ConfigureContainer方法并执行类似的操作

protected override void ConfigureContainer()
{
    base.ConfigureContainer();

    ((MyLoggerAdapter)this.Logger).EventAggregator =
        Container.Resolve<IEventAggregator>();
}

其中MyLoggerAdapter是您在CreateLogger覆盖中创建的记录器的类型。 然后在MyLoggerAdapter的实施中,你可以拥有

public void Log(string message, Category category, Priority priority)
{
    if (EventAggregator != null)
    {
        // Perform logging that requires EventAggregator.
    }
}