我有一个第 3 方应用程序,它(详细)记录到用户的 Appdata 文件夹。我想增强该行为以将错误记录到事件日志中。我怎样才能做到这一点?请注意,该应用程序的源代码不可用;我只能修改 .config 文件。
这是原始的 .config 文件。它详细记录到 .log 文件:
<system.diagnostics>
<switches>
<add name="Default" value="Verbose"/>
</switches>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="CPLog"
type="ClientApp.Common.Logging.MultiProcessFileTraceListener, ClientApp.Common, Version=9.1.0.0, Culture=neutral, PublicKeyToken=c583c5a4dddb9a96"
initializeData="@(LocalApplicationData)\ClientApp\cpwin.log" />
<remove name="Default" />
</listeners>
</trace>
</system.diagnostics>
这是我尝试过的(添加了另一个开关和另一个侦听器。如果我将其开关设置为 Verbose,则会写入 EventLog,但设置为 Error 时不会写入任何内容(即使发生错误):
<system.diagnostics>
<switches>
<add name="Default" value="Verbose"/>
<add name="EventLog" value="Error"/>
</switches>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="CPLog"
type="ClientApp.Common.Logging.MultiProcessFileTraceListener, ClientApp.Common, Version=9.1.0.0, Culture=neutral, PublicKeyToken=c583c5a4dddb9a96"
initializeData="@(LocalApplicationData)\ClientApp\cpwin.log" />
<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="Client Info" />
<remove name="Default" />
</listeners>
</trace>
</system.diagnostics>
我怎么能做到这一点?