Setting custom TextWriterTraceListener on web.config

I have seen two answers on this topic, but I cannot figure it out. I have a custom TextWriterTraceListener and I want it to be used in my tracesource.

 namespace MyTraceLogger
 {
 public class MyTextTraceListener : TextWriterTraceListener
    {

        public override void Write(string message)
        {
            this.Write(string.Format("{0},{1}",
                          DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                          message));
        }

        public override void WriteLine(string message)
        {
            this.WriteLine(string.Format("{0},{1}",
                          DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                          message));
        }
    }

      

}

 <system.diagnostics>
<sources>
  <source name="SpendingTrace" switchName="SpendingSourceSwitch" switchType="System.Diagnostics.SourceSwitch" >
    <listeners>
      <add name="Spending" type="MyTraceLogger.MyTraceLogger.MyTextTraceListener,MyTraceLogger.MyTraceLogger" initializeData="Spending.log" />
      <remove name ="Default" />

    </listeners>
  </source>

</sources>
<switches>
  <!-- You can set the level at which tracing is to occur -->
  <add name="SpendingSourceSwitch" value="Warning" />
  <!-- You can turn tracing off -->
  <!--add name="SourceSwitch" value="Off" -->

</switches>
<trace autoflush="true" indentsize="4"></trace>

      

This is the error I am getting: Could not find type for class MyTraceLogger.MyTraceLogger.MyTextTraceListener, MyTraceLogger.MyTraceLogger.

When I right click the MyTraceLogger project for properties, it shows that the assembly is MyTraceLogger and my namespace is also MyTraceLogger.

+3


source to share


2 answers


Why use a config file and not create it locally inside your code? This way, you avoid confusing, relocating, or misused configuration files in further development and maintenance.

Create an instance of your MyTextTraceListener and add it to your trace listeners:



    MyTextTraceListener myTraceListener = new MyTextTraceListener ("application.log");
    Trace.Listeners.Add(myTraceListener);

      

Refer to this post: How to define custom TraceListener in app.config

+2


source


Why are you putting the namespace twice? I think you just need:



<add name="Spending" type="MyTraceLogger.MyTextTraceListener,MyTraceLogger" initializeData="Spending.log" />

      

0


source







All Articles