본문 바로가기
Spring

[Spring] AWS EC2에서 Spring log 저장하는 법

by Rapil 2023. 7. 20.

 

오늘은 AWS EC2에서 Spring Boot를 배포했을 때 log를 저장하고 확인할 수 있도록 하는 방법을 공유해 보겠습니다.


 

Point

nohup 이란?

nohup.out (Spring log 관리하기)

log 표준 출력, 표준 에러 따로 관리하기

 

nohup 이란?

 

nohup은 "no hang up"의 줄임말로 리눅스, 유닉스 시스템에서 백그라운드에서 프로세스를 실행하고 싶을 때 사용되는 명령어입니다.

일반적으로 터미널 세션 종료 시 실행 중인 프로세스도 함께 종료가 되는데 nohup을 사용하면 프로세스가 터미널 세션과 독립되어 백그라운드에서 실행됩니다.

 

nohup.out 관리

 

1. nohup 실행 시 log 파일 생성하지 않기

 

Git Action으로 자동화를 설정할 때 아래의 경우처럼 끝나지 않는 경우가 있습니다

 

깃 자동화 시 Spring의 log들이 끊임없이 나오는 경우입니다

이럴 때! 저희가 필요한 게 nohup으로 log를 생성하지 않도록 하는 것입니다

 

log 파일을 생성하지 않도록 백그라운드 실행과 log들을 버리는 명령어를 사용

$ nohup [실행파일] 1>dev/null 2>&1 &

// 예
$ nohup java -jar test.jar 1>/dev/null 2>&1 &

숫자의 의미
0: 표준 입력
1: 표준 출력
2: 표준 에러

1>dev/null
표준 출력 1의 결과를 /dev/null(버림)로 전달

2>&1
표준 에러 2를 표준 출력 1이 전달되는 곳(/dev/null)으로 동일하게 전달
 

 

2. nohup.out으로 표준 출력, 표준 에러 각각 관리하기

 

표준 출력과 표준 에러를 각각 관리하고 싶을 때 나누어 저장하는 방법

$ nohup [실행파일] 1>[파일1] 2>[파일2] &

// 예
$ nohup java -jar test.jar 1>output.log 2>error.log &

1>output.log
표준 출력 1의 결과를 "output.log"라는 파일에 전달

2>error.log
표준 에러 2의 결과를 "error.log"라는 파일에 전달
 

코드 실행 시 log 파일이 생성되어 저장되는 것을 확인하실 수 있습니다!


 

오늘 nohup 사용법과 nohup.out 로그 관련 설정에 대해 알아보았습니다!

끝없는 배움에 박수를 보냅니다!

 

파이팅!