Reputation: 1133
I need to implement the tracing in asp.net website. My requirement is to create a log(text) file and write errors to that file. What i have done so far is added following settings to my 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>
And trying to write to log as following. It is creating the log file but writing all page lod unload events but not writing the information(in my case it is exception) that I want to write.
Dim _trace As New TraceSource("ServiceFaultInfoTrace", SourceLevels.Error)
_trace.TraceEvent(TraceEventType.Error, ex.Message)
Upvotes: 0
Views: 724
Reputation: 1133
Finally Guys I got it working and may be it will be Helpful to others in future. My project was a simple plain asp.net website(Not website projects) and to enable the trace I had to put in the complier setting in webconfig as following..
<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>
Others settings are as following
<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>
Under system.web tag put this
<trace enabled="true" mostRecent="true" writeToDiagnosticsTrace="true" pageOutput="false" />
And in code behind n aspx.vb page put this
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()
Upvotes: 1