Dandy Now!
  • [Spring Boot] gradle lombok Slf4j로 테스트 코드 로그 찍기
    2024년 04월 10일 15시 52분 53초에 업로드 된 글입니다.
    작성자: DandyNow
    728x90
    반응형

    1. DEBUG CONSOLE에 Slf4j 로그가 찍히지 않는 문제

    코딩하는 오후 채널의 "스프링 부트 : 보안"을 실습하던 중에 테스트 코드를 실행했는데 DEBUG CONSOLE에 로그가 찍히지 않는 문제가 있었다. 구글링을 통해 이 문제를 해결했고 해당 영상에 없는 내용이라 이 글을 작성하여 정리하고자 한다.

    😉 코딩하는 오후 "스프링 부트 : 보안" 동영상 강의 : https://youtu.be/3CY2pk-Ug10?feature=shared

     

    2. lombok 테스트 코드용 설정

    2.1. 의존성 설정

    build.gradle 파일의 의존성(dependencies)에 아래 코드를 추가해야 한다.

    testCompileOnly 'org.projectlombok:lombok'
    testAnnotationProcessor 'org.projectlombok:lombok'

     

    2.2. logback.xml 작성

    src/main/resources 경로에 logback.xml을 작성한다. 이 파일이 없을 경우 log.info()를 이용하면 로그를 찍을 수 있었지만 log.debug()로는 로그가 찍히지 않았다.

    <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="DEBUG">
        	<appender-ref ref="STDOUT" />
    	</root>
    
    </configuration>

     

    2.3. 테스트 코드에 Slf4j 어노테이션 적용

    JasyptTest.java 파일에 테스트 코드를 작성했고 Slf4j 어노테이션을 적용했다.

    package dev.dandy.demo;
    
    import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
    import org.junit.jupiter.api.Test;
    
    import lombok.extern.slf4j.Slf4j;
    
    @Slf4j
    public class JasyptTest {
    
        @Test
        public void jasyptTest() {
            String value = "1234";
            String result = jasyptEncoding(value);
            log.debug("---{}---", result);
    
        }
    
        public String jasyptEncoding(String value) {
            String key = "(Random key generator_로 생성한 Encryption key 256 키를 복붙함)";
            StandardPBEStringEncryptor pbeEnc = new StandardPBEStringEncryptor();
            pbeEnc.setAlgorithm("PBEWithMD5AndDES");
            pbeEnc.setPassword(key);
            return pbeEnc.encrypt(value);
        }
    
    }

    😉 Random key generator_ 랜덤 키 생성 : https://acte.ltd/utils/randomkeygen 에서 GENERATE 버튼을 클릭하면 랜덤으로 키를 생성할 수 있다. 생성된 키 중 Encryption key 256 키를 이용하였다.

    728x90
    반응형
    댓글