asp.net-web-api - 日志从未调用自定义 ILogger/ILogProvider 实现
问题描述
我已经实现了一个自定义日志记录系统,一切似乎都按预期工作,但是,在我的自定义实现Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter)
中从未调用过。ILogger
我一直按照这里的说明进行操作,此时我已经翻阅了大约 20 次指南,似乎找不到任何会导致此方法不被调用的内容。我还浏览了内置 .NET 控制台记录器的源代码,但一切似乎都与我已经实现的一致。
我已经用断点跟踪了我的代码,并且ILoggerProvider
正在调用我的自定义。CreateLogger
正如我所期望的那样,它多次在我的自定义提供程序上执行该方法。它还IsEnabled
在 my 上一次调用该方法ILogger
(这是public bool IsEnabled(LogLevel logLevel) => true;
为了测试而实现的)。但是,即使我在下一行有一个断点并且该断点实际上已被击中,它也永远不会在 my 上调用该Log<TState>
方法。ILogger
_logger.LogInformation("Running health check");
哪里_logger
是 DI 引用ILogger<HealthCheckMasterDatabase> logger
。
是否有关于实施我可能忽略的自定义日志系统的“陷阱”?
解决方案
推荐阅读
- java - Chrome 选项 - Selenium 3.10 - NoSuchMethodError: com.google.common.collect.ImmutableList.toImmutableList()
- node.js - Couchbase Sync 网关 - 文件上传为附件
- ios - 如何在每 N 个单词之后将子字符串作为分隔符添加到段落
- django - Django SQLite 外键不匹配错误
- vb.net - 使用 VB.Net 使用 SQL Server 2000 修改连接字符串 Visual Studio 2015
- php - 如何使用PHP根据类别计算分数
- email - 使用谷歌应用脚本获取 gmail 中的当前线程 ID
- ios - ionic 3 cordova ios build failed 'google/protobuf/Api.pbobjc.h' 文件未找到
- email - Jenkins - 如何在 FxCop 报告中发送包含警告和问题的电子邮件
- python - 遍历 pandas 系列