MyBatis

log4j.xml

Jungsoomin :) 2020. 7. 18. 22:56

STS 툴로 프로젝트를 생성하면 LOG4J 와 SLF4J 인가 징검다리 역할을 하는..녀석의 의존이 기본적으로 깔리고 리소스파일에 log4j.xml 설정이 되어있다. 허나 내가 테스트를 시도해볼떄마다 log 레벨을 수정해도 INFO레벨로만 출력될 뿐 마이바티스가 제공하는 로그는 나오지를 않았다.

 

참고문서 : http://dveamer.github.io/java/Log4j2.html   이상을 꿈꾸는 몽상가.. 프로그래밍을 좋아함.. 님 의 글을 참고로 알게 되었다.

src/main/resources 에 위치한 파일들이 빌드시에 Maven에 의해서 class path로 이동됩니다.
Configuration 파일들을 src/main/resources 에 위치시켜서 적용시키는 것이 일반적인 방법입니다.
테스트 코드에 대해서는 src/test/resources 에 위치시키면 되겠죠.
Spring 프레임워크를 사용하시는 프로젝트라면 아마도 Maven 또는 Gradle 을 사용할 것입니다.

 

즉 TEST 폴더의 RESOURCES 폴더에 제공되는 LOG4J.XML 파일이 존재했던 것이다....하아..ㅠㅠㅠ

 

2시간 동안 구글링을 했는데..알게 되어 천만 다행이다 싶다.


 

기본적으로 LOG4J.XML 에는 에러가 나있는데 이는 로컬에서 LOG4J DTD를 찾으려 하기 때문이다. 즉, 웹을 이를 웹의 절대경로로 변경하면 된다.

 

2번째 줄이 핵심이다.

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE log4j:configuration SYSTEM "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

마이바티스 구동에 대한 로그레벨 설정을 DEBUG로 하면 자세히 알아 볼 수 있다.  다른 로거들도 마찬가지다.

  1. logger 태그의 name 속성에는 맵핑되어있는 DAO 패키지를 지정한다. 디버그 레벨은 debug이하여야 출력된다.

  2. 다른 패키지에서 로그를 다른레벨로 받아보고 싶다면 name 속성을 변경해주면 된다.
   <!-- Application Loggers -->
     <logger name="com.soomin.dao"  >     	
        <level value="debug"  /> 
        <appender-ref ref="console" />
    </logger> 

 

나중에 더 알게 되면 추가하겠다.