Serilog от ASP.net Core API Controller - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь добавить 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" };
}

1 Ответ

0 голосов
/ 03 июля 2018

Если вы проверите выходной файл .txt, будет ли журнал? Я предлагаю вам выполнить следующие шаги, чтобы изменить свой проект.

  1. Комментарий из loggerFactory.AddSerilog();, который указывает на Serilog
  2. Выполнить install-package Serilog.Sinks.File, который используется для записи журнала в файл.
...