2013년 6월 11일 화요일

[javascript] how to avoid jQuery, Prototype confliction


[javascript] how to avoid jQuery, Prototype confliction


만약 두 프레임워크를 사용해야하는 상황이라면
If you have to use both framework at the same application,

1. 아래와 같은 순서로 두 프레임워크를 불러온다. 
 -  add both framework in order as below

<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript" src="jquery-1.7.1.min.js" charset="utf-8"></script>


2. 아래와 같이 추가하면 $는 프로토타입껄 사용하게 됨!
If you add below, you could use $ as Prototype object.

<script type="text/javascript">$.noConflict();</script>

3. 그리고 또 아래와 같이 추가하여 j$를 이용해 jQuery 명령 사용가능!
   Also, if you add below sentence, you could use jQuery thorough j$ variable.

<script type="text/javascript"> var j$ = jQuery; </script>

fin.

MS Log Parser를 이용하여 SunOne iPlanet 로그 파싱하기

MS Log Parser를 이용하여 SunOne iPlanet 로그 파싱하기



Log Parser 2.2(클릭하면 다운로드 페이지로 이동)에선 iPlanet이 분석 지원이 안된다는 불편한 진실에 맞서 TEXTLINE 방식으로 로그 내용을 문자열로 읽어들어와 내부 함수를 이용하여 쪼개어 내키는 대로 파싱하였음!

분석에 사용한 로그파일 형식은 아래와 같음

[웹서버 로그파일 헤더]
format=%Ses->client.ip% - %Req->vars.auth-user% [%SYSDATE%]  "%Req->reqpb.clf-request%" %Req->reqpb.protocol% %Req->srvhdrs.clf-status% %Req->srvhdrs.content-length% %duration% %Req->headers.host% "%Req->headers.referer%" - %Req->headers.x-forwarded-for%

[웹서버 실제 로그]
111.111.111.111 - - [03/Jun/20xx:23:59:59 +0900]  "GET /abc.css HTTP/1.1" HTTP/1.1 304 0 650 www.domain.com "http://www.domain.com/a.do" - 111.111.111.111


애플리케이션 오류를 분석하기 위해 위 로그 파일에서 상태값이 500, 503인 값만 추려내어

요청별로 오류 횟수를 카운팅하게됨!

[로그 문자열 분석의 핵심]
로그 문자열 분석의 핵심은 EXTRACT_TOKEN <-- 요 함수!

ex) EXTRACT_TOKEN (Text, 1, '\"')  라고 실행하게 되면
Text컬럼에서 큰따옴표(")로 문자열을 나누고 그중 두번째(0 based index) 값을 가져온다는 뜻!

[실제 분석에 사용한 명령문]

logparser
// 접근한 URL
"select EXTRACT_TOKEN (Text, 1, '\"') as url,
// 접근 횟수
 count(url) as cnt,
// HTTP STATUS CODE
max(EXTRACT_TOKEN(Text, 10,' ')) as code,
// 시작시간
min(EXTRACT_TOKEN(Text, 3,' ')) as stime,
// 종료시간
max(EXTRACT_TOKEN(Text, 3,' ')) as etime

// 읽어들일 로그파일
from C:\Users\A\Desktop\logfile

// 결과 출력할 csv 파일
to C:\Users\A\Desktop\result.csv

// STATUS CODE가 500 혹은 503인 값들
where EXTRACT_TOKEN(Text, 10,' ')='500'
     or EXTRACT_TOKEN(Text, 10,' ')='503'

// URL로 묶음
group by url

// 접근횟수로 내림차순 정렬
order by cnt desc"

// 입력형식은 TEXTLINE
-i:TEXTLINE


fin.