title: Is it safe to use a static `Serilog.ILogger`
body: <p>I am using <a href="https://serilog.net/" rel="noreferrer">Serilog</a>. I want to write log entries with a <code>SourceContext</code> of the containing class.</p>
  
  <p>Is it safe (including thread safe) to do this:</p>
  
  <pre><code>using Serilog;
  
  ...
  
  class Foo
  {
      private static readonly ILogger Log =
       Serilog.Log.ForContext&lt;Foo&gt;();
  
      /* Invoke Log.Debug(...) etc. in other methods */
  }
  </code></pre>
  
  <p><a href="https://github.com/serilog/serilog/wiki/Writing-Log-Events#source-contexts" rel="noreferrer">The documentation (linked) has a small example that adds the context within a method</a>, rather than creating one to share for the type as above. I'd rather not have to put the same boiler plate code into every method where I am logging. Empirically the above seems to work, but can anyone offer definitive guidance?</p>