# # Copyright (c) 2016 Intel Corporation # # SPDX-License-Identifier: Apache-2.0 # menu "Logging Options" config SYS_LOG bool "Enable Logging" depends on PRINTK help Global switch for logging, when turned off log calls will not be executed. config SYS_LOG_SHOW_TAGS bool "Prepend level tags to logs" depends on SYS_LOG default y help Prefixes all log lines with an identifier to the log level submitted in the C code. config SYS_LOG_SHOW_COLOR bool "Use colored logs" depends on SYS_LOG help Use color in the logs. This requires an ANSI capable terminal. config SYS_LOG_DEFAULT_LEVEL int "Default log level" depends on SYS_LOG default 0 range 0 4 help Sets log level for modules which don't specify it explicitly. When set to 0 it means log wont be activated for those modules. Levels are: 0 OFF, do not write by default 1 ERROR, default to only write SYS_LOG_ERR 2 WARNING, default to write SYS_LOG_WRN in addition to previous level 3 INFO, default to write SYS_LOG_INF in addition to previous levels 4 DEBUG, default to write SYS_LOG_DBG in addition to previous levels config SYS_LOG_OVERRIDE_LEVEL int "Override lowest log level" depends on SYS_LOG default 0 range 0 4 help Forces a minimum log level for all modules. Modules use their specified level if it is greater than this option, otherwise they use the level specified by this option instead of their default or whatever was manually set. Levels are: 0 OFF, do not override 1 ERROR, override to write SYS_LOG_ERR 2 WARNING, override to write SYS_LOG_WRN in addition to previous level 3 INFO, override to write SYS_LOG_INF in addition to previous levels 4 DEBUG, override to write SYS_LOG_DBG in addition to previous levels config SYS_LOG_EXT_HOOK bool "Use external hook function for logging" depends on SYS_LOG help Use external hook function for logging. config SYS_LOG_BACKEND_NET bool "Networking syslog backend" depends on SYS_LOG && NETWORKING select SYS_LOG_EXT_HOOK select NET_CONTEXT_NET_PKT_POOL help Send syslog messages to network server. See RFC 5424 (syslog protocol) and RFC 5426 (syslog over UDP) specifications for details. if SYS_LOG_BACKEND_NET config SYS_LOG_BACKEND_NET_SERVER string "Syslog server IP address" help This can be either IPv4 or IPv6 address. Server listen UDP port number can be configured here too. Following syntax is supported: 192.0.2.1:514 192.0.2.42 [2001:db8::1]:514 [2001:db8::2] 2001:db::42 config SYS_LOG_BACKEND_NET_MAX_BUF int "How many network buffers to allocate for sending messages" range 3 256 default 3 help Each syslog message will occupy one network buffer. config SYS_LOG_BACKEND_NET_MAX_BUF_SIZE int "Max syslog message size" range 64 1180 default 256 help As each syslog message needs to fit to UDP packet, set this value so that messages are not truncated. The RFC 5426 recommends that for IPv4 the size is 480 octets and for IPv6 the size is 1180 octets. As each buffer will use RAM, the value should be selected so that typical messages will fit the buffer. The total allocated memory will be SYS_LOG_BACKEND_NET_MAX_BUF * SYS_LOG_BACKEND_NET_MAX_BUF_SIZE endif config LOG bool "Enable Logger" help Global switch for the logger, when turned off log calls will not be compiled in. if LOG config LOG_RUNTIME_FILTERING bool "Enable runtime reconfiguration of the logger" help Allow runtime configuration of maximal, independent severity level for instance. choice prompt "Log full strategy" config LOG_MODE_OVERFLOW bool "Oldest logs are discarded" config LOG_MODE_NO_OVERFLOW bool "New logs are dropped" endchoice config LOG_DEFAULT_LEVEL int "Default log level" default 3 range 0 4 help Sets log level for modules which don't specify it explicitly. When set to 0 it means log will not be activated for those modules. Levels are: - 0 OFF, do not write by default - 1 ERROR, default to only write LOG_LEVEL_ERR - 2 WARNING, default to write LOG_LEVEL_WRN - 3 INFO, default to write LOG_LEVEL_INFO - 4 DEBUG, default to write LOG_LEVEL_DBG config LOG_OVERRIDE_LEVEL int "Override lowest log level" default 0 range 0 4 help Forces a minimum log level for all modules. Modules use their specified level if it is greater than this option, otherwise they use the level specified by this option instead of their default or whatever was manually set. Levels are: - 0 OFF, do not override - 1 ERROR, override to write LOG_LEVEL_ERR - 2 WARNING, override to write LOG_LEVEL_WRN - 3 INFO, override to write LOG_LEVEL_INFO - 4 DEBUG, override to write LOG_LEVEL_DBG config LOG_MAX_LEVEL int "Maximal log level compiled in the system" default 4 range 0 4 help Forces a maximal log level for all modules. Modules saturates their specified level if it is greater than this option, otherwise they use the level specified by this option instead of their default or whatever was manually set. Levels are: - 0 OFF, logging is turned off - 1 ERROR, maximal level set to LOG_LEVEL_ERR - 2 WARNING, maximal level set to LOG_LEVEL_WRN - 3 INFO, maximal level set to LOG_LEVEL_INFO - 4 DEBUG, maximal level set to LOG_LEVEL_DBG config LOG_PRINTK bool "Enable processing of printk messages." help LOG_PRINTK messages are formatted in place and logged unconditionally. config LOG_PRINTK_MAX_STRING_LENGTH int "Maximum string length supported by LOG_PRINTK" depends on LOG_PRINTK default 128 help Array is allocated on the stack. config LOG_INPLACE_PROCESS bool "Enable in place processing" help When enabled log is processed in the context of the call. It impacts performance of the system since time consuming operations are performed in the context of the log entry (e.g. high priority interrupt). When enabled LOG_BUFFER_SIZE can be reduced. Logger backends must support exclusive access to work flawlessly in that mode because one log operation can be interrupted by another one in higher priority context. config LOG_PROCESS_TRIGGER_THRESHOLD int "Amount of buffered logs which triggers processing thread." default 10 help When number of buffered messages reaches the threshold thread is waken up. Log processing thread ID is provided during log initialization. Set 0 to disable the feature. If LOG_PROCESS_THREAD is enabled then this threshold is used by the internal thread. config LOG_PROCESS_THREAD bool "Enable internal thread for log processing" depends on MULTITHREADING default y help When enabled thread is created by the logger subsystem. Thread is waken up periodically (see LOG_PROCESS_THREAD_SLEEP_MS) and whenever number of buffered messages exceeds the threshold (see LOG_PROCESS_TRIGGER_THR). if LOG_PROCESS_THREAD config LOG_PROCESS_THREAD_SLEEP_MS int "Set internal log processing thread sleep period" default 1000 help Log processing thread sleeps for requested period given in milliseconds. When waken up, thread process any buffered messages. config LOG_PROCESS_THREAD_PRIO int "Priority of the log internal thread" default -2 help Change with care since log processing can be time consuming thus it should be on low priority. config LOG_PROCESS_THREAD_STACK_SIZE int "Stack size for the internal log processing thread" default 768 help Set the internal stack size for log processing thread. endif config LOG_BUFFER_SIZE int "Number of bytes dedicated for the logger internal buffer." default 1024 range 128 65536 help Number of bytes dedicated for the logger internal buffer. config LOG_STRDUP_MAX_STRING int "Longest string that can be duplicated using log_strdup()" default 46 if NETWORKING default 32 help Longer strings are truncated. config LOG_STRDUP_BUF_COUNT int "Number of buffers in the pool used by log_strdup()" default 4 help When pool is empty log_strdup() returns warning string instead of the copy. config LOG_DOMAIN_ID int "Domain ID" default 0 range 0 7 help In multicore system each application/core must have unique domain ID. config LOG_CMDS bool "Enable shell commands" default y if SHELL config LOG_BACKEND_UART bool "Enable UART backend" depends on UART_CONSOLE default y help When enabled backend is using UART to output logs. config LOG_BACKEND_NATIVE_POSIX bool "Enable native backend" depends on ARCH_POSIX default n help Enable backend in native_posix config LOG_BACKEND_SHOW_COLOR bool "Enable colors in the backend" depends on LOG_BACKEND_UART || LOG_BACKEND_NATIVE_POSIX default y help When enabled UART backend prints errors in red and warning in yellow. config LOG_BACKEND_FORMAT_TIMESTAMP bool "Enable timestamp formatting in the backend" depends on LOG_BACKEND_UART || LOG_BACKEND_NATIVE_POSIX default y help When enabled timestamp is formatted to hh:mm:ss:ms,us. endif endmenu