我想把列印出來的資訊保存成txt文本,方便我們查看重要資訊。
Loggers are created using a LoggerConfiguration object:
Log.Logger = new LoggerConfiguration().CreateLogger();
Log.Information("No one listens to me!");
// Finally, once just before the application exits...
Log.CloseAndFlush();
這是我查檔案的一些代碼,我想把資料保存成Json格式,這樣結構清晰方便我們查看,我需要做什么,謝謝你的建議。
uj5u.com熱心網友回復:
在 ASP.NET Core 中配置 Serilog:
包裹:
<ItemGroup>
<PackageReference Include="Serilog.AspNetCore" Version="4.1.0" />
<PackageReference Include="Serilog.Settings.Configuration" Version="3.3.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="4.0.1" />
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
</ItemGroup>
appsettings.json:
{
"Serilog": {
"MinimumLevel": "Information",
"Override": {
"Microsoft.AspNetCore": "Warning"
},
"WriteTo": [
{
"Name": "Console "
},
{
"Name": "File",
"Args": {
"path": "Serilogs\\AppLogs.log",
"formatter": "Serilog.Formatting.Json.JsonFormatter, Serilog"
}
}
]
}
}
如上圖,檔案接收器需要一個引數,其中我們需要指定日志檔案名和檔案路徑。該路徑可以是絕對的或相對的。在這里,我指定了一個相對路徑,它將在應用程式檔案夾中創建一個檔案夾 serilogs 并寫入該檔案夾中的檔案 AppLogs.log。
然后在startup.cs中添加代碼,在建構式中讀取這些Serilog設定,如下圖:
public Startup(IConfiguration configuration)
{
Configuration = configuration;
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(configuration)
.CreateLogger();
}
然后更改 program.cs 中的代碼,指定 Host Builder 使用 ASP.NET Core 中的 Serilog,而不是默認的 logger:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseSerilog()
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}


uj5u.com熱心網友回復:
首先,您需要通過 nuget 添加對Serilog.Sinks.File的參考。
下一步是為 Logger 添加目標:
.WriteTo.File(new JsonFormatter(), "log.json")
完整清單是:
Log.Logger = new LoggerConfiguration()
.WriteTo.File(new JsonFormatter(), "log.json")
.CreateLogger();
Log.Information("No one listens to me!");
// Finally, once just before the application exits...
Log.CloseAndFlush();
檔案中的輸出log.json為:
{"Timestamp":"2022-01-14T02:49:31.5111479 00:00","Level":"Information","MessageTemplate":"No one listens to me!"}
這是你需要的嗎?
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/414093.html
標籤:
上一篇:如何手動創建控制器即服務?
