2012-12-04 3 views
0

laravel에서 오류 메시지를 변경하고 404 및 500 이벤트를 기록하려고합니다. 내가Laravel - Handling 500 오류 메시지

Event::listen('404', function() 
{ 
Log::write('404', 'Could not find : '.URL::full()); 
return Response::error('404'); 
}); 

그게 나를 위해 잘 작동, routes.php에 이벤트 리스너에 의해 404 이벤트를 시도했다. 오류 메시지가 현재 URL과 함께 기록됩니다. 하지만 500 오류에 대한 stacktrace 너무 싶어요 .. "500 - 잡히지 않은 예외 : 'exception_message_and_stack_trace'"같은 로그 메시지를 싶습니다.

어떻게 이벤트 listener .. stacktrace 문자열을 얻을 수 있습니까? 미안, 내가 laravel의 기본적인 것들을 이해하지 못한다면.

답변

0

404 및 500 이벤트에는 발생한 오류에 대한 정보가 많지 않으므로 스택 추적을 실제로 수행 할 수 없습니다. 그들은 기본적으로 사용자를위한 공개 메시지에만 사용되며, 사용자는 공개해서는 안되는 것을 치게 될 수 있습니다.

로깅의 경우 config/error.php에서 로거 클로저를 사용하고 클로저를 자신의 로깅 로직으로 채우면 예외 객체에 액세스 할 수 있습니다.

0

Laravel Events에서 Laravel Events에 관해 끈적 거리는 주제가 있습니다. 목록 here을 확인할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 500 이벤트 리스너는 아무런 논점도 갖고 있지 않습니다. 그렇다면이 문제를 해결할 다른 방법이 있습니다. \t 반환 응답 : 오류, 이벤트 :: 듣기 ('500', 기능 ($의 R) { \t DD ($의 R) : 난 그냥 이벤트를 수신하려면 스택 추적 – viji

+0

와 오류 메시지를 기록하고 싶었다 ('500'), }); 새 이벤트 발생 : Event :: fire (500, array ('Uncaught Exception : exception_message_and_stack_trace'))); –

0

application/config/error.php에 코드를 추가해보십시오. 해당 파일에서 'log'를 true로 설정하여 로깅을 활성화하십시오. 그리고 하단에 다음과 같은 로그에 전화 : 쓰기()를 추가

'logger' => function($exception) 
    { 
      Log::write('error', $exception); 
      Log::exception($exception); 
    }, 

이 예외가 저장/로그/YYYY-MM-DD.log에 표시 할 것입니다. 또한 데이터베이스 테이블에 기록하거나이 섹션을 변경하여 전자 메일로 보낼 수도 있습니다.