C# 从本地服务结构应用程序登录到Azure Storage Emulator

C# 从本地服务结构应用程序登录到Azure Storage Emulator,c#,.net,azure,logging,azure-service-fabric,C#,.net,Azure,Logging,Azure Service Fabric,我有一个命名事件源作为日志记录的一部分: [EventSource(Name = "ExampleEventSource")] internal sealed class ServiceEventSource : EventSource 在VisualStudio中调试应用程序时,可以看到日志。现在我想在本地部署我的应用程序此计算机根本不使用Azure在线服务 如何将事件记录到本地计算机上运行的Azure Storage Emulator?在处理Azure虚拟机时,从Azure门户启用日志记录

我有一个命名事件源作为日志记录的一部分:

[EventSource(Name = "ExampleEventSource")]
internal sealed class ServiceEventSource : EventSource
在VisualStudio中调试应用程序时,可以看到日志。现在我想在本地部署我的应用程序此计算机根本不使用Azure在线服务

如何将事件记录到本地计算机上运行的Azure Storage Emulator?在处理Azure虚拟机时,从Azure门户启用日志记录似乎非常容易,但在premise环境中,这感觉非常复杂,并且缺少一些急需的文档。我试着在网上搜索一些具体的例子来说明如何做到这一点,但是没有帮助,留下了很多问题没有答案。例如,我甚至发现自己被困在这里:

通过执行以下任务修改
template.json
文件

本文所指的
template.json
文件是什么?我只是从VisualStudio内部将解决方案直接发布到远程前提计算机上,因为它是一个本地项目,我想这可能就是为什么没有部署所需的
template.json
?不仅如此,我还不确定这篇文章是否真的涵盖了与我在这里寻找的相同级别的日志记录成果的内部解决方案

非常感谢您提供的任何帮助,我希望任何决定提供帮助的人都能同情我们这些希望维护相同Azure框架以进行日志记录的人,但是让它在模拟器中本地登录,以便我们可以使用Azure Explorer工具查看我们的日志,我希望他们能够深入了解如何在本地为内部部署环境执行这种类型的日志记录,同时使用VisualStudio的部署功能维护某种级别的功能

编辑:我尝试将其附加到
ApplicationManifest.xml
文件中的
部分的末尾,但没有任何效果:

<Diagnostics>
  <ETWSource IsEnabled="true">
    <Destinations>
      <AzureBlob IsEnabled="true" ConnectionString="UseDevelopmentStorage=true" ConnectionStringIsEncrypted="false" ContainerName="traces" />
    </Destinations>
  </ETWSource>
</Diagnostics>

有一个快速入门的例子可以做到这一点。看一看。你可以上课


他们谈论的
template.json
是用于在Azure中创建资源的ARM模板。

有一个快速入门示例可以实现这一点。看一看。你可以上课


他们谈论的
template.json
是用于在Azure中创建资源的ARM模板。

您是否尝试过使用它?它似乎不起作用。试图用
将其插入到我的解决方案中,并在我的
程序.cs
文件中实例化了它,但什么都没有
SendEventsAsync
从未被调用过……必须有一种更为集成的方法来实现这一点……除了无法启动和运行该类之外,我更愿意使用
Microsoft.Diagnostics.Tracing.TraceeEvent
订阅事件,然后登录Azure。然而,问题还在于,所有这些库和类都不是一个集成的解决方案,而我可以在清单配置模板中直观地看到,有一些
支持
到内部部署位置,因此必须有一种更好、更集成的方法(祈求好运)。您尝试过使用它吗?它似乎不起作用。试图用
将其插入到我的解决方案中,并在我的
程序.cs
文件中实例化了它,但什么都没有
SendEventsAsync
从未被调用过……必须有一种更为集成的方法来实现这一点……除了无法启动和运行该类之外,我更愿意使用
Microsoft.Diagnostics.Tracing.TraceeEvent
订阅事件,然后登录Azure。然而,问题还在于,所有这些库和类都不是一个集成的解决方案,而我可以在清单配置模板中直观地看到,
支持
到本地位置,因此必须有一种更好、更集成的方法(祈祷吧)。
using (var session = new TraceEventSession("MyRealTimeSession"))
{
    session.Source.Dynamic.All += delegate (TraceEvent data)
    {
        Console.WriteLine(data);
        // Can add code to flush to Azure tables here...
    };
    var eventSourceGuid = TraceEventProviders.GetEventSourceGuidFromName("ExampleEventSource");
    session.EnableProvider(eventSourceGuid);
    session.Source.Process();
}