EEL printf goes to - a "system-specific destination" - according to the docs. That's sufficiently vague that I guess you shouldn't count on it.
Like you say, ShowConsoleMsg() is guaranteed to go to console, so that's got to be the better choice.
Code:
ShowConsoleMsg(sprintf(#, your_format, your_args))
Or a debug function along those lines - perhaps more useful.