Почему я не вижу журналы в службе приложений даже после настройки необходимых параметров в Azure? - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть два утверждения в моем веб-приложении, построенном с использованием NET Core

System.Diagnostics.Trace.TraceError("header:" + certHeader);

_logger.LogInformation("Certificate with thumbprint");

Я опубликовал его на Azure App Service и вот мои настройки

enter image description here

Все еще Application папка пуста, когда я пытаюсь просмотреть ее, используя kudu scm

enter image description here

Iдаже пытался использовать опцию view streaming log от visual studio.Он не печатал ни одного журнала: (

enter image description here

Вот web.config

  <?xml version="1.0" encoding="utf-8"?>
  <configuration>
  <system.webServer>        
      <handlers>
          <add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
      </handlers>
      <httpPlatform processPath="%DNX_PATH%" arguments="%DNX_ARGS%" stdoutLogEnabled="true" startupTimeLimit="3600"/>
  </system.webServer>

Итакгде именно я могу видеть свои журналы?

Я полагаю, если статус ответа 200 OK, трассировка может не регистрироваться? Просто предположение

1 Ответ

0 голосов
/ 14 декабря 2018

В основном веб-приложении asp.net мы используем ILogger для ведения журнала.Более подробная информация: здесь .

С вашими настройками на портале Azure все в порядке, просто добавьте немного кода в ваш проект, например, как показано ниже:

В Startup.cs -> Настроить метод, метод выглядит следующим образом (Используйте ILoggerFactory здесь):

    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory logger)
    {
        if (env.IsDevelopment())
        {
            app.UseBrowserLink();
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
        }

       //add the following two lines of code
       logger.AddConsole();
       logger.AddDebug();

        app.UseStaticFiles();

        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");
        });
    }

Затем в файле controller.cs:

      public class HomeController : Controller
        {
            private readonly ILogger _logger;
            public HomeController(ILoggerFactory loggerFactory)
            {
                _logger = loggerFactory.CreateLogger<HomeController>();
            }

            public IActionResult Index()
            {
                return View();
            }

            public IActionResult About()
            {
                _logger.LogInformation("ILogger --- this is from contact page!!!! info");
            _logger.LogError("ILogger --- this is from contact page xxxx error");                

            return View();
            }

           //other code
    }

Вы также можете изменить уровень журнала в настройках приложения.Файл json в вашем проекте, уровень по умолчанию - предупреждение.

После публикации в azure журналы, записанные ILogger, можно увидеть в потоке журналов.enter image description here

...