I published an SLF4J logger that sends output to TestNG's Reporter. This is especially useful when running tests in parallel, as it ensures that output from each test is collected independently instead of getting jumbled together with the output of every other test that's running concurrently.
I just published an update to this logger that makes the transition to SLF4J 2.x.