如何配置 Serilog 以正确打印特殊字符?

How do I configure Serilog to print special characters correctly?

我使用 Serilog 作为滚动文件记录器。 在控制台应用程序开始时,我在 ILogger 上调用了这个自定义扩展方法。

        public static void LogStartExecution<TCategoryName>(this ILogger<TCategoryName> logger)
        {
            logger.LogInformation("DÉBUT Traitement {0}", typeof(TCategoryName));
        }

        public static void ConfigureLogging(IServiceCollection services, LoggingConfig loggingConfig)
        {
            // Initialize serilog logger
            Log.Logger = new LoggerConfiguration()
                 .WriteTo.File(path: @$"{loggingConfig.Path}\{loggingConfig.FileName}",
                               rollingInterval: RollingInterval.Day,
                               rollOnFileSizeLimit: true,
                               fileSizeLimitBytes: 5000000,
                               retainedFileCountLimit: 100)
                 .MinimumLevel.Debug()
                 .Enrich.FromLogContext()
                 .CreateLogger();

            // Add logging
            services.AddLogging(loggingBuilder =>
            {
                loggingBuilder.AddConsole();
                loggingBuilder.AddSerilog();
                loggingBuilder.AddDebug();
            });
        }

结果输出如下: 2020-05-19 19:39:56.158 -04:00 [INF] D_BUT Traitement Xnt.Annotation.Retrait.TraitementRetrait

特殊字符“É”看起来像乱码。

如何配置Serilog才能正确输出特殊字符。 文化应该是 fr-CA

添加参数'encoding: Encoding.UTF8'解决问题。

.Logger = new LoggerConfiguration()
   .WriteTo.File(path: @$"{loggingConfig.Path}\{loggingConfig.FileName}",
                 rollingInterval: RollingInterval.Day,
                 rollOnFileSizeLimit: true,
                 fileSizeLimitBytes: 5000000,
                 retainedFileCountLimit: 100,
                 encoding: Encoding.UTF8)