Я загрузил очень простое приложение в Azure на .NET Core 2.1.3.
Настроил ведение журнала службы приложений следующим образом:
код:
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
}
public class Startup
{
private readonly ILogger<Startup> logger;
public Startup(IConfiguration configuration, ILogger<Startup> logger)
{
this.Configuration = configuration;
this.logger = logger;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
// Commented lines doesn't affect ...
//loggerFactory.AddConsole(this.Configuration.GetSection("Logging"));
// loggerFactory.AddDebug();
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
loggerFactory.AddAzureWebAppDiagnostics();
this.logger.LogInformation("Loading::::::::::::::::::");
app.Run(async (context) =>
{
this.logger.LogInformation("OnRequest::::::::::::::::::");
await context.Response.WriteAsync("Loading...");
});
}
}
Проблема в том, что ведение журнала работает локально, но не на лазурном.Если я открою /Log Files/Application/afg4322-201809062011.log
, мои сообщения OnRequest::::::::::::::::::
и Loading::::::::::::::::::
там не появятся.В настоящее время логика перехватывает все запросы и просто записывает сообщение в журнал.
Также я установил Microsoft.Extensions.Logging.AzureAppServices
и устранение неполадок https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/azure-apps/troubleshoot?view=aspnetcore-2.1#aspnet-core-module-stdout-log ничего не работает.
Как записать сообщение в приложение Azure?Может быть, мне не хватает какой-то простой настройки?
applicationSettings.json
:
{
"Logging": {
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
},
"Console": {
"IncludeScopes": "true"
}
}
}
Я проверил эту статью - Ядро Asp.net Core ведение журнала веб-приложения - Как включить журналы приложений в Azure для приложения Net Core 2?
Я пытаюсь избежать предложения от Ilya Chernomordik
, где он говорит установить <aspNetCore stdoutLogEnabled="true" />
и изменить SourceSwitch
,Я думаю, что это не правильное решение.