Event ids and more logging

This commit is contained in:
Victor Hurdugaci 2015-10-26 13:19:32 -07:00
parent 2f4c34476b
commit 9be0758c4d
3 changed files with 63 additions and 4 deletions

View File

@ -89,6 +89,9 @@ namespace Microsoft.AspNet.Hosting.Internal
var logger = _applicationServices.GetRequiredService<ILogger<HostingEngine>>();
var contextFactory = _applicationServices.GetRequiredService<IHttpContextFactory>();
var diagnosticSource = _applicationServices.GetRequiredService<DiagnosticSource>();
logger.Starting();
var server = ServerFactory.Start(_serverFeatures,
async features =>
{
@ -130,9 +133,11 @@ namespace Microsoft.AspNet.Hosting.Internal
});
_applicationLifetime.NotifyStarted();
logger.Started();
return new Application(ApplicationServices, _serverFeatures, new Disposable(() =>
{
logger.Shutdown();
_applicationLifetime.StopApplication();
server.Dispose();
_applicationLifetime.NotifyStopped();
@ -218,7 +223,7 @@ namespace Microsoft.AspNet.Hosting.Internal
// Write errors to standard out so they can be retrieved when not in development mode.
Console.Out.WriteLine("Application startup exception: " + ex.ToString());
var logger = _applicationServices.GetRequiredService<ILogger<HostingEngine>>();
logger.LogError("Application startup exception", ex);
logger.ApplicationError(ex);
// Generate an HTML error page.
var runtimeEnv = _applicationServices.GetRequiredService<IRuntimeEnvironment>();

View File

@ -22,7 +22,7 @@ namespace Microsoft.AspNet.Hosting.Internal
{
logger.Log(
logLevel: LogLevel.Information,
eventId: 1,
eventId: LoggerEventIds.RequestStarting,
state: new HostingRequestStarting(httpContext),
exception: null,
formatter: HostingRequestStarting.Callback);
@ -36,7 +36,7 @@ namespace Microsoft.AspNet.Hosting.Internal
var elapsed = new TimeSpan(Environment.TickCount - startTimeInTicks);
logger.Log(
logLevel: LogLevel.Information,
eventId: 2,
eventId: LoggerEventIds.RequestFinished,
state: new HostingRequestFinished(httpContext, elapsed),
exception: null,
formatter: HostingRequestFinished.Callback);
@ -50,13 +50,51 @@ namespace Microsoft.AspNet.Hosting.Internal
var elapsed = new TimeSpan(Environment.TickCount - startTimeInTicks);
logger.Log(
logLevel: LogLevel.Information,
eventId: 2,
eventId: LoggerEventIds.RequestFailed,
state: new HostingRequestFailed(httpContext, elapsed),
exception: null,
formatter: HostingRequestFailed.Callback);
}
}
public static void ApplicationError(this ILogger logger, Exception exception)
{
logger.LogError(
eventId: LoggerEventIds.ApplicationStartupException,
message: "Application startup exception",
error: exception);
}
public static void Starting(this ILogger logger)
{
if (logger.IsEnabled(LogLevel.Verbose))
{
logger.LogVerbose(
eventId: LoggerEventIds.Starting,
data: "Hosting starting");
}
}
public static void Started(this ILogger logger)
{
if (logger.IsEnabled(LogLevel.Verbose))
{
logger.LogVerbose(
eventId: LoggerEventIds.Started,
data: "Hosting started");
}
}
public static void Shutdown(this ILogger logger)
{
if (logger.IsEnabled(LogLevel.Verbose))
{
logger.LogVerbose(
eventId: LoggerEventIds.Shutdown,
data: "Hosting shutdown");
}
}
private class HostingLogScope : ILogValues
{

View File

@ -0,0 +1,16 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
namespace Microsoft.AspNet.Hosting.Internal
{
internal static class LoggerEventIds
{
public const int RequestStarting = 1;
public const int RequestFinished = 2;
public const int RequestFailed = 3;
public const int Starting = 4;
public const int Started = 5;
public const int Shutdown = 6;
public const int ApplicationStartupException = 7;
}
}