Vmware 迁移到steeltoe 3.0后,steeltoe serilog动态记录器不工作

Vmware 迁移到steeltoe 3.0后,steeltoe serilog动态记录器不工作,vmware,asp.net-core-3.1,pcf,steeltoe,Vmware,Asp.net Core 3.1,Pcf,Steeltoe,我在.net core 3.1应用程序中使用了steeltoe 2.4.3。最近我将steeltoe软件包更新到v3.0.1,看起来日志不是serilog格式的。我不知道出了什么问题。我的应用程序设置中有serilog配置,如下所示 { "management": { "endpoints": { "path": "/myexample/cloudfoundryapplication"

我在.net core 3.1应用程序中使用了steeltoe 2.4.3。最近我将steeltoe软件包更新到v3.0.1,看起来日志不是serilog格式的。我不知道出了什么问题。我的应用程序设置中有serilog配置,如下所示

  {
    "management": {
    "endpoints": {
      "path": "/myexample/cloudfoundryapplication",
      "cloudfoundry": {
        "validateCertificates": false
      },
      "actuator": {
        "exposure": {
          "include": [ "*" ],
          "exclude": [ "env", "refresh" ]
        }
      }
    }
  },

  "Serilog": {
    "MinimumLevel": {
      "Default": "Information",
      "Override": {
        "Microsoft": "Information",
        "Steeltoe": "Information"
      }
    },
    "WriteTo": [
      {
        "Name": "Console",
        "Args": {
          "formatter": "Serilog.Formatting.Compact.CompactJsonFormatter, Serilog.Formatting.Compact"
        }
      },
      {
        "Name": "Trace",
        "Args": {
          "formatter": "Serilog.Formatting.Compact.CompactJsonFormatter, Serilog.Formatting.Compact"
        }
      }
    ],
    "Enrich": [ "FromLogContext" ]
  },
  "AllowedHosts": "*"
}
<PropertyGroup>
   <TargetFramework>netcoreapp3.1</TargetFramework>
   <GenerateDocumentationFile>true</GenerateDocumentationFile>
 </PropertyGroup>

 <ItemGroup>
   <None Update="wwwroot\**\*;*.yml">
     <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
   </None>
 </ItemGroup>

 <ItemGroup>
   <PackageReference Include="Serilog.Sinks.Trace" Version="2.1.0" />
   <PackageReference Include="Serilog.Formatting.Compact" Version="1.1.0" />
   <PackageReference Include="Steeltoe.Extensions.Logging.DynamicSerilogCore" Version="3.0.1" />
   <PackageReference Include="Steeltoe.Management.CloudFoundryCore" Version="3.0.1" />
   <PackageReference Include="Steeltoe.Extensions.Configuration.CloudFoundryCore" Version="3.0.1" />
 </ItemGroup>

</Project>
Program.cs如下所示

    public static class Program
    {

        public static void Main(string[] args)
        {
            Activity.DefaultIdFormat = ActivityIdFormat.W3C;
            CreateHostBuilder(args).Build().Run();
        }
       
        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .AddCloudFoundryConfiguration()
                .ConfigureLogging((builderContext, loggingBuilder) =>
                {
                    // Add Serilog Dynamic Logger 
                    loggingBuilder.AddDynamicSerilog();
                })
                .AddCloudFoundryActuators()
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });
    }
公共静态类程序
{
公共静态void Main(字符串[]args)
{
Activity.DefaultIdFormat=ActivityIdFormat.W3C;
CreateHostBuilder(args.Build().Run();
}
公共静态IHostBuilder CreateHostBuilder(字符串[]args)=>
Host.CreateDefaultBuilder(args)
.AddCloudFoundryConfiguration()
.ConfigureLogging((builderContext,loggingBuilder)=>
{
//添加Serilog动态记录器
loggingBuilder.AddDynamicSerilog();
})
.AddCloudFoundryActuators()
.ConfigureWebHostDefaults(webBuilder=>
{
webBuilder.UseStartup();
});
}
我的csproj看起来像下面

  {
    "management": {
    "endpoints": {
      "path": "/myexample/cloudfoundryapplication",
      "cloudfoundry": {
        "validateCertificates": false
      },
      "actuator": {
        "exposure": {
          "include": [ "*" ],
          "exclude": [ "env", "refresh" ]
        }
      }
    }
  },

  "Serilog": {
    "MinimumLevel": {
      "Default": "Information",
      "Override": {
        "Microsoft": "Information",
        "Steeltoe": "Information"
      }
    },
    "WriteTo": [
      {
        "Name": "Console",
        "Args": {
          "formatter": "Serilog.Formatting.Compact.CompactJsonFormatter, Serilog.Formatting.Compact"
        }
      },
      {
        "Name": "Trace",
        "Args": {
          "formatter": "Serilog.Formatting.Compact.CompactJsonFormatter, Serilog.Formatting.Compact"
        }
      }
    ],
    "Enrich": [ "FromLogContext" ]
  },
  "AllowedHosts": "*"
}
<PropertyGroup>
   <TargetFramework>netcoreapp3.1</TargetFramework>
   <GenerateDocumentationFile>true</GenerateDocumentationFile>
 </PropertyGroup>

 <ItemGroup>
   <None Update="wwwroot\**\*;*.yml">
     <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
   </None>
 </ItemGroup>

 <ItemGroup>
   <PackageReference Include="Serilog.Sinks.Trace" Version="2.1.0" />
   <PackageReference Include="Serilog.Formatting.Compact" Version="1.1.0" />
   <PackageReference Include="Steeltoe.Extensions.Logging.DynamicSerilogCore" Version="3.0.1" />
   <PackageReference Include="Steeltoe.Management.CloudFoundryCore" Version="3.0.1" />
   <PackageReference Include="Steeltoe.Extensions.Configuration.CloudFoundryCore" Version="3.0.1" />
 </ItemGroup>

</Project>

netcoreapp3.1
真的
保存最新

AddDynamicSerilog
未(当前)添加控制台接收器,请尝试更新代码,使其如下所示:

AddDynamicSerilog(new LoggerConfiguration().WriteTo.Console())
如果未提供配置,将导致自动添加控制台接收器,并且它可能会在Steeltoe 3.0.2中发布(还没有ETA)