본문 바로가기
프로그램/스프링

[PWA] 자바로 pwa push 알림 기능 개발하기(4)

by cbwstar 2021. 8. 2.
728x90
반응형

resource폴더 밑에 logback-local.properties 파일을 하나 생성한다. 로그파일이 저장되는 경로를 설정한다.

log.config.path=/logs/local           /* 로그파일 저장경로 */
log.config.filename=local_log         /* 로그파일 이름 */


resource 폴더에 logback-spring.xml 파일을 생성한다.
logback-local.properties 파일에 위의 내용을 입력한다.

아래의 내용을 붙여 넣는다.

<?xml version="1.0" encoding="UTF-8"?>
<!-- 60초마다 설정 파일의 변경을 확인 하여 변경시 갱신 -->
<configuration scan="true" scanPeriod="60 seconds">
<!--springProfile 태그를 사용하면 logback 설정파일에서 복수개의 프로파일을 설정할 수 있다.--> 
<springProfile name="local"> 
        <property resource="logback-local.properties"/> 
</springProfile>
 <springProfile name="dev"> 
         <property resource="logback-dev.properties"/> 
 </springProfile> 
 
 <!--Environment 내의 프로퍼티들을 개별적으로 설정할 수도 있다.--> 
 <springProperty scope="context" name="LOG_LEVEL" source="logging.level.root"/> 
 
 <!-- log file path -->
 <property name="LOG_PATH" value="${log.config.path}"/>
  <!-- log file name -->
 <property name="LOG_FILE_NAME" value="${log.config.filename}"/> 
 <!-- err log file name --> 
 <property name="ERR_LOG_FILE_NAME" value="err_log"/>
  <!-- pattern --> 
 <property name="LOG_PATTERN" value="%-5level %d{yy-MM-dd HH:mm:ss}[%thread] [%logger{0}:%line] - %msg%n"/>
 <!-- Console Appender --> 
 <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> 
         <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
                 <pattern>${LOG_PATTERN}</pattern> 
   </encoder> 
 </appender> 
 <!-- File Appender --> 
 <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
         <!-- 파일경로 설정 --> 
         <file>${LOG_PATH}/${LOG_FILE_NAME}.log</file>
         <!-- 출력패턴 설정--> 
         <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
                 <pattern>${LOG_PATTERN}</pattern> 
         </encoder>
          <!-- Rolling 정책 --> 
         
          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                   <!-- .gz,.zip 등을 넣으면 자동 일자별 로그파일 압축 -->
           <fileNamePattern>${LOG_PATH}/${LOG_FILE_NAME}.%d{yyyy-MM-dd}_%i.log</fileNamePattern>
                    <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
          <!-- 파일당 최고 용량 kb, mb, gb --> 
          <maxFileSize>10MB</maxFileSize> 
          </timeBasedFileNamingAndTriggeringPolicy> 
          <!-- 일자별 로그파일 최대 보관주기(~일), 해당 설정일 이상된 파일은 자동으로 제거-->
           <maxHistory>30</maxHistory> 
           <!--<MinIndex>1</MinIndex> <MaxIndex>10</MaxIndex>--> 
           </rollingPolicy> 
           </appender> 
           <!-- 에러의 경우 파일에 로그 처리 --> 
           <appender name="Error" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
                   <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
                            <level>error</level> 
                      <onMatch>ACCEPT</onMatch> 
                      <onMismatch>DENY</onMismatch>
                  </filter> 
            <file>${LOG_PATH}/${ERR_LOG_FILE_NAME}.log</file> 
            <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
                    <pattern>${LOG_PATTERN}</pattern>
             </encoder>
              <!-- Rolling 정책 --> 
              <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
               <!-- .gz,.zip 등을 넣으면 자동 일자별 로그파일 압축 --> 
               <fileNamePattern>${LOG_PATH}/${ERR_LOG_FILE_NAME}.%d{yyyy-MM-dd}_%i.log</fileNamePattern>
                <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
                <!-- 파일당 최고 용량 kb, mb, gb -->
                 <maxFileSize>10MB</maxFileSize>
                  </timeBasedFileNamingAndTriggeringPolicy>
                   <!-- 일자별 로그파일 최대 보관주기(~일), 해당 설정일 이상된 파일은 자동으로 제거--> 
                   <maxHistory>60</maxHistory>
                  </rollingPolicy>
               </appender> 
               <!-- root레벨 설정 --> 
            <root level="${LOG_LEVEL}"> 
                    <appender-ref ref="CONSOLE"/> 
                    <appender-ref ref="FILE"/>
                    <appender-ref ref="Error"/> 
             </root> 
             <!-- 특정패키지 로깅레벨 설정 -->
              <logger name="org.apache.ibatis" level="INFO" additivity="false"> 
                      <appender-ref ref="CONSOLE"/> 
                      <appender-ref ref="FILE"/> 
                      <appender-ref ref="Error"/> 
              </logger> 
        </configuration>

위에서 application.yml 파일에서

  profiles:

    active: local  

로 설정한 부분이 있다. local에서 개발시에는 active를 local로 설정을 하고 배포시에는 active를 dev난 prod로 설정을 하면 설정에 따라서 logback-spring.xml파일에서 springProfile name=”local” 부분이 있다.

active 설정 모드에 따라서 logback-local.properties 파일을 읽어 오게된다.

이제 로그 파일까지 설정을 하였다.

728x90
반응형

댓글



"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

loading