使用 Microsoft.Extensions.Logging 从静态成员进行日志记录

标签 logging asp.net-core

根据https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging ,建议的使用方式Microsoft.Extensions.Logging似乎是通过 ILogger 的依赖注入(inject)对象。

在依赖注入(inject)不起作用(或不能正常工作)的情况下,建议的模式是什么,例如在扩展方法、类型初始化程序、静态属性和其他传递 ILogger 的静态成员中会很麻烦吗?

使用 log4net(我的团队以前使用过),一个常见的模式是:

public static class SomeExtensions
{
  private static readonly ILog s_log = LogManager.GetLogger(typeof(SomeExtensions));

  public static void ExtensionMethod (this SomeType someType)
  {
    s_log.Info("...");
  }
}

是否存在与 Microsoft.Extensions.Logging 类似的既定或推荐模式? ?

最佳答案

您可以将 Serilog 与以下内容一起使用:

using Serilog;

private static readonly ILogger log = Log.ForContext(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

关于使用 Microsoft.Extensions.Logging 从静态成员进行日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46483019/

相关文章:

c# - ASP.NET核心6 : permit Azure AD authentication and local authentication

c# - 是否可以自定义 Swagger Schema?

java - 按需记录数据库 CUD 操作和回滚语句

java - SLF4J 是线程安全的吗?

使用 CacheEventListener 在 EhCache 中记录驱逐

python - Nose 测试 : how to show customized logging

asp.net - 通过 smtppickupfolder 使用 MS 企业库日志记录应用程序 block 发送电子邮件?

asp.net-membership - 将旧的 aspnet 成员资格与 aspnet vNext 一起使用

c# - 在 ASP.NET Core 中引用现有的 .NET Framework 项目

c# - 异步 lambda 表达式转换为 'Task' 返回委托(delegate)无法返回值