The set_verbosity_level() method creates a verbosity ceiling. Users can control information messages by setting a verbosity level in a component. When users invoke the uvm_info() macro, they supply a verbosity that ranges from UVM_NONE through UVM_LOW up to UVM_FULL. Verbosity applies only to UVM_INFO messages and controls whether a given info message gets logged. Severity is the most basic, ranging from UVM_INFO to UVM_FATAL and supported by macro calls that apply the severity to a log message.
SystemVerilog UVM combines several concepts to control logging. This blog post provides a brief overview of logging and compares it to UVM reporting. Instead, it incorporates the logging module into the UVM hierarchy, links pyuvm logging to cocotb logging, and hides elements of the logging module that frustrate new users. Therefore, pyuvm does not implement the UVM reporting classes. The logging module provides standard logging functionality across the Python ecosystem, including cocotb. The IEEE UVM specification (1800.2-2020) devotes Section 6 to “Reporting classes” because SystemVerilog does not provide a robust logging system. This is part of the Python for Verification series of blog posts.