Во-первых, не рекомендуется настраивать уровень журнала в коде. Вы можете легко настроить уровень журнала в файле appsettings.json
. Поэтому в методе Program.cs
-> public static IWebHost BuildWebHost
измените код на следующий:
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseApplicationInsights()
.UseStartup<Startup>()
.Build();
Затем в appsettings.json
(также щелкните правой кнопкой мыши файл -> свойства -> установите «копировать в выходной каталог» «Копировать, если новее»):
{
"Logging": {
"IncludeScopes": false,
"ApplicationInsights": {
"LogLevel": {
"Default": "Trace"
}
},
"Console": {
"LogLevel": {
"Default": "Warning"
}
}
},
"ApplicationInsights": {
"InstrumentationKey": "the key"
}
}
В контроллере, например ValuesController
:
public class ValuesController : Controller
{
private readonly ILogger _logger;
public ValuesController(ILoggerFactory loggerFactory)
{
_logger = loggerFactory.CreateLogger<ValuesController>();
}
// GET api/values
[HttpGet]
public IEnumerable<string> Get()
{
_logger.LogInformation("ApiController, information");
_logger.LogWarning("ApiController, warning");
_logger.LogCritical("ApiController, critical");
_logger.LogWarning("ApiController, error");
_logger.LogDebug("ApiController, debug");
return new string[] { "value1", "value2" };
}
}
Запустите проект и подождите несколько минут (понимание приложения всегда будет занимать От 3 до 5 минут или более для отображения данных). Затем перейдите к azure portal -> журналам анализа приложений, помните, что все журналы, записанные ILogger
, хранятся в таблице «traces». Просто напишите запрос наподобие «трассировки» и укажите правильный временной диапазон, вы должны увидеть все журналы, как показано ниже: