Azure应用程序日志未显示跟踪消息

时间:2018-11-06 13:58:44

标签: c# api azure logging asp.net-core

我试图在Azure中使用带有Asp.Net Core 2 API的跟踪日志记录。我有一个AppService,并转到“诊断日志”部分并启用了Applicationo Logging(Blob),并且根据this documentation,这应该是我要做的全部工作?我已经通过以下端点对此进行了测试:

    [AllowAnonymous]
    [Route("api/TraceWarning")]
    public async Task<IActionResult> TraceWarning()
    {
        Trace.TraceWarning("This is a TraceWarning Message");
        return Ok();
    }

    [AllowAnonymous]
    [Route("api/TraceError")]
    public async Task<IActionResult> TraceError()
    {
        Trace.TraceError("This is a TraceError Message");
        return Ok();
    }

    [AllowAnonymous]
    [Route("api/ThrowError")]
    public async Task<IActionResult> ThrowError()
    {
        throw new Exception("THROW ERROR");
        return Ok();
    }

应用程序日志显示了命中端点,并显示了错误的堆栈跟踪,这很好,但是我没有收到消息。

我尝试了来自不同搜索/指南的许多不同内容,但似乎无法使其正常工作。

我唯一的结论是,我必须在某处缺少某种配置。例如,我是否需要更改我的Web配置(文档没有说,但是我在其他地方看到过)?我的appsettings.json中的LogLevel应该是什么?我是否被迫与Application Isights完全集成(我将如何做到这一点)?除了编写启动时需要包含的跟踪信息之外,还需要其他代码吗?

谢谢您的帮助,这使我无所适从。

1 个答案:

答案 0 :(得分:1)

  

应用程序诊断允许您捕获Web应用程序产生的信息。 ASP.NET应用程序可以使用System.Diagnostics.Trace 类将信息记录到应用程序诊断日志中。

您提供的文档正在支持 .net Web应用,以便使用System.Diagnostics.Trace来记录信息。

如果您使用的是Asp.net Core 2 API,则ASP.NET Core新项目模板已经使用Startup.Configure方法中的以下代码设置了一些基本的日志记录提供程序:

loggerFactory.AddConsole(); 
loggerFactory.AddDebug();

有关更多详细信息,您可以参考此article和此one