PS: Моя проблема была со мной, а не с кодом.Код в порядке.Мне нужно было изменить .WriteTo.Console()
на .WriteTo.Debug()
(и получить правильный пакет nuget).
Я пытаюсь выводить информацию из моих журналов с помощью Serilog в .NET Core Web Api.Однако соответствующая информация (т.е. информация, которую я хочу зарегистрировать) не выводится.
Я установил следующие пакеты Nuil для Serilog:
- 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;
}
}
Нижевывод я получаю при запуске приложения.В этом нет ничего важного (и я искал его несколько раз, чтобы подтвердить, что я ничего не пропустил. В основном, я прилагаю эту фотографию, чтобы подтвердить, что я действительно смотрю в правильной области).
Есть идеи?