From b55489974f28757340cee23d154ddb7cd479dcbf Mon Sep 17 00:00:00 2001 From: thomashii Date: Sun, 23 Jan 2022 13:10:50 +0800 Subject: [PATCH] Fixed dev logging --- .github/workflows/dart.yml | 18 +++++++++++++++++ packages/cache/README.md | 6 +++--- packages/cache/lib/src/cache.dart | 2 +- .../angel_container/lib/src/container.dart | 8 ++++---- packages/framework/CHANGELOG.md | 4 ++++ packages/framework/lib/src/core/driver.dart | 20 +++++++++---------- packages/framework/pubspec.yaml | 5 ++++- tool/performance/techempower/main.dart | 6 +++--- 8 files changed, 46 insertions(+), 23 deletions(-) diff --git a/.github/workflows/dart.yml b/.github/workflows/dart.yml index 8f2de416..33ffc28c 100644 --- a/.github/workflows/dart.yml +++ b/.github/workflows/dart.yml @@ -22,6 +22,24 @@ jobs: - uses: dart-lang/setup-dart@v1 with: sdk: "2.15.1" + + - id: angel3_container_upgrade + name: angel3_container; Upgrade depedencies + working-directory: packages/container/angel_container + run: dart pub upgrade + + - name: angel3_container; Verify formatting + working-directory: packages/container/angel_container + run: dart format --output=none --set-exit-if-changed . + + # Consider passing '--fatal-infos' for slightly stricter analysis. + - name: angel3_container; Analyze source code + working-directory: packages/container/angel_container + run: dart analyze + + - name: angel3_container; Run tests + working-directory: packages/container/angel_container + run: dart test - id: angel3_framework_upgrade name: angel3_framework; Upgrade depedencies diff --git a/packages/cache/README.md b/packages/cache/README.md index f3397676..19e4a369 100644 --- a/packages/cache/README.md +++ b/packages/cache/README.md @@ -26,11 +26,11 @@ void main() async { CacheService( database: AnonymousService( index: ([params]) { - print('Fetched directly from the underlying service at ${new DateTime.now()}!'); + print('Fetched directly from the underlying service at ${DateTime.now()}!'); return ['foo', 'bar', 'baz']; }, read: (id, [params]) { - return {id: '$id at ${new DateTime.now()}'}; + return {id: '$id at ${DateTime.now()}'}; } ), ), @@ -42,7 +42,7 @@ void main() async { A flexible response cache for Angel3. -Use this to improve real and perceived response of Web applications, as well as to memoize expensive responses. +Use this to improve real and perceived response of Web applications, as well as to memorize expensive responses. Supports the `If-Modified-Since` header, as well as storing the contents of response buffers in memory. diff --git a/packages/cache/lib/src/cache.dart b/packages/cache/lib/src/cache.dart index b8820447..6038344a 100644 --- a/packages/cache/lib/src/cache.dart +++ b/packages/cache/lib/src/cache.dart @@ -7,7 +7,7 @@ import 'package:logging/logging.dart'; /// A flexible response cache for Angel. /// /// Use this to improve real and perceived response of Web applications, -/// as well as to memoize expensive responses. +/// as well as to memorize expensive responses. class ResponseCache { /// A set of [Patterns] for which responses will be cached. /// diff --git a/packages/container/angel_container/lib/src/container.dart b/packages/container/angel_container/lib/src/container.dart index 7dfd524c..18e991b5 100644 --- a/packages/container/angel_container/lib/src/container.dart +++ b/packages/container/angel_container/lib/src/container.dart @@ -23,11 +23,11 @@ class Container { } /// Determines if the container has an injection of the given type. - bool has([Type? type]) { + bool has([Type? t]) { var t2 = T; - if (type != null) { - t2 = type; - } else if (T == dynamic && type == null) { + if (t != null) { + t2 = t; + } else if (T == dynamic && t == null) { return false; } diff --git a/packages/framework/CHANGELOG.md b/packages/framework/CHANGELOG.md index ebedface..f451aee7 100644 --- a/packages/framework/CHANGELOG.md +++ b/packages/framework/CHANGELOG.md @@ -1,5 +1,9 @@ # Change Log +## 4.2.4 + +* Fixed issue 48. Log not working in development + ## 4.2.3 * Fixed `res.json()` throwing bad state exception diff --git a/packages/framework/lib/src/core/driver.dart b/packages/framework/lib/src/core/driver.dart index 97d0bbdf..3aec7edc 100644 --- a/packages/framework/lib/src/core/driver.dart +++ b/packages/framework/lib/src/core/driver.dart @@ -4,7 +4,6 @@ import 'dart:io' show stderr, Cookie; import 'package:angel3_http_exception/angel3_http_exception.dart'; import 'package:angel3_route/angel3_route.dart'; import 'package:belatuk_combinator/belatuk_combinator.dart'; -import 'package:logging/logging.dart'; import 'package:stack_trace/stack_trace.dart'; import 'package:tuple/tuple.dart'; import 'core.dart'; @@ -27,7 +26,7 @@ abstract class Driver< bool isServerInitialised = false; StreamSubscription? _sub; - final log = Logger('Driver'); + //final log = Logger('Driver'); /// The function used to bind this instance to a server.. final Future Function(dynamic, int) serverGenerator; @@ -71,7 +70,7 @@ abstract class Driver< return Future.value(_server); }); }).catchError((error) { - log.severe('Failed to create server', error); + app.logger?.severe('Failed to create server', error); throw ArgumentError('[Driver]Failed to create server'); }); } @@ -164,7 +163,7 @@ abstract class Driver< ..registerSingleton?>(tuple.item3) ..registerSingleton(tuple.item3); - if (app.environment.isProduction && app.logger != null) { + if (!app.environment.isProduction && app.logger != null) { req.container?.registerSingleton(Stopwatch()..start()); } @@ -250,7 +249,7 @@ abstract class Driver< // Ideally, we won't be in a position where an absolutely fatal error occurs, // but if so, we'll need to log it. if (app.logger != null) { - app.logger?.severe( + app.logger!.severe( 'Fatal error occurred when processing $uri.', e, trace); } else { stderr @@ -323,7 +322,7 @@ abstract class Driver< ResponseContext res, {bool ignoreFinalizers = false}) { Future _cleanup(_) { - if (app.environment.isProduction && + if (!app.environment.isProduction && app.logger != null && req.container!.has()) { var sw = req.container!.make(); @@ -334,11 +333,10 @@ abstract class Driver< } if (!res.isBuffered) { - if (res.isOpen) { - return res.close().then(_cleanup); - } - - return Future.value(); + //if (res.isOpen) { + return res.close().then(_cleanup); + //} + //return Future.value(); } var finalizers = ignoreFinalizers == true diff --git a/packages/framework/pubspec.yaml b/packages/framework/pubspec.yaml index 9b3e1588..9a6af199 100644 --- a/packages/framework/pubspec.yaml +++ b/packages/framework/pubspec.yaml @@ -1,5 +1,5 @@ name: angel3_framework -version: 4.2.3 +version: 4.2.4 description: A high-powered HTTP server extensible framework with dependency injection, routing and much more. homepage: https://angel3-framework.web.app/ repository: https://github.com/dukefirehawk/angel/tree/master/packages/framework @@ -35,3 +35,6 @@ dev_dependencies: io: ^1.0.0 test: ^1.17.5 lints: ^1.0.0 +dependency_overrides: + angel3_container: + path: ../container/angel_container diff --git a/tool/performance/techempower/main.dart b/tool/performance/techempower/main.dart index dc1e4b56..92891134 100644 --- a/tool/performance/techempower/main.dart +++ b/tool/performance/techempower/main.dart @@ -22,7 +22,7 @@ Future plaintext(var message) async { var url = Uri.http('localhost:3000', '/plaintext'); var response = await http.get(url); if (response.statusCode == 200) { - print('Execution($message): success'); + print('Execution($message): ${response.body}.'); } else { print('Execution($message): error'); } @@ -92,10 +92,10 @@ Future dbMultipleQuery(var message) async { } void main() async { - var concurrency = 100; + var concurrency = 6000; for (var i = 0; i < concurrency; i++) { - Isolate.spawn(dbUpdate, 'Instance_$i'); + Isolate.spawn(plaintext, 'Instance_$i'); } await Future.delayed(const Duration(seconds: 10));