인프런 커뮤니티 질문&답변

literate_t님의 프로필 이미지

작성한 질문수

스프링 DB 1편 - 데이터 접근 핵심 원리

DataSource 예제2 - 커넥션 풀

히카리 커넥션 풀 생성할 때 로그가 좌르르르 나오지 않습니다!

작성

·

3K

·

수정됨

1

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
>> 환경
스프링부트 3.1.0
히카리: 5.0.1

커넥션 풀 10개 지정하고 나서 테스트 코드 돌려볼 때, 영한님 화면에서는 Config 로그가 주르르 나오는데, 저는 나오질 않습니다. 혹시라도 application.properties에서 누락한 게 있는지 소스를 다운받아 보았지만 아니었습니다.

application.properties에 로그 관련 넣을 수 있는 설정이 있길래 다음과 같은 값을 넣어봤지만 로그 내용이 달라지지 않습니다.
logging.level.com.zaxxer.hikari=TRACE
logging.level.com.zaxxer.hikari.HikariConfig=DEBUG

로그는 하기 이미지처럼 나오는 게 전부입니다.

예제도 똑같이 따라하고 있는데 버전이 달라지면서 달라진 기능상의 차이일까요.

@Test
    void dataSourceConnectionPool() throws SQLException, InterruptedException {
        // 커넥션 풀링
        HikariDataSource dataSource = new HikariDataSource();
        dataSource.setJdbcUrl(URL);
        dataSource.setUsername(USERNAME);
        dataSource.setPassword(PASSWORD);
        dataSource.setMaximumPoolSize(10); // 10 is default
        dataSource.setPoolName("YourPool");

        useDataSource(dataSource);
        Thread.sleep(1000);
    }

    private void useDataSource(DataSource dataSource) throws SQLException {
        Connection connection1 = dataSource.getConnection();
        Connection connection2 = dataSource.getConnection();
        log.info("connection={}, class={}", connection1, connection1.getClass());
        log.info("connection={}, class={}", connection2, connection2.getClass());
    }

 

+추가
DataSourceDriverManager를 사용할 때도 관련한 로그가 안 뜹니다..새로운 커넥션을 생성했다는 로그요..
(Creating new jdbc DriverManager Connectino to)

답변 6

8

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 메뉴얼에도 업데이트는 해두었는데요. 로그 출력이 잘 안되는 분들은 다음을 참고해주세요.

스프링 부트 3.1 이상 - 로그 출력 안되는 문제 해결

히카리 커넥션 풀을 테스트하는 dataSourceConnectionPool()을 실행할 때, 스프링 부트 3.1 이상을 사용한다면 전체 로그가 아니라 다음과 같은 간략한 로그만 출력된다.

스프링 부트 3.1 이상

14:14:55.926 [Testworker] INFO com.zaxxer.hikari.HikariDataSource -- MyPool - Starting...
14:14:55.993 [Testworker] INFO com.zaxxer.hikari.pool.HikariPool -- MyPool - Added connection conn0: url=jdbc:h2:tcp://localhost/~/test user=SA
14:14:55.994 [Testworker] INFO com.zaxxer.hikari.HikariDataSource -- MyPool - Start completed.
14:14:55.997 [Testworker] INFO hello.jdbc.connection.ConnectionTest -- connection=HikariProxyConnection@2066892165 wrapping conn0: url=jdbc:h2:tcp://localhost/~/test user=SA, class=class com.zaxxer.hikari.pool.HikariProxyConnection
14:14:56.000 [Testworker] INFO hello.jdbc.connection.ConnectionTest -- connection=HikariProxyConnection@276869158 wrapping conn1: url=jdbc:h2:tcp://localhost/~/test user=SA, class=class com.zaxxer.hikari.pool.HikariProxyConnection

이때는 다음 위치에 파일을 만들어서 넣으면 된다.

src/main/resources/logback.xml

<configuration>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">

        <encoder>

            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%kvp- %msg%n</pattern>

        </encoder>

    </appender>

    <root level="DEBUG">

        <appender-ref ref="STDOUT" />

    </root>

</configuration>

스프링 부트 3.1 부터 기본 로그 레벨을 INFO로 빠르게 설정하기 때문에 로그를 확인할 수 없는데, 이렇게하면 기본 로그 레벨을 DEBUG로 설정해서 강의 내용과 같이 로그를 확인할 수 있다.

 

2

안녕하세요. literate_t님, 공식 서포터즈 y2gcoder입니다.

확실하지는 않으나 해당 링크(클릭)에 있는 영한님 답변을 참고해보시겠습니까?

감사합니다.

1

literate_t님의 프로필 이미지
literate_t
질문자

흑흑 확인이 좀 늦었습니다. 흐름 안 끊기고 템포 빠르게 수업 듣고 싶어서 이제야 봐요.
영한님이 남겨주신 방법을, 지금 스프링 DB 2편 - 데이터 접근 활용 기술편에 적용해봤는데요.


JPA 버전 문제 관련해서 나오는 오류(섹션6 - 스프링 데이터 JPA 적용2) 로깅에서 강의에는
parameter value [\] did not match expected type... 라고 친절하게 나오는데, 알려주신 설정을 적용하면 로깅되는 텍스트는 많지만 위 내용이 나오지는 않더라고요.

버전업 되면서 바뀐 게 꽤 많군요. 메이저 업데이트라 어쩔 수 없나봐요.
확인 감사합니다 :)

한창 달리고 계셨군요!

추가로 DB2편의 섹션6 - 스프링 데이터 JPA 적용2 부분에서 나오는 하이버네이트 버그 상황은

하이버네이트 특정 버전에서만 발생하는 문제입니다!

스프링 부트 3.1 버전 대를 사용하고 계시다면 버그가 있는 버전이 아닌 아마도 하이버네이트 6버전을 사용하고 계셔서 해당 버그를 보시기 어려울 것 같다는 생각이 듭니다 :)

혹은 버그가 있던 버전을 직접 지정해서 보려고 하셨다면 아마도 하이버네이트에서 해당 버그를 수정했을 수도 있으니 참고해주십쇼! 문제가 있었던 하이버네이트 버전은 강의자료에도 보이듯이 5.6.6 ~ 5.6.7 버전입니다!

1

이 이슈 답변 없을까요? 여전히 안되고 있는것 같은데요

0

저도 똑같은 상황이라 답변대로 따라해봤는데,
(application.properties 에 `logging.level.root=debug` 추가, 캐시 삭제 후 재실행)
분명 체크포인트에서 걸리기는 합니다. 그런데도 출력이 안 되는건 왜일까요? ㅠㅠ

0

안녕하세요. literate_t님, 공식 서포터즈 David입니다.

application.propertieslogging.level.root=debug을 추가하신 뒤, 아래 가이드를 따라 캐시를 삭제 후 다시 시도해 보시겠어요?

image

그래도 동작하지 않는다면, HikariConfig 클래스 내 아래 코드에 브레이크포인트를 걸고 디버깅 모드로 하신 뒤 F9를 눌러보시겠어요? 아무런 변화가 없다면 말씀 부탁드립니다.

image감사합니다.

저도 질문자님과 같은 현상이 나타나서 logging.level.root=debug 추가, 캐시 삭제, 브레이크포인트 걸고 디버깅 모드 후 F9 3가지 다 해봤는데 아무런 변화가 없습니다.