Welcome to the JavaRanch, Brad!
It is not a good idea for webapps to write to System.out or System.err. Catalina.out is the common capture location for the Tomcat JVM's System output streams, but there is nothing in either the
J2EE or Tomcat specs that say that a given instance of Tomcat is obliged to either write a catalina.out file or to preserve system output streams at all. If Tomcat doesn't want to write these streams, it has every right to simply dump the output down a well.
And in one or 2 Tomcat distributions, that's exactly what it does. It sounds like you're one of those fortunate
enough to have encountered one.
For general quick hacking while developing, a write to System.out isn't going to cause you much grief (assuming you're not working in a shop where there's a Dilbert rule about everything). However, once you move to production,
you should be using a more appropriate logging mechanism.
Java has a number of choices for loggers, including some interfaces specifically designed to reconcile the cases where large webapps are made up of library components which each have made their own separate decision of which logger to use.
The simplest logger to use is the "juli" logger, which is part of the standard JRE since Java 1.4. "juli" gets its acronym from the package name (java.util.logging interface, if my memory is correct). Log4j is also very popular and you can control where the log output goes from a log4j config file in your WAR's classpath.