我正在尝试在Serilog.AspNetCore 3.2.0
WebAssembly
应用程序中使用Blazor
登录到文件。
我在这里使用了Nicholas Blumhardt的博客条目;
Setting up Serilog in ASP.NET Core 3.2
在blazor.server应用程序的Program.cs
中,我有以下代码;
public static void Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.Enrich.FromLogContext()
.WriteTo.Console(new RenderedCompactJsonFormatter())
.WriteTo.File(new RenderedCompactJsonFormatter(), "/logs/log.ndjson")
.CreateLogger();
try
{
Log.Information("Starting up");
BuildWebHost(args).Run();
}
catch (Exception ex)
{
Log.Fatal(ex, "Application start-up failed");
}
finally
{
Log.CloseAndFlush();
}
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseConfiguration(new ConfigurationBuilder()
.AddCommandLine(args)
.Build())
.UseStartup<Startup>()
.Build();
我安装了以下软件包;
Serilog.AspNetCore 3.2.0
Serilog.Sinks.File 4.1.0
Serilog.Sinks.MSSqlServer 5.5.0
((为了完成,我包括了MSSql Sink参考,因为下一步是要登录到数据库)。
但是,当我在本地调试以及在IIS中发布到服务器时,没有创建log.ndjson吗?
默认情况下,如果从Visual Studio运行,将在项目目录中创建文件。因此,这取决于您如何运行应用程序。因此您必须更改文件的路径。