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 어노테이션을 사용할 수 있다.
이후 다시 확인해보면 오류가 사라진다.