private static void LogWrite(TraceEventType severity, string message) { if (Logger == null) { using (var listener = new System.Diagnostics.DefaultTraceListener()) listener.WriteLine($"{severity.ToString()}: {message}"); } else { Logger(severity, message); } }
private static IDisposable StartLogStream(ApplicationManager appManager) { LogStreamWaitHandle waitHandle = null; Task task = null; if (Debugger.IsAttached) { // Set to verbose level appManager.SettingsManager.SetValue("trace_level", "4").Wait(); RemoteLogStreamManager mgr = appManager.CreateLogStreamManager("Git"); waitHandle = new LogStreamWaitHandle(mgr.GetStream().Result); task = Task.Factory.StartNew(() => { string line = null; var trace = new DefaultTraceListener(); while ((line = waitHandle.WaitNextLine(-1)) != null) { trace.WriteLine(line); } }); } return new DisposableAction(() => { if (waitHandle != null) { waitHandle.Dispose(); task.Wait(); } }); }