title: Structured logging with Common.Logging and NLog
body: <p>I have the latest version of <a href="https://github.com/net-commons/common-logging" rel="nofollow noreferrer">Common.Logging</a> (3.4.1) and <a href="https://nlog-project.org/" rel="nofollow noreferrer">NLog</a> (4.5.11) in my project. Instructions were followed to tie up Common.Logging with NLog in the app.config, and logging now works.</p>
  
  <p>Now I want to have structured logging:</p>
  
  <pre><code>private static readonly ILog _logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
  
  var message = new IDontKnowWhat("A structured message for ClientId {ClientId}", ClientId.ToString());
  _logger.Info(message);
  </code></pre>
  
  <p>The above is pseudo code, I do not know how to construct the message object.
  And, <em>_logger.InfoFormat</em> seems to work with <em>String.Format</em>, instead of structured logging.</p>
  
  <p>Does <a href="https://github.com/net-commons/common-logging" rel="nofollow noreferrer">Common.Logging</a> provide for structured logging, besides using <em>ThreadVariablesContext/GlobalVariablesContext/NestedThreadVariablesContext</em>?</p>