我配置了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中做些相同的行为吗?
答案 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。