vto*_*ola 2 asp.net trace asp.net-mvc-3
我想使用System.Diagnostics.Trace类在文本文件中执行应用程序的简单跟踪.我想使用这个而不是log4net或任何其他解决方案的原因,这是因为......它必须简单:)
所以,我在C#中使用了这个:
TextWriterTraceListener listener = new TextWriterTraceListener(Server.MapPath("~/App_Data/log.txt"));
listener.Filter = new EventTypeFilter(SourceLevels.Warning);
Trace.Listeners.Add(listener);
Run Code Online (Sandbox Code Playgroud)
或者它在Web.config中的等价物:
<system.diagnostics>
<sharedListeners>
<add name="log" type="System.Diagnostics.TextWriterTraceListener" initializeData="App_Data/log.txt">
<filter type="System.Diagnostics.EventTypeFilter" initializeData="Warning" />
</add>
</sharedListeners>
<trace autoflush="true">
<listeners>
<clear/>
<add name="log"/>
</listeners>
</trace>
</system.diagnostics>
Run Code Online (Sandbox Code Playgroud)
所以当我执行这个时:
Trace.TraceInformation("info");
Trace.TraceWarning("warning");
Trace.TraceError("error");
Run Code Online (Sandbox Code Playgroud)
我得到了关于警告和错误的信息,这就是我所期待的.问题是,如何使用SourceLevels枚举中出现的其他级别?
是否有任何缺点或使用System.Diagnostics.Trace的Web应用程序?(autoflush设置为true仅用于测试目的)
干杯.
您需要更多配置.此代码块将所有错误记录到一个文件,将所有Information和ActivityTracing节点记录到另一个文件.(此示例适用于WCF,您需要将您的名称设置为您需要的名称.)
<system.diagnostics>
<sources>
<source name="System.ServiceModel"
switchValue="Information, ActivityTracing"
propagateActivity="true" >
<listeners>
<add name="xml"/>
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging">
<listeners>
<add name="xml"/>
</listeners>
</source>
<source name="ServiceFaultInfoTrace"
switchName="sourceSwitch"
switchType="System.Diagnostics.SourceSwitch">
<listeners>
<add name="ServiceFaultInfoTraceText" />
<remove name="Default"/>
</listeners>
</source>
</sources>
<switches>
<add name="sourceSwitch" value="Error"/>
</switches>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="ServiceFaultInfoTraceText" />
</listeners>
</trace>
<sharedListeners>
<add name="xml"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="C:\log\Api-Traces.svclog" />
<add name="ServiceFaultInfoTraceText"
type="System.Diagnostics.TextWriterTraceListener"
traceOutputOptions="DateTime"
initializeData="C:\log\Api-Errors.txt" />
</sharedListeners>
</system.diagnostics>
Run Code Online (Sandbox Code Playgroud)
重要的节点是switchValue(和switchName)节点.将它们设置为您要为源记录的任何级别.
http://msdn.microsoft.com/en-us/library/system.diagnostics.tracelevel.aspx
归档时间: |
|
查看次数: |
5219 次 |
最近记录: |