
데몬 프로그램을 작성했다는 가정하에, 서버에서 로깅에 필요한 설정도 함께 해줘야 합니다.
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 &
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 설정
Logger 설정
데몬에서 로깅을 위해 만든 클래스 입니다. 이 클래스는 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");
}
start_testDaemon.sh를 통해 데몬(testDaemon.jar)을 시작하면 test_log.xml의 설정에 따라 로그가 생성되고, Log4j가 설정된대로 콘솔 및 롤링 파일에 기록됩니다.