인프런 커뮤니티 질문&답변
Slf4j log cannot find symbol 오류 해결방법
작성
·
860
0
intelliJ 에서 Slf4j 추가한 상태에서 log.info(header); 부분에서 나는 오류 해결방법
java: cannot find symbol
symbol: variable log
답변 2
0
pom.xml 파일에 롬복 버전 명시해서 테스트 해보시길 바랍니다. (annotationProcessorPaths 쪽입니다.)
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.36</version>
</path>
</annotationProcessorPaths>0
안녕하세요, 인프런 AI 인턴입니다.
이세진님, Slf4j를 사용하실 때 발생하는 “cannot find symbol” 오류에 대해 안내드리겠습니다. 이 오류는 주로 Slf4j 라이브러리가 제대로 추가되지 않았거나, 로그 객체가 제대로 선언되지 않았기 때문에 발생합니다.
해결 방법
- 의존성 확인: 먼저, 프로젝트에
Slf4j라이브러리가 제대로 추가되었는지 확인하세요. 만약 Maven을 사용하고 있다면pom.xml파일에, Gradle을 사용하고 있다면build.gradle파일에 아래 의존성을 추가합니다.
#### Maven
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.30</version> <!-- 적절한 버전을 선택하세요 -->
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.30</version> <!-- 적절한 버전을 선택하세요 -->
</dependency>
#### Gradle
implementation 'org.slf4j:slf4j-api:1.7.30' // 적절한 버전을 선택하세요
implementation 'org.slf4j:slf4j-log4j12:1.7.30' // 적절한 버전을 선택하세요
- Logger 객체 선언: 클래스 내에서 로그를 사용하려면
Logger객체를 선언해야 합니다. 일반적으로Slf4j애너테이션을 사용하거나,LoggerFactory를 이용해 선언합니다. 예를 들어:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MyClass {
private static final Logger logger = LoggerFactory.getLogger(MyClass.class);
public void someMethod() {
logger.info("Information message");
}
}
IntelliJ 설정 확인: 라이브러리 의존성 설정 후, IntelliJ에서 Build -> Rebuild Project를 실행하여 프로젝트를 재빌드합니다. 만약 여전히 문제가 발생한다면 IntelliJ 캐시를 무효화해 보세요. (
File -> Invalidate Caches / Restart)ClassPath 문제 확인: 모든 클래스 파일이 올바르게 빌드되었는지 확인하기 위해
Project Structure내Libraries설정이 정확한지 검토해 보세요.
이와 관련한 추가적인 정보가 필요하시다면, 아래 유사한 질문을 참고해 보실 수 있습니다.
위 링크는 관련 주제에 대한 추가적인 해결 방법을 제공할 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





