【问题标题】:Serilog from ASP.net Core API Controller来自 ASP.net Core API 控制器的 Serilog
【发布时间】:2018-07-04 03:11:15
【问题描述】:

我正在尝试将 serilog 添加到我的 api (asp net core) 中,但我无法按照我的意愿进行操作。我有两个例子: 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" };
}

【问题讨论】:

  • 关注setup instructions。您需要先设置 Serilog 提供程序,以便将 ASP.NET Core 日志记录转到 Serilog。

标签: asp.net-core asp.net-core-2.0 serilog


【解决方案1】:

如果检查输出.txt,会有日志吗?我建议您按照以下步骤修改您的项目。

  1. 注释掉指向SerilogloggerFactory.AddSerilog();
  2. 运行install-package Serilog.Sinks.File,用于将日志写入文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-13
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    • 2018-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多