ServBay에서 로그 파일 확인하기: 디버깅 & 문제 해결 가이드
웹 개발 및 서버 관리 과정에서 로그 파일은 문제를 진단하고, 성능을 모니터링하며, 애플리케이션 동작을 파악하는 데 필수적인 도구입니다. 강력한 로컬 웹 개발 환경인 ServBay는 웹 서버, 데이터베이스, 프로그래밍 언어 인터프리터 등 다양한 패키지를 통합 제공하며, 각 패키지의 로그를 중앙에서 관리할 수 있게 설계되었습니다.
이 글에서는 ServBay에서 로그 파일을 확인하는 두 가지 주요 방법—macOS 터미널 명령과 ServBay의 그래픽 사용자 인터페이스(GUI)를 활용한 방법—을 자세히 설명합니다. 이를 익히면 ServBay 환경에서 디버깅과 문제 해결 효율이 크게 향상됩니다.
대상 독자: ServBay를 활용해 로컬 개발을 진행하는 웹 개발자(PHP, Node.js, Python, Go, Java, Ruby, Rust, .NET), 데이터베이스(MySQL, PostgreSQL, MongoDB, MariaDB), 캐시 서비스(Redis, Memcached), 웹 서버(Caddy, Nginx, Apache) 등 다양한 기술 스택을 사용하는 분
로그 파일의 중요성
로그 파일은 왜 중요할까요?
- 오류 진단: 애플리케이션/서버의 다운, 설정 오류, 권한 문제 등은 대체로 로그 파일에 상세하게 기록됩니다.
- 행동 분석: 사용자 요청, 서버 응답, 데이터베이스 쿼리를 파악하여 성능을 최적화하고 예외적인 패턴을 식별할 수 있습니다.
- 보안 감사: 잠재적 보안 사고나 비인가 접근 시도도 로그에 남습니다.
- 성능 모니터링: 일부 로그는 요청 시간, 자원 사용량 등 성능 관련 데이터를 포함합니다.
ServBay는 모든 패키지의 로그를 하나로 모아 개발자가 간편하게 관리할 수 있도록 합니다.
ServBay 로그 파일 저장 위치
ServBay의 모든 로그 파일은 아래 경로에 집약되어 있습니다:
/Applications/ServBay/logs
1
이 폴더엔 ServBay 자체 및 설치·실행 중인 패키지(PHP, Caddy, Nginx, MySQL, PostgreSQL, Redis 등)의 로그가 소프트웨어별 혹은 버전별 서브 디렉토리로 정리되어 있습니다.
방법 1: macOS 터미널에서 로그 파일 접근
명령줄에 익숙하다면 터미널을 통해 로그 파일을 직접 다루는 것이 큰 유연성과 강력한 텍스트 처리 능력(예: grep
필터링, tail -f
실시간 모니터링 등)을 선사합니다.
1. 터미널 앱 실행
macOS에서 "터미널" 앱을 실행하세요.
2. ServBay 로그 디렉토리로 이동
cd
명령으로 ServBay 로그 폴더로 이동합니다:
bash
cd /Applications/ServBay/logs
1
3. 로그 파일 및 디렉토리 구조 확인
로그 폴더 내에서 ls
명령으로 사용 가능한 로그 파일 및 서브 디렉토리를 조회합니다:
bash
ls -l
1
설치·실행한 패키지에 따라 아래와 비슷한 구조를 볼 수 있습니다:
caddy/
dnsmasq.log
mailpit.log
mariadb/
memcached.log
mongodb/
mysql/
nginx/
apache/
php/
|____5.6/
|____7.0/
|____7.1/
|____7.2/
|____7.3/
|____7.4/
|____8.0/
|____8.1/
|____8.2/
|____8.3/
|____8.4/
postgresql/
redis.log
xdebug/
|____5.6/
|____7.0/
|____7.1/
|____7.2/
|____7.3/
|____7.4/
|____8.0/
|____8.1/
|____8.2/
|____8.3/
|____8.4/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
4. 특정 로그 파일 내용 확인
표준 명령줄 툴(예: cat
, less
, tail
)을 사용해 로그 파일 내용을 확인할 수 있습니다.
cat <파일명>
: 파일 전체를 한 번에 출력(소형 파일에 추천)less <파일명>
: 페이지 단위로 내용을 보여주며, 검색 및 스크롤 지원(대용량 파일에 적합)tail -f <파일명>
: 최신 변경분을 실시간 출력하며, 실시간 오류나 이벤트 디버깅에 유용
예시:
- PHP 8.3 FPM 로그 확인:bash
cat php/8.3/php-fpm.log # 또는 페이지 단위로 확인 less php/8.3/php-fpm.log # 또는 실시간 모니터링 tail -f php/8.3/php-fpm.log
1
2
3
4
5 - Caddy 웹 서버 오류 로그 확인: Caddy 로그는 주로
caddy
디렉토리에 존재합니다. 해당 폴더로 이동 후 확인하세요.bashcd caddy ls # 실제 로그 파일명 예: error.log tail -f error.log
1
2
3 - Nginx 웹 서버 오류 로그 확인: Nginx 로그는
nginx
디렉토리에 있습니다.bashcd nginx ls # error.log, access.log 등 tail -f error.log
1
2
3 - MySQL 8 로그 확인: MySQL 로그는
mysql
디렉토리에 위치합니다.bashcd mysql ls # error.log, slow.log 등 tail -f error.log
1
2
3 - PostgreSQL 로그 확인: PostgreSQL 로그는
postgresql
디렉토리에 저장됩니다.bashcd postgresql ls # 실제 로그 파일 확인 tail -f postgresql.log
1
2
3 - Redis 로그 확인:bash
tail -f redis.log
1
5. grep
으로 로그 필터링
로그 내용이 방대하다면 grep
명령으로 원하는 정보만 빠르게 찾을 수 있습니다.
예시:
- PHP 8.3 로그에서 "error"가 포함된 행 모두 찾기:bash
grep "error" php/8.3/php-fpm.log
1 - Caddy 오류 로그에서 특정 요청 오류 찾기:bash
tail -f caddy/error.log | grep "servbay.demo"
1
tail -f
와 grep
을 결합하면 실시간으로 관심 있는 로그만 골라낼 수 있어 매우 효율적입니다.
방법 2: ServBay 그래픽 사용자 인터페이스(GUI) 활용
명령줄이 익숙하지 않다면, ServBay의 GUI에서 각 패키지별 또는 사이트별로 로그를 손쉽게 확인할 수 있습니다.
1. ServBay 앱 실행
macOS "응용 프로그램" 폴더에서 ServBay 아이콘을 찾아 더블클릭하여 실행하세요.
2. GUI로 로그 접근
ServBay는 여러 패널에서 로그에 빠르게 접근할 수 있는 기능을 제공합니다:
'개요(대시보드, Dashboard)' 패널에서
ServBay 실행 시 기본으로 '개요' 패널이 열립니다. '빠른 서비스 관리' 영역에서 설치·실행 중인 각 패키지 우측에 보통 로그 아이콘(문서/파일 모양)이 나타납니다. 이 아이콘을 클릭하면 해당 패키지의 로그를 바로 확인할 수 있습니다.
예시: 개요 패널에서 아이콘을 통해 로그 빠르게 열기
'소프트웨어 패키지(Packages)' 패널에서
- ServBay GUI 좌측 메뉴에서 '소프트웨어 패키지' 패널로 이동합니다.
- 패키지 목록에서 각 패키지 우측에 있는 로그 아이콘을 클릭하면 해당 패키지의 로그를 확인할 수 있습니다.
예시: 패키지 패널에서 로그 아이콘으로 로그 보기
'웹사이트(Websites)' 패널에서
- 좌측 메뉴에서 '웹사이트' 패널로 이동합니다.
- 리스트에서 각 사이트 설정 오른쪽에 로그 아이콘이 있습니다. 클릭 시 해당 사이트에 연결된 웹 서버(Caddy, Nginx, Apache 등)의 접근/오류 로그를 확인할 수 있어, 사이트별 문제 분석시 매우 유용합니다.
예시: 웹사이트 패널에서 로그 아이콘 활용해 사이트 관련 로그 확인
'소프트웨어 패키지 설정(Package Configs)' 패널에서
- 좌측 메뉴에서 '소프트웨어 패키지 설정' 패널로 진입합니다.
- 설정하려는 패키지(예: PHP 8.3)를 선택합니다. 설정 상세페이지 우측 상단에 로그 아이콘이 표시됩니다. 클릭 시 선택한 버전의 로그를 볼 수 있습니다.
예시: 패키지 설정 패널에서 로그 아이콘으로 로그 열람
GUI에서 로그를 확인하는 장점은 직관적이며 빠르다는 점입니다. 파일 경로나 명령을 기억하지 않아도 되어, 최신 상태나 오류를 신속하게 파악할 때 적합합니다.
주요 ServBay 로그 파일과 역할
다양한 로그 파일의 용도를 이해하면 문제를 훨씬 더 빨리 찾아낼 수 있습니다.
/Applications/ServBay/logs/caddy/
: Caddy 웹 서버의 모든 로그.access.log
(모든 요청 기록),error.log
(서버 오류 기록)로 구분/Applications/ServBay/logs/nginx/
: Nginx 웹 서버 로그. 주로access.log
및error.log
포함/Applications/ServBay/logs/apache/
: Apache 웹 서버 로그.access.log
,error.log
포함/Applications/ServBay/logs/php/<버전>/php-fpm.log
: PHP-FPM 프로세스 상태, 구동 오류, PHP 실행 중 발생한 에러(php 에러 로그가 이 위치로 지정되어 있으면)/Applications/ServBay/logs/mysql/error.log
: MySQL 데이터베이스의 기동, 종료, 런타임 오류, 경고, 크래시 내역 등/Applications/ServBay/logs/mysql/slow.log
: SQL 실행 시간이 일정 임계값 초과 시 기록(설정에 따라 사용)/Applications/ServBay/logs/mariadb/error.log
: MariaDB 서버 오류 및 상태(logic은 MySQL과 유사)/Applications/ServBay/logs/postgresql/postgresql.log
: PostgreSQL의 연결, 쿼리 오류, 설정 문제 등 다양한 이벤트 기록/Applications/ServBay/logs/mongodb/mongodb.log
: MongoDB의 기동, 연결, 복제, 샤딩, 런타임 오류 등 정보/Applications/ServBay/logs/redis.log
: Redis KVDB의 기동, 설정 로드, 퍼시스턴스, 런타임 에러 등/Applications/ServBay/logs/memcached.log
: Memcached 캐시 서비스의 기동/실행 기록/Applications/ServBay/logs/mailpit.log
: Mailpit 이메일 캡처 툴의 구동 상태 및 수신 메일 정보/Applications/ServBay/logs/xdebug/<버전>/
: XDebug 디버거의 디버깅 세션 로그(활성화 시)/Applications/ServBay/logs/dnsmasq.log
: ServBay 내장 DNS 서비스(Dnsmasq)의 쿼리와 해석 기록. 로컬 도메인 문제 진단에 활용
로그 파일 관리 및 정리
시간이 지나며 로그는 계속 커지므로, 디스크 공간을 효율적으로 사용하려면 정기적으로 용량을 확인하고 불필요한 로그를 삭제·아카이빙하세요.
불필요한 오래된 로그를 다음과 같이 터미널에서 삭제할 수 있습니다. 예를 들어, 특정 PHP 에러 로그 삭제:
bash
rm /Applications/ServBay/logs/php/7.4/php-fpm.log
1
중요 주의사항:
- 로그 파일을 삭제하기 전에 반드시 필요 없는 정보임을 확인하거나 백업하세요.
- 사용 중인 로그 파일을 바로 삭제하면 현재 프로세스에서 로그 기록에 문제가 생길 수 있습니다. 서비스 중지 후 삭제하거나, 로그 로테이션 도구(일부 패키지는 내장됨) 사용을 권장합니다.
요약
로그 파일의 확인 및 분석은 안전하고 효율적인 로컬 개발 환경의 핵심 역량입니다. ServBay는 통일된 디렉토리 구조와 직관적인 GUI 접근성을 갖춰, 이 과정을 크게 단순화합니다. 명령줄의 강력한 기능을 선호하는 개발자도, GUI의 편리함을 찾는 개발자도 ServBay에서 손쉽게 로그를 확인할 수 있습니다. 주요 서비스의 로그를 주기적으로 점검하면 문제를 신속히 진단하고, 로컬 개발 환경을 안정적으로 유지할 수 있습니다.