diff --git a/build/dependencies.props b/build/dependencies.props
index 618ad93c56..8d12964ca3 100644
--- a/build/dependencies.props
+++ b/build/dependencies.props
@@ -25,6 +25,7 @@
2.2.0-preview3-35425
2.2.0-preview3-35425
2.2.0-preview3-35425
+ 2.2.0-preview3-35425
2.2.0-preview3-35425
2.0.9
2.1.3
diff --git a/src/Microsoft.AspNetCore/Microsoft.AspNetCore.csproj b/src/Microsoft.AspNetCore/Microsoft.AspNetCore.csproj
index 1e77df2cae..ea9a676d87 100644
--- a/src/Microsoft.AspNetCore/Microsoft.AspNetCore.csproj
+++ b/src/Microsoft.AspNetCore/Microsoft.AspNetCore.csproj
@@ -26,6 +26,7 @@
+
diff --git a/src/Microsoft.AspNetCore/WebHost.cs b/src/Microsoft.AspNetCore/WebHost.cs
index 985386af34..10726c8356 100644
--- a/src/Microsoft.AspNetCore/WebHost.cs
+++ b/src/Microsoft.AspNetCore/WebHost.cs
@@ -190,6 +190,7 @@ namespace Microsoft.AspNetCore
logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
logging.AddConsole();
logging.AddDebug();
+ logging.AddEventSourceLogger();
})
.ConfigureServices((hostingContext, services) =>
{
diff --git a/test/Microsoft.AspNetCore.Tests/WebHostTests.cs b/test/Microsoft.AspNetCore.Tests/WebHostTests.cs
index e076f0f19c..4b040e0c03 100644
--- a/test/Microsoft.AspNetCore.Tests/WebHostTests.cs
+++ b/test/Microsoft.AspNetCore.Tests/WebHostTests.cs
@@ -2,11 +2,16 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
+using System.Collections.Concurrent;
+using System.Collections.Generic;
+using System.Diagnostics.Tracing;
+using System.Linq;
using System.Threading;
using Microsoft.AspNetCore.HostFiltering;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Xunit;
@@ -49,6 +54,54 @@ namespace Microsoft.AspNetCore.Tests
Assert.Contains("NewHost", options.AllowedHosts);
}
+ [Fact]
+ public void CreateDefaultBuilder_RegistersEventSourceLogger()
+ {
+ var listener = new TestEventListener();
+ var host = WebHost.CreateDefaultBuilder()
+ .Configure(_ => { })
+ .Build();
+
+ var logger = host.Services.GetRequiredService>();
+ logger.LogInformation("Request starting");
+
+ var events = listener.EventData.ToArray();
+ Assert.Contains(events, args =>
+ args.EventSource.Name == "Microsoft-Extensions-Logging" &&
+ args.Payload.OfType().Any(p => p.Contains("Request starting")));
+ }
+
+ private class TestEventListener : EventListener
+ {
+ private volatile bool _disposed;
+
+ private ConcurrentQueue _events = new ConcurrentQueue();
+
+ public IEnumerable EventData => _events;
+
+ protected override void OnEventSourceCreated(EventSource eventSource)
+ {
+ if (eventSource.Name == "Microsoft-Extensions-Logging")
+ {
+ EnableEvents(eventSource, EventLevel.Informational);
+ }
+ }
+
+ protected override void OnEventWritten(EventWrittenEventArgs eventData)
+ {
+ if (!_disposed)
+ {
+ _events.Enqueue(eventData);
+ }
+ }
+
+ public override void Dispose()
+ {
+ _disposed = true;
+ base.Dispose();
+ }
+ }
+
private class ReloadableMemorySource : IConfigurationSource
{
public IConfigurationProvider Build(IConfigurationBuilder builder)