1. 프로젝트 구조
2. 설정 파일 application.properties
배포시에는 '-Dspring.profiles.active=SERVICE' 이렇게 배포하기 때문에 프로퍼티 파일 변경은 필요없음.
참조 : https://developer-ljo.tistory.com/26
##THYMELEAF
spring.thymeleaf.prefix=classpath:templates/
spring.thymeleaf.check-template-location=true
spring.thymeleaf.suffix=.html
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.mode=HTML
spring.thymeleaf.cache=false
spring.thymeleaf.order=0
# PROFILE 설정 ##### LOCAL : 로컬 , DEV : 개발 , SERVICE : 운영
spring.profiles.active=LOCAL
#spring.profiles.active=DEV
#spring.profiles.active=SERVICE
# FILE UPLOAD #####
spring.http.multipart.max-file-size=10MB
spring.http.multipart.max-request-size=10MB
mybatis.type-aliases-package=com.solution.framework.util.mapper
mybatis.mapper-locations=classpath:mappers/com/solution/**/dao/*.xml
mybatis.configuration.map-underscore-to-camel-case=true
mybatis.configuration.call-setters-on-nulls=true
server.error.include-exception=false
server.error.include-stacktrace=never
spring.main.allow-bean-definition-overriding=true
server.servlet.session.persistent=false
3. logback.xml
1)로컬 : 콘솔 출력
2)개발서버 : 파일로 출력, 로그 3일 보관
3)운영서버 : 파일로 출력, 로그 30일 보관
예전에는 톰캣으로 날짜별 로그를 별도로 작업하고 지우는 작업을 했어야 했는데 이렇게 설정이 쉬워졌다...
톰캣 날짜별 로그 참조 : https://developer-ljo.tistory.com/5
<?xml version="1.0" encoding="UTF-8"?>
<!-- 300초마다 설정 파일의 변경을 확인한다. 파일이 변경되면 다시 로딩 -->
<configuration scan="true" scanPeriod="300 seconds">
<!-- 외부 설정파일. -->
<property resource="application.properties"/>
<!-- 운영 로그 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/data/apps/adWeb/logs/adWeb.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 로그 경로 -->
<fileNamePattern>/data/apps/adWeb/logs/adWeb-%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 일자별 로그 파일 보관 일수 -->
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) [ %cyan(%logger{20}) ] : %msg%n
</pattern>
</encoder>
</appender>
<!-- 개발 로그 -->
<appender name="DEV_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/home/wise/adweb/logs/adWeb.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 로그 경로 -->
<fileNamePattern>/home/wise/adweb/logs/adWeb-%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 일자별 로그 파일 보관 일수 -->
<maxHistory>3</maxHistory>
</rollingPolicy>
<encoder>
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) [ %cyan(%logger) ] : %msg%n
</pattern>
</encoder>
</appender>
<!-- 로컬 로그 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) [ %cyan(%logger) ] : %msg%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="INFO" />
<logger name="jdbc.sqltiming" level="INFO" />
<logger name="jdbc.sqlonly" level="DEBUG" />
<logger name="jdbc.resultsettable" level="DEBUG" />
<logger name="org.apache.http.impl.conn" level="OFF" />
<logger name="jdbc" level="OFF"/>
<!-- 설정 파일의 active에 따라 로그 출력 -->
<springProfile name="SERVICE">
<root level="INFO">
<appender-ref ref="FILE"/>
</root>
</springProfile>
<springProfile name="DEV">
<root level="DEBUG">
<appender-ref ref="DEV_FILE"/>
</root>
</springProfile>
<springProfile name="LOCAL">
<root level="DEBUG">
<appender-ref ref="STDOUT"/>
</root>
</springProfile>
</configuration>
※로그레벨 참조
1. TRACE : 5
2. DEBUG : 4
3. INFO : 3
4. WARN : 2
5. ERROR : 1
광고 : https://play.google.com/store/apps/details?id=com.ljo.blocktube
'개발 > java&kotlin' 카테고리의 다른 글
스프링부트에서 Scheduling 사용하기 (0) | 2020.11.25 |
---|---|
spring cloud openfeign 사용하기 (0) | 2020.11.24 |
java 로 캡챠 구현 (0) | 2020.03.26 |
WebBindingInitializer 활용 (0) | 2018.07.12 |
spring 크로스 도메인 처리 (0) | 2018.07.12 |