brunch

You can make anything
by writing

C.S.Lewis

by 갱그리 Apr 14. 2016

[Spring] log4j 인터셉터 설정

4/14 개발일기

사건의 발단은 이 블로그였다..

이 블로그는 정말 친절하게, 내게 스프링의 A~Z까지 실습 예제를 꼼꼼하게 알려주었다.

이 블로그만 따라하면 스프링의 그 무엇도 어려울 게 없어 보였으나...


문제의 인터셉터 챕터에서 완전 헤맸다..장장 일곱시간 삽질한 끝에 겨우 인터셉터 설정 성공. 


프로젝트를 삭제했다가 다시 클린한 상태에서 재코딩하기를 무려 5번. 

가장 큰 발단은 servlet-context.xml 을 복사하여 action-servlet.xml으로 재활용한데에 있었다.

왠지 모르겠지만, 프로젝트 생성 시 자동 생성되는 servlet-context.xml 은 일반 xml로 만들어지는 지.. <mvc:interceptors> 같은 문법이 하나도 먹히지가 않았다. 무조건 다 오류!! 


처음에는 이 오류가 ㅡ 스프링 버전이 달라서 그런 줄 알고 맞는 문법을 찾아 다시 넣었으나 영 작동하지 않아서 fail. 아예 xml을 지웠다가 다시 만들면서 포맷을 spring  bean configuration file로 선택하니 그동안 안 먹었던 모든 문법이 자연스럽게 작동하기 시작했다(ㅠㅠ)


그러나 그런 뒤에도 인터셉터는 타지 않았는데, 뭘까 고민하다가 interceptors 설정파일 문법들을 뒤지고 뒤진 끝에- 아래 문법이 성공했다.


<mvc:interceptors>
    <bean class="board.common.logger.LoggerInterceptor" />
</mvc:interceptors>


작동이 안되던 AS-IS 문법은 아래 꺼.


    <mvc:interceptors>

        <mvc:interceptor>

            <mvc:mapping path="/**"/>

            <bean id="loggerInterceptor" class="board.common.logger.LoggerInterceptor" />

        </mvc:interceptor>

    </mvc:interceptors>


그리고 나는 바보같이 프로젝트 명이 늘 헷갈린다. com.company.board 가 아니라, board..

log4j.xml 에서 Application Loggers 설정 부분에 프로젝트 명을 작성해야 하는데 

<logger name="com.company.board"> 라고 써놨었다. 그러자 아무런 오류 메시지도 없이 작동하지 않았다.. 그야말로 최악. 하도 로깅이 안찍혀서 <logger name="board"> 로 변경해보니 정상 작동. 


오늘은 진짜 삽질 of the 삽질의 날.. 기념해야겠다...

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari