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

问题描述 投票:0回答:1

我使用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ÃBUTTraitement Xnt.Annotation.Retrait.TraitementRetrait

特殊字符'É'看起来像胡言乱语。

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

asp.net-core special-characters serilog
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.