ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • spring boot logback.xml 맥OS에서 파일 생성 문제
    Springboot 2022. 8. 14. 10:12
    728x90

    문제점 

    macOS에서 testcase 동작시에도 weblog를 남기게 하였는데 해당 경로는 배포 경로와 동일한

    /var/log/webserver를 사용하였다.

    문제는 여기서 부터 시작

    intellij가 root권한으로 실행되지 않기 때문에 /var/log/webserver 에 폴더를 자동 생성하거나 그 경로 하위에

    로그 파일을 생성하는 것도 실패하였음.

     

    해결책

      <springProfile name="real, dev">
        <property name="LOG_DIR" value="/var/log/webserver"/>
      </springProfile>
      <springProfile name="junit, local">
        <property name="LOG_DIR" value="${user.home}/webserver"/>
      </springProfile>

     

    나의 경우 총 4개의 profile을 운영중이다.

      - real (서비스 프로필)

      - dev (개발 프로필)

      - junit, local (로컬 또는 테스트 케이스 동작시)

     

    권한문제로 logback이 파일을 생성하지 못하는 이슈를 해결하고자

    위와 같이 분기처리 하였음

     

    ${user.home} 을 사용하여 유저 경로 하위에 로그를 생성한다.

     

    느낀점

    사실 이 문제를 해결하려고 3시간 이상의 시간을 소비하였음

     

    맥 OS에서 /var/log 하위에 자동으로 로그 파일을 떨구려고 많은 노력을 했지만 

    생각해보니 권한상 좋지도 않은 방법이고, 맥 OS 특유의 권한 문제로 좋은 해결책이 없었음

     

    weblog.json or weblog.log를 미리 생성하면 동작하지만 나의 경우

     

        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
          <fileNamePattern>${LOG_FILE_NAME}.%d{yyyy-MM-dd}.%i.json.gz</fileNamePattern>
          <maxFileSize>30MB</maxFileSize>
          <maxHistory>15</maxHistory>
          <totalSizeCap>15GB</totalSizeCap>
        </rollingPolicy>

    위와같이 파일명이 매번 재생성되므로 다른 방법을 선택함

    728x90

    'Springboot' 카테고리의 다른 글

    [1] Spring REST Docs 이용해 API 문서 작성하기  (0) 2022.03.03
    [1] API 반환 값 설계 및 구현  (0) 2021.12.12
Designed by Tistory.