`include "uvm.svh"
import uvm_pkg::*;

class rpting extends uvm_component;
  `uvm_component_utils(rpting)

  function new(string name,uvm_component parent);
    super.new(name, parent);
  endfunction : new

  task run();
    `uvm_info(get_full_name(),"Info Message : Verbo lvl - UVM_NONE  ",UVM_NONE)
    `uvm_info(get_full_name(),"Info Message : Verbo lvl - UVM_LOW   ",UVM_LOW)
    `uvm_info(get_full_name(),"Info Message : Verbo lvl - UVM_MEDIUM",UVM_MEDIUM)
    `uvm_warning(get_full_name(),"Warning Messgae from rpting")
    `uvm_error(get_full_name(),"Error Message from rpting \n\n")
  endtask : run
endclass : rpting

module top;
  rpting rpt1;
  rpting rpt2;
  rpting rpt3;
  initial begin
    rpt1 = new("rpt1",null);
    rpt2 = new("rpt2",null);
    rpt3 = new("rpt3",null);
    rpt1.set_report_verbosity_level(UVM_MEDIUM);
    rpt2.set_report_verbosity_level(UVM_LOW);
    rpt3.set_report_verbosity_level(UVM_NONE);
    run_test();
  end
endmodule : top


//Output:
// UVM_INFO @ 0: reporter [RNTST] Running test ...
// UVM_INFO top1.sv(19) @ 0: rpt1 [rpt1] Info Message : Verbo lvl - UVM_NONE
// UVM_INFO top1.sv(20) @ 0: rpt1 [rpt1] Info Message : Verbo lvl - UVM_LOW
// UVM_INFO top1.sv(21) @ 0: rpt1 [rpt1] Info Message : Verbo lvl - UVM_MEDIUM
// UVM_WARNING top1.sv(22) @ 0: rpt1 [rpt1] Warning Messgae from rpting
// UVM_ERROR top1.sv(23) @ 0: rpt1 [rpt1] Error Message from rpting
// 
// 
// UVM_INFO top1.sv(19) @ 0: rpt2 [rpt2] Info Message : Verbo lvl - UVM_NONE
// UVM_INFO top1.sv(20) @ 0: rpt2 [rpt2] Info Message : Verbo lvl - UVM_LOW
// UVM_WARNING top1.sv(22) @ 0: rpt2 [rpt2] Warning Messgae from rpting
// UVM_ERROR top1.sv(23) @ 0: rpt2 [rpt2] Error Message from rpting
// 
// 
// UVM_INFO top1.sv(19) @ 0: rpt3 [rpt3] Info Message : Verbo lvl - UVM_NONE
// UVM_WARNING top1.sv(22) @ 0: rpt3 [rpt3] Warning Messgae from rpting
// UVM_ERROR top1.sv(23) @ 0: rpt3 [rpt3] Error Message from rpting