XE를 운영하거나 개발하는 과정에서 오류가 발생하는 경우, 발생한 오류에 대한 자세한 정보를 필요로 합니다.

디버깅 모드 활성화

XE를 디버깅모드로 설정하면 오류가 발생한 경우, 브라우저에 오류의 자세한 정보가 바로 출력됩니다. 디버그 모드를 활성화 하기위해서는 config/production/app.php 파일의 debug 값을 true로 설정해야 합니다.

현재 환경에 맞는 config 파일을 열어 값을 변경합니다.

//in config/production/app.php
...
'debug' => true,
...

.env 파일에 debug 모드를 지정할 수도 있습니다.

// in config/production/app.php
...
'debug' => env('APP_DEBUG', true)
...

위와 같이 config/production/app.php 파일을 설정하고, XE의 루트디렉토리의 .env 파일에는 아래와 같이 작성합니다.

# in .env file
APP_DEBUG=true

주의! 실제 서비스가 운영되는 환경에서는 디버깅 모드를 활성화하지 마십시오. 디버깅 모드를 활성화 해 놓으면, 일반 사용자도 오류가 발생할 경우, 브라우저에서 오류의 자세한 내용을 볼 수 있으므로, 보안상 문제가 될 수 있습니다.

변수값 확인하기(dump)

디버깅을 위해 특정시점에서 변수의 값이나 함수의 반환값 등을 확인할 필요가 있습니다. XE는 변수의 값을 브라우저에 곧바로 출력하거나 로그 파일에 기록해 놓을 수 있는 기능을 제공합니다.

브라우저에 출력하기

XE는 dumpdd 함수를 제공하고 있습니다. dump는 php 의 내장함수인 var_dump 와 유사하지만 브라우저 상에서 좀 더 보기 좋은 형태로 표현해 줍니다. dd 는 dump & die 의 약어로 dump 처리 후 라이프사이클을 중단시킵니다.

dump($var);
dd($var);

여러가지 값을 동시에 확인하고자 한다면 해당 변수들을 인자로 나열하면 됩니다.

dump($foo, $bar, $baz);
dd($foo, $bar, $baz);

로그파일에 기록하기

Log 파사드를 이용해 로그 파일에 내용을 기록할 수 있습니다. 로그 파일의 위치는 storage/log/laravel.log입니다.

$var = 'a';
$bar = 'b';
Log::info($var . ' ' . $bar); // [0000-00-00 00:00:00] production.INFO: a b

log 파일에는 사용자의 호출에 의한 기록 이외에도 장애시 발생한 오류 정보 등이 기록되어 있습니다.