Azure Web应用程序(nodejs)日志不会出现在blob存储中,但webjob日志会出现

时间:2018-01-12 17:41:20

标签: node.js azure azure-storage-blobs azure-webjobs

我配置了Azure Web App应用程序日志记录(诊断日志)。

https://docs.microsoft.com/en-us/azure/app-service/web-sites-enable-diagnostic-log

我有一个nodejs后端api(express)和一些webjobs托管在同一个webapp上。

我在代码中使用console.info/console.error进行日志记录。

在门户网站的logstream / console中,我可以看到来自webjobs的日志格式化为日期,pid,级别......但是来自实际应用程序的日志没有格式化。

2 console.info的示例。首先是来自api,第二个来自一个webjob:

  

开始处理命令DeleteCustomerCommand

     

2018-01-12T17:02:16 PID [9484]信息CustomerDeletedEvent已处理

问题是在blob存储中,只存储来自webjobs的日志。我想这种格式是Azure的要求。

你知道为什么console.info的行为不同吗?我能在api中做些相同的行为吗?

1 个答案:

答案 0 :(得分:0)

  

你知道为什么console.info的行为不同吗?

Azure WebJobs和Azure Web Apps实际上在不同的上下文中运行。 WebJobs托管在Kudu SCM站点上,由Kudu API执行,捕获脚本日志并为您格式化;虽然Web Apps托管在Microsoft IIS上,但iisnode模块中没有内置任何内容来执行此操作。

  

我能在api中做些相同的行为吗?

您需要查看其他模块以提供更丰富的格式化体验。例如:winston。此外,winston还有Azure blob storage transport