Skip to content
This repository was archived by the owner on Nov 27, 2018. It is now read-only.

Commit 06105ce

Browse files
committed
- Removed existing logger scopes as we want to minimize the number of scopes being created.
- Cleaned up tests related to removal of scopes.
1 parent 01bdbaa commit 06105ce

File tree

6 files changed

+98
-187
lines changed

6 files changed

+98
-187
lines changed

src/Microsoft.AspNet.Routing/RouteCollection.cs

Lines changed: 24 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -56,45 +56,42 @@ public void Add([NotNull] IRouter router)
5656
public async virtual Task RouteAsync(RouteContext context)
5757
{
5858
EnsureLogger(context.HttpContext);
59-
using (_logger.BeginScope("RouteCollection.RouteAsync"))
59+
for (var i = 0; i < Count; i++)
6060
{
61-
for (var i = 0; i < Count; i++)
62-
{
63-
var route = this[i];
61+
var route = this[i];
6462

65-
var oldRouteData = context.RouteData;
63+
var oldRouteData = context.RouteData;
6664

67-
var newRouteData = new RouteData(oldRouteData);
68-
newRouteData.Routers.Add(route);
65+
var newRouteData = new RouteData(oldRouteData);
66+
newRouteData.Routers.Add(route);
6967

70-
try
71-
{
72-
context.RouteData = newRouteData;
68+
try
69+
{
70+
context.RouteData = newRouteData;
7371

74-
await route.RouteAsync(context);
75-
if (context.IsHandled)
76-
{
77-
break;
78-
}
79-
}
80-
finally
72+
await route.RouteAsync(context);
73+
if (context.IsHandled)
8174
{
82-
if (!context.IsHandled)
83-
{
84-
context.RouteData = oldRouteData;
85-
}
75+
break;
8676
}
8777
}
88-
89-
if (_logger.IsEnabled(LogLevel.Verbose))
78+
finally
9079
{
91-
_logger.WriteValues(new RouteCollectionRouteAsyncValues()
80+
if (!context.IsHandled)
9281
{
93-
Handled = context.IsHandled,
94-
Routes = _routes
95-
});
82+
context.RouteData = oldRouteData;
83+
}
9684
}
9785
}
86+
87+
if (_logger.IsEnabled(LogLevel.Verbose))
88+
{
89+
_logger.WriteValues(new RouteCollectionRouteAsyncValues()
90+
{
91+
Handled = context.IsHandled,
92+
Routes = _routes
93+
});
94+
}
9895
}
9996

10097
public virtual VirtualPathData GetVirtualPath(VirtualPathContext context)

