Old Branch
Sentry.io 에러 로깅
woolbro
2020. 6. 23. 11:30
반응형
Sentry.io
sentry.io 를 사용해서 로그(에러로그) 수집
Sentry - error
Sentry 둘러보기
Sentry는 Application Monitoring 도구이다.
특히, 에러로그를 수집하는 데에 특화 되었다. 각 코드의 에러들을 모아서 웹에서 확인 할 수 있도록 도와주는 플랫폼이다.
Application Monitoring and Error Tracking Software
가장 흔한 예로 아래에서 Python 코드를 예로 들었다
try:
pass # 예외가 없이 잘 실행되는 코드
except Exception as e:
#(1)
pass # 예외가 처리 될 때 실행 되는 코드 --> Sentry.io에 Exception이 적재됨
finally:
pass # 예외 여부 상관에 없이 가장 마지막에 실행 되는 코드
(1)번 에서 위의 코드가 exception이 발생했다고 예를 들면 exception이 발생 될 때의 in / out 데이터,
발생된 코드의 위치, 실행된 환경 등을 묶어서 Sentry.io로 보내서 확인을 할 수 있도록 해준다.
Sentry 사용하기
회원가입 및 로그인
회원가입과 로그인은 Github, Google 등의 계정을 사용해서 쉽게 가입 할 수 있다.
Framework 설정하기 및 실행
아래의 화면이 가장 처음으로 나오는데, Skip this onboarding을 눌러 빈 프로젝트 화면으로 갈 수 있고,
I'm Ready를 눌러 프로젝트 설정을 도와주는 화면으로 갈 수 있다.
편하게 I'm Ready를 눌러서 진행하려고 한다
아래의 그림처럼, 원하는 플랫폼이 나오는데 간단하게 설정 할 수 있는 Flask로 실행 해보자
Simple Flask app launch && add flask Sentry SDK
-
install virtualenv, launch virtualenv, install flask
$ pip3 install virtualenv && virtualenv venv $ source venv/bin/activate $ (venv) pip3 install flask
-
app.py
from flask import Flask app = Flask(__name__) @app.route('/') def index(): return 'Hello Flask'
-
Sentry SDK 설정 추가
from flask import Flask import sentry_sdk from sentry_sdk.integrations.flask import FlaskIntegration sentry_sdk.init( dsn="https://[sentry.io에서 정해 준 url]", integrations=[FlaskIntegration()] ) app = Flask(__name__) @app.route('/') def index(): return 'Hello Flask' @app.route('/make_error') def index(): raise Exception("this is error!!") return "error..." @app.route('/debug-sentry') def trigger_error(): division_by_zero = 1 / 0
-
Flask 실행, 오류 확인하기!
$ (venv) python3 app.py # run python flask app
실행 된 서버의 주소가 만약 localhost:5000이라면,
- localhost:5000/make_error
- localhost:5000/debug-sentry
로 접속하면 에러로그를 Sentry에서 확인 할 수 있다