我希望我的应用程序写出名为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" />
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。