My colleague just discovered that Chrome 58 (released April 19th) has silently muted all console.debug() output in their Chrome Dev Tools.
How? By making changes to the Console UI, from filtering based on type of console method to filtering based on levels. Introducing levels is not a bad thing in and of itself, but they also chose to – by default – NOT show all console output. Only level “Info” and below.
Depending on your project it might also be a big deal to no longer be able to filter by showing only one console method’s output, for example only console.log(). This is particularly troublesome if you’re working on a larger project with hundreds of different types of output mixed together.
As you can see from the comments section in the release notes, this has not been received well by developers:
What’s New In DevTools (Chrome 58)
This means that if your app or project relies on console.debug() level output for testing, your tests might have been failing for over a month without you even noticing. With not as much as a popup warning or heads up from Google. By making it non-verbose by default, I believe Google has broken best practice here, and done a huge mistake.
Also, removing the ability to only show output based on a specific console method has resulted in a worsened workflow for many developers.
Test For Yourself
I did some testing with the following console methods in Chrome Dev Tools:
You can simply copy paste this into the console in Chrome Dev Tools, hit ENTER, and change the filter level to see what is displayed in which level.
Screenshots To Illustrate
Here are some screenshots to illustrate the differences between levels. Notice especially the first screenshot of default “Info” level, and the fact that “3 items are hidden”.
Have Any Thoughts?
What do you think about this change? Was Google in the wrong for making this change, or do you think it was an improvement to the “Console UI” overall? Please leave a comment below.