Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在elasticsearch中关联日志_C#_Asp.net Mvc_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Apm - Fatal编程技术网 elasticsearch,apm,C#,Asp.net Mvc,elasticsearch,Apm" /> elasticsearch,apm,C#,Asp.net Mvc,elasticsearch,Apm" />

C# 如何在elasticsearch中关联日志

C# 如何在elasticsearch中关联日志,c#,asp.net-mvc,elasticsearch,apm,C#,Asp.net Mvc,elasticsearch,Apm,我有一个asp.net核心web应用程序(mvc)项目,当应用程序中发生某些事情时,它会将日志写入elasticsearch并从elasticsearch读取日志 是否有一种方法可以关联同一浏览器事务中发生的日志?(即,打开浏览器,用户单击每页上的按钮,将他们重定向到另一页,直到他们到达页面的末尾,然后关闭浏览器)我看到了一些关于APM的信息,但是是否有其他方法可以将这些日志分组为单个事务(如果有意义的话) 更新: 我严格按照Windows的说明操作。当我进入第3步启动APM服务器时,它说要运

我有一个asp.net核心web应用程序(mvc)项目,当应用程序中发生某些事情时,它会将日志写入elasticsearch并从elasticsearch读取日志

是否有一种方法可以关联同一浏览器事务中发生的日志?(即,打开浏览器,用户单击每页上的按钮,将他们重定向到另一页,直到他们到达页面的末尾,然后关闭浏览器)我看到了一些关于APM的信息,但是是否有其他方法可以将这些日志分组为单个事务(如果有意义的话)


更新:

我严格按照Windows的说明操作。当我进入第3步启动APM服务器时,它说要运行cmd
start Service APM server
,但什么也没发生。因此,当我尝试用cmd
/apmserver-e
启动服务器时,它做了一些看起来与powershell中显示为admin的格式不一样的事情

然后我检查了apm服务器的状态,它显示为设置正确。我没有执行步骤2,因为我正在运行它localhost

进入最后一步,即APM代理。我进入了tab.NET并按照说明操作。。。安装Elastic.APM.NetCoreAll nuget软件包并执行以下操作

Startup.cs
文件我添加了
app.uselasticapm(配置,新的HttpDiagnosticsSubscriber(),新的efcoredignosticssubscriber())

在我的
appsettings.json
文件中:

{
  "ApplicationName": "customer-simulation-es-app",
  "Serilog": {
    "MinimumLevel": {
      "Default": "Information",
      "Override": {
        "Microsoft": "Information",
        "System": "Warning"
      }
    }
  },
  "ElasticConfiguration": {
    "Uri": "http://localhost:9200"
  },
  "ElasticApm": {
    "ServerUrl": "http://localhost:8200",
    "ServiceName": "CustomerApp",
    "Environment": "production",
    "CloudProvider":  "none",
    "LogLevel": "Trace"
  },
  "AllowedHosts": "*"
}
这是我在程序开始运行时在.exe文件应用程序上看到的内容:

我运行程序并在浏览器上执行一些操作。然后我去检查代理的状态,它说还没有从代理那里收到任何数据。但我做的正是他们想要的


我是否遗漏了指南中没有的内容?

使用APM将是实现这一点的最简单方法,因为它非常简单


.Net APM代理了解事务的概念,可以在处理(Serilog或NLog)方面提供很大帮助。

谢谢,我将继续尝试使用APM并为APM安装.Net代理!太棒了,如果您遇到任何问题,请告诉我们,但这应该是直截了当的。我遇到了一个问题,我似乎无法理解为什么在项目中实现并运行数据时,没有从代理处收到数据。请参阅原文中的更新部分。Greta job至今。您是否可以检查并添加最后一个代码段,以便获得有关引擎盖下发生的事情的一些跟踪信息?另外,请务必查看这些提示,了解哪些地方可能会出错。谢谢!我继续并删除了
setup.cs
中包含
app.useAllesticapm()的行
to
app.UseElasticApm(配置,新的HttpDiagnosticsSubscriber(),新的EfCoreDiagnosticsSubscriber())然后,当我运行项目并对应用程序执行操作并检查代理状态时,它仍然不断地告诉我没有传递任何数据。然后我检查了故障排除页面,但在.exe文件中找不到它显示的内容。请参阅更新部分了解我的发现。
{
  "ApplicationName": "customer-simulation-es-app",
  "Serilog": {
    "MinimumLevel": {
      "Default": "Information",
      "Override": {
        "Microsoft": "Information",
        "System": "Warning"
      }
    }
  },
  "ElasticConfiguration": {
    "Uri": "http://localhost:9200"
  },
  "ElasticApm": {
    "ServerUrl": "http://localhost:8200",
    "ServiceName": "CustomerApp",
    "Environment": "production",
    "CloudProvider":  "none",
    "LogLevel": "Trace"
  },
  "AllowedHosts": "*"
}