我想把打印出来的信息保存到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格式保存数据,这样结构就清晰了,便于我们查看,我需要做些什么,谢谢您的建议。
发布于 2022-01-14 06:25:49
在ASP.NET内核中配置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在ASP.NET Core中使用Serilog,而不是默认的记录器:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseSerilog()
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}


发布于 2022-01-14 02:54:23
首先,您需要通过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://stackoverflow.com/questions/70704937
复制相似问题