最近在编写一个使用遗传算法的程序,想跟踪一些中间变量,把它的值写到文件中,但是又不想在算法中加入新的函数来做这种事情,后来想到用TraceListener来保存。通过配置应用程序配置文件app.config,然后在代码中使用Trace.Listeners["myListener"].Write 写跟踪信息,该信息就会被自动记录到文件中去。

配置文件:
使用TraceListener 自动保存跟踪信息到文件中<configuration>
使用TraceListener 自动保存跟踪信息到文件中
<system.diagnostics>
使用TraceListener 自动保存跟踪信息到文件中    
<switches>
使用TraceListener 自动保存跟踪信息到文件中        
<add name="MagicTraceSwitch" value="3" />
使用TraceListener 自动保存跟踪信息到文件中    
</switches>
使用TraceListener 自动保存跟踪信息到文件中    
<trace autoflush="false" indentsize="4">
使用TraceListener 自动保存跟踪信息到文件中        
<listeners>
使用TraceListener 自动保存跟踪信息到文件中           
<add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="c:\myListener.log" />
使用TraceListener 自动保存跟踪信息到文件中           
<!-- You must supply a valid fully qualified assembly name here. --> 
使用TraceListener 自动保存跟踪信息到文件中           
<remove type="Assembly text name, Version, Culture, PublicKeyToken"/> 
使用TraceListener 自动保存跟踪信息到文件中        
</listeners>
使用TraceListener 自动保存跟踪信息到文件中    
</trace>
使用TraceListener 自动保存跟踪信息到文件中
</system.diagnostics>
使用TraceListener 自动保存跟踪信息到文件中 
</configuration>
使用TraceListener 自动保存跟踪信息到文件中

在listeners 配置节里面的<add .../>中的type是要使用的监听器的类,initializeData是要保存的文件路径。
.NET Framework 1.1自带了几种监听器,但是你可以自己扩展监听器的类型,将调试信息保存到其他地方,如数据库中(类似于net4log)。

在程序代码中的用法:
使用TraceListener 自动保存跟踪信息到文件中for( iter = 0; iter < MAX_ITER; iter++ )
{
使用TraceListener 自动保存跟踪信息到文件中                
if( iter % 300 == 0 )
{
使用TraceListener 自动保存跟踪信息到文件中                    sppGA.Scale 
*= 0.1;
使用TraceListener 自动保存跟踪信息到文件中                }

使用TraceListener 自动保存跟踪信息到文件中                
for(int i = 0; i < 10; i++ )
{
使用TraceListener 自动保存跟踪信息到文件中                    sppGA.CrossOver();
使用TraceListener 自动保存跟踪信息到文件中                }

使用TraceListener 自动保存跟踪信息到文件中                sppGA.Mutation();
使用TraceListener 自动保存跟踪信息到文件中                sppGA.Mutation();
使用TraceListener 自动保存跟踪信息到文件中                sppGA.Mutation();
使用TraceListener 自动保存跟踪信息到文件中                sppGA.Memory();
使用TraceListener 自动保存跟踪信息到文件中                System.Diagnostics.Trace.Listeners[
"myListener"].Write(((Node) sppGA.Individuals[sppGA.Best]).Variables.Transpose().ToString());
使用TraceListener 自动保存跟踪信息到文件中                Console.WriteLine(
"Iter:{0} Fitness:{1} Best:{2} Worst{3} Scale:{4} ",iter,((Node) sppGA.Individuals[sppGA.Best]).Fitness,sppGA.Best,sppGA.Worst,sppGA.Scale);
使用TraceListener 自动保存跟踪信息到文件中            }





相关文章:

  • 2022-12-23
  • 2021-10-06
  • 2022-12-23
  • 2021-09-14
  • 2021-11-26
  • 2022-12-23
  • 2021-08-11
  • 2020-01-15
猜你喜欢
  • 2021-12-25
  • 2021-04-02
  • 2021-11-29
  • 2022-12-23
  • 2022-12-23
  • 2021-07-30
相关资源
相似解决方案