【发布时间】: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