Boot Linux faster!

Check our new training course

Boot Linux faster!

Check our new training course
and Creative Commons CC-BY-SA
lecture and lab materials

Bootlin logo

Elixir Cross Referencer

#
# 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_DOMAIN_ID
	int "Domain ID"
	default 0
	range 0 7
	help
	  In multicore system each application/core must have unique domain ID.

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_UART_SHOW_COLOR
	bool "Enable colors in the UART backend"
	depends on LOG_BACKEND_UART
	default y
	help
	  When enabled UART backend prints errors in red and warning in yellow.

config LOG_BACKEND_UART_FORMAT_TIMESTAMP
	bool "Enable timestamp formatting in the UART backend"
	depends on LOG_BACKEND_UART
	default y
	help
	  When enabled timestamp is formatted to hh:mm:ss:ms,us.
endif
endmenu