This series adds several commands for adding, listing, and removing log filters. It also adds getopt, since the filter-add command needs to have several optional arguments to be complete, and positional specification of those arguments would have been difficult.
Changes in v3: - Convert log_test from python to C - Document assumption that erroneous results from log_get_cat_name begin with '<' - Fix heading level of Filters section - Remove a few more already-implemented features from the TODO list - Update copyright for log_filter.c Changes in v2: - Add % before constants in kerneldocs - Add a few informational commands - Add compiletime assert on size of log_cat_name - Add const qualifier to log_*_name - Add option to remove all filters to filter-remove - Clarify filter-* help text - Clarify wording of filter documentation - Converted log filter-* tests to C from python - Document log_level_t and log_category_t members - Expand documentation of getopt() to include examples - Expose log_has_cat and log_has_file for filter tests - Include enum definitions instead of re-documenting them - Print an error message if the log level is invalid. - Remove opt prefix from getopt_state members - Reorganize log documentation; related sections should now be more proximate Sean Anderson (23): log: Fix missing negation of ENOMEM log: Fix incorrect documentation of log_filter.cat_list log: Add additional const qualifier to arrays log: Add new category names to log_cat_name log: Use CONFIG_IS_ENABLED() for LOG_TEST log: Expose some helper functions log: Add function to create a filter with flags log: Add filter flag to deny on match test: log: Convert log_test from python to C test: log: Give tests names instead of numbers test: Add tests for LOGFF_DENY log: Add filter flag to match greater than a log level test: Add test for LOGFF_MIN cmd: log: Use sub-commands for log cmd: log: Split off log level parsing cmd: log: Add commands to list categories and drivers cmd: log: Make "log level" print all log levels lib: Add getopt test: Add a test for getopt cmd: log: Add commands to manipulate filters test: Add a test for log filter-* doc: Add log kerneldocs to documentation doc: Update logging documentation MAINTAINERS | 1 + cmd/Kconfig | 1 + cmd/log.c | 353 ++++++++++++++++++++++--- common/log.c | 66 ++--- doc/api/getopt.rst | 8 + doc/api/index.rst | 1 + doc/develop/logging.rst | 245 +++++++++-------- include/getopt.h | 130 +++++++++ include/log.h | 212 +++++++++++---- include/test/log.h | 3 + lib/Kconfig | 5 + lib/Makefile | 1 + lib/getopt.c | 125 +++++++++ test/lib/Makefile | 1 + test/lib/getopt.c | 123 +++++++++ test/log/Makefile | 1 + test/log/log_filter.c | 108 ++++++++ test/log/log_test.c | 536 +++++++++++++++++++++++++------------- test/log/syslog_test.h | 2 - test/py/tests/test_log.py | 104 -------- 20 files changed, 1482 insertions(+), 544 deletions(-) create mode 100644 doc/api/getopt.rst create mode 100644 include/getopt.h create mode 100644 lib/getopt.c create mode 100644 test/lib/getopt.c create mode 100644 test/log/log_filter.c -- 2.28.0