From 3bd3531f445e3e8bc9bee09190809cbfa57e52e8 Mon Sep 17 00:00:00 2001 From: Yoshi Askharoun Date: Fri, 16 Feb 2024 20:39:27 -0600 Subject: [PATCH] Add secondary Trace callback --- UIX/Microsoft/Iris/Debug/Trace.cs | 5 ++++- UIX/Microsoft/Iris/Debug/TraceSettings.cs | 6 +++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/UIX/Microsoft/Iris/Debug/Trace.cs b/UIX/Microsoft/Iris/Debug/Trace.cs index ccbe303..8717180 100644 --- a/UIX/Microsoft/Iris/Debug/Trace.cs +++ b/UIX/Microsoft/Iris/Debug/Trace.cs @@ -113,7 +113,10 @@ namespace Microsoft.Iris.Debug if (IsCategoryEnabled(cat, levelFlag)) { string content = string.Format(format, pars); - System.Diagnostics.Debug.WriteLine(BuildLine(content)); + var line = BuildLine(content); + + System.Diagnostics.Debug.WriteLine(line); + TraceSettings.Current.FireWriteCallbacks(line); } } diff --git a/UIX/Microsoft/Iris/Debug/TraceSettings.cs b/UIX/Microsoft/Iris/Debug/TraceSettings.cs index 31fd385..41c5b89 100644 --- a/UIX/Microsoft/Iris/Debug/TraceSettings.cs +++ b/UIX/Microsoft/Iris/Debug/TraceSettings.cs @@ -15,7 +15,7 @@ namespace Microsoft.Iris.Debug public class TraceSettings { private static TraceSettings s_instance; - private Dictionary CategoryLevels = new Dictionary(); + private Dictionary CategoryLevels = new(); private string s_debugTraceFile; public TraceSettings() @@ -90,5 +90,9 @@ namespace Microsoft.Iris.Debug public bool DebugTraceToFile => !string.IsNullOrEmpty(s_debugTraceFile); public string DebugTraceFile => s_debugTraceFile; + + public event Action OnWriteLine; + + internal void FireWriteCallbacks(string line) => OnWriteLine?.Invoke(line); } }