【发布时间】:2020-11-19 21:47:05
【问题描述】:
我想在 Serilog 文件名中使用 UTC 日期时间。我在我的 appseting.json 文件中使用下面的 serilog 配置。
"Serilog": {
"Using": [],
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning",
"System": "Warning"
}
},
"Enrich": [
"FromLogContext",
"WithMachineName",
"WithProcessId",
"WithThreadId"
],
"WriteTo": [
{
"Name": "Console"
},
{
"Name": "File",
"Args": {
"path": "Logs\\log-.json",
"formatter": "Serilog.Formatting.Compact.CompactJsonFormatter, Serilog.Formatting.Compact",
"rollingInterval": "Hour",
"shared": true
}
}
]
}
下面是我用于serilog的program.cs文件代码。
public static void Main(string[] args)
{
var configuration = new ConfigurationBuilder()
.AddJsonFile("appsettings.json").Build();
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(configuration)
.CreateLogger();
try
{
CreateHostBuilder(args).Build().Run();
}
catch (Exception e)
{
Log.Fatal(e, "The Application failed to start correctly");
}
finally
{
Log.CloseAndFlush();
}
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args).UseSerilog()
.ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); });
目前,serilog 生成的日志文件名为 log-2020091323.json,它不是 UTC 日期时间。 我正在使用 asp.net core 3.1。
【问题讨论】:
-
谢谢,@RubenBartelink。但我需要文件名中的 UTC 日期,而不是文件内容。它可能在文件内容调用 UtcTimestamp 中创建了一个额外的属性。
-
抱歉选得太快了 - 我想我在搜索中也看到了其中一个预先回答的问题?
标签: c# .net-core asp.net-core-3.1 serilog