Отражение вокруг показывает, что Logging.On включен 'flag' в
s_WebTraceSource = new NclTraceSource("System.Net");
s_HttpListenerTraceSource = new NclTraceSource("System.Net.HttpListener");
s_SocketsTraceSource = new NclTraceSource("System.Net.Sockets");
s_CacheTraceSource = new NclTraceSource("System.Net.Cache");
try
{
flag = ((s_WebTraceSource.Switch.ShouldTrace(TraceEventType.Critical) || s_HttpListenerTraceSource.Switch.ShouldTrace(TraceEventType.Critical)) || s_SocketsTraceSource.Switch.ShouldTrace(TraceEventType.Critical)) || s_CacheTraceSource.Switch.ShouldTrace(TraceEventType.Critical);
}
Это означает, что он использует стандартную трассировку и просто проверяет, наблюдается ли хотя бы уровень «Критический».Пример того, как это использовать, можно найти в разделе «Отладка приложения сокетов» этой статьи MSDN , например:
<configuration>
<system.diagnostics>
<sources>
<source name="System.Net.Sockets">
<listeners>
<add name="Sockets"/>
</listeners>
</source>
</sources>
<switches>
<add name="System.Net.Sockets" value="31" />
</switches>
<sharedListeners>
<add name="Sockets" type="System.Diagnostics.TextWriterTraceListener"
initializeData="Sockets.log"/>
</sharedListeners>
<trace autoflush="true" />
</system.diagnostics>
</configuration>
Как поясняется в статье, значения переключателейпобитовое ИЛИ этих пяти значений:
- Сетевой трафик (0x10)
- Вход и выход метода (0x8)
- Предупреждения (0x4)
- Ошибки (0x2)
- Критические события (0x1).
Если вы ИЛИ все из них (0x10 | 0x8 | 0x4 | 0x2 | 0x1), вы получите 0x1F, что равно «31» в десятичном виде, как показано выше.
Подробная информация о настройке с использованиемфайл конфигурации приложения можно найти здесь .Это просто вопрос создания файла app.config или web.config, аналогичного приведенному выше для источника (-ов), который вы будете использовать.