Logging: Error messages contain a lot of uncessary information

Unhandled exceptions in a flowgraph produce hard-to-read log output.

📜 Example

When running a flowgraph with no SDR connected, the following error message is emitted:

tb = top_block_cls(antenna=options.antenna, baudrate=options.baudrate, bb_freq=options.bb_freq, bw=options.bw, dc_removal=options.dc_removal, decoded_data_file_path=options.decoded_data_file_path, dev_args=options.dev_args, doppler_correction_per_sec=options.doppler_correction_per_sec, enable_iq_dump=options.enable_iq_dump, file_path=options.file_path, framing=options.framing, gain=options.gain, gain_mode=options.gain_mode, iq_file_path=options.iq_file_path, lo_offset=options.lo_offset, other_settings=options.other_settings, ppm=options.ppm, rigctl_port=options.rigctl_port, rx_freq=options.rx_freq, samp_rate_rx=options.samp_rate_rx, soapy_rx_device=options.soapy_rx_device, stream_args=options.stream_args, tune_args=options.tune_args, udp_IP=options.udp_IP, udp_dump_host=options.udp_dump_host, udp_dump_port=options.udp_dump_port, udp_port=options.udp_port, waterfall_file_path=options.waterfall_file_path)
File "/usr/bin/satnogs_fsk.py", line 97, in __init__
self.soapy_source_0_0 = soapy.source(1, dev, dev_args, stream_args,
File "/usr/lib/python3/dist-packages/soapy/soapy_swig.py", line 131, in make
return _soapy_swig.source_make(nchan, device, dev_args, stream_args, tune_args, other_settings, sampling_rate, type)
RuntimeError: device_id missing.

Presented in isolation, it's not too complicated to find the relevant information (last line). But usually this output is part of a larger log file, spanning multiple observations and being interleaved with log output by satnogs-client. Especially confusing can be the insanely long tob_block_cls parameter list.

💡 Feature request

Ideally, an unconnected SDR results in a single line of log output containing the error name (and description if available) only.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information