title: Why Logging doesn't use string interpolation
body: <p>I have been following <a href="https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-2.1" rel="noreferrer">Logging in ASP.NET Core</a>  Which is working just fine.</p>
  
  <p>I have a question about this line </p>
  
  <pre><code>_logger.LogWarning(LoggingEvents.GetItemNotFound, "GetById({ID}) NOT FOUND", id);
  </code></pre>
  
  <p>I am wondering why they are not using <a href="https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/interpolated" rel="noreferrer">$ - string interpolation</a>?</p>
  
  <pre><code>_logger.LogWarning(LoggingEvents.GetItemNotFound, $"GetById({ID}) NOT FOUND");
  </code></pre>
  
  <p>Why would the <a href="https://github.com/aspnet/Logging/blob/d9b34d1c36fde204bd736d09b89b86451bd82e95/src/Microsoft.Extensions.Logging.Abstractions/LoggerExtensions.cs#L191" rel="noreferrer">LogWarning</a> extension have a <code>params object[] args</code> paramater?   </p>
  
  <p>Whats the point when you can just send everything in string message.  </p>
  
  <p>I assume there is a reason for this but i haven't been able to find an explanation anywhere.   I am wondering which method i should be using in order to log properly in .net core. </p>