Skip to content

[HOLD for payment 2024-04-15] HIGH: [Reliability] Enable console logging with four-finger tap #38456

@quinthar

Description

@quinthar

Problem:

We've gotten very good at fixing bugs that can be reproduced in our dev environments. However, bugs we can't reproduce in dev are typically ignored -- even if they happen frequently in production. We have added better diagnostics tools via the About > Troubleshooting > Client side logging toggle. However, currently it takes you out of the context in which the bug is actually happening to enable. This means to use it you must:

  1. Experience the bug
  2. Leave that context to go to About > Troubleshooting > Client side logging
  3. Enable client side logging
  4. Go back to the original context
  5. Try to reproduce the bug
  6. Leave that context to go to About > Troubleshooting > Client side logging
  7. Open the console
  8. Save the file
  9. Disable client side logging

In that whole process, the logs are filled with tons and tons of extraneous lines, making it very hard to isolate the problem -- assuming you can even reproduce it.

Solution:

Margelo recently added a "four finger tap" to enable low-level performance logging:

Image

This works great because:

  1. You can enable and disable right where you experiencing the problem, without needing to leave that context. This tightens up the focus on the actual problem period, avoiding extraneous sampling.
  2. It automatically saves the file to local storage when disabled.

Let's expand that as follows:

  1. Allow enabling/disabling the console log directly from the "four finger tap menu"
  2. Automatically save the logs to disk when disabled (in either the four-finger menu, or in the About > Troubleshooting menu)
  3. Show the filename that it was saved to, along with the platform Share button to share it (this is already being used for the profile traces, so let's use it for logs as well)

Metadata

Metadata

Labels

Awaiting PaymentAuto-added when associated PR is deployed to productionDailyKSv2NewFeatureSomething to build that is a new item.

Type

No type
No fields configured for issues without a type.

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions