我试图在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完全集成(我将如何做到这一点)?除了编写启动时需要包含的跟踪信息之外,还需要其他代码吗?
谢谢您的帮助,这使我无所适从。
答案 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();