tomcat6 서버에서 프로덕션 환경을 사용하여 grails 애플리케이션을 시작할 때마다 /var/log/tomcat6/catalina.out에 다음 오류가 표시됩니다.grails tomcat 로그에 log4j를 구성하는 방법
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: stacktrace.log (Permission denied)
...
...
나는 이것이 log4j가 로그 파일을 만들려고 시도하고 필요한 권한을 가지고 있지 않기 때문에 발생한다는 것을 모았습니다.
내 응용 프로그램의 로그 파일을 기존의 tomcat 로그 (/var/log/tomcat6/catalina.out)로 이동하거나/var/log/tomcat6 디렉토리의 별도 파일로 이동하는 것이 이상적입니다. .
최소한의 구성만으로 log4j 로그의 위치를 변경하려면 어떻게해야합니까? 즉, 자체 appender를 자체 출력 패턴으로 정의하고 싶지는 않지만 로그 파일의 위치를 변경하려고합니다. 수준 info
으로이 경우 모든 로그 이벤트를
log4j = {
appenders {
file name:'file', file: '/var/log/tomcat6/mylog.log'
}
root {
info 'stdout', 'file'
}
}
을 이상 (즉, 바람둥이가 추가됩니다 모두 파일 /var/log/tomcat6/mylog.log
표준 출력으로 밀어됩니다
당신은이 같은 Tomcat의 로그 디렉토리의 경로 하드 코딩 피할 수있다 : '파일 이름 :'파일 ', 파일 : (System.getProper ty ('catalina.base')? : 'target') + '/ logs/mylog.log'' 이것은'catalina.base' 속성이 설정되어 있지 않으면 로그를 쓰는 run-app 나 Tomcat에서 작동합니다 타겟/로그 –
Tomcat의 로깅이 console logger를 catalina.out으로 리디렉션하지 않습니까? –
appender 파일 속성을 '/var/log/tomcat6/mylog.log'로 설정했습니다. 그러면 로그 파일이 생성되고 로깅됩니다. 그러나 나는 여전히 'catalina.out'로그에서 위의 오류를보고 있습니다. 누구든지이 오류를 throw 할 때 log4j 액세스하려고하는 파일을 알 수있는 빠른 방법을 알고 있습니까? – srkiNZ84