В таком виде все в порядке, некорректная прокся продуцирует портянку текста (если ошибок нет, файл пустой):
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
<system.diagnostics>
<sources>
<source name="System.Net" tracemode="protocolonly" maxdatasize="1024">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
<source name="System.Net.Cache">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
<source name="System.Net.Http">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
<source name="System.Net.Sockets">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
<source name="System.Net.WebSockets">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
</sources>
<switches>
<add name="System.Net" value="Verbose"/>
<add name="System.Net.Cache" value="Information"/>
<add name="System.Net.Http" value="Verbose"/>
<add name="System.Net.Sockets" value="Information"/>
<add name="System.Net.WebSockets" value="Information"/>
</switches>
<sharedListeners>
<add name="System.Net"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="network.log"
traceOutputOptions="ProcessId, DateTime"
/>
</sharedListeners>
<trace autoflush="true"/>
</system.diagnostics>
А в таком виде файл пустой в любом случае:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
internal class TraceCollector
{
public readonly static string FilePath = Path.Combine(Util.Path, "network.log");
private readonly List<TraceSource> _sources = new List<TraceSource>();
private readonly TextWriterTraceListener _listener = new TextWriterTraceListener(FilePath)
{
TraceOutputOptions = TraceOptions.ProcessId | TraceOptions.DateTime
};
public TraceCollector()
{
AddSource("System.Net", SourceLevels.Verbose);
AddSource("System.Net.Cache", SourceLevels.Information);
AddSource("System.Net.Http", SourceLevels.Verbose);
AddSource("System.Net.Sockets", SourceLevels.Information);
AddSource("System.Net.WebSockets", SourceLevels.Information);
}
private void AddSource(string lib, SourceLevels level)
{
var src = new TraceSource(lib, level);
src.Listeners.Add(_listener);
_sources.Add(src);
}
public void Flush()
=> _listener.Flush();
}
var trace = new TraceCollector();
server.Ping();
trace.Flush();
Я-то что не так напейсал?