# # For a description of the syntax of this configuration file, # see the file kconfig-language.txt in the NuttX tools repository. # menu "System Logging" # Selected if the architecture has its own, built-in SYSLOGging enabled config ARCH_SYSLOG bool default n # Selected if the SYSLOG device supports multi-byte write operations config SYSLOG_WRITE bool default n config RAMLOG bool "RAM log device support" default n ---help--- This is a driver that was intended to support debugging output, aka syslogging, when the normal serial output is not available. For example, if you are using a telnet or USB serial console, the debug output will get lost. However, the RAMLOG device should be usable even if system logging is disabled. This driver is similar to a pipe in that it saves the debugging output in a FIFO in RAM. It differs from a pipe in numerous details as needed to support logging. if RAMLOG config RAMLOG_BUFSIZE int "RAMLOG buffer size" default 1024 depends on RAMLOG_SYSLOG ---help--- Size of the console RAM log. Default: 1024 config RAMLOG_CRLF bool "RAMLOG CR/LF" default n ---help--- Pre-pend a carriage return before every linefeed that goes into the RAM log. config RAMLOG_NONBLOCKING bool "RAMLOG non-block reads" default y ---help--- Reading from the RAMLOG will never block if the RAMLOG is empty. If the RAMLOG is empty, then zero is returned (usually interpreted as end-of-file). config RAMLOG_NPOLLWAITERS int "RAMLOG number of poll waiters" default 4 ---help--- The maximum number of threads that may be waiting on the poll method. config RAMLOG_OVERWRITE bool "RAMLOG overwrite circular buffer" default n ---help--- Enable overwrite of circular buffer. If RAMLOG buffer overflows, overwrite it from the top of buffer and always keep the latest log. endif config SYSLOG_BUFFER bool "Use buffered output" default n depends on SYSLOG_WRITE select MM_IOB ---help--- Enables an buffering logic that will be used to serialize debug output from concurrent tasks. This enables allocation of one buffer per thread, each of size CONFIG_IOB_BUFSIZE. The use of SYSLOG buffering is optional. If not enabled, however, then the output from multiple tasks that attempt to generate SYSLOG output may be interleaved and difficult to read. config SYSLOG_INTBUFFER bool "Use interrupt buffer" default n ---help--- Enables an interrupt buffer that will be used to serialize debug output from interrupt handlers. config SYSLOG_INTBUFSIZE int "Interrupt buffer size" default 512 depends on SYSLOG_INTBUFFER ---help--- The size of the interrupt buffer in bytes. config SYSLOG_TIMESTAMP bool "Prepend timestamp to syslog message" default n ---help--- Prepend timestamp to syslog message. config SYSLOG_TIMESTAMP_REALTIME bool "Use wall-clock for syslog timestamp" default n depends on SYSLOG_TIMESTAMP ---help--- Use wall-clock (CLOCK_REALTIME) for timestamp. By default, CLOCK_MONOTONIC, if enabled, will be used or the system timer is not. config SYSLOG_PREFIX bool "Prepend prefix to syslog message" default n ---help--- Prepend prefix to syslog message. config SYSLOG_PREFIX_STRING string "Prefix string" depends on SYSLOG_PREFIX default "" ---help--- The prefix string to be prepend. choice prompt "System log device" default SYSLOG_CONSOLE if !ARCH_LOWPUTC default SYSLOG_DEFAULT if ARCH_LOWPUTC depends on !ARCH_SYSLOG config SYSLOG_CHAR bool "Log to a character device" select SYSLOG_WRITE ---help--- Enable the generic character device for the SYSLOG. The full path to the SYSLOG device is provided by SYSLOG_DEVPATH. A valid character device (or file) must exist at this path. It will by opened by syslog_initialize. config RAMLOG_SYSLOG bool "Use RAMLOG for SYSLOG" depends on RAMLOG && !ARCH_SYSLOG ---help--- Use the RAM logging device for the syslogging interface. If this feature is enabled (along with SYSLOG), then all debug output (only) will be re-directed to the circular buffer in RAM. This RAM log can be viewed from NSH using the 'dmesg' command. config SYSLOG_CONSOLE bool "Log to /dev/console" depends on DEV_CONSOLE select SYSLOG_WRITE ---help--- Use the system console as a SYSLOG output device. config SYSLOG_RPMSG bool "Log to RPMSG" depends on OPENAMP depends on SCHED_WORKQUEUE select SYSLOG_WRITE ---help--- Use the rpmsg as a SYSLOG output device, send message to remote proc. config SYSLOG_DEFAULT bool "Default SYSLOG device" ---help--- syslog() interfaces will be present, but all output will go to the up_putc(ARCH_LOWPUTC == y) or bit-bucket(ARCH_LOWPUTC == n). endchoice config SYSLOG_RPMSG_WORK_DELAY int "SYSLOG RPMSG work delay(ms)" default 100 depends on SYSLOG_RPMSG config SYSLOG_RPMSG_SERVER bool "Enable RPMSG server for SYSLOG" default n depends on OPENAMP ---help--- Use rpmsg to receive message from remote proc. config SYSLOG_FILE bool "Syslog file output" default n select SYSLOG_WRITE ---help--- Build in support to use a file to collect SYSLOG output. File SYSLOG channels differ from other SYSLOG channels in that they cannot be established until after fully booting and mounting the target file system. The function syslog_file_channel() would need to be called from board-specific bring-up logic AFTER mounting the file system containing 'devpath'. NOTE interrupt level SYSLOG output will be lost in this case unless the interrupt buffer is used. config CONSOLE_SYSLOG bool "Use SYSLOG for /dev/console" default n depends on DEV_CONSOLE && !SYSLOG_CONSOLE ---help--- Use the syslog logging device as a system console. If this feature is enabled (along with DEV_CONSOLE), then all console output will be re-directed to syslog output (syslog_putc). This is useful, for example, if the only console is a Telnet console. Then in that case, console output from non-Telnet threads will go to the syslog output. config SYSLOG_CHAR_CRLF bool "SYSLOG device CR/LF" default y depends on SYSLOG_CHAR ---help--- Pre-pend a carriage return before every linefeed that goes to the character device. config SYSLOG_DEVPATH string "System log device" default "/dev/ttyS1" depends on SYSLOG_CHAR ---help--- The full path to the system logging device. For the RAMLOG SYSLOG device, this is normally "/dev/ramlog". For character SYSLOG devices, it should be some other existing character device (or file) supported by the configuration (such as "/dev/ttyS1")/ config SYSLOG_CHARDEV bool "SYSLOG character device" default n ---help--- Enables support for a simple character driver at /dev/syslog whose write() method will transfer data to the SYSLOG device. This can be useful if, for example, you want to redirect the output of a program to the SYSLOG. NOTE that unlike other syslog output, this data is unformatted raw byte output with no time-stamping or any other SYSLOG features supported. endmenu # System logging