【发布时间】:2019-03-29 17:17:48
【问题描述】:
PS:我的问题在于我,而不是代码。代码很好。我需要将.WriteTo.Console() 更改为.WriteTo.Debug()(并获得正确的nuget 包)。
我正在尝试使用 .NET Core Web Api 中的 Serilog 从我的日志中输出信息。但是没有输出相关信息(即我要记录的信息)。
我已经安装了以下 Serilog nuget 包:
- Serilog
- Serilog.AspNetCore
- Serilog.Sinks.Console
- Serilog.Sinks.File
- Serilog.Sinks.RollingFile
我曾考虑在 appSettings.json 中设置我的配置设置,但如果可能,我更愿意这样做。
这是我的Program.cs 文件。
public class Program
{
public static void Main(string[] args)
{
// Create the logger
Log.Logger = new LoggerConfiguration()
.Enrich.FromLogContext()
.MinimumLevel.Debug()
.WriteTo.Console()
.CreateLogger();
Log.Information("ah there you are");
Log.Debug("super");
Log.Error("super1");
Log.Warning("super2");
try
{
Log.Information("Starting web host");
// Program.Main logic
Directory.SetCurrentDirectory(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location));
CreateWebHostBuilder(args).Build().Run();
}
catch (Exception ex)
{
Log.Fatal(ex, "Host terminated unexpectedly");
Console.WriteLine(ex.Message);
}
finally
{
// Close and flush the log.
Log.CloseAndFlush();
}
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseSerilog(); // set serilog as the loggin provider
}
我已经在我的Startup.cs 中设置了这个,以防万一。
public class Startup
{
private readonly ILogger _logger;
public Startup(IConfiguration configuration, ILogger<Startup> logger)
{
Configuration = configuration;
_logger = logger;
}
}
以下是我运行应用程序时得到的输出。这并不重要(我已经多次搜索以确认我没有遗漏任何东西。大多数情况下,我附上这张照片以确认我确实在正确的区域寻找)。
有什么想法吗?
【问题讨论】:
-
您显示的图片用于调试日志,而不是控制台日志。您需要检查 cmd 控制台本身。
-
你好@VidmantasBlazevicius,你是指我的项目的 dotnet run 吗?而不是在VS中使用调试播放按钮?如果是这样,我可以通过播放按钮查看它们吗?
标签: c# asp.net-core asp.net-core-webapi serilog