반응형
local에서는 기본적으로 console 로그를 통해서 로그를 확인한다.
하지만 서버에서는 console 로그로 관리하는 경우 catalina.out 파일에 적재되면 이를 관리하지 않으면 상당히 많은 용량을 차지하여 서버에 부하를 주게 될 것이다.
이에 따른 로컬과 서버의 logback 분기 처리가 필요하다.
카페 24 톰캣 JSP 웹호스팅의 경우 서버에서 여러 가지 제약을 받고 있어 환경 설정의 경우 거의 소스를 통해 수정해야 한다.
log를 찍는 것 또한 서버에서 제약을 받게 되는데 해당 글은 카페24 톰캣 JSP 웹 호스팅에서 로컬 환경과 서버 환경의 log 설정을 분기하는 과정을 담고 있다.
아래 예시는 Spring Boot 환경에서 logback을 분기하는 예시이다.
pom.xml
<profiles>
<profile>
<id>local</id>
<properties>
<environment>local</environment>
<maven.test.skip>true</maven.test.skip>
<spring.profiles.active>local</spring.profiles.active>
</properties>
</profile>
<profile>
<id>real</id>
<properties>
<environment>real</environment>
<maven.test.skip>true</maven.test.skip>
<spring.profiles.active>real</spring.profiles.active>
</properties>
</profile>
</profiles>
logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 로컬 환경 -->
<springProfile name="local">
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<!-- 로그시간 + 패키지 및 클래스명 + 메소드명 + 메소드내에 로그위치 + 로깅메시지 -->
<pattern>%d{HH:mm:ss.SSS} %-5level %logger[%method:%line] - %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="CONSOLE" />
</root>
</springProfile>
<!-- 서버 환경 -->
<springProfile name="real">
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 파일 경로 설정 -->
<file>파일 경로</file>
<!-- 출력패턴 설정-->
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{HH:mm:ss.SSS} %-5level %logger[%method:%line] - %msg%n</pattern>
</encoder>
<!-- Rolling 정책 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- .gz,.zip 등을 넣으면 자동 일자별 로그파일 압축 -->
<fileNamePattern>파일 경로.%d{yyyy-MM-dd}_%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- 파일당 최고 용량 kb, mb, gb -->
<maxFileSize>50MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!-- 일자별 로그파일 최대 보관주기(~일), 해당 설정일 이상된 파일은 자동으로 제거-->
<maxHistory>7</maxHistory>
<!--<MinIndex>1</MinIndex>
<MaxIndex>10</MaxIndex>-->
</rollingPolicy>
</appender>
<root level="INFO">
<appender-ref ref="FILE" />
</root>
</springProfile>
<!-- 공통 설정 -->
<springProfile name="default">
<root level="INFO">
<appender-ref ref="CONSOLE" />
</root>
</springProfile>
</configuration>
톰캣 JSP 웹호스팅에서는 실행 인자를 마음대로 바꾸기 어렵지만 폴더 내에 파일 생성은 가능하다.
/tomcat/bin/ 폴더 내에 다음 setenv.sh 파일을 생성하자. (윈도우인 경우에는 setenv.bat)
setenv.sh 파일에 다음 내용을 기입하자.
setenv.sh
export SPRING_PROFILES_ACTIVE=real
위의 환경으로 세팅을 해두면 톰캣이 시작될 때 real 프로필 기준으로 실행하게 된다.
톰캣 재시작
/카페24아이디/tomcat/bin/shutdown.sh
/카페24아이디/tomcat/bin/startup.sh
재시작 후 테스트를 해보면 아래와 같이 정상적으로 지정한 로그 파일이 생성되는 것을 확인할 수 있다.
반응형
'개발자의 시선 > 개발자' 카테고리의 다른 글
[IT] 레디스(redis) 기본 개념 정리 (1) | 2024.04.26 |
---|---|
[IT] 쿠버네티스(kubernetes) 기본 개념 정리 (0) | 2024.04.22 |
[JAVA] 프로그래밍에서 사용할 수 있는 디자인 패턴 10가지 예시 (0) | 2024.04.21 |
[카페24] JSP 톰캣 호스팅에 신규 도메인 구매 후 이전 방법 (0) | 2024.01.22 |
[IT] CI/CD 소프트웨어 4종 소개 (0) | 2023.12.21 |
[이클립스] 카멜 표기법 변환 AnyEdit Plugin 소개 (1) | 2023.12.03 |
[IT] 프로그래밍 개발론 간략 정리 소개 (0) | 2023.12.01 |
[JAVA] 이클립스 버그 탐색 도구 SpotBugs 소개 (0) | 2023.11.29 |