| # |
| # 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 |
| |
| comment "SYSLOG options" |
| |
| config SYSLOG_MAX_CHANNELS |
| int "Maximum SYSLOG channels" |
| default 1 |
| ---help--- |
| Maximum number of supported SYSLOG channels. |
| |
| 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_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_POLLTHRESHOLD |
| int "The threshold value of circular buffer to notify poll waiters" |
| default 1 |
| ---help--- |
| When the length of circular buffer exceeds the threshold value, the poll() will |
| return POLLIN to all poll waiters. |
| endif |
| |
| config SYSLOG_BUFFER |
| bool "Use buffered output" |
| default n |
| ---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. |
| |
| if SYSLOG_BUFFER |
| |
| config SYSLOG_BUFSIZE |
| int "Syslog buffer size" |
| default 64 |
| ---help--- |
| The size of the syslog buffer in bytes. |
| |
| endif |
| |
| 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. |
| |
| comment "Formatting options" |
| |
| 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 will be used. |
| |
| config SYSLOG_TIMESTAMP_FORMATTED |
| bool "Formatted syslog time" |
| default n |
| depends on SYSLOG_TIMESTAMP_REALTIME |
| ---help--- |
| Syslog timestamp will be formatted according to the |
| SYSLOG_TIMESTAMP_FORMAT format string. |
| |
| config SYSLOG_TIMESTAMP_LOCALTIME |
| bool "Use local-time timestamp" |
| default n |
| depends on SYSLOG_TIMESTAMP_FORMATTED |
| ---help--- |
| If selected local time will be used for the timestamps. |
| Else, timestamps will be in UTC. |
| |
| config SYSLOG_TIMESTAMP_FORMAT |
| string "Time format" |
| default "%d/%m/%y %H:%M:%S" |
| depends on SYSLOG_TIMESTAMP_FORMATTED |
| ---help--- |
| Formatter string for syslog timestamp printing. |
| Uses the standard "strftime" format specifiers. |
| |
| config SYSLOG_TIMESTAMP_FORMAT_MICROSECOND |
| bool "Append microseconds after seconds" |
| default y |
| depends on SYSLOG_TIMESTAMP_FORMAT = "%d/%m/%y %H:%M:%S" |
| |
| config SYSLOG_TIMESTAMP_BUFFER |
| int "Formatted timestamp buffer size" |
| default 64 |
| depends on SYSLOG_TIMESTAMP_FORMATTED |
| ---help--- |
| Buffer size to store syslog formatted timestamps. |
| |
| config SYSLOG_PRIORITY |
| bool "Prepend priority to syslog message" |
| default n |
| ---help--- |
| Prepend log priority (severity) to syslog message. |
| |
| config SYSLOG_PROCESS_NAME |
| bool "Prepend process name to syslog message" |
| default n |
| ---help--- |
| Prepend Process name to syslog message. |
| |
| config SYSLOG_PROCESSID |
| bool "Prepend process ID to syslog message" |
| default n |
| ---help--- |
| Prepend Process ID to syslog message. |
| |
| 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 |
| ---help--- |
| The prefix string to be prepend. |
| |
| config SYSLOG_COLOR_OUTPUT |
| bool "Colored syslog output" |
| default n |
| ---help--- |
| Enables colored output in syslog, according to message priority. |
| |
| comment "SYSLOG channels" |
| |
| config SYSLOG_DEVPATH |
| string "System log device" |
| default "/dev/kmsg" if RAMLOG_SYSLOG |
| default "/dev/ttyS1" if !RAMLOG_SYSLOG |
| ---help--- |
| The full path to the system logging device. For the RAMLOG SYSLOG device, |
| this is normally "/dev/kmsg". For character SYSLOG devices, it should be |
| some other existing character device (or file) supported by the configuration |
| (such as "/dev/ttyS1")/ |
| |
| if !ARCH_SYSLOG |
| config SYSLOG_CHAR |
| bool "Log to a character device" |
| default n |
| ---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 |
| default n |
| ---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_RPMSG |
| bool "Log to RPMSG" |
| depends on RPMSG |
| depends on SCHED_WORKQUEUE |
| default n |
| ---help--- |
| Use the RPMSG as a SYSLOG output device, send message to remote proc. |
| |
| config SYSLOG_STREAM |
| bool "Log to stream" |
| default n |
| ---help--- |
| Enables support to use stream as syslog backend, such as block out stream. |
| It is recommended to implement the backend stream in a way that syslog |
| works in interrupt context. |
| |
| config SYSLOG_CONSOLE |
| bool "Log to /dev/console" |
| default !ARCH_LOWPUTC && !SYSLOG_CHAR && !RAMLOG_SYSLOG && !SYSLOG_RPMSG && !SYSLOG_RTT |
| depends on DEV_CONSOLE |
| ---help--- |
| Use the system console as a SYSLOG output device. |
| |
| config SYSLOG_DEFAULT |
| bool "Default SYSLOG device" |
| default ARCH_LOWPUTC && !SYSLOG_CHAR && !RAMLOG_SYSLOG && !SYSLOG_RPMSG && !SYSLOG_RTT && !SYSLOG_CONSOLE |
| ---help--- |
| syslog() interfaces will be present, but all output will go to the |
| up_putc(ARCH_LOWPUTC == y) or bit-bucket(ARCH_LOWPUTC == n). |
| |
| endif |
| |
| if RAMLOG_SYSLOG |
| |
| config RAMLOG_BUFFER_SECTION |
| string "The section where ramlog buffer is located" |
| ---help--- |
| The section where ramlog buffer is located. |
| The section shall not be initialized on system boot. |
| |
| config RAMLOG_BUFSIZE |
| int "RAMLOG buffer size" |
| default 1024 |
| ---help--- |
| Size of the console RAM log. Default: 1024 |
| |
| endif # RAMLOG_SYSLOG |
| |
| if SYSLOG_RPMSG |
| |
| config SYSLOG_RPMSG_SERVER_NAME |
| string "The name of Syslog RPMSG Server" |
| ---help--- |
| The proc name of RPMSG server. Client sends message to |
| specified name of remote proc. |
| |
| config SYSLOG_RPMSG_WORK_DELAY |
| int "SYSLOG RPMSG work delay(ms)" |
| default 100 |
| |
| config SYSLOG_RPMSG_CHARDEV |
| bool "SYSLOG RPMSG character device" |
| default SYSLOG_RPMSG_WORK_DELAY != 0 |
| |
| endif # SYSLOG_RPMSG |
| |
| config SYSLOG_RPMSG_SERVER |
| bool "Enable RPMSG server for SYSLOG" |
| default n |
| depends on RPMSG |
| ---help--- |
| Use RPMSG to receive message from remote proc. |
| |
| config SYSLOG_RPMSG_SERVER_CHARDEV |
| bool "SYSLOG RPMSG server character device" |
| default n |
| |
| menuconfig SYSLOG_FILE |
| bool "Syslog file output" |
| default n |
| ---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. |
| |
| if SYSLOG_FILE |
| |
| config SYSLOG_FILE_SEPARATE |
| bool "Log file separation" |
| default n |
| ---help--- |
| If enabled, every time the file logger is re-attached, a separator |
| will be printed in the file. |
| |
| This can be useful to easily distinguish between log entries that |
| belong to different log sessions (e.g. system reboot), and to |
| indicate that between the separated lines there may be more logs |
| that were lost. |
| |
| config SYSLOG_FILE_ROTATIONS |
| int "Log file rotations" |
| default 0 |
| ---help--- |
| If enabled (set to a non-zero number), the log file size will be |
| checked before opening. If it is larger than the specified limit |
| it will be "rotated", i.e. the old file will be kept as a backup, |
| and a new empty file will be created. |
| |
| The number of rotations specifies the number of old log files to |
| keep. |
| |
| This option is useful to ensure that log files do not get |
| huge after prolonged periods of system operation. |
| |
| config SYSLOG_FILE_SIZE_LIMIT |
| int "Log file size limit" |
| default 524288 |
| depends on SYSLOG_FILE_ROTATIONS > 0 |
| ---help--- |
| File size limit when the log is rotated automatically. |
| If a log file is found larger than this limit, it will |
| be rotated. |
| |
| endif # SYSLOG_FILE |
| |
| 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_CHARDEV |
| bool "SYSLOG character device" |
| default n |
| ---help--- |
| Enables support for a simple character driver at /dev/log 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. |
| |
| config SYSLOG_IOCTL |
| bool "SYSLOG IOCTL support" |
| default n |
| ---help--- |
| Enables support for the SYSLOG IOCTL command. This command is used |
| to control the behavior of the SYSLOG device. Currently, the supported |
| commands are SYSLOGIOC_SETFILTER/SYSLOGIOC_GETCHANNELS, which can be |
| used to set the enable status of different channels |
| |
| endmenu # System logging |