首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编写日志消息并在Perfview中显示的最简单方法

编写日志消息并在Perfview中显示的最简单方法
EN

Stack Overflow用户
提问于 2019-01-07 07:48:39
回答 1查看 281关注 0票数 0

我需要编写日志消息并在PerfView中捕获它。我想避免使用EventLogEventSource,因为它们具有很强的侵入性:它们需要注册一个新的源或ETW提供者,这将在系统中留下剩余的部分。

理想情况下,我只想调用Debug.WriteLine (它使用OutputDebugString,但似乎PerfView无法收集它)。或者是否有看到调试消息的ETW提供程序?

如果您有答案,请说明解决方案的两个部分:

  1. 我应该用C#写些什么,
  2. 如何配置PerfView来捕获它(如果有一些ETW提供者,只需命名它)。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-09 16:14:44

您想要的是使用EventSource。在这里,您不需要处理GUID和系统注册。

代码语言:javascript
复制
public sealed class MinimalEventSource : EventSource
{
    public class Tasks
    {
        public const EventTask Information = (EventTask)1;
    }

    public static MinimalEventSource Log = new MinimalEventSource();

    [Event(1, Message = "{0}", Opcode = EventOpcode.Info, Task = Tasks.Information)]
    public void Information(string message)
    {
        if (IsEnabled())
        {
            WriteEvent(1, message);
        }
    }
}

MinimalEventSource.Log.Information("my debug info");获取数据,用PerfView /OnlyProviders=*MinimalEventSource实现对数据的截取。最重要的是*。事件源通过ManifestEvent记录Manifest,该定义被添加到ETL中,因此不需要清单注册。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54070364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档