using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.Logging; using Tango.SharedUI; namespace Tango.MachineStudio.Synchronization.ViewModels { public class MainViewVM : ViewModel { public MainViewVM() { MainViewLogger logger = new MainViewLogger(); logger.NewLog += (output) => { Log += output + Environment.NewLine; }; LogManager.RegisterLogger(logger); } private String _log; /// /// Gets or sets the current application log text. /// public String Log { get { return _log; } set { _log = value; RaisePropertyChanged(nameof(Log)); } } #region Custom Logger public class MainViewLogger : ILogger { public bool Enabled { get; set; } public bool Immediate { get; set; } public event Action NewLog; public MainViewLogger() { Enabled = true; Immediate = true; } public void OnError(LogItemBase output) { NewLog?.Invoke(output.TimeStamp.ToTimeString() + ": " + output.GetMessage()); } public void OnTrace(LogItemBase output) { NewLog?.Invoke(output.TimeStamp.ToTimeString() + ": " + output.GetMessage()); } } #endregion } }