summaryrefslogtreecommitdiff
path: root/src/tangara/dev_console/console.cpp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2024-08-13 14:21:07 +1000
committerjacqueline <me@jacqueline.id.au>2024-08-13 14:21:43 +1000
commit9e1fc64c8880bf6920b156e9f9d19fd0b098a468 (patch)
treedb88f7cd94ecc0f485f3ba26c885804843ebc172 /src/tangara/dev_console/console.cpp
parent4fd15f148a86a748f92ce60fa3c6255700f41057 (diff)
downloadtangara-fw-9e1fc64c8880bf6920b156e9f9d19fd0b098a468.tar.gz
Accept a specific tag in `loglevel`
Diffstat (limited to 'src/tangara/dev_console/console.cpp')
-rw-r--r--src/tangara/dev_console/console.cpp35
1 files changed, 24 insertions, 11 deletions
diff --git a/src/tangara/dev_console/console.cpp b/src/tangara/dev_console/console.cpp
index fcb987bb..bc3a7aca 100644
--- a/src/tangara/dev_console/console.cpp
+++ b/src/tangara/dev_console/console.cpp
@@ -23,34 +23,47 @@ namespace console {
int CmdLogLevel(int argc, char** argv) {
static const std::pmr::string usage =
- "usage: loglevel [VERBOSE,DEBUG,INFO,WARN,ERROR,NONE]";
- if (argc != 2) {
+ "usage: loglevel [tag] [VERBOSE,DEBUG,INFO,WARN,ERROR,NONE]";
+ if (argc < 2 || argc > 3) {
std::cout << usage << std::endl;
return 1;
}
- std::pmr::string level_str = argv[1];
- std::transform(level_str.begin(), level_str.end(), level_str.begin(),
+
+ std::string tag;
+ if (argc == 2) {
+ tag = "*";
+ } else {
+ tag = argv[1];
+ }
+
+ std::string raw_level;
+ if (argc == 2) {
+ raw_level = argv[1];
+ } else {
+ raw_level = argv[2];
+ }
+ std::transform(raw_level.begin(), raw_level.end(), raw_level.begin(),
[](unsigned char c) { return std::toupper(c); });
esp_log_level_t level;
- if (level_str == "VERBOSE") {
+ if (raw_level == "VERBOSE") {
level = ESP_LOG_VERBOSE;
- } else if (level_str == "DEBUG") {
+ } else if (raw_level == "DEBUG") {
level = ESP_LOG_DEBUG;
- } else if (level_str == "INFO") {
+ } else if (raw_level == "INFO") {
level = ESP_LOG_INFO;
- } else if (level_str == "WARN") {
+ } else if (raw_level == "WARN") {
level = ESP_LOG_WARN;
- } else if (level_str == "ERROR") {
+ } else if (raw_level == "ERROR") {
level = ESP_LOG_ERROR;
- } else if (level_str == "NONE") {
+ } else if (raw_level == "NONE") {
level = ESP_LOG_NONE;
} else {
std::cout << usage << std::endl;
return 1;
}
- esp_log_level_set("*", level);
+ esp_log_level_set(tag.c_str(), level);
return 0;
}