2008-09-27

Enable trace log of HttpWebRequest

之前為了解決一個 .NET 1.1 的 HttpWebRequest.KeepAlive 屬性所造成的 Proxy-Authenticate 失敗問題, 在尋找答案的過程中不小心又多學到一招關於 .NET 內建的 Trace 功能, 其實早在很久以前就曾經用 Reflector 在 System.Net 下面的類別中看到一些和 Log 有關的程式碼, 只是那時候沒有多去注意該怎麼把那些 Log 資訊顯示出來, 這次碰巧看到, 順便記錄一下!!

啟用 Log 的方式就是仿照以下的格式修改 config 檔, 針對想要觀看 Log 的類別調整一下注解即可! 要注意的是記得在正式出貨前關閉此 Log, 否則效率會很差!

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
    <system.diagnostics>
        <trace autoflush="true" />

        <sharedListeners>
            <add name="MyTraceFile" type="System.Diagnostics.TextWriterTraceListener" initializeData="System.Net.trace.log" />
        </sharedListeners>

        <sources>
            <!--
            <source name="System.Net" maxdatasize="1024">
                <listeners>
                    <add name="MyTraceFile"/>
                </listeners>
            </source>
            <source name="System.Net.Sockets" maxdatasize="1024">
                <listeners>
                    <add name="MyTraceFile"/>
                </listeners>
            </source>
            <source name="System.Net.Cache">
                <listeners>
                    <add name="MyTraceFile"/>
                </listeners>
            </source>
            <source name="System.Net.HttpListener">
                <listeners>
                    <add name="MyTraceFile"/>
                </listeners>
            </source>
            -->
        </sources>

        <switches>
            <!--
            <add name="System.Net" value="Verbose" />
            <add name="System.Net.Sockets" value="Verbose" />
            <add name="System.Net.Cache" value="Verbose" />
            <add name="System.Net.HttpListener" value="Verbose" />
            -->
        </switches>
    </system.diagnostics>
</configuration> 

 

keywords: trace, .net, webrequest

沒有留言: