pw_console: Fix log pane rendering bugs

- For line wrapping: fix longest_channel_prefix_width calculation. Now
  reliably gets the length of the formatted log time and level.
- Console would hang at 100% cpu usage if the window width was less
  than longest_channel_prefix_width. That bug is fixed and test
  cases added.
- Change default log level to debug to not miss device log lines.

Bug: 401
No-Docs-Update-Reason: Bug fix.
Change-Id: I73f86ba71f5d91094d18f28491ca489059dfe961
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/50520
Commit-Queue: Anthony DiGirolamo <tonymd@google.com>
Reviewed-by: Joe Ethier <jethier@google.com>
7 files changed
tree: 6d20ba8c5754778cc121e84c14be597ec7712522
  1. build_overrides/
  2. docker/
  3. docs/
  4. pw_allocator/
  5. pw_analog/
  6. pw_arduino_build/
  7. pw_assert/
  8. pw_assert_basic/
  9. pw_assert_log/
  10. pw_base64/
  11. pw_bloat/
  12. pw_blob_store/
  13. pw_boot_armv7m/
  14. pw_build/
  15. pw_bytes/
  16. pw_checksum/
  17. pw_chrono/
  18. pw_chrono_embos/
  19. pw_chrono_freertos/
  20. pw_chrono_stl/
  21. pw_chrono_threadx/
  22. pw_cli/
  23. pw_console/
  24. pw_containers/
  25. pw_cpu_exception/
  26. pw_cpu_exception_cortex_m/
  27. pw_docgen/
  28. pw_doctor/
  29. pw_env_setup/
  30. pw_function/
  31. pw_fuzzer/
  32. pw_hdlc/
  33. pw_hex_dump/
  34. pw_i2c/
  35. pw_interrupt/
  36. pw_interrupt_cortex_m/
  37. pw_kvs/
  38. pw_libc/
  39. pw_log/
  40. pw_log_basic/
  41. pw_log_multisink/
  42. pw_log_null/
  43. pw_log_rpc/
  44. pw_log_sink/
  45. pw_log_tokenized/
  46. pw_malloc/
  47. pw_malloc_freelist/
  48. pw_metric/
  49. pw_minimal_cpp_stdlib/
  50. pw_module/
  51. pw_multisink/
  52. pw_package/
  53. pw_persistent_ram/
  54. pw_polyfill/
  55. pw_preprocessor/
  56. pw_presubmit/
  57. pw_protobuf/
  58. pw_protobuf_compiler/
  59. pw_random/
  60. pw_result/
  61. pw_ring_buffer/
  62. pw_router/
  63. pw_rpc/
  64. pw_snapshot/
  65. pw_span/
  66. pw_status/
  67. pw_stm32cube_build/
  68. pw_stream/
  69. pw_string/
  70. pw_sync/
  71. pw_sync_baremetal/
  72. pw_sync_embos/
  73. pw_sync_freertos/
  74. pw_sync_stl/
  75. pw_sync_threadx/
  76. pw_sys_io/
  77. pw_sys_io_arduino/
  78. pw_sys_io_baremetal_lm3s6965evb/
  79. pw_sys_io_baremetal_stm32f429/
  80. pw_sys_io_stdio/
  81. pw_target_runner/
  82. pw_thread/
  83. pw_thread_embos/
  84. pw_thread_freertos/
  85. pw_thread_stl/
  86. pw_thread_threadx/
  87. pw_tls_client/
  88. pw_tokenizer/
  89. pw_tool/
  90. pw_toolchain/
  91. pw_trace/
  92. pw_trace_tokenized/
  93. pw_transfer/
  94. pw_unit_test/
  95. pw_varint/
  96. pw_watch/
  97. pw_web_ui/
  98. targets/
  99. third_party/
  100. .bazelignore
  101. .bazelrc
  102. .clang-format
  103. .eslintrc.json
  104. .gitattributes
  105. .gitignore
  106. .gn
  107. .prettierrc.js
  108. .pylintrc
  109. activate.bat
  110. AUTHORS
  111. bootstrap.bat
  112. bootstrap.sh
  113. BUILD
  114. BUILD.gn
  115. BUILDCONFIG.gn
  116. CMakeLists.txt
  117. LICENSE
  118. modules.gni
  119. OWNERS
  120. package.json
  121. PW_PLUGINS
  122. README.md
  123. tsconfig.json
  124. WORKSPACE
  125. yarn.lock
README.md

See our website: http://pigweed.dev