Azure应用程序:如何将已发布的JSON记录到我的应用程序?

问题描述:

我去我的应用服务>我的应用程序>监控>诊断日志Azure应用程序:如何将已发布的JSON记录到我的应用程序?

还有我同时启用:Application Logging (Blob)Web server logging (Storage)

通过以上的设置开始记录.log文件中,每一行是一个HTTP请求我的应用程序,这些标题:

#Fields: date time s-sitename cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Cookie) cs(Referer) cs-host sc-status sc-substatus sc-win32-status sc-bytes cs-bytes time-taken 

我感兴趣的记录张贴的JSON为服务器响应HTTP 500 如何从在Azure门户实现这一目标的要求?

如何从在Azure门户实现这一目标?

Azure Web App不提供此功能默认值。我建议你为应用程序级异常添加一个事件处理程序。在这个处理程序中,您可以记录请求主体或异常信息。以下代码供您参考。

protected void Application_Error(object sender, EventArgs e) 
{ 
    string req_JSON; 
    using (StreamReader reader = new StreamReader(Request.InputStream)) 
    { 
     req_JSON = reader.ReadToEnd(); 
    } 
    //you could log the json to anywhere you want 

    Exception excpt = Server.GetLastError().GetBaseException(); 
    //you also could log the exception which encounted at server 
} 

不清楚你用什么来编写你的应用程序,但是如果你使用.net,你需要使用System.Diagnostics.Trace命名空间。

在这种情况下,因为你正在得到一个5XX http错误,我假设有某种异常被抛出,缺少一个try/catch。

一旦找到,那么你添加的东西,如:

System.Diagnostics.Trace.TraceError(“如果你看到的是,一些糟糕的事情发生” + postedJSON);

这将导致json被添加到应用程序日志中。

您可以获取关于应用服务的详细信息在这里记录:https://docs.microsoft.com/en-us/azure/app-service/web-sites-enable-diagnostic-log

+0

但要找出什么是异常,我需要知道是什么导致它。我想知道服务器响应5xx时用户发送了什么 – sports