[英]Serilog not writing to file
為我的 .net 核心應用程序設置 Serilog,一切都編譯並運行但不寫入文件。 我怎樣才能查明問題所在?
我只使用 Serilog package - 但似乎還有很多其他的,我很樂意使用另一個。
在我的 startup.cs 我有
using Serilog;
public Startup(IConfiguration configuration)
{
Configuration = configuration;
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.ReadFrom.Configuration(configuration)
.CreateLogger();
}
在我的 appsettings.json 我有
{
"AllowedHosts": "*",
"Serilog": {
"MinimumLevel": "Debug",
"Override": {
"Microsoft.AspNetCore": "Warning"
},
"WriteTo": [
{
"Name": "Console"
},
{
"Name": "File",
"Args": {
"path": "C:\\log\\Batching\\apptest.log"
}
}
]
}
}
在我的 Program.cs 我有
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseSerilog()
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
最后我用這個語句來測試寫作:
Log.Information("write something to file");
它不工作。 接下來我可以嘗試什么?
正如文檔中提到的:
要將文件接收器與Microsoft.Extensions.Configuration
一起使用,例如 ASP.NET Core 或 .NET Core,請使用Serilog.Settings.Configuration
package
你可以在這個頁面找到不同包的介紹: https://github.com/serilog
我嘗試了這些包:
在program.cs中設置如下:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.UseSerilog((context, configuration) =>
{
var config = context.Configuration;
configuration.ReadFrom.Configuration(config);
});
它適用於我的情況:
更新:
我在 appsettings.json 中配置如下:
我也試過我桌面的絕對路徑,它也可以
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.