我们有一个C#控制台应用程序,它运行良好。它包括我们使用的第三方实用程序,它记录到(system.diagnostics)跟踪。我们使用自定义跟踪侦听器成功拦截此跟踪,并使用Log4Net将其写入数据库。
<system.diagnostics>
<trace autoflush="true" indentsize="4">
<listeners>
<remove name="Default"/>
<add name="myCustomTraceLog4NetListener" type="XXX.Log4netTraceListener,XXXXXX"/>
</listeners>
</trace>
问题是此跟踪输出仅在直接从visual studio运行时生成和捕获,而不是从命令行或clickonce运行。使用VS进行调试时,我们将在(调试)输出窗口中看到它,并看到它正在写入数据库 - 但仅当我们从Visual Studio中运行应用程序时才会看到它。从命令行调用完全相同的可执行文件时,它不会捕获此跟踪输出。它失去了以太。但其他log4net调用工作正常。
是否有任何项目/解决方案设置会阻止编写跟踪,除非应用程序是从VS以交互方式启动的?感谢。