| # Copyright 2021 The Pigweed Authors |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| # use this file except in compliance with the License. You may obtain a copy of |
| # the License at |
| # |
| # https://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| # License for the specific language governing permissions and limitations under |
| # the License. |
| |
| menu "pw_log" |
| |
| choice PIGWEED_LOG |
| prompt "Logging backend used" |
| default PIGWEED_LOG_ZEPHYR if CPP |
| default PIGWEED_LOG_NONE |
| help |
| The type of Zephyr pw_log backend to use. See :ref:`module-pw_log` for |
| module details |
| |
| config PIGWEED_LOG_NONE |
| bool "Do not use Pigweed logging" |
| help |
| PW_LOG_ statements will not work. |
| |
| config PIGWEED_LOG_ZEPHYR |
| bool "Zephyr logging for PW_LOG_* statements" |
| select PIGWEED_PREPROCESSOR |
| help |
| Once the Pigweed logging is enabled, all Pigweed logs via PW_LOG_*() will |
| be routed to the Zephyr logging system. This means that: |
| - :c:macro:`PW_LOG_LEVEL_DEBUG` maps to Zephyr's LOG_LEVEL_DBG |
| - :c:macro:`PW_LOG_LEVEL_INFO` maps to Zephyr's LOG_LEVEL_INF |
| - :c:macro:`PW_LOG_LEVEL_WARN` maps to Zephyr's LOG_LEVEL_WRN |
| - :c:macro:`PW_LOG_LEVEL_ERROR` maps to Zephyr's LOG_LEVEL_ERR |
| - :c:macro:`PW_LOG_LEVEL_CRITICAL` maps to Zephyr's LOG_LEVEL_ERR |
| - :c:macro:`PW_LOG_LEVEL_FATAL` maps to Zephyr's LOG_LEVEL_ERR |
| |
| menuconfig PIGWEED_LOG_TOKENIZED |
| bool "Maps all Zephyr log macros to tokenized PW_LOG_* macros" |
| select PIGWEED_PREPROCESSOR |
| select PIGWEED_SYNC_INTERRUPT_SPIN_LOCK |
| select PIGWEED_SYS_IO |
| select PIGWEED_TOKENIZER |
| select LOG_CUSTOM_HEADER |
| select SHELL_CUSTOM_HEADER |
| help |
| Map all the Zephyr log macros to use Pigweed's then use the |
| :ref:`module-pw_log_tokenized` target as the logging backend in order to |
| automatically tokenize all the logging strings. This means that Pigweed |
| will also tokenize all of Zephyr's logging statements. |
| |
| config PIGWEED_LOG_TOKENIZED_LIB |
| bool "Tokenize logging and implement your own pw_log_tokenized_HandleLog" |
| select PIGWEED_TOKENIZER |
| select LOG_CUSTOM_HEADER |
| select SHELL_CUSTOM_HEADER |
| help |
| Same as PIGWEED_LOG_TOKENIZED but you'll need to implement |
| pw_log_tokenized_HandleLog. This gives you flexiblity to access handlers |
| outside of pigweed. |
| |
| config PIGWEED_LOG_NONE |
| bool "Do not use pigweed logging" |
| help |
| Pigweed log macros will not work unless the application manually |
| configures the logging backend. |
| |
| menuconfig PIGWEED_LOG_TOKENIZED_RPC |
| bool "Enables RPC tokenized logging" |
| select PIGWEED_SYNC_INTERRUPT_SPIN_LOCK |
| select PIGWEED_SYNC_THREAD_NOTIFICATION |
| select PIGWEED_SYNC_TIMED_THREAD_NOTIFICATION |
| select PIGWEED_SYSTEM_HDLC_RPC_SERVER |
| select PIGWEED_SYSTEM_LOG_BACKEND |
| select PIGWEED_SYSTEM_TARGET_HOOKS |
| select PIGWEED_THREAD |
| select PIGWEED_THREAD_ITERATION |
| select PIGWEED_TOKENIZER |
| select LOG_CUSTOM_HEADER |
| select SHELL_CUSTOM_HEADER |
| depends on CONSOLE_GETCHAR |
| help |
| Enable tokenized logging over RPC by using the system log backend. |
| |
| endchoice |
| |
| if PIGWEED_LOG_ZEPHYR || PIGWEED_LOG_TOKENIZED || PIGWEED_LOG_TOKENIZED_RPC |
| |
| choice "PIGWEED_LOG_LEVEL_CHOICE" |
| prompt "Max compiled-in log level for pigweed" |
| default PIGWEED_LOG_LEVEL_DEFAULT |
| depends on LOG |
| |
| config PIGWEED_LOG_LEVEL_OFF |
| bool "Off" |
| help |
| Turn off all Pigweed logging. |
| |
| config PIGWEED_LOG_LEVEL_ERR |
| bool "Error" |
| help |
| Only print error level log statements. |
| |
| config PIGWEED_LOG_LEVEL_WRN |
| bool "Warning" |
| help |
| Only print warning level log statements and above. |
| |
| config PIGWEED_LOG_LEVEL_INF |
| bool "Info" |
| help |
| Only print info level log statements and above. |
| |
| config PIGWEED_LOG_LEVEL_DBG |
| bool "Debug" |
| help |
| Print all log statements. |
| |
| config PIGWEED_LOG_LEVEL_DEFAULT |
| bool "Default" |
| help |
| Use Zephyr's ``LOG_DEFAULT_LEVEL`` as the log level. |
| |
| endchoice |
| |
| config PIGWEED_LOG_LEVEL |
| int |
| depends on LOG |
| default 0 if PIGWEED_LOG_LEVEL_OFF |
| default 1 if PIGWEED_LOG_LEVEL_ERR |
| default 2 if PIGWEED_LOG_LEVEL_WRN |
| default 3 if PIGWEED_LOG_LEVEL_INF |
| default 4 if PIGWEED_LOG_LEVEL_DBG |
| default LOG_DEFAULT_LEVEL if PIGWEED_LOG_LEVEL_DEFAULT |
| |
| endif # PIGWEED_LOG_ZEPHYR || PIGWEED_LOG_TOKENIZED || PIGWEED_LOG_TOKENIZED_RPC |
| |
| if PIGWEED_LOG_TOKENIZED |
| rsource "Kconfig.tokenized" |
| endif # PIGWEED_LOG_TOKENIZED |
| |
| endmenu |