Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.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
.net 我怎样才能得到一份网络工作';以编程方式记录日志?_.net_Azure_Logging_Monitoring_Azure Webjobs - Fatal编程技术网

.net 我怎样才能得到一份网络工作';以编程方式记录日志?

.net 我怎样才能得到一份网络工作';以编程方式记录日志?,.net,azure,logging,monitoring,azure-webjobs,.net,Azure,Logging,Monitoring,Azure Webjobs,我们已经创建了一个Azure WebJob来为我们的WebAPI项目执行一些预定的数据库清理。现在,我们希望在我们自己的管理web应用程序中显示最新的作业运行情况,以监控每天的清理情况。如何获取给定WebJob的最新50个函数调用,包括相应的输出日志和持续时间 此要求的一些背景: 我们提出的清理过程非常简单,但我们怀疑在不久的将来它将开始成为我们的瓶颈,因此我们希望监控每天运行多长时间,以便在需要时使用更具可扩展性的方法主动重新设计它。理想情况下,我希望得到最后50次左右的运行,并生成一个图表,

我们已经创建了一个Azure WebJob来为我们的WebAPI项目执行一些预定的数据库清理。现在,我们希望在我们自己的管理web应用程序中显示最新的作业运行情况,以监控每天的清理情况。如何获取给定WebJob的最新50个函数调用,包括相应的输出日志和持续时间

此要求的一些背景:

我们提出的清理过程非常简单,但我们怀疑在不久的将来它将开始成为我们的瓶颈,因此我们希望监控每天运行多长时间,以便在需要时使用更具可扩展性的方法主动重新设计它。理想情况下,我希望得到最后50次左右的运行,并生成一个图表,显示在这段时间内执行所需的时间

我们考虑的第一件事就是创建我们自己的数据库,并用秒表将每次执行打包,然后将持续时间保存到数据库中。然后,我们可以查询这个数据库,并以这种方式构建图形

但由于这是我们第一次使用WebJobs,我们很快发现我们想要记录的大部分内容已经由WebJobs SDK自动记录。诸如开始时间、持续时间、函数名等都已经存在于日志中,足以让我们构建自己的显示

接下来的问题是如何以合适的格式从MVC项目中查询这些日志。当然,我可以直接从blob存储中读取数据并手动加入数据,但我正在寻找更高级的API。对我来说,WebJobs使用的存储容器是一个实现细节,将来可能会发生变化

当我搜索这些数据时,我发现了很多获取数据的方法,但我觉得它们都不是我真正想要的

  • 存在返回作业的一组运行数据的。这看起来还可以,但是我想要一些可以直接从.Net调用的东西,我也希望看到操作的控制台输出,而且我似乎找不到使用此cmdlet的控制台输出

  • 对于给定的作业,需要查询日志。该版本似乎返回与PowerShell版本完全相同的响应(PowerShell cmdlet可能在幕后调用相同的REST端点)。所以同样的问题也适用


通过查看blob存储帐户上创建的实际文件,我可以通过检查
/azure webjobs hosts/output logs
文件夹并将其中的id与
/azure webjobs dashboard/functions/instances/
文件夹上的值相关联来访问每次运行的输出日志,因此,我怀疑有可能以某种方式让他们使用更高级的API。另外,如果有这样的API,我就不必担心必须为每个API响应和类似的事情创建类型安全模型。

您可以从任何ftp客户端或通过web API提取这些文件。

使用

有关更多信息,请参阅此答案:

发布此问题后,现在已通过JobHost配置公开了一组TraceWriter

使用该集合,您现在可以将日志写入自定义存储库并查询该存储库


下面是一个示例:

我的处境与您相同,您是否有幸找到了检索日志的实现。