Я не вижу журналы в Azure Log Stream - PullRequest
2 голосов
/ 19 марта 2020

Я пытаюсь записать информацию о моем ASP. NET Базовом приложении, и я не могу найти способ отобразить логи в Azure Log Stream. Приложение успешно регистрируется, когда я отлаживаю в Visual Studio, но ничего не вижу, когда я публикую sh в Azure.

. Вот так выглядит мой журнал службы приложений: журналы службы приложений

Я пытался войти в систему, используя различные методы, которые я нашел в документации Microsoft, но ни один из них не помог.

    [HttpGet]
    public string Index()
    {
        Trace.TraceInformation("You are in the face recognition controller. Trace");
        _logger.LogInformation("You are in the face recognition controller. Logger");
        return "You are in the face recognition controller";
    }

Конструктор контроллера:

    private readonly ILogger _logger;
    public FaceRecognitionController(ILoggerFactory loggerFactory)
    {
        _logger = loggerFactory.CreateLogger<FaceRecognitionController>();
    }

Настройка метод:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        loggerFactory.CreateLogger("console");
        loggerFactory.CreateLogger("debug");

        app.UseHttpsRedirection();

        app.UseRouting();

        app.UseAuthorization();

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllers();
        });
    }

Кто-нибудь знает, что я могу сделать?

Скриншот журнала потоков: введите описание изображения здесь

1 Ответ

1 голос
/ 19 марта 2020

Для. NET core 3.1, выполните следующие действия:

1.Установите nuget packagae Microsoft.Extensions.Logging.AzureAppServices, Версия 3.1.2 и Microsoft.Extensions.Logging.Console, версия 3.1.2 для вашего проекта.

2. В Startup.cs -> метод ConfigureServices добавьте следующий код:

    public void ConfigureServices(IServiceCollection services)
    {
        //other code

        //add the following code
        services.AddLogging(loggingBuilder =>
        {
            loggingBuilder.AddConsole();
            loggingBuilder.AddDebug();
            loggingBuilder.AddAzureWebAppDiagnostics();
        });
    }

затем в классе контроллера код выглядит следующим образом:

    private readonly ILogger<HomeController> _logger;

    public HomeController(ILogger<HomeController> logger)
    {
        _logger = logger;
    }

    public IActionResult Index()
    {
        _logger.LogInformation("**********first: hello, this is a test message!!!");
        _logger.LogInformation("**********second: hello, this is a test message!!!");
        return View();
    }

3.Publi sh в azure, а затем настройте «Журналы службы приложений», как указано в вашем сообщении.

4.Нажмите «Поток журналов» на портале azure, затем зайдите на веб-сайт, вы можете просмотреть журналы:

enter image description here

Примечание : Вы всегда должны использовать ILogger в ядре asp. net для ведения журнала, Trace.TraceInformation может не работать для него.

...