Final (almost) proposal:
Given the following WebUI settings:
The http://tvh:9981/api/tvhlog/subsystem/grid
produces the following output:
{
"entries": [
{
"id": 1,
"subsystem": "START",
"description": "START",
"trace": false,
"debug": true <=====
},
{
"id": 2,
"subsystem": "STOP",
"description": "STOP",
"trace": true, <=====
"debug": false
},
{
"id": 3,
"subsystem": "CRASH",
"description": "CRASH",
"trace": false,
"debug": true <=====
},
{
"id": 4,
"subsystem": "main",
"description": "Main",
"trace": true, <=====
"debug": false
},
{
"id": 5,
"subsystem": "tprof",
"description": "Time profiling",
"trace": true, <=====
"debug": true <=====
},
{
"id": 6,
"subsystem": "qprof",
"description": "Queue profiling",
"trace": false,
"debug": false
},
{
"id": 7,
"subsystem": "CPU",
"description": "CPU",
"trace": false,
"debug": false
},
{
"id": 8,
"subsystem": "thread",
"description": "Thread",
"trace": false,
"debug": false
},
{
"id": 9,
"subsystem": "tvhpoll",
"description": "Poll multiplexer",
"trace": false,
"debug": false
},
{
"id": 10,
"subsystem": "time",
"description": "Time",
"trace": false,
"debug": false
},
{
"id": 11,
"subsystem": "spawn",
"description": "Spawn",
"trace": false,
"debug": false
},
{
"id": 12,
"subsystem": "fsmonitor",
"description": "Filesystem monitor",
"trace": false,
"debug": false
},
{
"id": 13,
"subsystem": "lock",
"description": "Locking",
"trace": false,
"debug": false
},
{
"id": 14,
"subsystem": "uuid",
"description": "UUID",
"trace": false,
"debug": false
},
{
"id": 15,
"subsystem": "idnode",
"description": "Node subsystem",
"trace": false,
"debug": false
},
{
"id": 16,
"subsystem": "url",
"description": "URL",
"trace": false,
"debug": false
},
{
"id": 17,
"subsystem": "tcp",
"description": "TCP Protocol",
"trace": false,
"debug": false
},
{
"id": 18,
"subsystem": "rtsp",
"description": "RTSP Protocol",
"trace": false,
"debug": false
},
{
"id": 19,
"subsystem": "upnp",
"description": "UPnP Protocol",
"trace": false,
"debug": false
},
{
"id": 20,
"subsystem": "settings",
"description": "Settings",
"trace": false,
"debug": false
},
{
"id": 21,
"subsystem": "config",
"description": "Configuration",
"trace": false,
"debug": false
},
{
"id": 22,
"subsystem": "access",
"description": "Access (ACL)",
"trace": false,
"debug": false
},
{
"id": 23,
"subsystem": "cron",
"description": "Cron",
"trace": false,
"debug": false
},
{
"id": 24,
"subsystem": "dbus",
"description": "DBUS",
"trace": false,
"debug": false
},
{
"id": 25,
"subsystem": "avahi",
"description": "Avahi",
"trace": false,
"debug": false
},
{
"id": 26,
"subsystem": "bonjour",
"description": "Bonjour",
"trace": false,
"debug": false
},
{
"id": 27,
"subsystem": "api",
"description": "API",
"trace": false,
"debug": false
},
{
"id": 28,
"subsystem": "http",
"description": "HTTP Server",
"trace": false,
"debug": false
},
{
"id": 29,
"subsystem": "httpc",
"description": "HTTP Client",
"trace": false,
"debug": false
},
{
"id": 30,
"subsystem": "htsp",
"description": "HTSP Server",
"trace": false,
"debug": false
},
{
"id": 31,
"subsystem": "htsp-sub",
"description": "HTSP Subscription",
"trace": false,
"debug": false
},
{
"id": 32,
"subsystem": "htsp-req",
"description": "HTSP Request",
"trace": false,
"debug": false
},
{
"id": 33,
"subsystem": "htsp-ans",
"description": "HTSP Answer",
"trace": false,
"debug": false
},
{
"id": 34,
"subsystem": "imagecache",
"description": "Image Cache",
"trace": false,
"debug": false
},
{
"id": 35,
"subsystem": "tbl",
"description": "DVB SI Tables",
"trace": false,
"debug": false
},
{
"id": 36,
"subsystem": "tbl-base",
"description": "Base DVB SI Tables (PAT,CAT,PMT,SDT etc.)",
"trace": false,
"debug": false
},
{
"id": 37,
"subsystem": "tbl-csa",
"description": "DVB CSA (descrambling) Tables",
"trace": false,
"debug": false
},
{
"id": 38,
"subsystem": "tbl-eit",
"description": "DVB EPG Tables",
"trace": false,
"debug": false
},
{
"id": 39,
"subsystem": "tbl-time",
"description": "DVB Time Tables",
"trace": false,
"debug": false
},
{
"id": 40,
"subsystem": "tbl-atsc",
"description": "ATSC SI Tables",
"trace": false,
"debug": false
},
{
"id": 41,
"subsystem": "tbl-pass",
"description": "Passthru Muxer SI Tables",
"trace": false,
"debug": false
},
{
"id": 42,
"subsystem": "tbl-satip",
"description": "SAT>IP Server SI Tables",
"trace": false,
"debug": false
},
{
"id": 43,
"subsystem": "fastscan",
"description": "Fastscan DVB",
"trace": false,
"debug": false
},
{
"id": 44,
"subsystem": "pcr",
"description": "PCR Clocks",
"trace": false,
"debug": false
},
{
"id": 45,
"subsystem": "parser",
"description": "MPEG-TS Parser",
"trace": false,
"debug": false
},
{
"id": 46,
"subsystem": "TS",
"description": "Transport Stream",
"trace": false,
"debug": false
},
{
"id": 47,
"subsystem": "globalheaders",
"description": "Global Headers",
"trace": false,
"debug": false
},
{
"id": 48,
"subsystem": "tsfix",
"description": "Time Stamp Fix",
"trace": false,
"debug": false
},
{
"id": 49,
"subsystem": "hevc",
"description": "HEVC - H.265",
"trace": false,
"debug": false
},
{
"id": 50,
"subsystem": "muxer",
"description": "Muxer",
"trace": false,
"debug": false
},
{
"id": 51,
"subsystem": "pass",
"description": "Pass-thru muxer",
"trace": false,
"debug": false
},
{
"id": 52,
"subsystem": "audioes",
"description": "Audioes muxer",
"trace": false,
"debug": false
},
{
"id": 53,
"subsystem": "mkv",
"description": "Matroska muxer",
"trace": false,
"debug": false
},
{
"id": 54,
"subsystem": "service",
"description": "Service",
"trace": false,
"debug": false
},
{
"id": 55,
"subsystem": "channel",
"description": "Channel",
"trace": false,
"debug": false
},
{
"id": 56,
"subsystem": "subscription",
"description": "Subscription",
"trace": false,
"debug": false
},
{
"id": 57,
"subsystem": "service-mapper",
"description": "Service Mapper",
"trace": false,
"debug": false
},
{
"id": 58,
"subsystem": "bouquet",
"description": "Bouquet",
"trace": false,
"debug": false
},
{
"id": 59,
"subsystem": "esfilter",
"description": "Elementary Stream Filter",
"trace": false,
"debug": false
},
{
"id": 60,
"subsystem": "profile",
"description": "Streaming Profile",
"trace": false,
"debug": false
},
{
"id": 61,
"subsystem": "descrambler",
"description": "Descrambler",
"trace": false,
"debug": false
},
{
"id": 62,
"subsystem": "descrambler-emm",
"description": "Descrambler EMM",
"trace": false,
"debug": false
},
{
"id": 63,
"subsystem": "caclient",
"description": "CA (descrambling) Client",
"trace": false,
"debug": false
},
{
"id": 64,
"subsystem": "csa",
"description": "CSA (descrambling)",
"trace": false,
"debug": false
},
{
"id": 65,
"subsystem": "capmt",
"description": "CAPMT CA Client",
"trace": false,
"debug": false
},
{
"id": 66,
"subsystem": "cwc",
"description": "CWC CA Client",
"trace": false,
"debug": false
},
{
"id": 67,
"subsystem": "cccam",
"description": "CWC CCCam Client",
"trace": false,
"debug": false
},
{
"id": 68,
"subsystem": "dvbcam",
"description": "DVB CAM Client",
"trace": false,
"debug": false
},
{
"id": 69,
"subsystem": "dvr",
"description": "Digital Video Recorder",
"trace": false,
"debug": false
},
{
"id": 70,
"subsystem": "dvr-inotify",
"description": "DVR Inotify",
"trace": false,
"debug": false
},
{
"id": 71,
"subsystem": "epg",
"description": "Electronic Program Guide",
"trace": false,
"debug": false
},
{
"id": 72,
"subsystem": "epgdb",
"description": "EPG Database",
"trace": false,
"debug": false
},
{
"id": 73,
"subsystem": "epggrab",
"description": "EPG Grabber",
"trace": false,
"debug": false
},
{
"id": 74,
"subsystem": "charset",
"description": "Charset",
"trace": false,
"debug": false
},
{
"id": 75,
"subsystem": "dvb",
"description": "DVB",
"trace": false,
"debug": false
},
{
"id": 76,
"subsystem": "mpegts",
"description": "MPEG-TS",
"trace": false,
"debug": false
},
{
"id": 77,
"subsystem": "muxsched",
"description": "Mux Scheduler",
"trace": false,
"debug": false
},
{
"id": 78,
"subsystem": "libav",
"description": "libav / ffmpeg",
"trace": false,
"debug": false
},
{
"id": 79,
"subsystem": "transcode",
"description": "Transcode",
"trace": false,
"debug": false
},
{
"id": 80,
"subsystem": "iptv",
"description": "IPTV",
"trace": false,
"debug": false
},
{
"id": 81,
"subsystem": "iptv-pcr",
"description": "IPTV PCR",
"trace": false,
"debug": false
},
{
"id": 82,
"subsystem": "iptv-sub",
"description": "IPTV Subcription",
"trace": false,
"debug": false
},
{
"id": 83,
"subsystem": "linuxdvb",
"description": "LinuxDVB Input",
"trace": false,
"debug": false
},
{
"id": 84,
"subsystem": "diseqc",
"description": "DiseqC",
"trace": false,
"debug": false
},
{
"id": 85,
"subsystem": "en50221",
"description": "CI Module",
"trace": false,
"debug": false
},
{
"id": 86,
"subsystem": "en50494",
"description": "Unicable (EN50494)",
"trace": false,
"debug": false
},
{
"id": 87,
"subsystem": "satip",
"description": "SAT>IP Client",
"trace": false,
"debug": false
},
{
"id": 88,
"subsystem": "satips",
"description": "SAT>IP Server",
"trace": false,
"debug": false
},
{
"id": 89,
"subsystem": "tvhdhomerun",
"description": "TVHDHomeRun Client",
"trace": false,
"debug": false
},
{
"id": 90,
"subsystem": "psip",
"description": "ATSC PSIP EPG",
"trace": false,
"debug": false
},
{
"id": 91,
"subsystem": "opentv",
"description": "OpenTV EPG",
"trace": false,
"debug": false
},
{
"id": 92,
"subsystem": "pyepg",
"description": "PyEPG Import",
"trace": false,
"debug": false
},
{
"id": 93,
"subsystem": "xmltv",
"description": "XMLTV EPG Import",
"trace": false,
"debug": false
},
{
"id": 94,
"subsystem": "webui",
"description": "Web User Interface",
"trace": false,
"debug": false
},
{
"id": 95,
"subsystem": "timeshift",
"description": "Timeshift",
"trace": false,
"debug": false
},
{
"id": 96,
"subsystem": "scanfile",
"description": "Scanfile",
"trace": false,
"debug": false
},
{
"id": 97,
"subsystem": "tsfile",
"description": "MPEG-TS File",
"trace": false,
"debug": false
},
{
"id": 98,
"subsystem": "tsdebug",
"description": "MPEG-TS Input Debug",
"trace": false,
"debug": false
},
{
"id": 99,
"subsystem": "codec",
"description": "Codec",
"trace": false,
"debug": false
},
{
"id": 100,
"subsystem": "vaapi",
"description": "VA-API",
"trace": false,
"debug": false
},
{
"id": 101,
"subsystem": "ddci",
"description": "DD-CI",
"trace": false,
"debug": false
},
{
"id": 102,
"subsystem": "udp",
"description": "UDP Streamer",
"trace": false,
"debug": false
},
{
"id": 103,
"subsystem": "ratinglabels",
"description": "Rating Labels",
"trace": false,
"debug": false
}
],
"totalCount": 103
}
I may also add a traceCount and debugCount at the end too. This will help to more easily detect when 'all' is selected instead of individual subsystems.
Maybe in the future this API module could be developed further, such as, http://tvh:9981/api/tvhlog/subsystem/save
to set the trace/debug subsystems by index rather than name. For now, the output can be used to build a concatenated string of subsystems to pass to the existing API.