dart-lang / sdk

The Dart SDK, including the VM, JS and Wasm compilers, analysis, core libraries, and more.
https://dart.dev
BSD 3-Clause "New" or "Revised" License
10.27k stars 1.58k forks source link

Tool output window is cluttered with a lot of useless output - this makes it hard to see important warnings #20118

Closed DartBot closed 9 years ago

DartBot commented 10 years ago

This issue was originally filed by @zoechi


What steps will clearly show the issue / need for enhancement? 1. I have a simple polymer app that contains a few mistakes 2. Lauching the app prints an awful lot of mostly useless messages. The few important warning messages at the top move out of view instantly and a few others are hard to spot between the huge amount of log messages 3. Maybe some kind of configurable logger can solve this problem. It should at least be possible to disable simple log messages.

What is the current output?

--- 2:17:07 PM Starting pub serve : bwu_fontawesome_iconset_svg --- Loading source assets... Loading polymer/src/build/mirrors_remover, observe and smoke/src/default_transformer transformers... Loading polymer transformers... Serving bwu_fontawesome_iconset_svg example on http://localhost:8080 [Warning from ScriptCompactor on bwu_fontawesome_iconset_svg|example/index.html]: line 1537, column 1 of example/index.html: private symbols cannot be used in event handlers [Warning from ScriptCompactor on bwu_fontawesome_iconset_svg|example/index.html]: line 1537, column 1 of example/index.html: private symbols cannot be used in event handlers Build completed successfully [example] GET /index.html => bwu_fontawesome_iconset_svg|example/index.html [example] GET /packages/web_components/dart_support.js => web_components|lib/dart_support.js [example] GET /packages/web_components/platform.js => web_components|lib/platform.js [example] GET /packages/polymer/src/js/polymer/polymer.js => polymer|lib/src/js/polymer/polymer.js [example] GET /packages/core_elements/src/web-animations-js/web-animations.js => core_elements|lib/src/web-animations-js/web-animations.js [example] GET /index.html_bootstrap.dart => bwu_fontawesome_iconset_svg|example/index.html_bootstrap.dart [example] GET /packages/browser/dart.js => browser|lib/dart.js [example] GET /packages/polymer/polymer.dart => polymer|lib/polymer.dart [example] GET /packages/core_elements/core_meta.dart => core_elements|lib/core_meta.dart [example] GET /packages/core_elements/core_iconset.dart => core_elements|lib/core_iconset.dart [example] GET /packages/core_elements/core_iconset_svg.dart => core_elements|lib/core_iconset_svg.dart [example] GET /packages/core_elements/core_toolbar.dart => core_elements|lib/core_toolbar.dart [example] GET /packages/core_elements/core_icon.dart => core_elements|lib/core_icon.dart [example] GET /packages/core_elements/core_item.dart => core_elements|lib/core_item.dart [example] GET /packages/core_elements/core_selection.dart => core_elements|lib/core_selection.dart [example] GET /packages/core_elements/core_selector.dart => core_elements|lib/core_selector.dart [example] GET /packages/core_elements/core_menu.dart => core_elements|lib/core_menu.dart [example] GET /packages/core_elements/core_transition.dart => core_elements|lib/core_transition.dart [example] GET /packages/core_elements/core_key_helper.dart => core_elements|lib/core_key_helper.dart [example] GET /packages/core_elements/core_overlay_layer.dart => core_elements|lib/core_overlay_layer.dart [example] GET /packages/core_elements/core_transition_css.dart => core_elements|lib/core_transition_css.dart [example] GET /packages/core_elements/core_overlay.dart => core_elements|lib/core_overlay.dart [example] GET /packages/core_elements/web_animations.dart => core_elements|lib/web_animations.dart [example] GET /packages/paper_elements/paper_shadow.dart => paper_elements|lib/paper_shadow.dart [example] GET /packages/paper_elements/paper_focusable.dart => paper_elements|lib/paper_focusable.dart [example] GET /packages/paper_elements/paper_menu_button_overlay.dart => paper_elements|lib/paper_menu_button_overlay.dart [example] GET /index.html.0.dart => bwu_fontawesome_iconset_svg|example/index.html.0.dart [example] GET /packages/paper_elements/paper_menu_button_transition.dart => paper_elements|lib/paper_menu_button_transition.dart [example] GET /packages/paper_elements/paper_menu_button.dart => paper_elements|lib/paper_menu_button.dart [example] GET /packages/smoke/static.dart => smoke|lib/static.dart [example] GET /packages/smoke/smoke.dart => smoke|lib/smoke.dart [example] GET /packages/logging/logging.dart => logging|lib/logging.dart [example] GET /packages/observe/observe.dart => observe|lib/observe.dart [example] GET /packages/observe/src/dirty_check.dart => observe|lib/src/dirty_check.dart [example] GET /packages/polymer_expressions/polymer_expressions.dart => polymer_expressions|lib/polymer_expressions.dart [example] GET /packages/template_binding/template_binding.dart => template_binding|lib/template_binding.dart [example] GET /packages/polymer/auto_binding.dart => polymer|lib/auto_binding.dart [example] GET /packages/polymer/src/instance.dart => polymer|lib/src/instance.dart [example] GET /packages/polymer/deserialize.dart => polymer|lib/deserialize.dart [example] GET /packages/polymer/src/static_loader.dart => polymer|lib/src/static_loader.dart [example] GET /packages/observe/html.dart => observe|lib/html.dart [example] GET /packages/polymer/src/declaration.dart => polymer|lib/src/declaration.dart [example] GET /packages/polymer/src/events.dart => polymer|lib/src/events.dart [example] GET /packages/polymer/src/job.dart => polymer|lib/src/job.dart [example] GET /font-awesome/fonts/fontawesome-webfont.woff => Could not find asset bwu_fontawesome_iconset_svg|example/font-awesome/fonts/fontawesome-webfont.woff. [example] GET /packages/polymer/src/loader.dart => polymer|lib/src/loader.dart [example] GET /packages/web_components/interop.dart => web_components|lib/interop.dart [example] GET /packages/core_elements/src/common.dart => core_elements|lib/src/common.dart [example] GET /packages/polymer/init.dart => polymer|lib/init.dart [example] GET /packages/smoke/src/common.dart => smoke|lib/src/common.dart [example] GET /packages/smoke/src/implementation.dart => smoke|lib/src/implementation.dart [example] GET /packages/collection/wrappers.dart => collection|lib/wrappers.dart [example] GET /packages/observe/src/bindable.dart => observe|lib/src/bindable.dart [example] GET /packages/observe/src/bind_property.dart => observe|lib/src/bind_property.dart [example] GET /packages/observe/src/change_notifier.dart => observe|lib/src/change_notifier.dart [example] GET /packages/observe/src/change_record.dart => observe|lib/src/change_record.dart [example] GET /packages/observe/src/list_path_observer.dart => observe|lib/src/list_path_observer.dart [example] GET /packages/observe/src/list_diff.dart => observe|lib/src/list_diff.dart [example] GET /packages/observe/src/metadata.dart => observe|lib/src/metadata.dart [example] GET /packages/observe/src/observable.dart => observe|lib/src/observable.dart [example] GET /packages/observe/src/observable_list.dart => observe|lib/src/observable_list.dart [example] GET /packages/observe/src/observable_box.dart => observe|lib/src/observable_box.dart [example] GET /packages/observe/src/observable_map.dart => observe|lib/src/observable_map.dart [example] GET /packages/observe/src/observer_transform.dart => observe|lib/src/observer_transform.dart [example] GET /packages/observe/src/path_observer.dart => observe|lib/src/path_observer.dart [example] GET /packages/observe/src/to_observable.dart => observe|lib/src/to_observable.dart [example] GET /packages/polymer_expressions/eval.dart => polymer_expressions|lib/eval.dart [example] GET /packages/polymer_expressions/expression.dart => polymer_expressions|lib/expression.dart [example] GET /packages/polymer_expressions/parser.dart => polymer_expressions|lib/parser.dart [example] GET /packages/polymer_expressions/src/globals.dart => polymer_expressions|lib/src/globals.dart [example] GET /packages/template_binding/src/mustache_tokens.dart => template_binding|lib/src/mustache_tokens.dart [example] GET /packages/template_binding/src/binding_delegate.dart => template_binding|lib/src/binding_delegate.dart [example] GET /packages/template_binding/src/instance_binding_map.dart => template_binding|lib/src/instance_binding_map.dart [example] GET /packages/template_binding/src/node.dart => template_binding|lib/src/node.dart [example] GET /packages/template_binding/src/template.dart => template_binding|lib/src/template.dart [example] GET /packages/template_binding/src/template_iterator.dart => template_binding|lib/src/template_iterator.dart [example] GET /font-awesome/fonts/fontawesome-webfont.ttf => Could not find asset bwu_fontawesome_iconset_svg|example/font-awesome/fonts/fontawesome-webfont.ttf. [example] GET /packages/collection/src/canonicalized_map.dart => collection|lib/src/canonicalized_map.dart [example] GET /packages/collection/src/unmodifiable_wrappers.dart => collection|lib/src/unmodifiable_wrappers.dart [example] GET /packages/polymer_expressions/async.dart => polymer_expressions|lib/async.dart [example] GET /packages/polymer_expressions/filter.dart => polymer_expressions|lib/filter.dart [example] GET /packages/polymer_expressions/visitor.dart => polymer_expressions|lib/visitor.dart [example] GET /packages/polymer_expressions/tokenizer.dart => polymer_expressions|lib/tokenizer.dart [example] GET /packages/collection/src/utils.dart => collection|lib/src/utils.dart [example] GET /favicon.ico => Could not find asset bwu_fontawesome_iconset_svg|example/favicon.ico.

