谁调用MyLogger.Log?

时间:2019-03-17 19:50:36

标签: c# .net-core

每当我按如下方式调用扩展方法MyLogger.Log时,我都试图跟踪logger.LogError("message");是如何被调用的。

class MyLogger : ILogger
{
   // others have been removed for the sake of simplicity

   public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, 
       Exception exception, Func<TState, Exception, string> formatter)
   { 
        string str = $"{formatter(state, exception)}";
        Console.WriteLine(str);
    }
}

class Program
{
   static void Main1(string[] args)
   {    
    // others have been removed for simplicity.
    // ILogger<Program> logger = ....
    logger.LogError("the cpu is overheating");

   }
}

我只能追溯到LoggerExtension类中的以下扩展方法:

public static void Log(this ILogger logger, LogLevel logLevel, string message, params object[] args)
{
   logger.Log(logLevel, 0, null, message, args);
}

使用Visual Studio的“ F12”导航到其定义。但是,logger.Log(logLevel, 0, null, message, args);MyLogger.Log签名不匹配,因此必须存在另一个调用MyLogger.Log的方法。

我看了看github,但令人困惑。那是什么方法?

0 个答案:

没有答案