Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(158)

Side by Side Diff: lib/src/handlers/logger.dart

Issue 966063003: Overhaul the semantics of Request.handlerPath and Request.url. (Closed) Base URL: git@github.com:dart-lang/shelf@master
Patch Set: Code review changes Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « README.md ('k') | lib/src/request.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library shelf.handlers.logger; 5 library shelf.handlers.logger;
6 6
7 import 'package:stack_trace/stack_trace.dart'; 7 import 'package:stack_trace/stack_trace.dart';
8 8
9 import '../hijack_exception.dart'; 9 import '../hijack_exception.dart';
10 import '../middleware.dart'; 10 import '../middleware.dart';
(...skipping 13 matching lines...) Expand all
24 /// description and stack trace. 24 /// description and stack trace.
25 Middleware logRequests({void logger(String msg, bool isError)}) => 25 Middleware logRequests({void logger(String msg, bool isError)}) =>
26 (innerHandler) { 26 (innerHandler) {
27 if (logger == null) logger = _defaultLogger; 27 if (logger == null) logger = _defaultLogger;
28 28
29 return (request) { 29 return (request) {
30 var startTime = new DateTime.now(); 30 var startTime = new DateTime.now();
31 var watch = new Stopwatch()..start(); 31 var watch = new Stopwatch()..start();
32 32
33 return syncFuture(() => innerHandler(request)).then((response) { 33 return syncFuture(() => innerHandler(request)).then((response) {
34 var msg = _getMessage(startTime, response.statusCode, request.url, 34 var msg = _getMessage(startTime, response.statusCode,
35 request.method, watch.elapsed); 35 request.requestedUri, request.method, watch.elapsed);
36 36
37 logger(msg, false); 37 logger(msg, false);
38 38
39 return response; 39 return response;
40 }, onError: (error, stackTrace) { 40 }, onError: (error, stackTrace) {
41 if (error is HijackException) throw error; 41 if (error is HijackException) throw error;
42 42
43 var msg = _getErrorMessage(startTime, request.url, request.method, 43 var msg = _getErrorMessage(startTime, request.requestedUri,
44 watch.elapsed, error, stackTrace); 44 request.method, watch.elapsed, error, stackTrace);
45 45
46 logger(msg, true); 46 logger(msg, true);
47 47
48 throw error; 48 throw error;
49 }); 49 });
50 }; 50 };
51 }; 51 };
52 52
53 String _getMessage(DateTime requestTime, int statusCode, Uri url, String method, 53 String _getMessage(DateTime requestTime, int statusCode, Uri requestedUri,
54 Duration elapsedTime) { 54 String method, Duration elapsedTime) {
55 return '${requestTime}\t$elapsedTime\t$method\t[${statusCode}]\t${url}'; 55 return '${requestTime}\t$elapsedTime\t$method\t[${statusCode}]\t'
56 '${requestedUri.path}${requestedUri.query}';
56 } 57 }
57 58
58 String _getErrorMessage(DateTime requestTime, Uri url, String method, 59 String _getErrorMessage(DateTime requestTime, Uri requestedUri, String method,
59 Duration elapsedTime, Object error, StackTrace stack) { 60 Duration elapsedTime, Object error, StackTrace stack) {
60 var chain = new Chain.current(); 61 var chain = new Chain.current();
61 if (stack != null) { 62 if (stack != null) {
62 chain = new Chain.forTrace(stack) 63 chain = new Chain.forTrace(stack)
63 .foldFrames((frame) => frame.isCore || frame.package == 'shelf').terse; 64 .foldFrames((frame) => frame.isCore || frame.package == 'shelf').terse;
64 } 65 }
65 66
66 var msg = '${requestTime}\t$elapsedTime\t$method\t${url}\n$error'; 67 var msg = '${requestTime}\t$elapsedTime\t$method\t${requestedUri.path}'
68 '${requestedUri.query}\n$error';
67 if (chain == null) return msg; 69 if (chain == null) return msg;
68 70
69 return '$msg\n$chain'; 71 return '$msg\n$chain';
70 } 72 }
71 73
72 void _defaultLogger(String msg, bool isError) { 74 void _defaultLogger(String msg, bool isError) {
73 if (isError) { 75 if (isError) {
74 print('[ERROR] $msg'); 76 print('[ERROR] $msg');
75 } else { 77 } else {
76 print(msg); 78 print(msg);
77 } 79 }
78 } 80 }
OLDNEW
« no previous file with comments | « README.md ('k') | lib/src/request.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698