我需要在asp.net网站上实现跟踪。我的要求是创建一个日志(文本)文件并将错误写入该文件。 到目前为止我已经完成了以下设置添加到我的webconfig。
<system.diagnostics>
<sources>
<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="ServiceFaultInfoTraceText" type="System.Diagnostics.TextWriterTraceListener" traceOutputOptions="DateTime" initializeData="C:\Temp\Api-Errors.txt" />
</sharedListeners>
</system.diagnostics>
尝试写入日志如下。它正在创建日志文件但写入所有页面lod卸载事件但不写我要写的信息(在我的情况下是例外)。
Dim _trace As New TraceSource("ServiceFaultInfoTrace", SourceLevels.Error)
_trace.TraceEvent(TraceEventType.Error, ex.Message)
答案 0 :(得分:1)
最后,伙计们让我开始工作,将来可能对其他人有帮助。我的项目是一个简单的普通asp.net网站(非网站项目),并启用我必须在webconfig中的编译器设置中添加的跟踪,如下所示..
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp"
extension=".cs"
compilerOptions="/d:TRACE"
type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="0" />
<compiler language="VB"
extension=".vb"
compilerOptions="/d:Trace=true"
type="Microsoft.VisualBasic.VBCodeProvider, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="0"/>
</compilers>
</system.codedom>
其他设置如下
<system.diagnostics>
<sources>
<source name="myTraceSource" switchName="mySwitch" switchType="System.Diagnostics.SourceSwitch">
<listeners>
<clear/>
<add name="evengloglistener" type="System.Diagnostics.EventLogTraceListener" initializeData="myApp"/>
<add name="delimitedListener" type="System.Diagnostics.DelimitedListTraceListener" delimiter="," initializeData="c:\Temp\outfile.csv.txt" traceOutputOptions="ProcessId, DateTime"/>
<add name="textwriterListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="c:\Temp\outfile.txt" traceOutputOptions="ProcessId, DateTime"/>
</listeners>
</source>
</sources>
<switches>
<add name="mySwitch" value="1"/>
</switches>
</system.diagnostics>
在system.web标记下输入此
<trace enabled="true" mostRecent="true" writeToDiagnosticsTrace="true" pageOutput="false" />
在n aspx.vb页面后面的代码中放了这个
Dim obj As New TraceSource("myTraceSource")
obj.TraceEvent(TraceEventType.Critical, 0, "This is a critical message")
obj.TraceEvent(TraceEventType.Warning, 0, "This is a simple warning message")
obj.TraceEvent(TraceEventType.[Error], 0, "This is a error message")
obj.TraceEvent(TraceEventType.Information, 0, "Simple information message")
obj.TraceEvent(TraceEventType.Verbose, 0, "Detail Verbose message")
obj.Close()