感覺 C# 實在是有夠傻瓜導向,之前真是太小看它了,完整度超出我的想像...
可是我覺得微軟的文件有夠難看...
any way, 紀錄一下怎麼寫 debug log
主要 reference 是這篇:
大概是有 Debug 跟 Trace 這兩個系列的 class 可以用,
兩邊指令都差不多,差別在預設 Debug 系列的東西 release build 會被拔掉
另外在 Web.config 裡面要加註冊一個 System.Diagnostics.TextWriterTraceListener 的 listener
Debug/Trace 丟出來的東西才有人負責收
<?xml version="1.0"?> <configuration> ... <system.diagnostics> <trace autoflush="true"> <listeners> <add name="debugListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="c:/temp/idsafe_service_debug.txt" /> </listeners> </trace> </system.diagnostics> </configuration>
設好以後就來測試一下吧
Trace.Write("Trace.Write\n", "Trace.Write.Category"); // note the \n' Trace.WriteLine("Trace.WriteLine", "Trace.WriteLine.Category"); Trace.TraceInformation("Trace.TraceInformation, {0}", "formated string"); Trace.TraceWarning("Trace.TraceWarning {0}", "formated string"); Trace.TraceError("Trace.TraceError, {0}", "this seems can be formated"); Trace.Fail("short message", "detail message");
上面的 code output 長這樣
Trace.Write.Category: Trace.Write Trace.WriteLine.Category: Trace.WriteLine w3wp.exe Information: 0 : Trace.TraceInformation, formated string w3wp.exe Warning: 0 : Trace.TraceWarning formated string w3wp.exe Error: 0 : Trace.TraceError, this seems can be formated Fail: short message detail message
值得注意的是 Trace.Fail 那條除了被 System.Diagnostics.TextWriterTraceListener 收走外,
還會被打到 system event log 去,所以慎用吧
沒有留言:
張貼留言