Child pages
  • Sentry 와 연동하기

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

https://github.com/jenssegers/laravel-raven 에서 php-raven을 래핑한 라라벨 패키지를 제공하며 일반적인 라라벨 패키지처럼 설치하면 됩니다.

 

연동

  1. 패키지 설치

    Code Block
    composer require jenssegers/raven
  2. app/config.php 에 프로바이더 등록

    Code Block
    languagephp
    titleapp/config.php
    'providers' => [
    	Jenssegers\Raven\RavenServiceProvider::class,
    ],
    'aliases' => [
    	'Raven'           => Jenssegers\Raven\Facades\Raven::class,
    ],
  3. config/services.php 에 추가

    Code Block
    'raven' => [
        'dsn'   => env('RAVEN_DSN'),
        'level' => env('LOG_LEVEL'),
    ],
  4. .env 에 DSN과 로그 레벨 설정을 추가합니다.

    Code Block
    RAVEN_DSN=<key>:<secret>@app.getsentry.com/<project>
    LOG_LEVEL=debug
Tip

services.php 에 raven 항목과 .env 에 RAVEN_DSN 항목이 둘 다 설정되어 있어야 동작하며 (RavenServiceProvider::register() 참고) 하나만 설정되어 있으면 예외가 발생하고 아예 로그가 남지 않으니 주의해야 합니다.

만약 설치만 하고 사용하지 않을 경우 위 두 항목을 모두 설정하지 말아야 합니다.

 

Code Block
languagephp
titleRavenServiceProvider
if (! getenv('RAVEN_DSN') and ! $this->app['config']->get('services.raven')) {
    return;
}

 

Exception Handler

Sentry 에서 수집하려면 app 에서 명시적으로 Log 파사드로 로깅을 남겨야 되며 예외가 발생할 경우 Sentry 에 남지 않습니다.

라라벨의 기본 예외 처리 핸들러에 다음과 같이 raven 기능을 연동해 놓으면 app 수정없이 발생한 예외도 Sentry 에 남겨됩니다.

Code Block
languagephp
titleApp\Exceptions\Handler.php
public function report(Exception $e)
{
    $client = new \Raven_Client(env('RAVEN_DSN'));
    $client->captureException($e);

    parent::report($e);
} 

 

Java

자바와 연동은 https://docs.getsentry.com/on-premise/clients/java/ 에서 확인할 수 있습니다.

...