title: ITelemetryInitializer.Initialize never being called when using Serilog with ApplicationInsights in Console application
body: <p>I am configuring DI as follows in my .NET Core 3.1 Console application:</p>
  <pre class="lang-cs prettyprint-override"><code>services.AddSingleton&lt;ITelemetryInitializer, TelemetryInitializer&gt;();
  services.AddApplicationInsightsTelemetryWorkerService(instrumentationKey);
  </code></pre>
  <p>In <code>appSettings.json</code> I have:</p>
  <pre class="lang-json prettyprint-override"><code>&quot;Serilog&quot;: {
    &quot;Using&quot;: [
      &quot;Serilog.Sinks.Console&quot;,
      &quot;Serilog.Sinks.ApplicationInsights&quot;
    ],
    &quot;MinimumLevel&quot;: &quot;Information&quot;,
    &quot;WriteTo&quot;: [
      {
        &quot;Name&quot;: &quot;Console&quot;,
        &quot;Args&quot;: {
          &quot;outputTemplate&quot;: &quot;[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj} {Properties:j}{NewLine}{Exception}&quot;,
          &quot;formatter&quot;: &quot;Serilog.Formatting.Compact.CompactJsonFormatter, Serilog.Formatting.Compact&quot;
        }
      },
      {
        &quot;Name&quot;: &quot;ApplicationInsights&quot;,
        &quot;Args&quot;: {
          &quot;restrictedToMinimumLevel&quot;: &quot;Information&quot;,
          &quot;InstrumentationKey&quot;: &quot;...&quot;,
          &quot;telemetryConverter&quot;: &quot;Serilog.Sinks.ApplicationInsights.Sinks.ApplicationInsights.TelemetryConverters.TraceTelemetryConverter, Serilog.Sinks.ApplicationInsights&quot;,
          &quot;outputTemplate&quot;: &quot;[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj} {Properties:j}{NewLine}{Exception}&quot;,
          &quot;formatter&quot;: &quot;Serilog.Formatting.Compact.CompactJsonFormatter, Serilog.Formatting.Compact&quot;
        }
      }
    ],
    &quot;Enrich&quot;: [ &quot;FromLogContext&quot;, &quot;WithMachineName&quot;, &quot;WithThreadId&quot; ]
  }
  </code></pre>
  <p>Serilog is configured as follows:</p>
  <pre class="lang-cs prettyprint-override"><code>Host.CreateDefaultBuilder(args)
      .UseSerilog((hostingContext, loggerConfiguration) =&gt;
          loggerConfiguration.ReadFrom.Configuration(hostingContext.Configuration)
      )
      .UseConsoleLifetime()
      .Build()
      .Run()
  </code></pre>
  <p>My initializer class:</p>
  <pre class="lang-cs prettyprint-override"><code>public class TelemetryInitializer : ITelemetryInitializer
  {
      public void Initialize(ITelemetry telemetry)
      {
          telemetry.Context.Cloud.RoleName = &quot;something-something&quot;;
      }
  }
  </code></pre>
  <p>The <code>Initialize</code> method however is <em>not</em> being called when I log using <code>ILogger</code>. If I resolve <code>TelemetryClient</code> directly and log using that, <code>Initialize</code> <em>is</em> called.</p>
  <p>Am I missing some configuration for Serilog?</p>