Consider the PC equivalent. You want to print to CONsole two different ways; what sense does that make?
Well, operating systems do often have multiple ways, but you have to specify what. printf() uses the default CON so you're kind of stuck with that (and however it's assigned by libc (I forget exactly), or whatever CodeVision is using). You can open a file and use fprintf() to write to stdout, stderr, CON, COM1, /dev/ttyS0, etc., whatever you like.
In any case, on an MCU, you of course don't have an operating system providing the underlying functionality. You have to implement that yourself (usually with callback functions). You could cheat it at this point, by changing what your callback outputs to. Mind, this may corrupt output due to buffering -- make sure to flush buffers before changing things over (or choose an unbuffered file mode or whatever).
I suppose the most "proper" way, is to implement an interface for each port, and open them in respective files. It is then trivial to pipe the output into a logfile say (if you happen to add logging at some point), or test the code on PC (it's portable), etc.
BTW, it may be worth avoiding use of printf() and friends. It's a very heavy-weight function, adding a lot of code that you're probably never going to use. Often better to use simple string functions, like itoa(), puts(), etc. (and all the other friends in <string.h>) on embedded systems.
Tim