Top

logback 로그 파일 생성되지 않는 이슈

새로운 프로젝트에 기존에 사용하던 log4j 로깅 대신 log4j 개발자가 만든 logback을 사용하기로 했다.

logback이 log4j보다 성능이나 기능에서 더 좋아졌기 때문에 다른 부분에서는 문제가 없었는데

appender를 file로 설정해 두었는데도 불구하고, log 파일이 생기지 않는 이슈가 발생했다.

 

1. 현상


평소에 개발용 IDE로 IntelliJ를 사용하고 있고, IntelliJ가 Eclipse와 다르게 Tomcat이 동작한다는 사실은 알고 있었기 때문에 (뭐가 다르더라??)

소스 폴더의 하위가 아닌 tomcat 폴더에 log 파일이 생겼을거라고 생각하고 파일을 찾아봤는데 아무리 찾아봐도 없다 @_@

 

2. 이상 징후


그렇게 삽질을 하다가 생성되는 로그 파일의 위치를 절대경로로 하니까 거짓말 처럼 파일이 생성되었다.

 

3. 원인


일단 두가지 원인중에 의해서 log 파일이 생성되지 않았다.

 

첫번째 logback 파일에서 상대경로를 지정했을 때 루트는 어디인가?

<file>/logs/output.log</file> --------------> Creates log file in C:\logs folder 
<file>C:/logs/output.log</file> -----------> Creates log file in C:\logs folder 
<file>../logs/output.log</file> -----------> Creates log file in tomcat logs folder 
<file>logs/output.log</file> ---------------> Creates log file in tomcat bin\logs folder

검색해보니 logback의 상대경로 설정시 루트 경로는 위와 같다.

나는 logs/xxx.log라고 설정했었기 때문에 tomcat의 bin 폴더가 루트로 설정되어서 tomcat/bin/logs/xxx.log가 생겼어야 되는 것이다.

 

두번째 윈도우 폴더의 고질적인 권한 문제 때문에 log 파일이 생성되어야 하는 위치에 파일이 생성되지 않은 것 같다.

이 문제는 윈도우 7인가 부터 계속 격어오는 문제인데

정책적인 문제인지 모르겠지만, 윈도우에 로그인한 사용자가 시스템 폴더(c:\나 c:\program files 등)에 접근해서 읽기 이외의 작업을 하려고 하면

위와 같은 화면이 떠서 사용자에게 confirm을 받도록 하는 경우이다.

이 경우를 막기위해서는 권한이 필요한 폴더 및 그 하위 파일들에 아래 주소에 있는 방법을 이용해 권한을 부여해주면 된다.

 

http://snoopybox.co.kr/929

 

위와 같이 개발을 하다보면 이슈가 발생했을 때 해당 이슈가 어디서 발생한 것인지 영역을 빨리 파악하는 것이 중요하다.

개발과는 전혀 상관없는(내가 손대지 않았으니까 문제가 없을거라고 기대하는) “윈도우의 권한” 문제일 수 있다는 가능성을 생각하지 않았다면 하루종일 logback의 설정 파일에서 나의 잘못을 찾아내려고 헤맸었을지도 모를 일이다.

kaze

Test

No Comments

Post a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.