src/Microsoft.AspNet.Routing/RouterMiddleware.cs

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -30,22 +30,19 @@ public RouterMiddleware(
3030

3131
public async Task Invoke(HttpContext httpContext)
3232
{
33-
using (_logger.BeginScope("RouterMiddleware.Invoke"))
34-
{
35-
var context = new RouteContext(httpContext);
36-
context.RouteData.Routers.Add(_router);
33+
var context = new RouteContext(httpContext);
34+
context.RouteData.Routers.Add(_router);
3735

38-
await _router.RouteAsync(context);
36+
await _router.RouteAsync(context);
3937

40-
if (_logger.IsEnabled(LogLevel.Verbose))
41-
{
42-
_logger.WriteValues(new RouterMiddlewareInvokeValues() { Handled = context.IsHandled });
43-
}
38+
if (_logger.IsEnabled(LogLevel.Verbose))
39+
{
40+
_logger.WriteValues(new RouterMiddlewareInvokeValues() { Handled = context.IsHandled });
41+
}
4442

45-
if (!context.IsHandled)
46-
{
47-
await _next.Invoke(httpContext);
48-
}
43+
if (!context.IsHandled)
44+
{
45+
await _next.Invoke(httpContext);
4946
}
5047
}
5148
}

src/Microsoft.AspNet.Routing/Template/TemplateRoute.cs

Lines changed: 61 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -99,84 +99,82 @@ public IReadOnlyDictionary<string, IRouteConstraint> Constraints
9999
public async virtual Task RouteAsync([NotNull] RouteContext context)
100100
{
101101
EnsureLoggers(context.HttpContext);
102-
using (_logger.BeginScope("TemplateRoute.RouteAsync"))
103-
{
104-
var requestPath = context.HttpContext.Request.Path.Value;
105102

106-
if (!string.IsNullOrEmpty(requestPath) && requestPath[0] == '/')
107-
{
108-
requestPath = requestPath.Substring(1);
109-
}
103+
var requestPath = context.HttpContext.Request.Path.Value;
110104

111-
var values = _matcher.Match(requestPath);
105+
if (!string.IsNullOrEmpty(requestPath) && requestPath[0] == '/')
106+
{
107+
requestPath = requestPath.Substring(1);
108+
}
112109

113-
if (values == null)
114-
{
115-
if (_logger.IsEnabled(LogLevel.Verbose))
116-
{
117-
_logger.WriteValues(CreateRouteAsyncValues(
118-
requestPath,
119-
context.RouteData.Values,
120-
matchedValues: false,
121-
matchedConstraints: false,
122-
handled: context.IsHandled));
123-
}
110+
var values = _matcher.Match(requestPath);
124111

125-
// If we got back a null value set, that means the URI did not match
126-
return;
112+
if (values == null)
113+
{
114+
if (_logger.IsEnabled(LogLevel.Verbose))
115+
{
116+
_logger.WriteValues(CreateRouteAsyncValues(
117+
requestPath,
118+
context.RouteData.Values,
119+
matchedValues: false,
120+
matchedConstraints: false,
121+
handled: context.IsHandled));
127122
}
128123

129-
var oldRouteData = context.RouteData;
124+
// If we got back a null value set, that means the URI did not match
125+
return;
126+
}
130127

131-
var newRouteData = new RouteData(oldRouteData);
132-
MergeValues(newRouteData.DataTokens, _dataTokens);
133-
newRouteData.Routers.Add(_target);
134-
MergeValues(newRouteData.Values, values);
128+
var oldRouteData = context.RouteData;
135129

136-
if (!RouteConstraintMatcher.Match(
137-
Constraints,
138-
newRouteData.Values,
139-
context.HttpContext,
140-
this,
141-
RouteDirection.IncomingRequest,
142-
_constraintLogger))
143-
{
144-
if (_logger.IsEnabled(LogLevel.Verbose))
145-
{
146-
_logger.WriteValues(CreateRouteAsyncValues(
147-
requestPath,
148-
newRouteData.Values,
149-
matchedValues: true,
150-
matchedConstraints: false,
151-
handled: context.IsHandled));
152-
}
130+
var newRouteData = new RouteData(oldRouteData);
131+
MergeValues(newRouteData.DataTokens, _dataTokens);
132+
newRouteData.Routers.Add(_target);
133+
MergeValues(newRouteData.Values, values);
153134

154-
return;
135+
if (!RouteConstraintMatcher.Match(
136+
Constraints,
137+
newRouteData.Values,
138+
context.HttpContext,
139+
this,
140+
RouteDirection.IncomingRequest,
141+
_constraintLogger))
142+
{
143+
if (_logger.IsEnabled(LogLevel.Verbose))
144+
{
145+
_logger.WriteValues(CreateRouteAsyncValues(
146+
requestPath,
147+
newRouteData.Values,
148+
matchedValues: true,
149+
matchedConstraints: false,
150+
handled: context.IsHandled));
155151
}
156152

157-
try
158-
{
159-
context.RouteData = newRouteData;
153+
return;
154+
}
160155

161-
await _target.RouteAsync(context);
156+
try
157+
{
158+
context.RouteData = newRouteData;
162159

163-
if (_logger.IsEnabled(LogLevel.Verbose))
164-
{
165-
_logger.WriteValues(CreateRouteAsyncValues(
166-
requestPath,
167-
newRouteData.Values,
168-
matchedValues: true,
169-
matchedConstraints: true,
170-
handled: context.IsHandled));
171-
}
160+
await _target.RouteAsync(context);
161+
162+
if (_logger.IsEnabled(LogLevel.Verbose))
163+
{
164+
_logger.WriteValues(CreateRouteAsyncValues(
165+
requestPath,
166+
newRouteData.Values,
167+
matchedValues: true,
168+
matchedConstraints: true,
169+
handled: context.IsHandled));
172170
}
173-
finally
171+
}
172+
finally
173+
{
174+
// Restore the original values to prevent polluting the route data.
175+
if (!context.IsHandled)
174176
{
175-
// Restore the original values to prevent polluting the route data.
176-
if (!context.IsHandled)
177-
{
178-
context.RouteData = oldRouteData;
179-
}
177+
context.RouteData = oldRouteData;
180178
}
181179
}
182180
}

test/Microsoft.AspNet.Routing.Tests/RouteCollectionTest.cs

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -122,16 +122,10 @@ public async Task RouteAsync_LogsCorrectValuesWhenHandled()
122122
var sink = await SetUp(enabled: true, handled: true);
123123

124124
// Assert
125-
Assert.Single(sink.Scopes);
126-
var scope = sink.Scopes[0];
127-
Assert.Equal(typeof(RouteCollection).FullName, scope.LoggerName);
128-
Assert.Equal("RouteCollection.RouteAsync", scope.Scope);
129-
130125
Assert.Single(sink.Writes);
131126

132127
var write = sink.Writes[0];
133128
Assert.Equal(typeof(RouteCollection).FullName, write.LoggerName);
134-
Assert.Equal("RouteCollection.RouteAsync", write.Scope);
135129
var values = Assert.IsType<RouteCollectionRouteAsyncValues>(write.State);
136130
Assert.Equal("RouteCollection.RouteAsync", values.Name);
137131
Assert.NotNull(values.Routes);
@@ -145,11 +139,6 @@ public async Task RouteAsync_DoesNotLogWhenDisabledAndHandled()
145139
var sink = await SetUp(enabled: false, handled: true);
146140

147141
// Assert
148-
Assert.Single(sink.Scopes);
149-
var scope = sink.Scopes[0];
150-
Assert.Equal(typeof(RouteCollection).FullName, scope.LoggerName);
151-
Assert.Equal("RouteCollection.RouteAsync", scope.Scope);
152-
153142
Assert.Empty(sink.Writes);
154143
}
155144

@@ -160,17 +149,11 @@ public async Task RouteAsync_LogsCorrectValuesWhenNotHandled()
160149
var sink = await SetUp(enabled: true, handled: false);
161150

162151
// Assert
163-
Assert.Single(sink.Scopes);
164-
var scope = sink.Scopes[0];
165-
Assert.Equal(typeof(RouteCollection).FullName, scope.LoggerName);
166-
Assert.Equal("RouteCollection.RouteAsync", scope.Scope);
167-
168152
// There is a record for IsEnabled and one for WriteCore.
169153
Assert.Single(sink.Writes);
170154

171155
var write = sink.Writes[0];
172156
Assert.Equal(typeof(RouteCollection).FullName, write.LoggerName);
173-
Assert.Equal("RouteCollection.RouteAsync", write.Scope);
174157
var values = Assert.IsType<RouteCollectionRouteAsyncValues>(write.State);
175158
Assert.Equal("RouteCollection.RouteAsync", values.Name);
176159
Assert.NotNull(values.Routes);
@@ -184,11 +167,6 @@ public async Task RouteAsync_DoesNotLogWhenDisabledAndNotHandled()
184167
var sink = await SetUp(enabled: false, handled: false);
185168

186169
// Assert
187-
Assert.Single(sink.Scopes);
188-
var scope = sink.Scopes[0];
189-
Assert.Equal(typeof(RouteCollection).FullName, scope.LoggerName);
190-
Assert.Equal("RouteCollection.RouteAsync", scope.Scope);
191-
192170
Assert.Empty(sink.Writes);
193171
}
194172

@@ -229,7 +207,7 @@ public async Task RouteAsync_SecondMatches()
229207

230208
var route2 = CreateRoute(accept: true);
231209
routes.Add(route2.Object);
232-
210+
233211
var context = CreateRouteContext("/Cool");
234212

235213
// Act

test/Microsoft.AspNet.Routing.Tests/RouterMiddlewareTest.cs

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -40,21 +40,14 @@ public async void Invoke_LogsCorrectValuesWhenNotHandled()
4040
await middleware.Invoke(httpContext);
4141

4242
// Assert
43-
Assert.Single(sink.Scopes);
44-
var scope = sink.Scopes[0];
45-
Assert.Equal(typeof(RouterMiddleware).FullName, scope.LoggerName);
46-
Assert.Equal("RouterMiddleware.Invoke", scope.Scope);
47-
4843
Assert.Single(sink.Writes);
4944

5045
var write = sink.Writes[0];
5146
Assert.Equal(typeof(RouterMiddleware).FullName, write.LoggerName);
52-
Assert.Equal("RouterMiddleware.Invoke", write.Scope);
5347
var values = Assert.IsType<RouterMiddlewareInvokeValues>(write.State);
5448
Assert.Equal("RouterMiddleware.Invoke", values.Name);
5549
Assert.Equal(false, values.Handled);
5650
}
57-
5851
[Fact]
5952
public async void Invoke_DoesNotLogWhenDisabledAndNotHandled()
6053
{
@@ -82,14 +75,8 @@ public async void Invoke_DoesNotLogWhenDisabledAndNotHandled()
8275
await middleware.Invoke(httpContext);
8376

8477
// Assert
85-
Assert.Single(sink.Scopes);
86-
var scope = sink.Scopes[0];
87-
Assert.Equal(typeof(RouterMiddleware).FullName, scope.LoggerName);
88-
Assert.Equal("RouterMiddleware.Invoke", scope.Scope);
89-
9078
Assert.Empty(sink.Writes);
9179
}
92-
9380
[Fact]
9481
public async void Invoke_LogsCorrectValuesWhenHandled()
9582
{
@@ -118,17 +105,10 @@ public async void Invoke_LogsCorrectValuesWhenHandled()
118105
await middleware.Invoke(httpContext);
119106

120107
// Assert
121-
// exists a BeginScope, verify contents
122-
Assert.Single(sink.Scopes);
123-
var scope = sink.Scopes[0];
124-
Assert.Equal(typeof(RouterMiddleware).FullName, scope.LoggerName);
125-
Assert.Equal("RouterMiddleware.Invoke", scope.Scope);
126-
127108
Assert.Single(sink.Writes);
128109

129110
var write = sink.Writes[0];
130111
Assert.Equal(typeof(RouterMiddleware).FullName, write.LoggerName);
131-
Assert.Equal("RouterMiddleware.Invoke", write.Scope);
132112
Assert.Equal(typeof(RouterMiddlewareInvokeValues), write.State.GetType());
133113
var values = (RouterMiddlewareInvokeValues)write.State;
134114
Assert.Equal("RouterMiddleware.Invoke", values.Name);
@@ -162,12 +142,6 @@ public async void Invoke_DoesNotLogWhenDisabledAndHandled()
162142
await middleware.Invoke(httpContext);
163143

164144
// Assert
165-
// exists a BeginScope, verify contents
166-
Assert.Single(sink.Scopes);
167-
var scope = sink.Scopes[0];
168-
Assert.Equal(typeof(RouterMiddleware).FullName, scope.LoggerName);
169-
Assert.Equal("RouterMiddleware.Invoke", scope.Scope);
170-
171145
Assert.Empty(sink.Writes);
172146
}
173147

@@ -179,7 +153,7 @@ public TestRouter(bool isHandled)
179153
{
180154
_isHandled = isHandled;
181155
}
182-
156+
183157
public VirtualPathData GetVirtualPath(VirtualPathContext context)
184158
{
185159
return new VirtualPathData(this, "");

0 commit comments

Comments
 (0)