#define TRACE using System; using System.Diagnostics; namespace ScreenConnect; public class DiagnosticsTraceSource : ITraceSource { private TraceSource traceSource; public string Name => traceSource.Name; public DiagnosticsTraceSource(TraceSource traceSource) { this.traceSource = traceSource; } public bool IsTracingEnabled() { return traceSource.Switch.Level != SourceLevels.Off; } public int GetLevel() { return (int)traceSource.Switch.Level; } public void SetLevel(int level) { traceSource.Switch.Level = (SourceLevels)level; } public void AddListener(object listener) { traceSource.Listeners.Add(listener as TraceListener); } public void TraceException(Exception exception) { traceSource.TraceData(TraceEventType.Error, 0, exception); } public void TraceWarning(string format, params object[] args) { traceSource.TraceEvent(TraceEventType.Warning, 0, format, args); } public void TraceMessage(string format, params object[] args) { traceSource.TraceEvent(TraceEventType.Information, 0, format, args); } public void TraceVerbose(string format, params object[] args) { traceSource.TraceEvent(TraceEventType.Verbose, 0, format, args); } }