티스토리 뷰

Server

로그 명령어와 grep 옵션

니용 2020. 5. 26. 16:29
반응형

 

Author: 니용

 

안녕하세요! 

개발자로서 로그를 확인하는 일은 정말 많습니다.

테스트 혹은 QA 과정 중에 모든 에러를 잡는 것은 코드를 개발한 개발자여도 찾기 쉽지 않습니다. 

도달 범위 혹은 if 문 사이사이에 해당 조건이 맞는지 찾기 위해 정말 많이 사용하죠.

 

각 언어별로 혹은 환경별로 로그를 제공하는 명령어는 모두 다릅니다. 

이 글에서는 모든 언어는 아니지만 각 언어별로 제공하는 명령어와 그 사용방법 및 꿀팁을 전달드리려고 합니다.

 

환경 명령어(소스) 비고
Web (Chrome Browser) console.log / console.group 등 foreach 문은 console.group
Java System.out.println  
Python / PHP echo  
Linux / Ubuntu tail / vi  
Lombok (Spring Framework) log.info / log.debug / log.error 등 @Slf4j 사용시

Lombok은 이전에 말씀드렸다시피 외부 라이브러리예요. 

설치하는 법은 이전 글에 나와있어 사용하시기 어렵지 않으실거에요.

 

Linux는 사용할 때 단축키가 약간 다르기 때문에 윈도 사용자들은 불편함이 많으실 거예요.

여기에서는 특정 단어가 들어갔을 때 로그를 출력하는 방법을 설명드리려고 합니다.

 

먼저 터미널을 오픈한 후, console.log 혹은 logback.log 파일이 있는 경로로 이동합니다.

이동하는 명령어는 cd (change directory) 이죠

 

cd api/

경로로 이동하셨다면 파일을 tail 명령어로 오픈합니다. 

 

tail logback.log

여기에 옵션을 부여할 수 있어요. 라인수를 옵션으로 넣어봅니다.

 

tail -2000f logback.log

위의 옵션을 추가하면 아래서부터 상위 2천 줄이 출력됩니다.

또 로그가 추가적으로 쌓인다고 하더라도 계속 하위에 깔리게 되어요.

 

특정 키워드로 검색을 하고 싶다 하시면 아래와 같이 옵션을 추가하면 됩니다.

tail -2000f logback.log | grep "keyword"

이렇게 되면 keyword라는 키워드가 들어간 로그 줄만 출력이 되는 것을 확인할 수 있습니다.

grep 명령어는 이럴 때 사용하면 좋아요

 

1. 출력되는 로그가 너무 많아서 특정 키워드만 검색하고 싶을 때

2. 파일을 찾아야 하는데 파일 또는 디렉터리가 너무 많아서 검색 조건에 넣을 때

3. 불필요한 검색을 줄이고 싶을 때

 

파일을 검색하고 싶을 때는 다른 명령어도 있습니다.

find /home/username/ -name "*.err"

확장자가 .err 인 파일을 검색할 때 사용합니다.

자세한 내용은 해당 링크에서 확인 가능하세요.

반응형

'Server' 카테고리의 다른 글

이모지를 저장하자  (0) 2020.06.16
MySQL Function 만들기  (1) 2020.06.12
MySQL 의 LEFT OUTER JOIN - 23년 7월 수정  (0) 2020.06.11
MySQL 기본 인코딩 언어 설정하기  (2) 2020.05.11
MySQL 함수(SUBSTR, DATE_FORMAT, CAST)  (0) 2020.04.22
[Java] 타입 변환  (0) 2020.04.17
댓글
공지사항