Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Tomcat Wiki" for change 
notification.

The "HowTo" page has been changed by ChristopherSchultz:
https://wiki.apache.org/tomcat/HowTo?action=diff&rev1=141&rev2=142

  
  == How to create native launchers for Tomcat ==
  See [[TomcatCreateNativeLaunchers]] 
+ 
+ == How do I rotate catalina.out? ==
+ 
+ Honestly, the first question is "why are you rotating catalina.out"? Tomcat 
logs very little to catalina.out so the usual culprit is web applications that 
stupidly send output to System.out or System.err. If that's the case, what you 
ought to do is set swallowOutput="true" on the application's <Context> 
configuration. That will send the output to a file configured (default) by 
conf/logging.properties. Once you've done that, get the application fixed to 
use a real logger, or at least use ServletContext.log().
+ 
+ If you've decided that you still absolutely positively need to rotate 
catalina.out, there is something that you have to understand: catalina.out is 
created by your shell's output redirection, just like when you type "ls -l > 
dir_listing.txt". So rotating the file needs to be done carefully.
+ 
+ You can't just re-name the file or you'll find that Tomcat will continue 
logging to the file under the new name. You also can't delete catalina.out and 
re-create it, or you'll never get anything logged to catalina.out after that, 
unless you restart Tomcat.
+ 
+ There are really only two ways to properly rotate catalina.out, and they both 
have downsides.
+ 
+ === Rotate catalina.out using logrotate (or similar) ===
+ 
+ To use a tool like 
[[http://linuxcommand.org/man_pages/logrotate8.html|logrotate]], you'll want to 
use the "copytruncate" configuration option. This will copy catalina.out to 
another file (like catalina.out.[datestamp]) and then truncates catalina.out to 
zero-bytes. There is a major downside to this if catalina.out is seeing a lot 
of action: some log messages written to the log file during the copy/truncate 
procedure may be lost.
+ 
+ === Rotate catalina.out using rotatelogs or chronolog (or similar) ===
+ 
+ To use a tool like Apache httpd's 
[[http://httpd.apache.org/docs/2.4/programs/rotatelogs.html|rotatelogs]] or 
[[http://linux.die.net/man/1/cronolog|chronolog]], you'll have to modify 
Tomcat's catalina.sh (or catalina.bat) script to change the output redirection 
from a redirect to a pipe. The existing code in catalina.sh looks like this:
+ 
+ {{{
+     eval "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS 
$CATALINA_OPTS \
+       -Djava.endorsed.dirs="\"$JAVA_ENDORSED_DIRS\"" -classpath 
"\"$CLASSPATH\"" \
+       -Djava.security.manager \
+       -Djava.security.policy=="\"$CATALINA_BASE/conf/catalina.policy\"" \
+       -Dcatalina.base="\"$CATALINA_BASE\"" \
+       -Dcatalina.home="\"$CATALINA_HOME\"" \
+       -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
+       org.apache.catalina.startup.Bootstrap "$@" start \
+       >> "$CATALINA_OUT" 2>&1 "&"
+ }}}
+ 
+ You'll need to change that to something which looks more like this:
+ 
+ {{{
+     eval "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS 
$CATALINA_OPTS \
+       -Djava.endorsed.dirs="\"$JAVA_ENDORSED_DIRS\"" -classpath 
"\"$CLASSPATH\"" \
+       -Djava.security.manager \
+       -Djava.security.policy=="\"$CATALINA_BASE/conf/catalina.policy\"" \
+       -Dcatalina.base="\"$CATALINA_BASE\"" \
+       -Dcatalina.home="\"$CATALINA_HOME\"" \
+       -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
+       org.apache.catalina.startup.Bootstrap "$@" start \
+       | "$PATH_TO_CHRONOLOG" $CATALINA_BASE/logs/catalina.out.%Y-%m-%d
+ }}}
+ 
+ This will be somewhat similar for catalina.bat, but the actual launch command 
will look different.
+ 
+ Also note that there are currently two places in catalina.sh (and 
catalina.bat) where Tomcat is launched, depending upon whether you are using a 
security manager or not. You should read the whole catalina.sh (or 
catalina.bat) file to make sure you have handled every case where Tomcat is 
launched.
  
  = Configuration =
  == How do I set up multiple sites sharing the same war application/war file? 
==

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to