1. 개요
한 파일로 쌓여서 골치아픈 catalina.out을 daily로 분리하기 위해 여러 방법이 제안되고 있는데, 오늘은 LOGS.pl 파일을 이용하는 방법입니다.
2. LOGS.pl
#!/usr/bin/perl $TRUE=1; $FALSE=0; $DEBUG=$FALSE; $DEFAULT_LOG_PFX="./logs/catalina.out."; $logPfx=$DEFAULT_LOG_PFX; $ignoreConsole=$FALSE; while ($aLine=<STDIN>){ ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time()); $logFile=$logPfx.sprintf("%02d%02d%02d",($year+1900),($mon+1),$mday,$hour,$min,$sec); open(logH,">> $logFile"); #Auto flush ON select((select(logH),$|=1)[0]); #use IO::Handle; #logH->autoflush($TRUE); print logH $aLine; if($ignoreConsole){ print $aLine; } close(logH); }
3. 적용
그리고 catalina.sh 수정.
cp ${INST_HOME}/bin/catalina.sh ${INST_HOME}/bin/catalina.sh.default perl -pi -e "s/^ >> \"\\\$CATALINA_OUT\" 2>&1 \"&\"/ 2>&1 | LOGS.pl &/g" ${INST_HOME}/bin/catalina.sh
위는 [ >> "$CATALINA_OUT" 2>&1 "&" ] 라인을 수정하는 의미입니다.