Я создал новое веб-приложение .net core 2.1 и развернул его в Azure и Log Stream, а также ведение журнала приложений в хранилище BLOB-объектов, похоже, не соответствует моей конфигурации ведения журнала.
Я создал новоеРешение с новым проектом в Visual Studio 2019 для веб-приложения .net core 2.1.В маршрутном указателе домашнего контроллера мы добавили в журнал строк некоторую информацию, которая выглядит следующим образом:
private readonly ILogger<HomeController> _logger;
public HomeController(ILogger<HomeController> logger)
{
_logger = logger;
}
public IActionResult Index()
{
_logger.LogInformation("=========================================");
_logger.LogError("=========================================");
return View();
}
И в appsettings.Development.json
мы установили LogLevel
для системы и Microsoft на «Ошибка»,
Я ожидаю, что поведение в Azure будет таким же, как при локальном запуске.Локально при доступе к индексируемому маршруту и если для appsettings.Development.json LogLevel для System и Microsoft установлено значение «Информация», мы видим этот вывод в окне вывода отладки:
Microsoft.AspNetCore.Hosting.Internal.WebHost: Информация: запрос на запуск HTTP / 1.1 GET http // localhost: 44378 /
Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationHandler: Информация: Identity.Application не аутентифицирована.Сообщение об ошибке: сбой при снятии защиты с билета Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker: Информация: маршрут соответствует {action = "Index", controller = "Home", page = "", area = ""}}.Выполнение действия контроллера с подписью Microsoft.AspNetCore.Mvc.IActionResult Index () на контроллере LoggingTest.Controllers.HomeController (LoggingTest).Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker: Информация: выполнение метода действия LoggingTest.Controllers.HomeController.Index (LoggingTest) - Состояние проверки: действительный LoggingTest.Controllers.HomeController: Информация: ======================================== LoggingTest.Controllers.HomeController: Ошибка: ========================================= Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker: Информация: метод выполненных действий LoggingTest.Controllers.HomeController.Index(LoggingTest), вернул результат Microsoft.AspNetCore.Mvc.ViewResult в 7,9475мс.Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor: Информация: Выполняется ViewResult, работает представление индекса.Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor: Information: Executed ViewResult - просмотр индекса, выполненного за 11,4824 мс.Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker: Информация: выполненное действие LoggingTest.Controllers.HomeController.Index (LoggingTest) в 37.629ms Microsoft.AspNetCore.Hosting.Internal.WebHost: Информация: запрос завершен в 54.1369ms 200 текст / hml;charset = utf-8
А когда для System и Microsoft установлено значение «Ошибка»:
LoggingTest.Controllers.HomeController: Информация: ================================================ LoggingTest.Controllers.HomeController: Ошибка:. =========================================
Мы хотим, чтобы это было такбыть нашим выходом в наш LogStream и Logs.По сути, мы не хотим, чтобы информация о EfCore и другой информации, относящейся к Microsoft, находилась в журнале, если только в журнале LogLevel «Error».Но мы хотим, чтобы наши журналы уровня «Информация» регистрировались.
После публикации в Azure и настройки разработки ASPNETCORE_ENVIRONMENT на использование той же настройки Appsettings.Поток журнала и большой двоичный объект для журнала выглядят следующим образом после вызова индекса:
2019-05-17 15: 57: 24.844 +00: 00 [Информация] Microsoft.AspNetCore.Hosting.Internal.WebHost: запрос на запуск HTTP / 1.1 GET http // loggingtest20190517104201.azurewebsites.net / 2019-05-17 15: 57: 24.844 +00: 00 [Информация] Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker: Маршрут соответствует {action ="Index", controller = "Home", page = "", area = ""}.Выполнение действия LoggingTest.Controllers.HomeController.Index (LoggingTest) 2019-05-17 15: 57: 24.844 +00: 00 [Информация] Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker: Выполнение метода действия LoggingTest.Controllers.HomeController.Inx(LoggingTest) - Состояние проверки: действительно 2019-05-17 15: 57: 24.844 +00: 00 [Информация] LoggingTest.Controllers.HomeController: ========================================= 2019-05-17 15: 57: 24.845 +00: 00 [Ошибка] LoggingTest.Controllers.HomeController: ========================================= 2019-05-17 15: 57: 24.845 +00: 00[Информация] Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker: выполненный метод действия LoggingTest.Controllers.HomeController.Index (LoggingTest), вернул результат Microsoft.AspNetCore.Mvc.ViewResult в 0,0635 мс.2019-05-17 15: 57: 24.845 +00: 00 [Информация] Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor: Выполнение ViewResult, индекс работающего представления.2019-05-17 15: 57: 24.845 +00: 00 [Информация] Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor: Executed ViewResult - просмотр индекса, выполненного за 0,8902 мс.2019-05-17 15: 57: 24.845 +00: 00 [Информация] Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker: выполнено действие LoggingTest.Controllers.HomeController.Index (LoggingTest) в 1.0913ms 2019-05-17 15:57: 24.846 +00: 00 [Информация] Microsoft.AspNetCore.Hosting.Internal.WebHost: запрос выполнен в 1,4542 мс 200 текст / html;charset = utf-8 2019-05-17 15: 57: 24.941 +00: 00 [Информация] Microsoft.AspNetCore.Hosting.Internal.WebHost: запрос на запуск HTTP / 1.1 GET
Остальная часть журнала удалена длякраткость ...
Вот мой файл appsettings.development.json:
{
"Logging": {
"LogLevel": {
"Default": "Debug",
"System": "Error",
"Microsoft": "Error"
}
}
}
Вот мой файл appsettings.json:
{
"ConnectionStrings": {
"DefaultConnection": "Removed"
},
"AllowedHosts": "*"
}
Набор переменных окружения в веб-приложении Azure:
ASPNETCORE_ENVIRONMENT = Разработка
Program.cs и Startup.cs не изменяются изшаблон проекта.
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
Почему мои уровни журналов не соблюдаются?