JBoss EAP 6를 도메인 모드(Domain Mode)로 운영할 때, 기본 로그 경로가 아닌 별도의 디스크 경로로 로그를 저장하는 방법을 정리합니다.
domain.xml의paths설정과logging서브시스템을 수정하여 각 서버 인스턴스별로 로그 폴더를 동적으로 분리하는 구성을 다룹니다.
0. 배경 지식 (Context)
도메인 모드에서는 하나의 도메인 컨트롤러(Domain Controller)가 여러 서버 그룹과 인스턴스를 관리합니다. 로그 설정 시 가장 중요한 점은 "여러 서버가 동시에 실행될 때 로그 파일이 섞이지 않게 하는 것"입니다.
이를 위해 JBoss는 ${jboss.server.name}이라는 시스템 변수를 제공하여, 설정은 한 번만 하더라도 실제 로그는 각 서버의 이름으로 된 폴더에 쌓이도록 구성할 수 있습니다.
1. 사전 준비 및 백업
설정 변경 중 오타가 발생하면 JBoss 도메인 전체가 기동되지 않을 수 있습니다. 작업 전 반드시 설정 파일을 백업하십시오.
백업 대상
- 파일 경로:
[EAP_HOME]/domain/configuration/domain.xml
# 백업 예시
cp domain.xml domain.xml.bak_YYYYMMDD
2. 로그 경로(Path) 정의
먼저 로그를 저장할 물리적인 디렉토리 경로를 domain.xml 내에 논리적인 이름으로 정의해야 합니다. 이 설정은 파일의 상단 <paths> 섹션에 위치합니다.
domain.xml 수정
기존 <paths> 태그 내부에 새로운 경로를 추가합니다.
<paths>
<!-- 기존 경로들 ... -->
<!-- 신규 로그 경로 정의 -->
<!-- name: 설정에서 사용할 논리적 이름 / path: 실제 파일 시스템 경로 -->
<path name="server.log.dir" path="D:\app\log"/>
</paths>
3. 프로파일(Profile) 로깅 설정 적용
위에서 정의한 경로를 실제로 사용하도록 로깅 서브시스템(Subsystem)을 수정합니다. 도메인 모드에는 여러 프로파일(default, ha, full, full-ha 등)이 존재하므로, 현재 운영 중인 서버 그룹이 사용하는 프로파일을 정확히 찾아 수정해야 합니다.
domain.xml 수정 (logging subsystem)
<profile name="ha"> (예시) 내부의 로깅 설정을 찾아 file-handler 부분을 수정합니다.
<profile name="ha">
<subsystem xmlns="urn:jboss:domain:logging:1.2">
<!-- Console Handler 생략 -->
<!-- File Handler 수정 -->
<periodic-rotating-file-handler name="FILE" autoflush="true">
<formatter>
<named-formatter name="PATTERN"/>
<formatter>
<!-- 핵심 설정 부분 -->
<!-- relative-to: 위에서 정의한 경로 변수 참조 -->
<!-- path: 서버 이름별로 폴더 자동 생성 -->
<file relative-to="server.log.dir" path="${jboss.server.name}/server.log"/>
<suffix value=".yyyy-MM-dd"/>
<append value="true"/>
</periodic-rotating-file-handler>
<!-- 이하 생략 -->
</subsystem>
</profile>
설정 설명
relative-to="server.log.dir": 2번 단계에서 정의한D:\app\log를 기준 경로로 잡습니다.path="${jboss.server.name}/server.log": 기준 경로 하위에 서버 인스턴스 이름(예: Server1, Server2)으로 폴더를 만들고 그 안에server.log를 생성합니다.
4. 적용 및 검증 (Verification)
domain.xml은 정적 설정 파일이므로 변경 사항을 적용하려면 도메인 전체 재기동이 필요합니다.
재기동
# Linux
[EAP_HOME]/bin/domain.sh
# Windows
[EAP_HOME]\bin\domain.bat
결과 확인
서버가 기동된 후, 탐색기나 쉘을 통해 지정한 경로(D:\app\log)에 서버별 폴더가 생성되었는지 확인합니다.
D:\app\log\
├── Server1\
│ └── server.log
└── Server2\
└── server.log
Next Step:
로그 경로 변경에 성공했다면, 운영 편의를 위해 로그 파일의 보관 주기(Retention Policy)를 설정하거나, 로그 포맷(Formatter)을 변경하여 가독성을 높이는 작업을 고려해 보십시오.