In reply to bhupeshpaliwal:
You are being led in the wrong direction. And your vision is obscured by by the use of macros.
When you use the `uvm_info macro, it calls uvm_report_info which is both a method of uvm_report_object and a global function. If you call uvm_report_info from a class not derived from uvm_report_object, like uvm_object, it picks up the the global function. uvm_component is derived from uvm_report_object.
What you should do is extend my_obj from uvm_report_object, not uvm_object. Every instance of a class derived from uvm_report_object has an instance of uvm_report_handler, and that is where al the report settings get stored. Every instance of a class derived from uvm_report_object can have unique report settings.
It seems like you are try to use the uvm_report_handler from my_comp. It is possible to do that using a different set of macros:`uvm_info_context(arg, “this print goes to log file”, UVM_HIGH, creator_s). But realize these settings get applied to the component instance which get shared by all the other objects created by my_comp.