You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地运行Azure Functions(.NET7隔离模式v4)如何获取日志分类?

本地查看Function App日志分类的解决方案(.NET7 Isolated v4)

针对你遇到的本地调试时控制台日志不输出Category导致无法配置过滤规则的问题,以下是几个无需部署的本地解决方案:

1. 修改host.json自定义控制台日志模板

直接在host.json中配置控制台日志的输出模板,显式包含日志分类字段:

{
  "logging": {
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "excludedTypes": "Request"
      }
    },
    "logConsole": {
      "formatterName": "simple",
      "formatterOptions": {
        "template": "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u3}] {Category} - {Message}{NewLine}{Exception}"
      }
    },
    "logLevel": {
      "Default": "Information",
      "Microsoft": "Warning"
    }
  }
}

添加{Category}字段后,重启本地调试就能在控制台看到每条日志对应的分类标识。

2. 在Program.cs中配置自定义控制台日志格式化器

由于.NET Isolated Function基于通用主机,可直接在Program.cs中自定义控制台日志输出格式,灵活控制显示内容:

var host = new HostBuilder()
    .ConfigureFunctionsWorkerDefaults(builder =>
    {
        builder.ConfigureLogging(logging =>
        {
            logging.ClearProviders();
            logging.AddConsole(options =>
            {
                options.FormatterName = "custom";
                options.FormatterOptions = new SimpleConsoleFormatterOptions
                {
                    Template = "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u3}] {Category} - {Message}{NewLine}{Exception}"
                };
            });
        });
    })
    .Build();

host.Run();

该方式会覆盖默认日志配置,确保控制台输出包含Category信息。

3. 使用Serilog作为日志提供器

若需要更强的日志控制能力,可集成Serilog并配置输出模板显示分类:

  1. 安装NuGet包:Serilog.AspNetCore、Serilog.Sinks.Console
  2. 在Program.cs中配置Serilog:
using Serilog;

var logger = new LoggerConfiguration()
    .WriteTo.Console(outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u3}] {Category} - {Message}{NewLine}{Exception}")
    .CreateLogger();

var host = new HostBuilder()
    .ConfigureFunctionsWorkerDefaults(builder =>
    {
        builder.Services.AddLogging(logging =>
        {
            logging.ClearProviders();
            logging.AddSerilog(logger, dispose: true);
        });
    })
    .Build();

host.Run();

配置完成后,控制台日志会清晰展示每条日志的分类,便于后续在host.json中添加对应过滤规则。

内容的提问来源于stack exchange,提问作者Andrey Stukalin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 13:45:00