public static void OverrideRuntimeLogger(GetRuntimeLoggerDelegate getOverride, SetRuntimeLoggerDelegate setOverride, SetupRuntimeLoggerDelegate setupOverride) { lock (typeof(RuntimeLogger)) { getRuntimeLoggerOverride = getOverride; setRuntimeLoggerOverride = setOverride; setupRuntimeLoggerOverride = setupOverride; } }
internal static void WithRuntimeLoggerOverride(GetRuntimeLoggerDelegate getOverride, Action action) { GetRuntimeLoggerDelegate previousGetRuntimeLoggerOverride = null; try { lock (typeof(RuntimeLogger)) { previousGetRuntimeLoggerOverride = getRuntimeLoggerOverride; OverrideRuntimeLogger(getOverride, setRuntimeLoggerOverride, setupRuntimeLoggerOverride); } action(); } finally { OverrideRuntimeLogger(previousGetRuntimeLoggerOverride, setRuntimeLoggerOverride, setupRuntimeLoggerOverride); } }