이 페이지의 이전 버전을 보고 있습니다. 현재 버전 보기.

현재와 비교 페이지 이력 보기

« 이전 버전 3 현재 »

Spring Boot로 구성한 Application을 CentOS의 Systemd 서비스로 등록하기 위해서 다음의 파일을 /etc/systemd/system/demo.service 파일로 기록합니다.

[Unit]
Description=Demo Java Service

[Service]
WorkingDirectory=/opt/app
ExecStart=/bin/java -Dspring.config.location=/opt/app/application.yml -jar /opt/app/demo-0.0.1-SNAPSHOT.jar        → spring.config.location으로 설정 파일 추가
User=root
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

Logback 설정 파일을 /opt/app/logback.xml 파일로 저장합니다. JAR 파일에 logback.xml 파일이 있다면 이 설정이 제대로 적용되지 않습니다. 따라서 개발시에 사용하는 로그 설정은 파일명이 logback-local.xml 파일 처럼 변경하시기 바랍니다. 

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds">
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}[%-5level] : %msg%n</pattern>
        </encoder>
    </appender>
    <appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
        <file>mylog.txt</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- rollover daily -->
            <fileNamePattern>mylog-%d{yyyy-MM-dd}.%i.txt</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- or whenever the file size reaches 100MB -->
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder>
            <pattern>[%-5level] %d{HH:mm:ss.SSS} %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <root level="INFO">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="ROLLING"/>
    </root>
</configuration>

Spring Boot의 설정 파일인 /opt/app/application.yml 파일을 다음과 같이 작성합니다. 아래 설정에서는 로그 파일의 경로만 지정하였습니다.

logging:
  config: /opt/app/logback.xml

이제 다음의 커맨드로 서비스를 시작합니다.

# systemctl start demo.service
# systemctl status demo.service
  • 레이블 없음