[SpringBoot] Logback 설정하기

     

     

    SpringBoot, Logback 설정하기

     

     

     

     

      Logback 사용하는 계기

     Java를 Test를 한다면 가장 대표적인 명령어, System.out.println() 이 있다. 보통 우리가 개발할 때는 이 언어를 주로 사용하지만, 만약 실 사용서버에서 사용할 경우에는 위의 명령어가 무섭게 느껴질 수 있다.

     

    System에서 가져다 쓰는 static의 규칙으로 인해 우리는 항상 console창에 해당 파일이 실행되는 여부를 파악할 수 있었다.

     

    그러나 System에서 가져다 쓰는 만큼 메모리 사용량이 그만큼 높아지고, 그렇기 때문에 남발할 경우 서버의 사양을 높일 수도 있다는 경우가 있기 때문이다.

     

     

    따라서 System.out.print 대신 Logback를 사용하게 된다.

     

     

      logback 설정하기

    logback 만들기

     해당 Project에서는 logback.xml을 resources에 설정하였다.

     

    SpringBoot는 Logbak기능을 기본으로 탑제하고 있기 때문에, 별도의 라이브러리 없이 사용할 수 있다.

    만약, logbak 버전을 업그레이드 하고 싶다면, 그때 pom.xml  혹은 build.gradle에 설정하면 된다.

     

    <?xml version="1.0" encoding="UTF-8"?>
    
    <configuration>
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>%d{yyyyMMdd HH:mm:ss.SSS} [%thread] %-3level %logger{5} - %msg%n</pattern>
            </encoder>
        </appender>
    
        <logger name="jdbc" level="OFF" />
    
        <logger name="jdbc.sqlonly" level="OFF" />
        <logger name="jdbc.sqltiming" level="DEBUG" />
        <logger name="jdbc.audit" level="OFF" />
        <logger name="jdbc.resultset" level="OFF" />
        <logger name="jdbc.resultsettable" level="DEBUG" />
        <logger name="jdbc.connection" level="OFF" />
    
        <root level="INFO">
            <appender-ref ref="STDOUT" />
        </root>
    </configuration>

    logbak의 기본 설정이다.

    logback은 보통 was의 log가 아닌 다른곳에 저장되는 것이 기본이다.

     

    그러나 우리는 Test할 때도 사용해야하기 때문에 STDOUT를 이용해서 console창에 나올 수 있도록 설정하였다.

     

    이를 통해서 개발틀에서도 쉽게 Log의 기능으로 log를 파악할 수 있게 도와준다.

     

     

     

      SQL을 LOG로 표현하기

     log를 SQL로 표현하기.

     

    내가 log를 바라보게 된 것은 어쩌면 console창에 표시되는 이 SQL에 반해서일지도 모른다.

    만약 내가 개발을 할 때, SQL에 대입되는 것이 어떻게 되는가에 궁금하고 해당 SQL을 찾고 대입하고의 시간을 줄이기 위함이었다.

     

    #spring.datasource.url=jdbc:mariadb://localhost:3306/mollang?characterEncoding=UTF-8
    #spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
    
    spring.datasource.url=jdbc:log4jdbc:mariadb://localhost:3306/mollang?characterEncoding=UTF-8
    spring.datasource.driverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy

    그래서 기존의 MariaDB의 연결은 주석으로 처리했고, LOG로 연결된 SQL은 다시 새롭게 작성했다.

    MariaDB일 경우, 다음과 같이 세팅하면 결과값이 출력하게 된다.

     

     

    그러나 문제는 SpringBoot가 기본으로 제공하는 logback이 version이 매우 낮다는 점이다.

     

    그래서 위의 설명대로 logback을 버전 업그레이드 할 필요성이 있다.

     

      라이브러리 사용

    implementation group: 'org.bgee.log4jdbc-log4j2', name: 'log4jdbc-log4j2-jdbc4.1', version: '1.16'

     라이브러리 사용은 다음과 같다.

    LOG4J2의 LOGBACK을 받으면 된다.

     

     

     

    반응형

    'Web > SpringBoot' 카테고리의 다른 글

    [SpringBoot] JSP 자동 업데이트  (0) 2022.09.26
    [SpringBoot] JSP 연결하기  (0) 2022.09.25
    [SpringBoot] JPA 연동하기  (0) 2022.06.16
    [SpringBoot] Interceptor 사용하는 방법  (0) 2022.03.26
    [SpringBoot] API방식, File Upload 하기  (0) 2022.03.11

    댓글

    Designed by JB FACTORY