// ----------------------------------------------------------------------- // // TODO: Update copyright text. // // ----------------------------------------------------------------------- using System.ComponentModel.Composition; using System.Reflection; using Caliburn.Micro; using log4net.Appender; using log4net.Core; using log4net.Layout; using log4net.Repository.Hierarchy; namespace Pithos.Client.WPF.LogConsole { using System; using System.Collections.Generic; using System.Linq; using System.Text; /// /// TODO: Update summary. /// [Export(typeof(LogConsoleViewModel))] public class LogConsoleViewModel:Screen { private static readonly log4net.ILog Log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private readonly MemoryAppender _memoryAppender; private BindableCollection _events; public override string DisplayName { get { return "Pithos+ Log Console"; } set { base.DisplayName = value; } } public LogConsoleViewModel() { var loggerRepository = (Hierarchy)log4net.LogManager.GetRepository(); var appenders = loggerRepository.GetAppenders(); _memoryAppender= appenders.OfType().FirstOrDefault(); /* if (_memoryAppender == null) { _memoryAppender = new MemoryAppender { Name="MemoryAppender", Layout=new SimpleLayout(), Threshold=Level.All }; _memoryAppender.ActivateOptions(); loggerRepository.Root.AddAppender(_memoryAppender); loggerRepository.RaiseConfigurationChanged(EventArgs.Empty); } */ RefreshEvents(); } public void RefreshEvents() { Events =new BindableCollection(_memoryAppender.GetEvents()); } public BindableCollection Events { get { return _events; } set { _events = value; NotifyOfPropertyChange(()=>Events); } } } }