Spring

스프링 - Log4j 어노테이션 오류

마루설아 2025. 5. 22. 22:16

본격적인 실습을 위해 프로젝트를 생성 후 src/main/java에 컨트롤러를 추가

@Log4j 어노테이션을 사용하려니 아래처럼 에러가 발생했다.

 

 

눈에 띈 점은, src/main/java에서 오류가 뜨고, src/test/java에는 오류가 뜨지 않는 것.

 

 

 

해결 방법

pom.xml을 열어서 <scope>runtime</scope> 를 주석처리 한다.

...

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
    <exclusions>
        <exclusion>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
        </exclusion>
        <exclusion>
            <groupId>javax.jms</groupId>
            <artifactId>jms</artifactId>
        </exclusion>
        <exclusion>
            <groupId>com.sun.jdmk</groupId>
            <artifactId>jmxtools</artifactId>
        </exclusion>
        <exclusion>
            <groupId>com.sun.jmx</groupId>
            <artifactId>jmxri</artifactId>
        </exclusion>
    </exclusions>
    <!-- 주석 처리 -->
    <!-- <scope>runtime</scope> -->
</dependency>

...

 

<scope>는 의존성 범위를 지정하는 태그이며

runtime으로 되어있을 경우 컴파일 시 미사용, 실행(테스트)할때만 사용한다는 의미이다.

src/main/java는 컴파일 대상이므로 <scope> 부분을 제거해야 @Log4j 어노테이션을 사용할 수 있다.

 

 

이후 다시 확인해보면 오류가 사라진다.