springboot에 slf4j 설정 시 느릴 경우
한 50개 넘어가는 데이터를 단순 select 하는데도 이클립스가 뻗어버려서 보니까 다른 설정을 안 넣어줬었다.
그래서 찾아보니 logback 설정이 누락되어 있어서 발생한 문제. filter가 하나도 없어서 있는 그대로 로그를 긁어오다 보니 이클립스가 뻗어버린 것이다. 없어도 소규모 데이터는 가져오길래 생각도 못했징..
pom.xml
<!-- set log4jdbc --> <dependency> <groupId>org.bgee.log4jdbc-log4j2</groupId> <artifactId>log4jdbc-log4j2-jdbc4.1</artifactId> <version>${log4jdbc-log4j2-jdbc4.1-version}</version> </dependency> <dependency> <groupId>org.logback-extensions</groupId> <artifactId>logback-ext-spring</artifactId> <version>${logback-ext-spring-version}</version> </dependency> |
logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?> <configuration> <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator"> <resetJUL>true</resetJUL> </contextListener>
<property name="pattern_layout" value="%d{yyyy-MM-d'T'HH:mm:ss.SSS}|%-5level|%-40logger{40}:%line|%msg%n" />
<appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>${pattern_layout}</pattern> </layout> </appender>
<include resource="logback/${spring.profiles.active}.xml"/> </configuration> |
prod.xml
<?xml version="1.0" encoding="UTF-8"?> <included> <!-- jdbc.sqlonly : Logs only SQL jdbc.sqltiming : Logs the SQL, post-execution, including timing execution statistics jdbc.audit : Logs ALL JDBC calls except for ResultSets jdbc.resultset : all calls to ResultSet objects are logged jdbc.connection : Logs connection open and close events --> <appender name="service_rolling" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File>${LOG_DIR}/service.log</File> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <FileNamePattern>${LOG_DIR}/%d{yyyyMM, aux}/service_%d{yyyyMMdd}.%i.log</FileNamePattern> <maxFileSize>20MB</maxFileSize> </rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>${pattern_layout}</pattern> </layout> </appender>
<appender name="error_rolling" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File>${LOG_DIR}/error.log</File> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <FileNamePattern>${LOG_DIR}/%d{yyyyMM, aux}/error_%d{yyyyMMdd}.%i.log</FileNamePattern> <maxFileSize>20MB</maxFileSize> </rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>${pattern_layout}</pattern> </layout> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender>
<appender name="service_rolling_async" class="ch.qos.logback.classic.AsyncAppender"> <appender-ref ref="service_rolling" /> </appender> <appender name="error_rolling_async" class="ch.qos.logback.classic.AsyncAppender"> <appender-ref ref="error_rolling" /> </appender>
<logger name="jdbc" level="OFF"/>
<logger name="jdbc.sqlonly" level="DEBUG" additivity="false"> <appender-ref ref="console" /> </logger>
<logger name="jdbc.resultsettable" level="DEBUG" additivity="false"> <appender-ref ref="console" /> </logger>
<logger name="package name" additivity="false"> <level value="debug" /> <appender-ref ref="console" /> </logger>
<!-- root --> <root> <level value="info" /> <appender-ref ref="console" /> <appender-ref ref="service_rolling" /> <appender-ref ref="error_rolling" /> </root> </included> |
안 잊어버리게 메모 메모.