Log4j 로그를 이용한 실행 시간 분석 예제
log4j 를 이용한 출력 결과에서 입력된 시간 이상의 로그를 추출하는 awk 스크립트.
(연습하는 중이라 내용에 불필요한 데이터가 많습니다..또한 더 쉬운 방법도 있을 겁니다.)
coozplz@localhost:~/tutorial/awk$ cat catalina.out
[Sample.log]
[INFO ] [2014-03-24 10:01:59] [Processor:534] connectionAlerting – 양재남[0991, 0424] // Alerting END takes 127ms, callID=294352, callingNum=0424, calledNum=0704] [INFO ] [2014-03-24 10:01:59] [Processor:306] connectionEstablished – 문창운[0990, 0313] // Established END takes 94ms, callID=0, callingNum=0313, calledNum=0286]
[getExecutionTime.awk]
# # getExecutionTime.awk # 설명: 로그 파일에서 실행 시간만을 추출한다. # BEGIN { print “”; print “==================================================================”; print “사용법: awk -f getExecutionTime.awk iTime=[실행시간] [파일명] “; print “실행시간 입력이 없는 경우 1000 ms 를 기본값 “; print “==================================================================”; print “”; } { timeStr = $14; # output= 127ms, time = substr(timeStr, 0, length(timeStr) -length(“ms,”)+1); # time=127 time = time+0.1; #문자열을 숫자로 캐스팅한다. if(length(iTime) == 0) { iTime = 1000; } if( time > iTime ) { print $0; } }
[사용방법]
사용법: awk -f getExecutionTime.awk iTime=[실행시간] [파일명]
실행시간 입력이 없는 경우 1000 ms 를 기본값
coozplz@localhost:~/tutorial/awk$ awk -f getExecutionTime.awk iTime=100 catalina.out