问题标签 [tracelistener]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
432 浏览

c# - 如何防止 XmlWriterTraceListener 在消息中使用 xml 编码字符

我正在尝试使用 System.Diagnostics.XmlWriterTraceListener 登录到本地文件。我首先创建一个源并向其中添加一个新的 XmlWriterTraceListener,如下所示:

我在上面的示例中简化了日志格式。实际LogError方法采用一个Exception对象并将一些关于它的 xml 序列化数据插入到消息中,但这不需要显示我的问题是什么。

无论如何,我的应用程序的任何其他部分现在都可以使用简单的一行将错误记录到“app_tracelog.svclog”文件中,哦,说...

一切都很好,直到我打开 app_tracelog.svclog。首先,当我尝试使用 Microsoft 服务跟踪查看器打开它时,该程序的行为就像它是空的,并给我一条消息“没有从文件加载跟踪”。

其次,我用旧的 Notepad++ 打开文件,发现我的应用确实记录到了它。我全选并告诉 XmlTools 对其进行美化,该工具告诉我它不能这样做,因为 XML 中有错误。

所以,我开始手动格式化它。一开始一切顺利,直到我收到我记录的实际应用程序消息。在这里,我发现这个 STUPID @#$ 类通过用编码的 XML/HTML 实体替换括号等,搞砸了我所有的嵌套 XML!

我所有的 '<' 都变成了“<”,我所有的 '> 都变成了“>”,等等......所以应该看起来像这样的日志消息:

现在看起来像:

所以最大的问题是:我如何强制 XmlWriterTraceListener 在我登录时停止丢弃我的消息?当我输入特殊的 XML 字符时,我知道我在做什么,而且它认为它知道得更好!--OR-是否有另一个侦听器类可以按照我想要的方式记录到本地 XML 文件?

0 投票
2 回答
350 浏览

c# - NUnit 结果在调试和发布时不同

我无法摆脱这个问题。这很奇怪,当我尝试在调试模式下运行我的 NUnit 测试时,我得到了预期的结果,但是当我正常运行它时,结果是错误的。

我想要做的是检测绑定错误。这是一个示例

和 ObservableTraceListener

结果调试 - >失败(我期望的)

结果运行->成功(不是预期的)

0 投票
1 回答
144 浏览

cross-domain - 跨域跟踪侦听器 VB.NET

我有一个应用程序,我在其中使用 TraceListener 在应用程序执行时收集数据/调试信息。同时有多个监听器,其中一个会将跟踪信息写入磁盘文件,另一个可能会以字符串形式收集(短期执行)然后显示给用户,也可能保存到另一个文件中根据需要。

一切都很顺利,除非我们做出其他决定。

我们有很多在运行时加载并执行的插件。然而,问题是插件DLL因为它被应用程序使用,所以很难替换它,所以我们不得不停止并替换DLL,然后重新启动它。我们决定使用 appDomain 来加载插件,这样我们就可以轻松地替换 DLL 而无需重新启动应用程序。这也很顺利,但出现了一个主要问题。跟踪听众是盲目的。由于插件被加载到不同的应用程序域,所以跟踪永远不会到达正在监听它的父应用程序域(插件所做的跟踪,它被加载到新的应用程序域)。

我们的跟踪监听器看起来像这样。

我想知道,是否有一种方法我们不必进行太多更改,并且跟踪侦听器也可以从插件(子 appDomain)接收跟踪?任何想法将不胜感激谢谢

0 投票
1 回答
818 浏览

c# - 在 Tracelistener 中区分跟踪和调试消息

我有一个程序可以测试不同程序的 c# 脚本。当编写脚本时,可以使用 Debug.Writeline 或 Trace.Writeline 方法并将文本写入richtextbox,我希望不同方法的文本具有不同的颜色,Debug 为橙色,Trace 为蓝色。

就在我运行我的脚本之前

就在脚本运行之后

TextBoxTraceListener 是

似乎 Debug.Writeline 和 Trace.Writeline 消息被两个侦听器捕获,并且消息只是在蓝色和橙色的 Richtextbox 中重复。有没有办法判断消息是来自 TextBoxTraceListener 中的调试还是跟踪?

