Я пытаюсь добавить serilog к моему api (ядро asp net), и я не могу сделать это так, как хочу. У меня есть 2 примера:
1) Этот пример работает, как я хочу, я только пишу в ".txt" файл, что мне нужно, но я не могу заставить его работать из контроллера
//Program.cs
public static void Main(string[] args)
{
var logger = new LoggerConfiguration()
.ReadFrom.Configuration(new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.Build())
.CreateLogger();
logger.Information("Hello, world!");
CreateWebHostBuilder(args).Build().Run();
}
// Выходные
2018-07-02 18:17:18.210 -03:00 [INF] Hello, world!
2) Этот пример работает с контроллера, но каждый раз, когда я хочу записать в «.txt», он записывает все выходные данные консоли VisualStudio.
//Program.cs
public static void Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.Build())
.CreateLogger();
CreateWebHostBuilder(args).Build().Run();
}
//Startup.cs
loggerFactory.AddSerilog();
//Controller
private readonly ILogger<ValuesController> _logger;
public ValuesController(ILogger<ValuesController> logger)
{
_logger = logger;
}
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
_logger.LogInformation("Test");
return new[] { "value1", "value2" };
}