백엔드에서 호출된 쿼리 로그파일을 서버에 저장하는 방법
1) 로그파일 생성하는 이유
백엔드 서버에서 데이터베이스를 실시간으로 모니터링하는 것만으로는 모든 호출된 쿼리를 추적하기 어렵습니다.
과거의 쿼리 기록을 확인하려면 로그파일을 생성하여 보관해야 합니다. 아래 설명은 실시간 쿼리 로그를 파일로 생성하고, 로그파일이 일정 기간 후 자동으로 삭제되도록 배치 프로세스를 구현하는 방법입니다.
호출되는 실시간 쿼리

2) 작업내용
경로 설정 및 디렉토리 생성
로그파일을 저장할 디렉토리와 파일을 설정합니다.
위 쿼리가 실행되는 js파일 디렉토리 위치에서 logs디렉토리를 만든 후 해당 폴더에 로그파일을 만들고자 합니다.
해당 디렉토리가 없으면 생성합니다.
먼저 경로를 설정합니다.
쿼리 로그 생성 함수
쿼리 호출 시 로그파일에 기록하도록 함수(QueryLog)를 작성합니다.
위에서 설정한 경로에 호출된 시간 및 쿼리명령어가 기록 됩니다.
로그파일 생성 확인
위 설정으로 로그파일이 생성되었는지 확인합니다.
확인을 해보면 아래와 같이 생성된 것을 확인 할 수 있습니다.

3) 배치프로세스
로그파일이 계속 쌓이면 용량이 증가하므로, 일정 시간마다 로그파일을 삭제하는 배치 프로세스를 설정합니다.
쉘 스크립트 작성
로그파일을 삭제하는 쉘 스크립트를 작성합니다.
이 파일을 delete_logs.sh로 저장합니다.
정상적으로 sh가 작동하는지 테스트 해봅니다.
> /경로/delete_logs.sh
파일명은 delete_logs.sh로 하였고 해당디렉토리에 있는 log파일을 삭제하는 명령어 입니다.
파일이 정상적으로 삭제한다면 이제 위 sh를 크론작업을 태워주면 됩니다.
쉘 스크립트 권한 부여
쉘 스크립트에 실행 권한을 부여합니다.
리눅스 터미널에서
> chmod +x /root/backEnd_nodeJs/delete_logs.sh
크론탭 설정
크론탭을 설정하여 일정 시간마다 스크립트를 실행하도록 합니다.
실행 > crontab -e
명령어추가 > 0 0 * * * /root/backEnd_nodeJs/delete_logs.sh
크론탭 편집기에서 다음 명령어를 추가합니다. 이 명령어는 자정마다 로그파일을 삭제합니다.
이로써 로그파일 생성 및 삭제 프로세스가 완료되었습니다.
작업하시다가 궁금하신 점 있다면 댓글 남겨주세요.
읽어주셔서 감사합니다. 😊