asp.net-core - 来自 ASP.net Core API 控制器的 Serilog
问题描述
我正在尝试将 serilog 添加到我的 api(asp net core)中,但我无法按照我的意愿进行操作。我有 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" };
}
解决方案
如果检查输出.txt,会有日志吗?我建议您按照以下步骤修改您的项目。
- 注释掉
loggerFactory.AddSerilog();
指向Serilog的内容 - 运行
install-package Serilog.Sinks.File
用于将日志写入文件。
推荐阅读
- powerbi - 乘以在dax中重新组合?
- android - 如何将布尔数据传递到另一个页面(没有直接页面路由)
- validation - Required_with 验证数组
- node.js - 在 mongodb 中编写多个聚合是个好主意吗?
- arrays - 如何从数组中删除重复的字符串并在 Swift 中计算它们?
- json - Jest 在测试 Vue 组件时遇到了一个意外的令牌
- flutter - 如何正确使用此 Encrypt 5.0.0 包?
- arrays - 使用 getch 和 getche 时程序崩溃
- ssas - QueryMemoryLimit 用于本地多维数据集服务器
- electron - 自动更新不起作用:MAC os Target .pkg