我正在改造一个旧的 vb.net 应用程序,使其符合 Vista 中的 LUA 原则。到目前为止,应用程序使用了多种日志记录机制,但核心机制涉及将日志写入到 c:\temp\(如果该文件夹存在)。我想用更标准的日志记录机制替换当前的日志记录。
这是VB,我决定尝试使用My.Application.Log
与 app.config 结合使用,并且尽可能有效(尽管我没想到它会转储到漫游配置文件)。不幸的是,用户习惯于使用日志中的信息进行故障排除,以及在提交错误时发送日志,而移动此日志可以很好地隐藏它。
我的想法是通过在应用程序的 UI 中添加指向日志的链接,或者至少添加指向包含日志的文件夹的链接,使日志更易于访问。但是,我不知道如何确定该链接指向的位置。
编辑(添加信息):
我的配置文件或多或少是内置默认值:
<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 页面 http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.logging.filelogtracelistener(VS.80).aspx这表明我应该能够,所以我会检查一下。不过,如果我找到一些对此的官方记录支持,我会更舒服。)
如果我这样做,我应该能够迭代跟踪侦听器集合My.Application.Log
并仅链接到第一个 FileLogTraceListener Full LogFileName。
我相信这是可以配置的。它可以在 machine.config 文件中配置,或者您可以在应用程序配置文件中覆盖它 - 您将希望这样做,以便您可以控制它并创建指向它的链接。
您将需要添加一个FileLogTraceListener
到应用程序配置。
它进入system.diagnostics\sharedListeners
部分。您可以在中指定文件名initializeData
属性。
来自 MSDN 的更多文档:
- 演练:确定 My.Application.Log 写入信息的位置 https://learn.microsoft.com/en-us/dotnet/visual-basic/developing-apps/programming/log-info/walkthrough-determining-where-my-application-log-writes-information
- 在 Visual Basic 中使用应用程序日志 https://learn.microsoft.com/en-us/dotnet/visual-basic/developing-apps/programming/log-info/working-with-application-logs
- 演练:更改 My.Application.Log 写入信息的位置 https://learn.microsoft.com/en-us/dotnet/visual-basic/developing-apps/programming/log-info/walkthrough-changing-where-my-application-log-writes-information
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)