애플리케이션을 개발할 때 소스에 적절한 로깅을 남기는 것은 문제가 발생했을 때 손쉽게 원인을 파악할 수 있는 좋은 습관입니다.

 

라라벨은 "PHP 표준 권고(PSR)"  중 로그 인터페이스 표준인 PSR-3 의 구현물인 Monolog(https://github.com/Seldaek/monolog) 라이브러리를 Log 파사드로 래핑하여 제공하고 있으므로 편리하게 로깅을 남길 수 있습니다.

로깅 메소드는 레벨에 따라 메소드의 이름(debug(), info(), notice(), warning(), error,() critical(), alert() )만 다르고 동일한 파라미터를 갖고 있으므로 중요도에 맞게 선택하여 사용하면 됩니다.

public function debug($message, array $context = array());
CODE

로깅 메소드의 두 번째 파라미터는 배열이며 동적으로 변해야 하는 파라미터를 로그 메시지에 남길 때 유용합니다.

 

다음은 프로젝트 정보를 등록하는 store() 메소드에서 정보를 로그 파일에 남기는 예제입니다.

use Log;
class ProjectController extends Controller
{
    public function store(Request $request)
    {        
		// 프로젝트 정보 등록 ...
		Log::info('Project 등록 성공', ['user-id'=> $user->id, 'project-id'=>$proj->id]);

        return redirect('/project')
     		   ->with('message', $proj->name . ' 이 생성되었습니다.');
    }
}
PHP

Log::info 에 의해  config/app.php 의 log 항목 설정이 'single' 일 경우 storage/logs/laravel.log 파일에 로깅이 남게 되며 'daily' 이면 storage/logs/laravel-yyyy-mm-dd.log 파일에 다음과 같은 로그 메시지가 남겨 되므로 애플리케이션을디버깅하거나 모니터링할 때 유용하게 사용할 수 있습니다.

[2016-03-10 16:45:16] local.INFO: Project 등록 성공 {"user-id":1,"project-id":9} 

Log 파사드를 사용하려면 use Log; 로 선언하거나 \Log::info() 와 같이 네임 스페이스를 최상위로 지정해서 사용해야 합니다.