log를 외부에 저장하기 위한 설정
log4jdbc는 sqlLog도 같이 찍기 위한 설정(myBatis)
build.gradle
// sql 찍기위함
implementation group: 'org.bgee.log4jdbc-log4j2', name: 'log4jdbc-log4j2-jdbc4.1', version: '1.16'
application.yml
//sql 찍기위함
spring:
datasource:
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy <- 이대로 사용
jdbc-url: jdbc:mariadb://localhost:3360/dbName <- 변경 전
jdbc-url: jdbc:log4jdbc:mariadb://localhost:3360/dbName <- 변경 후
logging:
//sql 찍기위함 필요없으면 거르면 된다
level:
jdbc:
sqlonly : off
sqltiming : info
resultsettable : info
audit : off
resultset : off
connection : off
//logback 설정
file:
path: ?:/folder/folder/log
config : classpath:logback-simple.xml
log4jdbc.log4j2.properties
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
//sql 길이 제한 없음
log4jdbc.dump.sql.maxlinelength=0
logback-simple.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds">
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){blue} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<property name="CONSOLE_LOG_CHARSET" value="${CONSOLE_LOG_CHARSET:-default}"/>
<property name="ERR_LOG_FILE_NAME" value="error"/>
<property name="LOG_FILE_NAME" value="TestLog"/>
//${LOG_PATH}는 yml에 저장된 logging.file.path <-이거임
<property name="LOG_PATH" value="${LOG_PATH}"/>
<property name="LOG_PATTERN" value ="[%thread]%d{yyyy-MM-dd HH:mm:ss} %-5level [%logger{0}:%line] - %msg%n"/>
//console 용 로그
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>${CONSOLE_LOG_CHARSET}</charset>
</encoder>
</appender>
//파일에 저장 할 로그
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/${LOG_FILE_NAME}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/${LOG_FILE_NAME}.%d{yyyy-MM-dd}_%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
//최대 사이즈 지정
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
//10일 저장 후 삭제
<maxHistory>10</maxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${LOG_PATTERN}</pattern>
<charset>utf-8</charset>
</encoder>
</appender>
//INFO 이상부터 기록
//ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE"/>
</root>
</configuration>
구조
로그 저장소
'Framework > Spring' 카테고리의 다른 글
Spring Security 설정 6.x.x 버전 이상 (0) | 2024.10.14 |
---|---|
[PageHelper] 페이지 헬퍼 네비게이션 및 유틸 (1) | 2024.04.26 |
[setting] spring banner 바꾸는 법 (0) | 2023.10.13 |
[setting] lucy-xss 설정 (0) | 2023.10.13 |
[Java] mybatis mapping (0) | 2023.10.13 |