public static void Start() { lock (syncLock) { IPEndPoint traceEP; IPAddress traceAdapter; Config config; string[] enableConfig; int pos; int detail; string subsystem; config = new Config("Diagnostics"); traceEP = config.Get("TraceEP", new IPEndPoint(Helper.ParseIPAddress(DefTraceGroup), DefTracePort)); traceAdapter = config.Get("TraceAdapter", IPAddress.Any); if (traceSrc != null) { traceSrc.Stop(null); traceSrc = null; } traceSrc = new NetTrace(); traceSrc.Start(traceEP, traceAdapter); tracePause = false; traceEnable = new Dictionary <string, int>(); enableConfig = config.GetArray("TraceEnable"); for (int i = 0; i < enableConfig.Length; i++) { string s = enableConfig[i]; try { pos = s.IndexOf(':'); if (pos == -1) { throw new Exception(); } detail = int.Parse(s.Substring(0, pos)); if (detail < 0 || detail > 255) { throw new Exception(); } subsystem = s.Substring(pos + 1); traceEnable[subsystem.ToLowerInvariant()] = detail; } catch { SysLog.LogError("Invalid trace config: Diagnostics.TraceEP[{0}] = {1}", i, s); } } } }
public static void Stop() { lock (syncLock) { if (traceSrc != null) { traceSrc.Stop(null); } traceSrc = null; traceEnable = null; } }