我对哪个项目是什么感到困惑,因为每个控制台看起来都相同并且具有相同的名称和标题,所以我希望能够更改 Visual Studio 调试器控制台的标题/名称。
我尝试更改使用:
Console.Title = "My Custom Name";
我尝试过的任何其他方法都不起作用。
通常,Azure Function 初创公司看起来像这样:
我尝试将
Console.Title = "My Custom Title";
放置在host.Run()
之前以及构建HostBuilder之前,并且在ConfigureAppConfiguration内部,这些放置都不起作用。
public static void Main()
{
// initialize here because we want to be able
LoggerConfiguration loggerConfiguration = new LoggerConfiguration()
.MinimumLevel.Information()
.MinimumLevel.Override("Microsoft", LogEventLevel.Warning)
.MinimumLevel.Override("Worker", LogEventLevel.Warning)
.MinimumLevel.Override("Host", LogEventLevel.Warning)
.MinimumLevel.Override("System", LogEventLevel.Error)
.MinimumLevel.Override("Function", LogEventLevel.Error)
.MinimumLevel.Override("Azure.Core", LogEventLevel.Error)
.MinimumLevel.Override("Azure.Storage.Blobs", LogEventLevel.Warning)
.MinimumLevel.Override("Azure.Storage.Queues", LogEventLevel.Warning)
.MinimumLevel.Override("Azure.Messaging.ServiceBus", LogEventLevel.Warning)
.WriteTo.ApplicationInsights(
TelemetryConfiguration.CreateDefault(),
TelemetryConverter.Traces,
LogEventLevel.Information)
.Enrich.FromLogContext();
if (EnvironmentExtensions.IsDevelopment())
{
const string consoleOutputTemplate = "[{Timestamp:HH:mm:ss} {Level}] {Message}{NewLine}{Exception} {Properties} {NewLine}";
loggerConfiguration.WriteTo.File(new JsonFormatter(",", formatProvider: CultureInfo.InvariantCulture), Path.ChangeExtension($"./logs-{DateTime.Today:yyyy-MM-dd}-", ".json"), rollingInterval: RollingInterval.Day)
.WriteTo.Console(outputTemplate: consoleOutputTemplate, formatProvider: CultureInfo.InvariantCulture, theme: AnsiConsoleTheme.Literate, applyThemeToRedirectedOutput: true);
}
else
{
loggerConfiguration
.Enrich.WithThreadId()
.Enrich.WithThreadName();
}
Log.Logger = loggerConfiguration.CreateLogger();
IHost host = new HostBuilder()
.ConfigureFunctionsWorkerDefaults(
worker => worker.UseNewtonsoftJson(),
options =>
{
// exceptions thrown by your user code may end up wrapped in an RpcException.
// To remove this extra layer, set the EnableUserCodeExceptions property to "true"
options.EnableUserCodeException = true;
}
)
.ConfigureAppConfiguration(builder =>
{
builder.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.AddUserSecrets(Assembly.GetExecutingAssembly(), optional: true);
})
.ConfigureServices((context, services) => ConfigureAppServices(services, context.Configuration))
.ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.AddSerilog(Log.Logger, dispose: true);
})
.Build();
host.Run();
首先创建.NET 6 Function App并设置控制台标题。运行成功:
然后创建.NET隔离功能应用程序并更改控制台标题。它没有按预期工作:
观察到隔离的功能应用程序有一个单独的工作进程,并且在控制台运行程序中设置标题没有影响。
2022 年报告了与 Azure-functions-dotnet-worker 控制台名称/标题更改相关的类似问题,许多开发人员评论说这是必需的功能,但由于不活动而关闭。通过引用上一个票证,在 GitHub Azure-Functions-dotnet-worker 存储库中提出新票证 - GitHub-AF-dotnet-worker-issue-960。