blob: 1cf46729781ac15f44224d557c32e1eb0934857e [file] [log] [blame]
# 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