首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >steeltoe serilog动态记录器在迁移到steeltoe 3.0后无法工作

steeltoe serilog动态记录器在迁移到steeltoe 3.0后无法工作
EN

Stack Overflow用户
提问于 2020-10-30 20:26:15
回答 1查看 130关注 0票数 0

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

代码语言:javascript
复制
  {
    "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": "*"
}

Program.cs如下所示

代码语言:javascript
复制
    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>();
                });
    }

我的.csproj看起来像下面这样。

代码语言:javascript
复制
<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>
EN

回答 1

Stack Overflow用户

发布于 2020-11-07 04:52:36

AddDynamicSerilog (当前)没有添加控制台接收器,请尝试将代码更新为如下所示:

代码语言:javascript
复制
AddDynamicSerilog(new LoggerConfiguration().WriteTo.Console())

如果没有提供配置,This PR将导致控制台接收器被自动添加,并且它可能会在Steeltoe 3.0.2中发布(还没有ETA )

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

https://stackoverflow.com/questions/64608350

复制
相关文章

相似问题

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