Print vs sprint

What is difference between print and sprint class methods ? Which one should we use preferably and why ?

Thanks in advance.

All output should through the UVM reporting mechanism so that it can be controlled through a uniform mechanism. Therefore you should format your output into a string and pass that string into the report. And the only difference between the print() and sprint(), is that sprint() formats its output to a string.