using System; namespace ScreenConnect; public static class TypeTrace { private static object syncLock = new object(); private static ITraceSource source; public static ITraceSource Source { get { if (source == null) { lock (syncLock) { if (source == null) { source = Singleton.Instance.GetTraceSource(typeof(T).GetMoreFriendlyName()); } } } return source; } } public static bool IsTracingEnabled() { return Source.IsTracingEnabled(); } public static void TraceMessage(string format, params object[] args) { Source.TraceMessage(format, args); } public static void TraceMessage(Func messageFunc) { if (IsTracingEnabled()) { Source.TraceMessage(messageFunc()); } } public static void TraceVerbose(string format, params object[] args) { Source.TraceVerbose(format, args); } public static void TraceVerbose(Func messageFunc) { if (IsTracingEnabled()) { Source.TraceVerbose(messageFunc()); } } public static void TraceWarning(string format, params object[] args) { Source.TraceWarning(format, args); } public static void TraceWarning(Func messageFunc) { if (IsTracingEnabled()) { Source.TraceWarning(messageFunc()); } } public static void TraceException(Exception ex) { Source.TraceException(ex); } }