- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在试验捆绑到 Delphi XE 中的 CodeSite Express。我想像这样使用 Category
功能:
CodeSite.Category := 'SomeCategory';
CodeSite.EnterMethod ('SomeMethod');
try
DoSomething;
finally
CodeSite.ExitMethod ('SomeMethod');
end;
问题是,如果 DoSomething
还包含设置类别的日志记录代码,那么 ExitMethod
将以不同的类别结束,并会破坏整个层次结构在查看器中。
如果线程启动,情况会更糟:设置 Category
然后调用日志命令显然不是原子操作,因此使用 CodeSite 日志记录的两个线程不能真正使用 Category
。至少在我的日志中是这样的。我原以为 Category
是线程本地的,但它似乎不是。
在嵌套日志记录和线程上下文中处理类别的正确模式是什么?
谢谢!
最佳答案
创建另一个 Codesite 对象,可能每个线程一个,并设置该对象类别。
有多种方法可以做到这一点。你可以有一个特定的对象,比如 MyThreadCodesite : TCodeSite;您写入的对象,或者您可以为称为“Codesite”的线程定义一个属性并引用该对象。因此你的线程代码看起来完全一样,因为它说“Codesite.Send('hello');”但引用线程的对象。
完成后效果很好。我在一个项目中有大约 10 个 TCodesite 对象,着色可以让您轻松查看系统的哪一部分在做什么。
关于multithreading - CodeSite 类别和线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7686941/
我正在试验捆绑到 Delphi XE 中的 CodeSite Express。我想像这样使用 Category 功能: CodeSite.Category := 'SomeCategory'; Cod
我有 CodeSite Express,与 Delphi XE Enterprise 捆绑在一起。现在我正在 XE 中开发一个 ISAPI 应用程序(我在 XE 中使用附加到进程进行跟踪和调试 - 工
已关闭。此问题旨在寻求有关书籍、工具、软件库等的建议。不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以
我是一名优秀的程序员,十分优秀!