.net core Serilog和.NET核心Web API日志文件isn';t创造
我只是从Serilog开始。 尽管有所有的代码示例/tut,但我在网上发现我无法将其输出到文件(文件甚至没有创建)。我的应用程序是一个Web API(.NET Core 3.1),我正在引用.net core Serilog和.NET核心Web API日志文件isn';t创造,.net-core,serilog,.net Core,Serilog,我只是从Serilog开始。 尽管有所有的代码示例/tut,但我在网上发现我无法将其输出到文件(文件甚至没有创建)。我的应用程序是一个Web API(.NET Core 3.1),我正在引用 Serilog.AspNetCore(3.4.0) Serilog.Settings.Configurations (3.1.0) Serilog.Sinks.File (4.1.0) My appsettings.json: { "Serilog": { "Mi
Serilog.AspNetCore(3.4.0)
Serilog.Settings.Configurations (3.1.0)
Serilog.Sinks.File (4.1.0)
My appsettings.json:
{
"Serilog": {
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Warning",
"System": "Warning"
},
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "C:\\DEV\\Logs\\mylog.txt",
"rollingInterval": "Day"
}
}
]
}
},
"AllowedHosts": "*"
}
"Serilog": {
"Using": [ "Serilog.Sinks.RollingFile" ],
"MinimumLevel": "Debug",
"WriteTo": [
{
"Name": "RollingFile",
"Args": {
"pathFormat": "C:\\Logs\\ScreenPop\\Log-{Date}.txt"
}
}
]
},
我的程序.cs
public static void Main(string[] args)
{
Serilog.Debugging.SelfLog.Enable(Console.Out);
//Read Configuration from appSettings
var config = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.Build();
//Initialize Logger
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(config)
.CreateLogger();
try
{
CreateHostBuilder(args).Build().Run();
Log.Information("Application started!");
}
catch (Exception e)
{
Log.Fatal(e, "Application failed to start.");
}
finally
{
Log.CloseAndFlush();
}
}
我的控制器
public void Post(SampleRequest request)
{
Log.Information("Received request {@request}", request);
}
甚至Selflog都没有向VisualStudio输出控制台写入任何内容
Serilog.debuging.Selflog.Enable(console.Out)代码>尝试启用SelfLog,这将有助于您查明问题所在。这个电话和你的稍有不同
在调用.CreateLogger()后立即将其添加到Program.cs中
更多详情-
我在.Net Core 3.1应用程序中将Serilog日志记录到滚动文件
以下是我的nuget参考资料:
<PackageReference Include="Serilog" Version="2.9.0" />
<PackageReference Include="Serilog.AspNetCore" Version="3.2.0" />
<PackageReference Include="Serilog.Sinks.RollingFile" Version="3.3.1-dev-00771" />
我知道问题出在哪里了。我从一些博客中复制了设置,“WriteTo”
元素实际上嵌套在“MinimumLevel”
元素中。
正确的设置为:
{
"Serilog": {
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Warning",
"System": "Warning"
}
},
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "C:\\DEV\\Logs\\mylog-.txt",
"rollingInterval": "Day"
}
}
]
},
"AllowedHosts": "*"
}
Thx的快速响应。我找不到确切的位置,但我知道在appsettings.json中使用
指令是不必要的。尽管如此,我还是将它(“Using”:[“Serilog.Sinks.File”]
)与您提供的SelfLog
行代码一起包括在内,但仍然没有任何内容:(.既没有创建我的日志文件,也没有将任何内容调试到visual studio控制台。我是否在正确的位置查找SelfLog调试消息(Output windowin VS)?@cagi是的,这是正确的位置。这是我发现Serilog的一个缺点,当它不工作时,你没有任何帮助。另一个想法,应用程序是否有对文件夹的写入权限?
{
"Serilog": {
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Warning",
"System": "Warning"
}
},
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "C:\\DEV\\Logs\\mylog-.txt",
"rollingInterval": "Day"
}
}
]
},
"AllowedHosts": "*"
}