pw_log_tokenized: Log metadata updates

- Add an optional line number to the 32-bit log tokenized payload.
- Update default payload field widths.
       Log level:  3 bits
     Line number: 11 bits (up to 2047, 0 if larger)
           Flags:  2 bits (implementation defined)
    Module token: 16 bits
- Use the maximum log level to indicate that a log is an assert. This
  preserves an additional bit which can be used for the flags or line
  number.
- Store data as key-value pairs in the format string.
- Reorganize pw_log_tokenized tests and add C tests.

Change-Id: I1daa2e6ce40038f96857caeb38976cf48f620dc3
Requires: pigweed-internal:12920
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/47861
Reviewed-by: Keir Mierle <keir@google.com>
Commit-Queue: Wyatt Hepler <hepler@google.com>
15 files changed
tree: 1974b927a3d46fb357b672b60ef425f268170716
  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_containers/
  24. pw_cpu_exception/
  25. pw_cpu_exception_cortex_m/
  26. pw_docgen/
  27. pw_doctor/
  28. pw_env_setup/
  29. pw_fuzzer/
  30. pw_hdlc/
  31. pw_hex_dump/
  32. pw_i2c/
  33. pw_interrupt/
  34. pw_interrupt_cortex_m/
  35. pw_kvs/
  36. pw_libc/
  37. pw_log/
  38. pw_log_basic/
  39. pw_log_multisink/
  40. pw_log_null/
  41. pw_log_rpc/
  42. pw_log_sink/
  43. pw_log_tokenized/
  44. pw_malloc/
  45. pw_malloc_freelist/
  46. pw_metric/
  47. pw_minimal_cpp_stdlib/
  48. pw_module/
  49. pw_multisink/
  50. pw_package/
  51. pw_persistent_ram/
  52. pw_polyfill/
  53. pw_preprocessor/
  54. pw_presubmit/
  55. pw_protobuf/
  56. pw_protobuf_compiler/
  57. pw_random/
  58. pw_result/
  59. pw_ring_buffer/
  60. pw_router/
  61. pw_rpc/
  62. pw_snapshot/
  63. pw_span/
  64. pw_status/
  65. pw_stm32cube_build/
  66. pw_stream/
  67. pw_string/
  68. pw_sync/
  69. pw_sync_baremetal/
  70. pw_sync_embos/
  71. pw_sync_freertos/
  72. pw_sync_stl/
  73. pw_sync_threadx/
  74. pw_sys_io/
  75. pw_sys_io_arduino/
  76. pw_sys_io_baremetal_lm3s6965evb/
  77. pw_sys_io_baremetal_stm32f429/
  78. pw_sys_io_stdio/
  79. pw_target_runner/
  80. pw_thread/
  81. pw_thread_embos/
  82. pw_thread_freertos/
  83. pw_thread_stl/
  84. pw_thread_threadx/
  85. pw_tokenizer/
  86. pw_tool/
  87. pw_toolchain/
  88. pw_trace/
  89. pw_trace_tokenized/
  90. pw_unit_test/
  91. pw_varint/
  92. pw_watch/
  93. pw_web_ui/
  94. targets/
  95. third_party/
  96. .bazelignore
  97. .bazelrc
  98. .clang-format
  99. .eslintrc.json
  100. .gitattributes
  101. .gitignore
  102. .gn
  103. .prettierrc.js
  104. .pylintrc
  105. activate.bat
  106. AUTHORS
  107. bootstrap.bat
  108. bootstrap.sh
  109. BUILD
  110. BUILD.gn
  111. BUILDCONFIG.gn
  112. CMakeLists.txt
  113. LICENSE
  114. modules.gni
  115. OWNERS
  116. package.json
  117. PW_PLUGINS
  118. README.md
  119. tsconfig.json
  120. WORKSPACE
  121. yarn.lock
README.md

See our website: http://pigweed.dev