UVM_VERBOSITY for virtual sequences

You can use any context when issuing a message. You are correct that when you use class derived from uvm_component which is derived from uvm_report_object, the context is set for you to that component, otherwise the global uvm_top is used as the context.

To use another context, you can do

obj.uvm_report_info("ID","MESSAGE",verbosity);

or

`uvm_info_context("ID","MESSAGE",verbosity,obj)

where obj is another object derived from uvm_report_object. That could be another component like the agent where this sequence is running, or you could construct another object

class my_item extends uvm_sequence_item;
static uvm_report_object log=new("my_item");
...
`uvm_info_context("ID","message",UVM_HIGH,log)
// use my_item::log.set_report_verbosity_level(level);