【发布时间】:2020-03-24 02:41:00
【问题描述】:
我正在使用 Asp.Net Core 测试一些基本的文件日志记录,并且我使用 Serilog,因为它可以快速设置。
我遇到的问题是,当我使用内置的 ILogger 从HomeController 记录消息时,文件输出中没有提及控制器。例如..控制器中的记录器是这样的,并且在构造函数中以通常的方式被注入..
private readonly ILogger<HomeController> _logger;
我正在记录一些像这样的测试
_logger.LogError("Test error log");
这出现在像这样的文件中.. 没有提到 HomeController。
2019-11-28T11:36:52.7735997+00:00 8000000c-0003-fe00-b63f-84710c7967bb [INF] 测试信息日志 (72772865)
另外,我在哪里/如何格式化这个日期,这样它就不会那么长了?从文档中不清楚它是否在 json 或 startup.cs 中完成。而且我不需要8000000a-0003-fe00-b63f-84710c7967bb 请求ID。
在startup.cs中设置如下
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddFile("Logs/HPPartnerPortal-{Date}.txt");
我的config.json指定默认的
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning"
}
我注意到您可以像我上面所做的那样在您的 startup.cs 中使用 configure 方法添加文件日志记录。或者您可以按照
中的指定将其添加到 program.cs喜欢这个
Host.CreateDefaultBuilder(args)
//we are setting up logging in Startup.cs so this is not needed ? !
.ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.AddConsole();
logging.AddDebug();
//logging.AddFile("Logs/myapp-{Date}.txt"); -- AddFile not recognised?!
})
这里的问题是即使我添加了它也不识别 AddFile Serilog.Extensions.Logging.File 这是 1.1.0,是 nuget 中的最新版本。
【问题讨论】:
-
最好的地方是查看 Serilog 文档。请查看here
-
当然,但这假设您想使用自己的静态日志而不是 ILogger。我认为如果它的 ILogger 必须在日志记录下的配置 json 中指定..
-
Serilog 是另一个默认的日志框架,由 ASP.NET Core 开箱即用。当您想使用 Serilog 时,您必须按照文档中的说明对其进行初始化和配置。
-
我要更新这个问题。
标签: c# asp.net-core serilog