Exception 발생 시 로그 남기는 법 문의 드립니다.

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Exception 발생 시 로그 남기는 법 문의 드립니다.

YoungWoo Kim
안녕하세요.

nGrinder로 성능 테스트 진행 중 간헐적으로 에러가 발생하는데(서버에서 처리못하여 발생하는 에러로 추정)

이때 에러가 발생했을 시, 로그를 남기고 싶습니다.

현재 log에는 아래와 같이 nGrinder가 자체적(?)으로 로그를 남기는 부분만 남고 있습니다.

-----------------------------------------------------------------------------------------------
2013-10-24 14:24:57,643 ERROR Aborted run: Java exception calling TestRunner
net.grinder.scriptengine.jython.JythonScriptExecutionException: Java exception calling TestRunner
        result = request1.POST("/NetWork/NetAccount.aspx",strBody)
        File "/root/.ngrinder_agent/file-store/admin/current/PetIsland.py", line 170, in __call__
        result = request1.POST("/NetWork/NetAccount.aspx",strBody)
        File "/root/.ngrinder_agent/file-store/admin/current/PetIsland.py", line 170, in __call__
net.grinder.plugin.http.TimeoutException: Read timed out
        at java.net.SocketInputStream.socketRead0(Native Method) ~[na:1.6.0_45]
        at java.net.SocketInputStream.read(SocketInputStream.java:129) ~[na:1.6.0_45]
        at HTTPClient.BufferedInputStream.fillBuff(BufferedInputStream.java:172) ~[grinder-httpclient-3.9.1.jar:na]
        at HTTPClient.BufferedInputStream.read(BufferedInputStream.java:110) ~[grinder-httpclient-3.9.1.jar:na]
**********************생략*******************************

위와같은 에러가 남을 때, 각 쓰레드 마다 가지고 있던 변수값을 출력하고 싶으나, 해당 로그가 찍히지 않고 있습니다.
아래 작성 코드 중에 잘못된 부분이 있는지 확인 부탁드리겠습니다.
-----------------작성 코드-----------------------------------------------------------
try :
                        strBody = [
                                                NVPair('보안상가림', '{"보안상가림":{"보안상가림":%s,"보안상가림":%s}}' % (strUserID, 보안상가림))
                                        ]
                        result = request1.POST("/NetWork/NetAccount.aspx",strBody)
                        self.checkResponse(result, 200,  "'보안상가림'")
                except Exception, e:
                        err(e.message)
                        err("Exception(id : %s) " % strUserID)
                        grinder.statistics.forLastTest.success = 0


--------------------------------------------------------------------------------------
항상 많은 도움 감사드립니다.
Reply | Threaded
Open this post in threaded view
|

Re: Exception 발생 시 로그 남기는 법 문의 드립니다.

junoyoon
Administrator
err 은 stderr 로 출력하는 python 함수이고..

grinder.logger.info()이나..grinder.logger.error() 로 출력하셔야 합니다.
Reply | Threaded
Open this post in threaded view
|

Re: Exception 발생 시 로그 남기는 법 문의 드립니다.

YoungWoo Kim
아 현재 err 나 log를 아래와 같이 정의해 놓았습니다.

log = grinder.logger.info
err = grinder.logger.error

위와 같이 정의해 놓았을때, phython err함수와 중복되어 문제가 되어 안남는 것일까요?
Reply | Threaded
Open this post in threaded view
|

Re: Exception 발생 시 로그 남기는 법 문의 드립니다.

junoyoon
Administrator
전체 스크립트를 올려주세요.
아무래도 인덴테이션을 잘못 주시거나.. 아니면 다른 폴더에 저장된 같은 이름의 파일을 실행중이신것 같습니다.
Reply | Threaded
Open this post in threaded view
|

Re: Exception 발생 시 로그 남기는 법 문의 드립니다.

YoungWoo Kim
메일로 전체 스크립트 보내 드렸습니다.
첨부파일이 되지 않아, 전체 메일 본문 내용으로 보내드렸습니다;;;

감사합니다.
Reply | Threaded
Open this post in threaded view
|

Re: Exception 발생 시 로그 남기는 법 문의 드립니다.

junoyoon
Administrator
저도 몰랐던 부분인데요.. Exception 이라는게.. 이미 Jython에 다른 의미로 정의되어 있는 모양이네요

Exceptions in Python are special classes that are built into the language.

따라서.. 다음과 같이 명시적으로 맨 앞에

from java.lang import Exception

이렇게 써주시면 제대로 catch 할 겁니다.

테스트 완료하였습니다.
Reply | Threaded
Open this post in threaded view
|

Re: Exception 발생 시 로그 남기는 법 문의 드립니다.

junoyoon
Administrator
Reply | Threaded
Open this post in threaded view
|

Re: Exception 발생 시 로그 남기는 법 문의 드립니다.

YoungWoo Kim
정상적으로 로그 남는것 확인했습니다.

매번 감사드립니다. (__)