Merge branch 'benaadams/reduce-log-boxing' into dev

This commit is contained in:
Stephen Halter 2015-11-12 16:01:06 -08:00
commit 0ead24680d
2 changed files with 38 additions and 11 deletions

View File

@ -12,8 +12,35 @@ namespace Microsoft.AspNet.Server.Kestrel
/// </summary> /// </summary>
public class KestrelTrace : IKestrelTrace public class KestrelTrace : IKestrelTrace
{ {
private static Action<ILogger, long, Exception> _connectionStart;
private static Action<ILogger, long, Exception> _connectionStop;
private static Action<ILogger, long, Exception> _connectionPause;
private static Action<ILogger, long, Exception> _connectionResume;
private static Action<ILogger, long, Exception> _connectionReadFin;
private static Action<ILogger, long, Exception> _connectionWriteFin;
private static Action<ILogger, long, int, Exception> _connectionWroteFin;
private static Action<ILogger, long, Exception> _connectionKeepAlive;
private static Action<ILogger, long, Exception> _connectionDisconnect;
protected readonly ILogger _logger; protected readonly ILogger _logger;
static KestrelTrace()
{
_connectionStart = LoggerMessage.Define<long>(LogLevel.Debug, 1, @"Connection id ""{ConnectionId}"" started.");
_connectionStop = LoggerMessage.Define<long>(LogLevel.Debug, 2, @"Connection id ""{ConnectionId}"" stopped.");
// ConnectionRead: Reserved: 3
_connectionPause = LoggerMessage.Define<long>(LogLevel.Debug, 4, @"Connection id ""{ConnectionId}"" paused.");
_connectionResume = LoggerMessage.Define<long>(LogLevel.Debug, 5, @"Connection id ""{ConnectionId}"" resumed.");
_connectionReadFin = LoggerMessage.Define<long>(LogLevel.Debug, 6, @"Connection id ""{ConnectionId}"" received FIN.");
_connectionWriteFin = LoggerMessage.Define<long>(LogLevel.Debug, 7, @"Connection id ""{ConnectionId}"" sending FIN.");
_connectionWroteFin = LoggerMessage.Define<long, int>(LogLevel.Debug, 8, @"Connection id ""{ConnectionId}"" sent FIN with status ""{Status}"".");
_connectionKeepAlive = LoggerMessage.Define<long>(LogLevel.Debug, 9, @"Connection id ""{ConnectionId}"" completed keep alive response.");
_connectionDisconnect = LoggerMessage.Define<long>(LogLevel.Error, 10, @"Connection id ""{ConnectionId}"" disconnected.");
// ConnectionWrite: Reserved: 11
// ConnectionWriteCallback: Reserved: 12
// ApplicationError: Reserved: 13 - LoggerMessage.Define overload not present
}
public KestrelTrace(ILogger logger) public KestrelTrace(ILogger logger)
{ {
_logger = logger; _logger = logger;
@ -21,12 +48,12 @@ namespace Microsoft.AspNet.Server.Kestrel
public virtual void ConnectionStart(long connectionId) public virtual void ConnectionStart(long connectionId)
{ {
_logger.LogDebug(1, @"Connection id ""{ConnectionId}"" started.", connectionId); _connectionStart(_logger, connectionId, null);
} }
public virtual void ConnectionStop(long connectionId) public virtual void ConnectionStop(long connectionId)
{ {
_logger.LogDebug(2, @"Connection id ""{ConnectionId}"" stopped.", connectionId); _connectionStop(_logger, connectionId, null);
} }
public virtual void ConnectionRead(long connectionId, int count) public virtual void ConnectionRead(long connectionId, int count)
@ -37,37 +64,37 @@ namespace Microsoft.AspNet.Server.Kestrel
public virtual void ConnectionPause(long connectionId) public virtual void ConnectionPause(long connectionId)
{ {
_logger.LogDebug(4, @"Connection id ""{ConnectionId}"" paused.", connectionId); _connectionPause(_logger, connectionId, null);
} }
public virtual void ConnectionResume(long connectionId) public virtual void ConnectionResume(long connectionId)
{ {
_logger.LogDebug(5, @"Connection id ""{ConnectionId}"" resumed.", connectionId); _connectionResume(_logger, connectionId, null);
} }
public virtual void ConnectionReadFin(long connectionId) public virtual void ConnectionReadFin(long connectionId)
{ {
_logger.LogDebug(6, @"Connection id ""{ConnectionId}"" received FIN.", connectionId); _connectionReadFin(_logger, connectionId, null);
} }
public virtual void ConnectionWriteFin(long connectionId) public virtual void ConnectionWriteFin(long connectionId)
{ {
_logger.LogDebug(7, @"Connection id ""{ConnectionId}"" sending FIN.", connectionId); _connectionWriteFin(_logger, connectionId, null);
} }
public virtual void ConnectionWroteFin(long connectionId, int status) public virtual void ConnectionWroteFin(long connectionId, int status)
{ {
_logger.LogDebug(8, @"Connection id ""{ConnectionId}"" sent FIN with status ""{Status}"".", connectionId, status); _connectionWroteFin(_logger, connectionId, status, null);
} }
public virtual void ConnectionKeepAlive(long connectionId) public virtual void ConnectionKeepAlive(long connectionId)
{ {
_logger.LogDebug(9, @"Connection id ""{ConnectionId}"" completed keep alive response.", connectionId); _connectionKeepAlive(_logger, connectionId, null);
} }
public virtual void ConnectionDisconnect(long connectionId) public virtual void ConnectionDisconnect(long connectionId)
{ {
_logger.LogDebug(10, @"Connection id ""{ConnectionId}"" disconnected.", connectionId); _connectionDisconnect(_logger, connectionId, null);
} }
public virtual void ConnectionWrite(long connectionId, int count) public virtual void ConnectionWrite(long connectionId, int count)

View File

@ -904,12 +904,12 @@ namespace Microsoft.AspNet.Server.KestrelTests
public IDisposable BeginScopeImpl(object state) public IDisposable BeginScopeImpl(object state)
{ {
throw new NotImplementedException(); return new Disposable(() => { });
} }
public bool IsEnabled(LogLevel logLevel) public bool IsEnabled(LogLevel logLevel)
{ {
throw new NotImplementedException(); return true;
} }
public void Log(LogLevel logLevel, int eventId, object state, Exception exception, Func<object, Exception, string> formatter) public void Log(LogLevel logLevel, int eventId, object state, Exception exception, Func<object, Exception, string> formatter)