我将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]开始处理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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句