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

在launchSettings.json中使用自定义主机名,如何让日志显示该主机名?

让ASP.NET Core启动日志显示自定义域名的方案

当你在launchSettings.json里配置自定义域名(比如mysite.local)时,启动日志会显示[::]:端口而非你设置的域名,但用localhost就能正常显示——这是因为ASP.NET Core默认绑定非环回域名时,会用IPv6通配符地址[::]监听,日志输出的是实际绑定的网络地址,不是配置里的域名。

下面是几种能让自定义域名出现在日志里的方法:

方法1:显式配置Kestrel绑定自定义域名

直接在Program.cs里指定Kestrel要绑定的域名,这样日志就会输出你设置的域名:

var builder = WebApplication.CreateBuilder(args);

// 配置Kestrel监听规则
builder.WebHost.ConfigureKestrel(options =>
{
    // 绑定HTTPS端口6200到mysite.local
    options.ListenAnyIP(6200, listenOptions =>
    {
        listenOptions.UseHttps();
        listenOptions.UseHostname("mysite.local");
    });
    // 绑定HTTP端口5200到mysite.local
    options.ListenAnyIP(5200, listenOptions =>
    {
        listenOptions.UseHostname("mysite.local");
    });
});

var app = builder.Build();
app.Run();

配置完成后,启动日志就会显示https://mysite.local:6200和http://mysite.local:5200。

方法2:读取配置URL直接输出日志

先确保本地hosts文件已经把mysite.local映射到环回地址:

  • Windows路径:C:\Windows\System32\drivers\etc\hosts
  • Linux/macOS路径:/etc/hosts
    添加以下内容:
127.0.0.1  mysite.local
::1        mysite.local

然后在Program.cs里添加自定义日志输出,直接读取launchSettings.json里配置的applicationUrl:

var builder = WebApplication.CreateBuilder(args);

var app = builder.Build();

// 自定义输出监听地址日志
var appUrls = app.Configuration["ASPNETCORE_URLS"] ?? string.Join("; ", app.Urls);
app.Logger.LogInformation("Now listening on: {Urls}", appUrls);

app.Run();

这样启动时会直接输出你配置的自定义域名地址,替代默认的监听日志。

方法3:自定义控制台日志格式化器(进阶)

如果需要统一日志格式,可以自定义控制台日志格式化器,把默认输出的[::]:端口替换成配置的域名。不过这种方式步骤较多,适合有统一日志需求的场景。

以上几种方法都能实现需求,推荐第一种,因为它直接控制Kestrel的绑定逻辑,日志输出更准确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 00:45:00