Issues with do_print() method?

In reply to npratt:

If you are using the field macros and have implemented the do_print manually the last one has the precedence.

Im generating my UVM Frameworks automatically, i.e. each seq_item definition has a do_print method like this:

function void do_print(uvm_printer printer);
  if(printer.knobs.sprint == 0) begin
    `uvm_info(get_type_name(), convert2string(), UVM_MEDIUM)
  end else begin 
    printer.m_string = convert2string();
  end
endfunction : do_print

In all my projects I did (20+) I have never faced an issue like you are describing.