api 호출 로그 저장
회사에서 제공하는 서비스는 api로 외부 업체와 통신한다. 업체에서 데이터 확인을 해달라고 해서 로그를 살펴봤더니 호출에 대한 로그가 전혀 없다. 아파치 로그는 get 방식의 호출만 로그로 남아 제대로 알 수 있는데 대부분의 요청이 post 방식이라 로그 방법을 고민했다.
지금 사용하는 시스템은 php/laravel인데 모든 호출 로그를 남길 방법을 찾지 못했다. 일단 시스템이 돌아야 로그가 남는데 시스템이 제대로 돌지 않는 상황이면 어떻게 해야할 것인가. 그래서 프레임워크가 시작하는 최상단에 파일로 로그를 남기는 방식으로 로그를 남기기 시작했다.
<?php
#public/index.php 상단부분에 작성한다$path = storage_path()."/logpath/file.log"; // storage_path()는 프레임워크가 시작되기 전이기에 작동하지 않는다. 실제 storage path를 적어야 한다. 파일명을 날짜로 지정해서 과거 로그도 쉽게 볼 수 있도록 만들었다.$data = json_encode(array(timestamp(), post(), request());$fp = fopen($path, "a");fwrite($fp, $data);fclose($fp);
이렇게 하자 외부업체에서 요청하는 데이터를 확인할 수 있게 됐고, 우리 서비스에 실제로 요청하는 api가 얼마나 되는지도 파악할 수 있게 됐다.