pw_log: Update macros
- Unconditionally set the PW_LOG_LEVEL_BITS macro since it is not
configurable.
- Only reserve 2 bits for flags by default. This will align with
pw_log_tokenized's default configuration.
- Merge redundant PW_LOG_LEVEL_BITS and PW_LOG_LEVEL_BITWIDTH macros.
- Remove deprecated PW_LOG_USE_ULTRA_SHORT_NAMES macro.
Change-Id: Iff19d4e3eefd2ef2ad88107f7bb5d7fba4a1f5aa
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/47860
Commit-Queue: Wyatt Hepler <hepler@google.com>
Reviewed-by: Prashanth Swaminathan <prashanthsw@google.com>
diff --git a/pw_log/docs.rst b/pw_log/docs.rst
index 159d9b6..8924fe1 100644
--- a/pw_log/docs.rst
+++ b/pw_log/docs.rst
@@ -101,6 +101,8 @@
*flags* - Arbitrary flags the backend can leverage. The semantics of these
flags are not defined in the facade, but are instead meant as a general
mechanism for communication bits of information to the logging backend.
+ ``pw_log`` reserves 2 flag bits by default, but log backends may provide for
+ more or fewer flag bits.
Here are some ideas for what a backend might use flags for:
diff --git a/pw_log/public/pw_log/levels.h b/pw_log/public/pw_log/levels.h
index 6886b6b..a70abc3 100644
--- a/pw_log/public/pw_log/levels.h
+++ b/pw_log/public/pw_log/levels.h
@@ -24,6 +24,7 @@
#define PW_LOG_LEVEL_ERROR 4
#define PW_LOG_LEVEL_CRITICAL 5
+// Number of bits required to represent the log level
+#define PW_LOG_LEVEL_BITS 3
#define PW_LOG_LEVEL_BITMASK 7 // 0b111
-#define PW_LOG_LEVEL_BITWIDTH 3
// clang-format on
diff --git a/pw_log/public/pw_log/log.h b/pw_log/public/pw_log/log.h
index 56764e3..d3a4b1d 100644
--- a/pw_log/public/pw_log/log.h
+++ b/pw_log/public/pw_log/log.h
@@ -68,10 +68,6 @@
#include "pw_log/short.h"
#endif // PW_LOG_USE_SHORT_NAMES
-#if defined(PW_LOG_USE_ULTRA_SHORT_NAMES) && PW_LOG_USE_ULTRA_SHORT_NAMES == 1
-#include "pw_log/shorter.h"
-#endif // PW_LOG_USE_ULTRA_SHORT_NAMES
-
#ifndef PW_LOG
#define PW_LOG(level, flags, message, ...) \
do { \
@@ -109,20 +105,11 @@
PW_LOG(PW_LOG_LEVEL_CRITICAL, PW_LOG_DEFAULT_FLAGS, message, __VA_ARGS__)
#endif // PW_LOG_CRITICAL
-// Default: Number of bits available for the log level
-//
-// All log statements have a level, and this define is the number of bits
-// available for the level. Some backends restrict this for better efficiency.
-// By default, pick a restricted but large enough value to work for most cases.
-#ifndef PW_LOG_LEVEL_BITS
-#define PW_LOG_LEVEL_BITS 6
-#endif // PW_LOG_LEVEL_BITS
-
// Default: Number of bits available for the log flags
//
// All log statements have a flags field, and this define is the number of bits
// available for the flags. Some backends restrict this for better efficiency.
// By default, pick a restricted but large enough value to work for most cases.
#ifndef PW_LOG_FLAG_BITS
-#define PW_LOG_FLAG_BITS 10
+#define PW_LOG_FLAG_BITS 2
#endif // PW_LOG_FLAG_BITS
diff --git a/pw_log_multisink/log_queue.cc b/pw_log_multisink/log_queue.cc
index f5b3436..0547449 100644
--- a/pw_log_multisink/log_queue.cc
+++ b/pw_log_multisink/log_queue.cc
@@ -41,9 +41,8 @@
Status status;
encoder.WriteMessageTokenized(message);
- encoder.WriteLineLevel(
- (level & PW_LOG_LEVEL_BITMASK) |
- ((line << PW_LOG_LEVEL_BITWIDTH) & ~PW_LOG_LEVEL_BITMASK));
+ encoder.WriteLineLevel((level & PW_LOG_LEVEL_BITMASK) |
+ ((line << PW_LOG_LEVEL_BITS) & ~PW_LOG_LEVEL_BITMASK));
encoder.WriteFlags(flags);
encoder.WriteThreadTokenized(thread);
diff --git a/pw_log_multisink/log_queue_test.cc b/pw_log_multisink/log_queue_test.cc
index 05bc62a..3d77148 100644
--- a/pw_log_multisink/log_queue_test.cc
+++ b/pw_log_multisink/log_queue_test.cc
@@ -60,7 +60,7 @@
EXPECT_TRUE(entry_decoder.ReadUint32(&line_level).ok());
EXPECT_EQ(expected_level, line_level & PW_LOG_LEVEL_BITMASK);
EXPECT_EQ(expected_line,
- (line_level & ~PW_LOG_LEVEL_BITMASK) >> PW_LOG_LEVEL_BITWIDTH);
+ (line_level & ~PW_LOG_LEVEL_BITMASK) >> PW_LOG_LEVEL_BITS);
uint32_t flags;
EXPECT_TRUE(entry_decoder.Next().ok()); // flags
diff --git a/pw_log_sink/log_sink.cc b/pw_log_sink/log_sink.cc
index 4d841e8..b3ef96b 100644
--- a/pw_log_sink/log_sink.cc
+++ b/pw_log_sink/log_sink.cc
@@ -66,7 +66,7 @@
encoder.WriteLineLevel(
(level & PW_LOG_LEVEL_BITMASK) |
- ((line_number << PW_LOG_LEVEL_BITWIDTH) & ~PW_LOG_LEVEL_BITMASK));
+ ((line_number << PW_LOG_LEVEL_BITS) & ~PW_LOG_LEVEL_BITMASK));
encoder.WriteFlags(flags);
// TODO(pwbug/301): Insert reasonable values for thread and timestamp.
diff --git a/pw_log_tokenized/public_overrides/pw_log_backend/log_backend.h b/pw_log_tokenized/public_overrides/pw_log_backend/log_backend.h
index 7b1cac1..57dedea 100644
--- a/pw_log_tokenized/public_overrides/pw_log_backend/log_backend.h
+++ b/pw_log_tokenized/public_overrides/pw_log_backend/log_backend.h
@@ -21,5 +21,4 @@
#define PW_HANDLE_LOG PW_LOG_TOKENIZED_TO_GLOBAL_HANDLER_WITH_PAYLOAD
-#define PW_LOG_LEVEL_BITS PW_LOG_TOKENIZED_LEVEL_BITS
#define PW_LOG_FLAG_BITS PW_LOG_TOKENIZED_FLAG_BITS