我正在改装旧的vb.net应用程序,以使其符合Vista中的LUA原则。到目前为止,应用程序已经使用了大量的日志记录机制,但核心的一个涉及如果文件夹存在,将日志写入c:\ temp \。我想用更标准的日志记录机制替换当前的日志记录。如何以编程方式确定VB应用程序日志的位置?
这是VB,我决定尝试使用My.Application.Log
与app.config一起使用,并且尽可能地发挥作用(尽管我没有想到它会转储到漫游配置文件中)。不幸的是,用户习惯使用来自日志的信息进行故障排除,并且在提交错误时发送日志,并且移动该日志隐藏它很好。
我的想法是通过在应用程序的用户界面中添加指向它的链接或者至少包含它的文件夹,使日志更容易访问。但是,我不知道如何确定链接将指向的位置。
编辑(用户互动,增加信息):
我的配置文件是或多或少内置默认:
<system.diagnostics>
<sources>
<source name="Error Log" switchName="DefaultSwitch">
<listeners>
<add name="FileLog"/>
</listeners>
</source>
</sources>
<switches>
<add name="DefaultSwitch" value="Information" />
</switches>
<sharedListeners>
<add name="FileLog"
type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
initializeData="FileLogWriter"/>
</sharedListeners>
</system.diagnostics>
我想设置一些属性上FileLogTraceListener在配置文件。 MaxSize,例如(有一个以前的最大尺寸的行为)。尽管如此,我没有看到任何文档可以调用它。 (在FileLogTraceListener page的底部有一些社区内容,这表明我应该能够,所以我会检查一下,如果我发现一些官方文档支持,我会更加舒适。)
如果我这样做,我应该能够遍历My.Application.Log
上的跟踪侦听器集合,并链接到第一个FileLogTraceListener的FullLogFileName。
如果可能的话,我宁愿坚持使用VB中更多的VB-y解决方案。 – 2009-01-26 15:21:10