/// <summary>
/// Re/Set trace configuration in a thread safe way by shutting down the already existing listeners and then
/// put the new config into place.
/// </summary>
/// <param name="cfg">
/// The trace string format is of the form OutputDevice;TypeFilter MessageFilter; TypeFilter
/// MessageFilter; ...
/// </param>
/// <param name="bClearEvents">if true all registered trace callbacks are removed.</param>
/// <returns>The old trace configuration string.</returns>
public static string Reset(string cfg, bool bClearEvents)
{
lock (myLock)
{
Instance.Dispose();
var old = Environment.GetEnvironmentVariable(TraceEnvVarName);
Environment.SetEnvironmentVariable(TraceEnvVarName, cfg);
Instance = new TracerConfig(Environment.GetEnvironmentVariable(TraceEnvVarName));
if (bClearEvents)
{
Tracer.ClearEvents();
}
return(old);
}
}