title: Logging Method with String.Format Capability
body: <p>I have general purpose Log method that writes entries to Log File, Event Log, etc.</p>
  
  <pre><code>public static void Log(string logEntry)
  {
      // Write DateTime and logEntry to Log File, Event Log, etc.
  }
  </code></pre>
  
  <p>I created overload to provide String.Format() functionality using the following:</p>
  
  <pre><code>public static void Log(params object[] logEntry)
  {
      // Purpose: Overload Log method to provide String.Format() functionality
      //          with first parameter being Format string.
      // Example: Log("[{0:yyyy-MM-dd}] Name: {1}, Value: {2:#,##0.00}", DateTime.Now, "Blah, Blah, Blah", 12345.67890)
  
      string formatString = logEntry[0].ToString();
  
      object[] values = new object[logEntry.Length - 1];
  
      for (int i = 1; i &lt; logEntry.Length; i++)
      {
          values[i - 1] = logEntry[i];
      }
  
      Log(String.Format(formatString, values));
  }
  </code></pre>
  
  <p>This works okay, but is there a better way to reference remaining array items to pass to the String.Format() function?  Or better way to remove element 0 from the array?</p>
  
  <p>I know I could also just use Log(String.Format(..., but am providing this for more formal purposes.</p>