Java 데몬 실행에 필요한 로깅 설정-2

JAVA-로깅설정

목록 보기
2/2
post-thumbnail

데몬 프로그램을 작성했다는 가정하에, 서버에서 로깅에 필요한 설정도 함께 해줘야 합니다.

1. startTestDaemon.sh 스크립트:

Java 데몬(testDaemon.jar)을 시작하는 스크립트인 startTestDaemon.sh의 명령어입니다.

nohup java -server -jar /home/~/~/testDaemon.jar 12345 /home/~/~/log/conf/test_daemon_log.xml 1> /dev/null 2>&1 &
  • nohup : 프로세스가 터미널 세션 종료 후에도 계속 실행되도록 합니다.
  • java -server : Java 가상 머신을 서버 모드로 실행합니다.
  • -jar /home/~/~/testDaemon.jar : 지정된 JAR 파일을 실행합니다.
  • 12345 : Java 어플리케이션에 전달되는 포트 번호입니다.
  • /home//~/~/log/conf/test_daemon_log.xml : Log4j 설정 파일의 경로입니다.
  • 1> /dev/null 2>&1 : 표준 출력 및 표준 에러를 무시합니다.
  • & : 명령어를 백그라운드에서 실행하도록 합니다.

2. test_log.xml Log4j 설정 파일

Log4j 라이브러리를 사용하여 데몬에서 생성되는 로그를 관리하는 test_log.xml의 내용입니다.

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>

 <!-- Appender, Layout 설정 -->
 <Appenders>
  <Console name="console" target="SYSTEM_OUT">
   <PatternLayout pattern="[%d{HH:mm:ss.SSS}] %-5p %c{2} - %m\r\n"/>
  </Console>
  <RollingFile name="rollingFile" fileName="/home/***/***/log/logs/testDaemon.log" filePattern="/home/***/***/log/logs/testDaemon.log.%d{yyyyMMdd}">
   <PatternLayout pattern="[%d{HH:mm:ss.SSS}] %-5p %c{2} - %m\r\n" />
   <Policies>
    <TimeBasedTriggeringPolicy />
   </Policies>
  </RollingFile>
 </Appenders>

 <!-- Logger 설정 -->
 <Loggers>
  <Logger name="test_protocol" level="DEBUG" additivity="false">
   <AppenderRef ref="console"/>
   <AppenderRef ref="rollingFile"/>
  </Logger>
  <Root level="ERROR">
   <AppenderRef ref="console"/>
   <AppenderRef ref="rollingFile"/>
  </Root>
 </Loggers>
</Configuration>

Appenders 설정

  • console: 콘솔에 로그를 출력하는 설정.
  • rollingFile: 일일로 롤링되는 파일에 로그를 출력하는 설정.

Logger 설정

  • test_protocol: DEBUG 레벨 이상의 로그를 콘솔과 롤링 파일에 기록.
  • Root: ERROR 레벨 이상의 모든 로그를 콘솔과 롤링 파일에 기록.

3. testDaemon.jar Log4j 설정 파일

데몬에서 로깅을 위해 만든 클래스 입니다. 이 클래스는 test_protocol 카테고리의 로그를 기록하는 데 사용되는 상수들을 정의합니다.

데몬의 다른 부분에서 Const.log를 통해 test_protocol 카테고리로 로그를 남기도록 하며, 이 로그는 test_log.xml에 설정된 Appenders 및 Loggers에 의해 처리됩니다.
이를 통해 데몬 실행 및 로깅이 통합되어 관리됩니다.

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class Const {
    public static final Logger log = LogManager.getLogger("test_protocol");
}
  • import org.apache.logging.log4j.LogManager; 및 import org.apache.logging.log4j.Logger; : Log4j 라이브러리에서 LogManager 및 Logger 클래스를 가져옵니다.
  • public static final Logger log = LogManager.getLogger("meter_protocol"); : meter_protocol 카테고리의 Logger를 정적으로 선언하고 초기화합니다.
  • log 상수는 데몬 코드에서 test_protocol 카테고리로 로그를 기록하는 데 사용됩니다.

정리

start_testDaemon.sh를 통해 데몬(testDaemon.jar)을 시작하면 test_log.xml의 설정에 따라 로그가 생성되고, Log4j가 설정된대로 콘솔 및 롤링 파일에 기록됩니다.

profile
숲을 보고 나무도 보자.

0개의 댓글