In reply to Nico75:
It is something like this:
function void end_of_elaboration_phase(uvm_phase phase);
catcher_h = new("catcher_h");
uvm_report_cb::add(null, catcher_h);
endfunction
where the first argument in the add method is the report object or null for all objects.
Additionally you have to implement your own catcher class.
class my_report_catcher extends uvm_report_catcher;
function new (string name = "");
super.new(name);
endfunction
function action_e catch;
uvm_severity severity = get_severity();
string id = get_id();
uvm_action action = get_action();
string message = get_message();
int verbosity = get_verbosity();
if (severity == UVM_WARNING)
set_severity(UVM_INFO);
if (severity == UVM_ERROR)
return CAUGHT;
return THROW;
endfunction
endclass