跟踪ASP.Net网站

时间:2014-04-16 09:10:36

标签: asp.net c#-4.0 vb.net-2010

我需要在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)

1 个答案:

答案 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()