谢谢, 伊根

0 投票
0 回答
910 浏览

c# - 在代码中为 WCF 添加 TraceListener

app.config给定跟踪侦听器的以下配置,

如何使用代码而不是 XML 来实现相同的目标?

我尝试了以下操作(删除文件中的上述部分后app.config):

如果我直接写source它会出现在监听器中;但是,它不会捕获任何 WCF 跟踪消息。

0 投票
1 回答
67 浏览

c# - ConsoleTraceListener(Boolean) - 传入一个字符串

我使用这个 XML 设置了一个 TraceListener:

然后我意识到initializeData属性是传递给指定类的构造函数的字符串。但是,构造函数ConsoleTraceListener需要一个Boolean. 那么为什么当它试图将该字符串转换为布尔值时,它不会在运行时抛出异常呢?

0 投票
0 回答
458 浏览

c# - 为什么在调试和使用 QuickWatch 时 DefaultTraceListener.AssertUiEnabled 有时为假

我正在使用 VS2013 Community、.Net 4.5 和第 3 方图形库调试一个小型 WPF 应用程序,有时当我 F5-Launch 时,我的 Debug.Assert 失败不会在调试器中提示或中断,它们只会被写入到调试输出...(如果 AssertUiEnabled == false 的预期行为,但是...我将其保留为真)。

我正在使用 DefaultTraceListener,并且我没有在我的配置文件中定义 <assert> 元素。

我无法可靠地重现,但我在调试时目睹了有时((DefaultTraceListener)Debug.Listeners[0]).AssertUiEnabled== false,当我开始使用 QuickWatch 和/或 F10 单步执行代码时,它似乎会发生。我的看法是,它与将活动窗口从正在调试的 wpf 应用程序中切换出来有关。AssertUiEnabled 开始为真,然后在包括 F10-StepOver 和 CtrlDQ-QuickWatch 在内的未知重现步骤之后,我观察到它为假。

问题:当我在 VS2013 中切换窗口或打开/关闭 QuickWatch 窗口时,AssertUiEnabled 是否有任何理由将自身设置为 false?

我相信我所看到的是导致 VS2010 调试器在 Debug.Assert 失败时中断的根本原因- (OP 询问为什么他没有让调试器在 assert.fail 上中断)

我已经阅读了一些关于在调试 Web 服务时添加自定义 TraceListener的文章,以及Mono 中的 DefaultTraceListener 如何默认为 AssertUiEnabled = false但我认为 .Net 4.5 运行时的 DefaultTraceListener 是我想要的,它只是出于未知原因自行禁用 AssertUI . 我可以解决它,但我很好奇为什么价值会发生变化。

0 投票
1 回答
1083 浏览

c# - EntLib 6 与 TraceListenerData 的 SQL 问题有关的日志记录块

我想在 SQL DB 中使用 Enterprise Library 6 记录我的应用程序。

我启动了 SQL 脚本来创建 SQL 事物,并决定将 Logger 放入类库中。

这是我为制作 POC 所做的代码:

便携课内容:

这是我在单元测试中完成的配置字符串(我在其中启动 LogToDatabase()):

错误出现在这一行:

并且是

感谢帮助我:-)

0 投票
2 回答
979 浏览

c# - 如何在 wpf 应用程序的配置文件中将自定义属性添加到跟踪侦听器

我有以下日志文​​件tracelistener,它扩展了filelogtracelistener,它工作正常,我能够记录消息,但我想在此指定一个额外的自定义属性,例如MaxUsers,下面是它的外观。

目前此属性是自定义的,因此配置文件会出错。如何添加这样的自定义属性并在我的代码中使用它?

我认为作为一种解决方案,我们可以添加一个自定义配置部分,但想知道我们是否可以开箱即用地尝试一些更好的解决方案?

0 投票
1 回答
401 浏览

c# - 我的日志文件中没有显示任何内容

我正在尝试创建一个记录器,将所有堆栈跟踪记录到我的文本文件“log.txt”中。当我运行此代码时,会在目录中创建一个空白 log.txt 文档,但 txt 文件中没有写入任何内容。

我的以下代码如下: