| # |
| # For a description of the syntax of this configuration file, |
| # see the file kconfig-language.txt in the NuttX tools repository. |
| # |
| |
| menuconfig LOGGING_EMBEDLOG |
| bool "embedlog library" |
| default n |
| ---help--- |
| Highly configurable logger for embedded devices. Documentation and |
| more info available on: https://embedlog.bofc.pl (don't worry, |
| it's in english). Note: none of the options define how embedlog |
| will behave, it will simply configure whether given feature can be |
| enabled in runtime or no. So enabling CONFIG_EMBEDLOG_ENABLE_TIMESTAMP |
| won't make logger to add timestamp to every message - you will have to |
| also enable timestamp in runtime object. But when |
| CONFIG_EMBEDLOG_ENABLE_TIMESTAMP is disabled, setting timestamp print |
| in runtime will make no difference and timestamp still will not be |
| printed. |
| |
| Library is licensed under BSD 2-clause license. See LICENSE file in |
| the downloaded code for license details |
| |
| if LOGGING_EMBEDLOG |
| |
| config EMBEDLOG_ENABLE_PTHREAD |
| bool "Enable thread safety" |
| depends on !DISABLE_PTHREAD |
| default n |
| ---help--- |
| When enabled, you will be able to configure embedlog to use |
| EL_THREAD_SAFE option, which will provide full thread safety in all |
| circumstances. When printing to stdout or syslog, embedlog is |
| half thread-safe. Buffer is allocated for each print call, so |
| different calls will not interfere with each other, but once |
| buffer is handed over to the kernel, logs might get mangled. |
| To make sure this does not happen, enable this and enable |
| EL_THREAD_SAFE option in runtime. |
| |
| When multiple threads print to single file, this must be |
| enabled, as there are global states in each 'el' object. If two |
| 'el' objects print into two separate files, you do not need |
| thread safety. |
| |
| comment "DISABLE_PTHREAD must be disabled to use thread safety" |
| depends on DISABLE_PTHREAD |
| |
| config EMBEDLOG_ENABLE_OUT_FILE |
| bool "Enable logging to file" |
| default n |
| ---help--- |
| If enabled, you will be able to store logs in a file (like on |
| sdcard). Log rotation is available as well. Library automatically |
| handles cases when files are deleted or mountpoint disappears and |
| appear again (like sd card switch). Disabling this will result in |
| smaller code. |
| |
| if EMBEDLOG_ENABLE_OUT_FILE |
| |
| config EMBEDLOG_ENABLE_BINARY_LOGS |
| bool "Enable binary logs" |
| default n |
| ---help--- |
| When enabled, you will be able to print binary data into file |
| to save space (on block device). Note: you will not be able to |
| read such logs with tools like 'less' or 'grep'. You will need to |
| create own reader or use 'hexdump'. |
| |
| endif |
| |
| config EMBEDLOG_ENABLE_OUT_STDERR |
| bool "Enable logging to standard error" |
| default y |
| ---help--- |
| If enabled, you will be able to log messages to standard error (stderr) |
| and/or standard output (stdout). |
| |
| config EMBEDLOG_ENABLE_OUT_TTY |
| bool "Enable printing to tty device" |
| default y |
| ---help--- |
| If enabled, you will be able to configure logger to print directly |
| to tty serial device (like /dev/ttyS1). This might be useful if you |
| want to have nsh in one tty and logs on the other. This is suitable |
| if only one task will be printing logs to one tty, if you want |
| multiple tasks to print into one tty, it's better to enable syslog |
| printing and the syslog handle it. |
| |
| config EMBEDLOG_ENABLE_OUT_CUSTOM |
| bool "Enable custom logging function" |
| default n |
| ---help--- |
| When enabled, you will be able to define own function that accepts |
| fully constructed log message as 'const char *' |
| |
| config EMBEDLOG_ENABLE_TIMESTAMP |
| bool "Enable timestamp in messages" |
| default y |
| ---help--- |
| If enabled, you will be able to configure logger to add timestamp to |
| every logged message. |
| |
| if EMBEDLOG_ENABLE_TIMESTAMP |
| |
| config EMBEDLOG_ENABLE_FRACTIONS |
| bool "Enable fractions of seconds" |
| default y |
| ---help--- |
| If enabled, you will be able to configure logger to add fractions of |
| seconds to timestamp |
| |
| endif |
| |
| config EMBEDLOG_ENABLE_PREFIX |
| bool "Enable prefix" |
| default n |
| ---help--- |
| If enabled, you will be able to set prefix that will be added to |
| each message logged by embedlog. Useful when multiple tasks print |
| to one tty (via syslog) and you need an easy way to know which program |
| printed given log message. |
| |
| if EMBEDLOG_ENABLE_PREFIX |
| |
| config EMBEDLOG_PREFIX_MAX |
| int "Max prefix length" |
| default 16 |
| ---help--- |
| Maximum length of prefix that can be printed. If prefix exceeds this |
| value it will be truncated. |
| |
| endif # EMBEDLOG_ENABLE_PREFIX |
| |
| config EMBEDLOG_ENABLE_FINFO |
| bool "Enable file info" |
| default y |
| ---help--- |
| If enabled, you will be able to turn on information about location |
| of the log. This uses __FILE__ and __LINE__ macros. |
| |
| if EMBEDLOG_ENABLE_FINFO |
| |
| config EMBEDLOG_FLEN_MAX |
| int "Max file name in finfo" |
| default 16 |
| ---help--- |
| finfo look like this |
| |
| [filename.c:123] |
| |
| this parameter defines how long "filename.c" can be, if file name |
| exceeds this value it will be truncated. |
| |
| config EMBEDLOG_ENABLE_FUNCINFO |
| bool "Enable function info in log" |
| default y |
| ---help--- |
| When enabled, embedlog can be configured to add information |
| about function name from which log originated. This uses __func__ |
| macro, so you need compiler that supports that. This macro was |
| introduced in c99 standard. |
| |
| if EMBEDLOG_ENABLE_FUNCINFO |
| |
| config EMBEDLOG_FUNCLEN_MAX |
| int "Max length of function to print" |
| default 16 |
| ---help--- |
| Max length of function name to print. If function is longer than |
| this value, it will be truncated. This directly impacts size of |
| buffer for each 'el' object allocated. |
| |
| endif # EMBEDLOG_ENABLE_FUNCINFO |
| |
| endif # EMBEDLOG_ENABLE_FINFO |
| |
| comment "Function info requires EMBEDLOG_ENABLE_FINFO" |
| depends on !EMBEDLOG_ENABLE_FINFO |
| |
| config EMBEDLOG_ENABLE_COLORS |
| bool "Enable output colors" |
| default n |
| ---help--- |
| If enabled, you will be able to turn on ANSI colors for messages |
| with different log severities. Disabling this will result in smaller |
| code. |
| |
| config EMBEDLOG_LOG_MAX |
| int "Max length of log message" |
| default 128 |
| ---help--- |
| Maximum length of single log message. This defines length of final |
| message, so message "foo() returned %s" may consume for example |
| 200 bytes since '%s' may be a long string. Metadata like timestamp |
| or file info uses this space too. Output log will be truncated if |
| it exceeds this value. Lowering/increasing will result in |
| appropriate higher/lower stack usage. |
| |
| config EMBEDLOG_MEM_LINE_SIZE |
| int "Number of bytes in line" |
| default 16 |
| ---help--- |
| How many bytes of memory to print in a single line of el_pmemory call. |
| Check https://embedlog.bofc.pl/manuals/el_pmemory.3.html |
| for more information about this. |
| |
| config EMBEDLOG_DEMO_PROGRAMS |
| tristate "Compile demo programs" |
| default n |
| ---help--- |
| Compile demo programs that visualise how embedlog works. Also good |
| for checking if embedlog behaves correctly. |
| |
| if EMBEDLOG_DEMO_PROGRAMS |
| |
| config EMBEDLOG_DEMO_PROGRAMS_PRIORITY |
| int "embedlog demo programs task priority" |
| default 100 |
| |
| config EMBEDLOG_DEMO_PROGRAMS_STACKSIZE |
| int "embedlog demo programs stack size" |
| default DEFAULT_TASK_STACKSIZE |
| |
| endif # EMBEDLOG_DEMO_PROGRAMS |
| endif # LOGGING_EMBEDLOG |