mbox series

[v4,00/22] log: Add commands for manipulating filters

Message ID 20201027235541.706077-1-seanga2@gmail.com
Headers show
Series log: Add commands for manipulating filters | expand


Sean Anderson Oct. 27, 2020, 11:55 p.m. UTC
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.

Passing CI:

Changes in v4:
- Add a space in between the <= operator and the log level
- Add some more examples to docs
- Rebase onto master
- Remove "log: Add new category names to log_cat_name" since it has been
- Wrap UCLASS_ literals with log_uc_cat when used as log categories

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 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 (22):
  log: Fix missing negation of ENOMEM
  log: Fix incorrect documentation of log_filter.cat_list
  log: Add additional const qualifier to arrays
  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                 | 354 ++++++++++++++++++++++---
 common/log.c              |  58 ++---
 doc/api/getopt.rst        |   8 +
 doc/api/index.rst         |   1 +
 doc/develop/logging.rst   | 224 ++++++++--------
 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, 1470 insertions(+), 528 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