What would you like to see instead?

[Warning from ScriptCompactor on bwu_fontawesome_iconset_svg|example/index.html]: line 1537, column 1 of example/index.html: private symbols cannot be used in event handlers [Warning from ScriptCompactor on bwu_fontawesome_iconset_svg|example/index.html]: line 1537, column 1 of example/index.html: private symbols cannot be used in event handlers Build completed successfully [example] GET /font-awesome/fonts/fontawesome-webfont.woff => Could not find asset bwu_fontawesome_iconset_svg|example/font- awesome/fonts/fontawesome-webfont.woff. [example] GET /font-awesome/fonts/fontawesome-webfont.ttf => Could not find asset bwu_fontawesome_iconset_svg|example/font-awesome/fonts/fontawesome-webfont.ttf.

I find this still hard to find the important information. With less redundance it would be even more helpful:

[Warning bwu_fontawesome_iconset_svg|example/index.html]: line 1537, column 1: private symbols cannot be used in event handlers [Warning on bwu_fontawesome_iconset_svg|example/index.html]: line 1537, column 1: private symbols cannot be used in event handlers Build completed successfully [example] Could not find asset bwu_fontawesome_iconset_svg|example/font-awesome/fonts/fontawesome-webfont.woff. [example] Could not find asset bwu_fontawesome_iconset_svg|example/font-awesome/fonts/fontawesome-webfont.ttf.

