首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在日志中查看日志

如何在日志中查看日志
EN

Stack Overflow用户
提问于 2019-12-23 23:09:25
回答 2查看 1.1K关注 0票数 1

我已经启用了对FileSystem和Blob的应用程序日志记录。我使用ILogger<T>.LogInformation()Trace.WriteLine()记录消息。所有这些都不能在水珠中看到。我也无法在文件系统上找到它们。当我启用日志流时,我也看不到它们。

我是否需要在我的ASP.NET核心应用程序中配置什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-24 06:37:14

[Microsoft.Extensions.Logging.AzureAppServices][1]提供程序包将日志写入Azure App应用程序文件系统中的文本文件,并写入Azure存储帐户中的blob存储。

提供者包不包括在共享框架中。若要使用提供程序,请将提供程序包添加到项目中。

若要配置提供程序设置,请使用AzureFileLoggerOptionsAzureBlobLoggerOptions,如以下示例所示:

代码语言:javascript
复制
public static void Main(string[] args)
{
    var host = CreateHostBuilder(args).Build();

    var todoRepository = host.Services.GetRequiredService<ITodoRepository>();
    todoRepository.Add(new Core.Model.TodoItem() { Name = "Feed the dog" });
    todoRepository.Add(new Core.Model.TodoItem() { Name = "Walk the dog" });

    var logger = host.Services.GetRequiredService<ILogger<Program>>();
    logger.LogInformation("Seeded the database.");

    host.Run();
}

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureLogging(logging => logging.AddAzureWebAppDiagnostics())
            .ConfigureServices(serviceCollection => serviceCollection
                .Configure<AzureFileLoggerOptions>(options =>
                {
                    options.FileName = "azure-diagnostics-";
                    options.FileSizeLimit = 50 * 1024;
                    options.RetainedFileCountLimit = 5;
                }).Configure<AzureBlobLoggerOptions>(options =>
                {
                    options.BlobName = "log.txt";
                })
            )
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
        });

您可以参考下面的链接以获得其他参考:

https://learn.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-3.1#azure-app-service-provider

希望能帮上忙。

票数 1
EN

Stack Overflow用户

发布于 2019-12-24 09:48:25

下面是一种简单的方法(所提到的文章是这里):

我用.NET核心2.2mvc项目测试了它。

必要的nuget套餐:

Microsoft.Extensions.Logging.AzureAppServices,版本2.2.0

1.在Startup.cs -> ConfigureServices方法中,添加以下代码:

代码语言:javascript
复制
services.AddSingleton<ILoggerFactory>(new LoggerFactory());

Startup.cs -> Configure方法中,将其更改如下:

代码语言:javascript
复制
       public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
            }

            //add the following code here
            loggerFactory.AddConsole(Configuration.GetSection("Logging"));
            loggerFactory.AddDebug();

            loggerFactory.AddAzureWebAppDiagnostics(
                new AzureAppServicesDiagnosticsSettings
                {
                    OutputTemplate = "{Timestamp:yyyy-MM-dd HH:mm:ss zzz} [{Level}] {RequestId}-{SourceContext}: {Message}{NewLine}{Exception}"
                }
                );

            app.UseHttpsRedirection();
            app.UseStaticFiles();
            app.UseCookiePolicy();

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

然后在HomeController.cs中添加以下代码:

代码语言:javascript
复制
        private readonly ILogger _logger;
        public HomeController(ILoggerFactory loggerFactory)
        {
            _logger = loggerFactory.CreateLogger<HomeController>();
        }

        public IActionResult Index()
        {
            _logger.LogInformation("This is a Log information!!!");
            _logger.LogError("This is a Logger error!!!");
            return View();
        }

2.在发布到azure后,在azure门户->中,在web应用程序->应用程序服务日志中,设置blob存储。截图如下:

3.运行web,并检查指定blob存储中的日志:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59462181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档