본문으로 건너뛰기

로그 파일 모니터링하기

Windows PowerShell 및 Linux와 macOS 에서 사용 가능한 로그 모니터링 명령어로 HandStack 앱에서 기록하는 실시간 로그 파일 모니터링을 위한 PowerShell(Windows) 및 Bash(Unix/Linux) 명령어를 설명합니다.

로그 디렉토리는 $HANDSTACK_HOME/log에 위치하고 있습니다. $HANDSTACK_HOME은 HandStack이 설치된 경로를 나타내는 환경 변수입니다.

PowerShell 명령어 (Windows)

Get-Content -Path "$env:HANDSTACK_HOME\log\app$(Get-Date -Format 'yyyyMMdd').log" -Encoding UTF8 -Wait -Tail 300
Get-Content -Path "$env:HANDSTACK_HOME\log\dbclient\module$(Get-Date -Format 'yyyyMMdd').log" -Encoding UTF8 -Wait -Tail 300
Get-Content -Path "$env:HANDSTACK_HOME\log\dbclient\profile$(Get-Date -Format 'yyyyMMdd').log" -Encoding UTF8 -Wait -Tail 300
Get-Content -Path "$env:HANDSTACK_HOME\log\transact\module$(Get-Date -Format 'yyyyMMdd').log" -Encoding UTF8 -Wait -Tail 300

일반 터미널에서 실행

powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "Get-Content -Path \"$env:HANDSTACK_HOME\log\app$(Get-Date -Format 'yyyyMMdd').log\" -Encoding UTF8 -Wait -Tail 300"
powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "Get-Content -Path \"$env:HANDSTACK_HOME\log\dbclient\module$(Get-Date -Format 'yyyyMMdd').log\" -Encoding UTF8 -Wait -Tail 300"
powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "Get-Content -Path \"$env:HANDSTACK_HOME\log\dbclient\profile$(Get-Date -Format 'yyyyMMdd').log\" -Encoding UTF8 -Wait -Tail 300"
powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "Get-Content -Path \"$env:HANDSTACK_HOME\log\transact\module$(Get-Date -Format 'yyyyMMdd').log\" -Encoding UTF8 -Wait -Tail 300"

주요 매개변수 설명

  • -Path: 읽을 파일 경로
    • $env:HANDSTACK_HOME: 환경 변수에서 HANDSTACK_HOME 값을 가져옴
    • \log\app$(Get-Date -Format 'yyyyMMdd').log: 현재 날짜를 yyyyMMdd 형식으로 포함한 로그 파일명
  • -Encoding UTF8: 파일을 UTF-8 인코딩으로 읽음
  • -Wait: 파일 끝에 도달한 후에도 종료하지 않고 새로운 내용이 추가되면 계속 표시
  • -Tail 300: 파일의 마지막 300줄부터 읽기 시작

Unix/Linux 명령어 (Bash)

tail -n 300 -f "$HANDSTACK_HOME/log/app$(date +%Y%m%d).log"
tail -n 300 -f "$HANDSTACK_HOME/log/dbclient/module$(date +%Y%m%d).log"
tail -n 300 -f "$HANDSTACK_HOME/log/dbclient/profile$(date +%Y%m%d).log"
tail -n 300 -f "$HANDSTACK_HOME/log//transact/module$(date +%Y%m%d).log"

주요 매개변수 설명

  • -n 300: 파일의 마지막 300줄부터 출력
  • -f: (follow) 파일이 업데이트될 때 계속해서 출력 (실시간 모니터링)
  • $HANDSTACK_HOME: 환경 변수에서 HANDSTACK_HOME 값을 가져옴
  • $(date +%Y%m%d): 현재 날짜를 YYYYMMDD 형식으로 추출하여 파일명에 삽입

사용 시나리오

  • 애플리케이션 로그를 실시간으로 모니터링할 때 사용
  • 오늘 날짜로 생성된 로그 파일의 최근 내용만 확인하고 싶을 때
  • 로그 파일이 지속적으로 업데이트되는 상황에서 새로운 로그 항목을 실시간으로 확인할 때

참고사항

  • 두 명령어 모두 환경 변수 HANDSTACK_HOME이 올바르게 설정되어 있어야 함
  • PowerShell의 경우 -Wait 매개변수, Linux의 경우 -f 옵션을 통해 실시간 모니터링 기능 제공
  • 명령어를 중지하려면 Windows에서는 Ctrl+C, Unix/Linux에서도 Ctrl+C 사용