[WebLogic] Stdout Log Rotation (perl script)
1. Overview
Stdout Log Rotation (perl script)
2. Descriptions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# rotateLOG.pl 파일 내용
#!/usr/bin/perl
$TRUE=1;
$FALSE=0;
$DEBUG=$FALSE;
#$DEFAULT_LOG_PFX="/was_log/디렉토리/로그이름.";
$DEFAULT_LOG_PFX="/home/weblogic/was/1213/domains/base_domain/logs/AdminServer/AdminServer.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%100),($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);
}
1
2
# 시작 방법
nohup ${DOMAIN_HOME}/bin/startWebLogic.sh 2>&1 | ./rotateLOG.pl &
perl script의 sprintf 안의 %02d 가 늘어날수록, 시간단위가 작아진다. %02d%02d%02d -> 년월일, 하루 단위로 로테이션
%02d%02d%02d%02d -> 한 시간 단위로 로테이션