मैं अपने एप्लिकेशन को MachineName_UserName_yyyymmdd_hhmmss.txt जैसे विभिन्न ट्रेस फ़ाइलों को लिखना चाहता हूं, जहां उपयोगकर्ता नाम वर्तमान में लॉग इन उपयोगकर्ता है और समय एप्लिकेशन का प्रारंभ समय है। .Net श्रोता TextWriterTraceListener केवल कॉन्फ़िगरेशन फ़ाइल में निर्दिष्ट हार्ड कोडित फ़ाइल नाम का समर्थन करता प्रतीत होता है। कस्टम ट्रेस श्रोता लिखने के बिना ऐसा करने का कोई तरीका है।.Net कस्टम ट्रेस फ़ाइल का नाम
मान लिया जाये कि मैं एक कस्टम ट्रेस श्रोता लिखने के लिए है, मैं इस तरह एक tracelistener को लागू किया है:
Imports System.Diagnostics
Public Class MyCustomTraceListener
Inherits TextWriterTraceListener
Public Sub New()
'Need to do it this way as the Base constructor call has to be the first statement
MyBase.New(String.Format("AppNameTraceFile_{0}_{1}_{2}{3}{4}-{5}{6}{7}.txt", _
Environment.MachineName, _
Environment.UserName, _
DateTime.Now.ToString("yyyy"), _
DateTime.Now.ToString("MM"), _
DateTime.Now.ToString("dd"), _
DateTime.Now.ToString("HH"), _
DateTime.Now.ToString("mm"), _
DateTime.Now.ToString("ss")))
Me.IndentSize = 4
End Sub
End Class
कॉन्फ़िग फ़ाइल में, मैं इस तरह स्रोत का पता लगाने कॉन्फ़िगर किया है:
<system.diagnostics>
<trace autoflush="true"/>
<sources>
<source name="MyTraceSource"
switchName="mySwitch"
switchType="System.Diagnostics.SourceSwitch" >
<listeners>
<clear/>
<add name="MyTraceListener"
type="MyNameSpace.MyCustomTraceListener"
traceOutputOptions="ProcessId, DateTime, Callstack" />
</listeners>
</source>
</sources>
<switches>
<add name="mySwitch" value="Warning" />
</switches>
</system.diagnostics>
मैं इस तरह का ट्रेस स्रोत बना रहा हूं:
Dim tsTraceSource As TraceSource = New TraceSource("MyTraceSource")
tsTraceSource.TraceEvent(TraceEventType.Warning, 0, "warning message")
हालांकि, स्टार्टअप पर, मैं मिल रहा हूं एक त्रुटि है कि "MyNameSpace.MycustomTraceListener" प्रकार नहीं मिला।
क्या कोई यह देखता है कि समस्या क्या है?
धन्यवाद।
यह काम करता है। धन्यवाद। – DevByDefault