Coloring the word 'Warning', (or 'Error') would be another improvement.

What version of the product are you using? On what operating system? Dart VM version: 1.6.0-edge.38414 (Fri Jul 18 15:46:37 2014) on "linux_x64"

Please provide any additional information below.

DartBot commented 10 years ago

This comment was originally written by @zoechi


While investigating the remaining problems in my app I found that these messages aren't helpful at all: [Warning bwu_fontawesome_iconset_svg|example/index.html]: line 1537, column 1: private symbols cannot be used in event handlers [Warning on bwu_fontawesome_iconset_svg|example/index.html]: line 1537, column 1: private symbols cannot be used in event handlers

My index.html file is 66 lines long. I know this references to the resulting index.html containing the inlined polymer components. DevTool don't show line numbers in Elements tab. How am I supposed to find the cause of these errors?

DartBot commented 10 years ago

This comment was originally written by @zoechi


As a workaround: I found that Ctrl+u in Chrome opens the HTML in source view with line numbers which allows me to find the line causing the warning.

clayberg commented 10 years ago

Removed Area-Editor label. Added New label.

sethladd commented 10 years ago

Looks like most of this is logging from pub serve. We should document how to change the logging of pub serve. Hopefully we're using a configurable logging package ?

Assigning to pubserve to check if users can change the logging output level.


cc @Sfshaza. Added Pub-Serve, Area-Pub, Triaged labels.

sigmundch commented 10 years ago

I also opened a separate bug to track the issue that the line number is off: https://code.google.com/p/dart/issues/detail?id=20126

nex3 commented 10 years ago

The verbosity can be controlled using the --verbosity flag. Pub itself does color warnings differently than other messages, but the editor doesn't preserve that.

I'm bouncing this back to the editor since it's more an issue of exposing pub functionality.


Removed Pub-Build, Pub-Serve, Area-Pub labels. Added Area-Editor label.

clayberg commented 10 years ago

Set owner to @keertip. Added Priority-Medium label.

sethladd commented 10 years ago

We don't intend to add UI to configure pub verbosity, unfortunately. Perhaps the workaround is to run pub serve manually, from the command line.


Added NotPlanned label.

clayberg commented 10 years ago

Added this to the 1.6 milestone.

DartBot commented 10 years ago

This comment was originally written by @zoechi


This is not an UI problem, its a logging verbosity problem. Running pub serve manually doesn't change anything beside that the output is in another window.

It's just a pain that pub serve shows relevant errors/warnings immediately after that prints 100 almost meaningless logging message lines. If the log window wasn't cleared immediately before launching the page it's very hard to find the warnings/errors at all between hundreds of log lines.

Is there a way to configure pub serve logging verbosity using a command line option? In this case running pub serve from the console might in fact be a valid workaround (but I couldn't find one)

sethladd commented 10 years ago

I agree it's not necessarily a UI problem, but the UI does need to be able to configure the verbosity.

Natalie said in an earlier comment: "The verbosity can be controlled using the --verbosity flag."

As this is about using pub serve from the command line, let's carry on this conversation on misc@dartlang.org because that's where pub conversations happen. Thanks!

DartBot commented 10 years ago

This comment was originally written by @zoechi


Sorry, I missed that one. Thanks for the hint. I'll try.

DartBot commented 10 years ago

This comment was originally written by @zoechi


I tried it. It s only possible to show more but not less messages. I think there should be two additional levels that allow to configure warn - show only warnings and errors error - show only errors

sethladd commented 10 years ago

Thanks for testing! Let's open pub specific requests to tweak the output. I agree.. seeing all the individual HTTP requests all the time makes it hard to see the real errors.