加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

.Net自定义跟踪文件名

发布时间:2020-12-17 07:27:20 所属栏目:百科 来源:网络整理
导读:我希望我的应用程序写出名为MachineName_UserName_yyyymmdd_hhmmss.txt的不同跟踪文件,其中用户名是当前登录的用户,时间是应用程序的开始时间. .Net侦听器TextWriterTraceListener似乎只支持配置文件中指定的硬编码文件名.有没有办法在不编写自定义跟踪侦听
我希望我的应用程序写出名为MachineName_UserName_yyyymmdd_hhmmss.txt的不同跟踪文件,其中用户名是当前登录的用户,时间是应用程序的开始时间. .Net侦听器TextWriterTraceListener似乎只支持配置文件中指定的硬编码文件名.有没有办法在不编写自定义跟踪侦听器的情况下执行此操作.

假设我必须编写一个自定义跟踪侦听器,我已经实现了一个这样的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,"warning message")

但是,在启动时,我一直收到错误,找不到类型“MyNameSpace.MycustomTraceListener”.

有谁看到这里的问题是什么?

谢谢.

解决方法

你不需要告知你的类型装配吗?

<add name="MyTraceListener"
     type="MyNameSpace.MyCustomTraceListener,MyAssembly"
     traceOutputOptions="ProcessId,Callstack" />

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读